SYSFS: allow sysfs_create_link to create symlinks in the root of sysfs
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / init / do_mounts.h
blobe7f2e7fa066eb6715c0f54fb27649338b60f475a
1 #include <linux/config.h>
2 #include <linux/kernel.h>
3 #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>
11 void change_floppy(char *fmt, ...);
12 void mount_block_root(char *name, int flags);
13 void mount_root(void);
14 extern int root_mountflags;
15 extern char *root_device_name;
17 static inline int create_dev(char *name, dev_t dev)
19 sys_unlink(name);
20 return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
23 #if BITS_PER_LONG == 32
24 static inline u32 bstat(char *name)
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;
35 #else
36 static inline u32 bstat(char *name)
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;
45 #endif
47 #ifdef CONFIG_BLK_DEV_RAM
49 int __init rd_load_disk(int n);
50 int __init rd_load_image(char *from);
52 #else
54 static inline int rd_load_disk(int n) { return 0; }
55 static inline int rd_load_image(char *from) { return 0; }
57 #endif
59 #ifdef CONFIG_BLK_DEV_INITRD
61 int __init initrd_load(void);
63 #else
65 static inline int initrd_load(void) { return 0; }
67 #endif
69 #ifdef CONFIG_BLK_DEV_MD
71 void md_run_setup(void);
73 #else
75 static inline void md_run_setup(void) {}
77 #endif