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 
12 void  change_floppy(char *fmt, ...);
13 void  mount_block_root(char *name, int flags);
14 void  mount_root(void);
15 extern int root_mountflags;
16 
create_dev(char * name,dev_t dev)17 static inline int create_dev(char *name, dev_t dev)
18 {
19 	ksys_unlink(name);
20 	return ksys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
21 }
22 
bstat(char * name)23 static inline u32 bstat(char *name)
24 {
25 	struct kstat stat;
26 	if (vfs_stat(name, &stat) != 0)
27 		return 0;
28 	if (!S_ISBLK(stat.mode))
29 		return 0;
30 	return stat.rdev;
31 }
32 
33 #ifdef CONFIG_BLK_DEV_RAM
34 
35 int __init rd_load_disk(int n);
36 int __init rd_load_image(char *from);
37 
38 #else
39 
rd_load_disk(int n)40 static inline int rd_load_disk(int n) { return 0; }
rd_load_image(char * from)41 static inline int rd_load_image(char *from) { return 0; }
42 
43 #endif
44 
45 #ifdef CONFIG_BLK_DEV_INITRD
46 
47 bool __init initrd_load(void);
48 
49 #else
50 
initrd_load(void)51 static inline bool initrd_load(void) { return false; }
52 
53 #endif
54 
55 #ifdef CONFIG_BLK_DEV_MD
56 
57 void md_run_setup(void);
58 
59 #else
60 
md_run_setup(void)61 static inline void md_run_setup(void) {}
62 
63 #endif
64