blob: e7f2e7fa066eb6715c0f54fb27649338b60f475a [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <linux/config.h>
2#include <linux/kernel.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07003#include <linux/init.h>
4#include <linux/syscalls.h>
5#include <linux/unistd.h>
6#include <linux/slab.h>
7#include <linux/mount.h>
8#include <linux/major.h>
9#include <linux/root_dev.h>
10
Linus Torvalds1da177e2005-04-16 15:20:36 -070011void change_floppy(char *fmt, ...);
12void mount_block_root(char *name, int flags);
13void mount_root(void);
14extern int root_mountflags;
15extern char *root_device_name;
16
Greg Kroah-Hartmanbdaf8522005-06-20 21:15:16 -070017static inline int create_dev(char *name, dev_t dev)
Linus Torvalds1da177e2005-04-16 15:20:36 -070018{
19 sys_unlink(name);
20 return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
21}
22
Linus Torvalds1da177e2005-04-16 15:20:36 -070023#if BITS_PER_LONG == 32
24static inline u32 bstat(char *name)
25{
26 struct stat64 stat;
27 if (sys_stat64(name, &stat) != 0)
28 return 0;
29 if (!S_ISBLK(stat.st_mode))
30 return 0;
31 if (stat.st_rdev != (u32)stat.st_rdev)
32 return 0;
33 return stat.st_rdev;
34}
35#else
36static inline u32 bstat(char *name)
37{
38 struct stat stat;
39 if (sys_newstat(name, &stat) != 0)
40 return 0;
41 if (!S_ISBLK(stat.st_mode))
42 return 0;
43 return stat.st_rdev;
44}
45#endif
46
47#ifdef CONFIG_BLK_DEV_RAM
48
49int __init rd_load_disk(int n);
50int __init rd_load_image(char *from);
51
52#else
53
54static inline int rd_load_disk(int n) { return 0; }
55static inline int rd_load_image(char *from) { return 0; }
56
57#endif
58
59#ifdef CONFIG_BLK_DEV_INITRD
60
61int __init initrd_load(void);
62
63#else
64
65static inline int initrd_load(void) { return 0; }
66
67#endif
68
69#ifdef CONFIG_BLK_DEV_MD
70
71void md_run_setup(void);
72
73#else
74
75static inline void md_run_setup(void) {}
76
77#endif