xref: /linux/init/do_mounts.h (revision bff61975b3d6c18ee31457cc5b4d73042f44915f)
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