Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/init/do_mounts.h
10817 views
1
#include <linux/kernel.h>
2
#include <linux/blkdev.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>
10
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
16
static inline int create_dev(char *name, dev_t dev)
17
{
18
sys_unlink(name);
19
return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
20
}
21
22
#if BITS_PER_LONG == 32
23
static inline u32 bstat(char *name)
24
{
25
struct stat64 stat;
26
if (sys_stat64(name, &stat) != 0)
27
return 0;
28
if (!S_ISBLK(stat.st_mode))
29
return 0;
30
if (stat.st_rdev != (u32)stat.st_rdev)
31
return 0;
32
return stat.st_rdev;
33
}
34
#else
35
static inline u32 bstat(char *name)
36
{
37
struct stat stat;
38
if (sys_newstat(name, &stat) != 0)
39
return 0;
40
if (!S_ISBLK(stat.st_mode))
41
return 0;
42
return stat.st_rdev;
43
}
44
#endif
45
46
#ifdef CONFIG_BLK_DEV_RAM
47
48
int __init rd_load_disk(int n);
49
int __init rd_load_image(char *from);
50
51
#else
52
53
static inline int rd_load_disk(int n) { return 0; }
54
static inline int rd_load_image(char *from) { return 0; }
55
56
#endif
57
58
#ifdef CONFIG_BLK_DEV_INITRD
59
60
int __init initrd_load(void);
61
62
#else
63
64
static inline int initrd_load(void) { return 0; }
65
66
#endif
67
68
#ifdef CONFIG_BLK_DEV_MD
69
70
void md_run_setup(void);
71
72
#else
73
74
static inline void md_run_setup(void) {}
75
76
#endif
77
78