1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | #include <linux/kernel.h> |
3 | #include <linux/blkdev.h> |
4 | #include <linux/init.h> |
5 | #include <linux/syscalls.h> |
6 | #include <linux/unistd.h> |
7 | #include <linux/slab.h> |
8 | #include <linux/mount.h> |
9 | #include <linux/major.h> |
10 | #include <linux/root_dev.h> |
11 | #include <linux/init_syscalls.h> |
12 | #include <linux/task_work.h> |
13 | #include <linux/file.h> |
14 | |
15 | void mount_root_generic(char *name, char *pretty_name, int flags); |
16 | void mount_root(char *root_device_name); |
17 | extern int root_mountflags; |
18 | |
19 | static inline __init int create_dev(char *name, dev_t dev) |
20 | { |
21 | init_unlink(pathname: name); |
22 | return init_mknod(filename: name, S_IFBLK | 0600, dev: new_encode_dev(dev)); |
23 | } |
24 | |
25 | #ifdef CONFIG_BLK_DEV_RAM |
26 | |
27 | int __init rd_load_disk(int n); |
28 | int __init rd_load_image(char *from); |
29 | |
30 | #else |
31 | |
32 | static inline int rd_load_disk(int n) { return 0; } |
33 | static inline int rd_load_image(char *from) { return 0; } |
34 | |
35 | #endif |
36 | |
37 | #ifdef CONFIG_BLK_DEV_INITRD |
38 | bool __init initrd_load(char *root_device_name); |
39 | #else |
40 | static inline bool initrd_load(char *root_device_name) |
41 | { |
42 | return false; |
43 | } |
44 | |
45 | #endif |
46 | |
47 | /* Ensure that async file closing finished to prevent spurious errors. */ |
48 | static inline void init_flush_fput(void) |
49 | { |
50 | flush_delayed_fput(); |
51 | task_work_run(); |
52 | } |
53 |