11da177e4SLinus Torvalds #include <linux/kernel.h> 2*bff61975SNeilBrown #include <linux/blkdev.h> 31da177e4SLinus Torvalds #include <linux/init.h> 41da177e4SLinus Torvalds #include <linux/syscalls.h> 51da177e4SLinus Torvalds #include <linux/unistd.h> 61da177e4SLinus Torvalds #include <linux/slab.h> 71da177e4SLinus Torvalds #include <linux/mount.h> 81da177e4SLinus Torvalds #include <linux/major.h> 91da177e4SLinus Torvalds #include <linux/root_dev.h> 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds void change_floppy(char *fmt, ...); 121da177e4SLinus Torvalds void mount_block_root(char *name, int flags); 131da177e4SLinus Torvalds void mount_root(void); 141da177e4SLinus Torvalds extern int root_mountflags; 151da177e4SLinus Torvalds 16bdaf8529SGreg Kroah-Hartman static inline int create_dev(char *name, dev_t dev) 171da177e4SLinus Torvalds { 181da177e4SLinus Torvalds sys_unlink(name); 191da177e4SLinus Torvalds return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev)); 201da177e4SLinus Torvalds } 211da177e4SLinus Torvalds 221da177e4SLinus Torvalds #if BITS_PER_LONG == 32 231da177e4SLinus Torvalds static inline u32 bstat(char *name) 241da177e4SLinus Torvalds { 251da177e4SLinus Torvalds struct stat64 stat; 261da177e4SLinus Torvalds if (sys_stat64(name, &stat) != 0) 271da177e4SLinus Torvalds return 0; 281da177e4SLinus Torvalds if (!S_ISBLK(stat.st_mode)) 291da177e4SLinus Torvalds return 0; 301da177e4SLinus Torvalds if (stat.st_rdev != (u32)stat.st_rdev) 311da177e4SLinus Torvalds return 0; 321da177e4SLinus Torvalds return stat.st_rdev; 331da177e4SLinus Torvalds } 341da177e4SLinus Torvalds #else 351da177e4SLinus Torvalds static inline u32 bstat(char *name) 361da177e4SLinus Torvalds { 371da177e4SLinus Torvalds struct stat stat; 381da177e4SLinus Torvalds if (sys_newstat(name, &stat) != 0) 391da177e4SLinus Torvalds return 0; 401da177e4SLinus Torvalds if (!S_ISBLK(stat.st_mode)) 411da177e4SLinus Torvalds return 0; 421da177e4SLinus Torvalds return stat.st_rdev; 431da177e4SLinus Torvalds } 441da177e4SLinus Torvalds #endif 451da177e4SLinus Torvalds 461da177e4SLinus Torvalds #ifdef CONFIG_BLK_DEV_RAM 471da177e4SLinus Torvalds 481da177e4SLinus Torvalds int __init rd_load_disk(int n); 491da177e4SLinus Torvalds int __init rd_load_image(char *from); 501da177e4SLinus Torvalds 511da177e4SLinus Torvalds #else 521da177e4SLinus Torvalds 531da177e4SLinus Torvalds static inline int rd_load_disk(int n) { return 0; } 541da177e4SLinus Torvalds static inline int rd_load_image(char *from) { return 0; } 551da177e4SLinus Torvalds 561da177e4SLinus Torvalds #endif 571da177e4SLinus Torvalds 581da177e4SLinus Torvalds #ifdef CONFIG_BLK_DEV_INITRD 591da177e4SLinus Torvalds 601da177e4SLinus Torvalds int __init initrd_load(void); 611da177e4SLinus Torvalds 621da177e4SLinus Torvalds #else 631da177e4SLinus Torvalds 641da177e4SLinus Torvalds static inline int initrd_load(void) { return 0; } 651da177e4SLinus Torvalds 661da177e4SLinus Torvalds #endif 671da177e4SLinus Torvalds 681da177e4SLinus Torvalds #ifdef CONFIG_BLK_DEV_MD 691da177e4SLinus Torvalds 701da177e4SLinus Torvalds void md_run_setup(void); 711da177e4SLinus Torvalds 721da177e4SLinus Torvalds #else 731da177e4SLinus Torvalds 741da177e4SLinus Torvalds static inline void md_run_setup(void) {} 751da177e4SLinus Torvalds 761da177e4SLinus Torvalds #endif 77