do_mounts.h 2.4 KB
Newer Older
1 2 3 4 5 6 7 8
#define __KERNEL_SYSCALLS__
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/devfs_fs_kernel.h>
#include <linux/init.h>
#include <linux/unistd.h>
#include <linux/slab.h>
#include <linux/mount.h>
9
#include <linux/major.h>
10
#include <linux/root_dev.h>
11

12
asmlinkage long sys_unlink(const char *name);
13
asmlinkage long sys_mknod(const char *name, int mode, unsigned dev);
14 15
asmlinkage long sys_newstat(char * filename, struct stat * statbuf);
asmlinkage long sys_ioctl(int fd, int cmd, unsigned long arg);
16 17 18 19 20
asmlinkage long sys_mkdir(const char *name, int mode);
asmlinkage long sys_rmdir(const char *name);
asmlinkage long sys_chdir(const char *name);
asmlinkage long sys_fchdir(int fd);
asmlinkage long sys_chroot(const char *name);
21
asmlinkage long sys_mount(char *dev_name, char *dir_name, char *type,
22
				 unsigned long flags, void *data);
23 24 25
asmlinkage long sys_umount(char *name, int flags);

dev_t name_to_dev_t(char *name);
26 27 28 29
void  change_floppy(char *fmt, ...);
void  mount_block_root(char *name, int flags);
void  mount_root(void);
extern int root_mountflags;
30
extern char *root_device_name;
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

#ifdef CONFIG_DEVFS_FS

void mount_devfs(void);
void umount_devfs(char *path);
int  create_dev(char *name, dev_t dev, char *devfs_name);

#else

static inline void mount_devfs(void) {}
static inline void umount_devfs(const char *path) {}

static inline int create_dev(char *name, dev_t dev, char *devfs_name)
{
	sys_unlink(name);
46
	return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
47 48 49
}

#endif
50

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
#if BITS_PER_LONG == 32
asmlinkage long sys_stat64(char *name, struct stat64 *stat);
static inline u32 bstat(char *name)
{
	struct stat64 stat;
	if (sys_stat64(name, &stat) != 0)
		return 0;
	if (!S_ISBLK(stat.st_mode))
		return 0;
	if (stat.st_rdev != (u32)stat.st_rdev)
		return 0;
	return stat.st_rdev;
}
#else
static inline u32 bstat(char *name)
{
	struct stat stat;
	if (sys_newstat(name, &stat) != 0)
		return 0;
	if (!S_ISBLK(stat.st_mode))
		return 0;
	return stat.st_rdev;
}
#endif

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
#ifdef CONFIG_BLK_DEV_RAM

int __init rd_load_disk(int n);
int __init rd_load_image(char *from);

#else

static inline int rd_load_disk(int n) { return 0; }
static inline int rd_load_image(char *from) { return 0; }

#endif

#ifdef CONFIG_BLK_DEV_INITRD

int __init initrd_load(void);

#else

static inline int initrd_load(void) { return 0; }

#endif

98 99 100 101 102 103 104 105 106
#ifdef CONFIG_BLK_DEV_MD

void md_run_setup(void);

#else

static inline void md_run_setup(void) {}

#endif