summaryrefslogtreecommitdiffstats
path: root/libc/kernel/common/linux/fs.h
blob: 8d375b5a9fa6012df17a64c9ea358ebec1a04f75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_FS_H
#define _LINUX_FS_H

#include <linux/limits.h>
#include <linux/ioctl.h>

#undef NR_OPEN
#define NR_OPEN (1024*1024)  
#define INR_OPEN 1024  

#define BLOCK_SIZE_BITS 10
#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)

#define SEEK_SET 0  
#define SEEK_CUR 1  
#define SEEK_END 2  

struct files_stat_struct {
 int nr_files;
 int nr_free_files;
 int max_files;
};

struct inodes_stat_t {
 int nr_inodes;
 int nr_unused;
 int dummy[5];
};

#define NR_FILE 8192  

#define MAY_EXEC 1
#define MAY_WRITE 2
#define MAY_READ 4
#define MAY_APPEND 8

#define FMODE_READ 1
#define FMODE_WRITE 2

#define FMODE_LSEEK 4
#define FMODE_PREAD 8
#define FMODE_PWRITE FMODE_PREAD  

#define FMODE_EXEC 16

#define RW_MASK 1
#define RWA_MASK 2
#define READ 0
#define WRITE 1
#define READA 2  
#define SWRITE 3  
#define SPECIAL 4  
#define READ_SYNC (READ | (1 << BIO_RW_SYNC))
#define WRITE_SYNC (WRITE | (1 << BIO_RW_SYNC))
#define WRITE_BARRIER ((1 << BIO_RW) | (1 << BIO_RW_BARRIER))

#define SEL_IN 1
#define SEL_OUT 2
#define SEL_EX 4

#define FS_REQUIRES_DEV 1 
#define FS_BINARY_MOUNTDATA 2
#define FS_REVAL_DOT 16384  
#define FS_ODD_RENAME 32768  

#define MS_RDONLY 1  
#define MS_NOSUID 2  
#define MS_NODEV 4  
#define MS_NOEXEC 8  
#define MS_SYNCHRONOUS 16  
#define MS_REMOUNT 32  
#define MS_MANDLOCK 64  
#define MS_DIRSYNC 128  
#define MS_NOATIME 1024  
#define MS_NODIRATIME 2048  
#define MS_BIND 4096
#define MS_MOVE 8192
#define MS_REC 16384
#define MS_VERBOSE 32768  
#define MS_SILENT 32768
#define MS_POSIXACL (1<<16)  
#define MS_UNBINDABLE (1<<17)  
#define MS_PRIVATE (1<<18)  
#define MS_SLAVE (1<<19)  
#define MS_SHARED (1<<20)  
#define MS_ACTIVE (1<<30)
#define MS_NOUSER (1<<31)

#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK)

#define MS_MGC_VAL 0xC0ED0000
#define MS_MGC_MSK 0xffff0000

#define S_SYNC 1  
#define S_NOATIME 2  
#define S_APPEND 4  
#define S_IMMUTABLE 8  
#define S_DEAD 16  
#define S_NOQUOTA 32  
#define S_DIRSYNC 64  
#define S_NOCMTIME 128  
#define S_SWAPFILE 256  
#define S_PRIVATE 512  

#define __IS_FLG(inode,flg) ((inode)->i_sb->s_flags & (flg))

#define IS_RDONLY(inode) ((inode)->i_sb->s_flags & MS_RDONLY)
#define IS_SYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS) ||   ((inode)->i_flags & S_SYNC))
#define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) ||   ((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
#define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)

#define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
#define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)

#define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
#define IS_NOCMTIME(inode) ((inode)->i_flags & S_NOCMTIME)
#define IS_SWAPFILE(inode) ((inode)->i_flags & S_SWAPFILE)
#define IS_PRIVATE(inode) ((inode)->i_flags & S_PRIVATE)

#define BLKROSET _IO(0x12,93)  
#define BLKROGET _IO(0x12,94)  
#define BLKRRPART _IO(0x12,95)  
#define BLKGETSIZE _IO(0x12,96)  
#define BLKFLSBUF _IO(0x12,97)  
#define BLKRASET _IO(0x12,98)  
#define BLKRAGET _IO(0x12,99)  
#define BLKFRASET _IO(0x12,100) 
#define BLKFRAGET _IO(0x12,101) 
#define BLKSECTSET _IO(0x12,102) 
#define BLKSECTGET _IO(0x12,103) 
#define BLKSSZGET _IO(0x12,104) 

#define BLKBSZGET _IOR(0x12,112,size_t)
#define BLKBSZSET _IOW(0x12,113,size_t)
#define BLKGETSIZE64 _IOR(0x12,114,size_t)  
#define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup)
#define BLKTRACESTART _IO(0x12,116)
#define BLKTRACESTOP _IO(0x12,117)
#define BLKTRACETEARDOWN _IO(0x12,118)

#define BMAP_IOCTL 1  
#define FIBMAP _IO(0x00,1)  
#define FIGETBSZ _IO(0x00,2)  

#define SYNC_FILE_RANGE_WAIT_BEFORE 1
#define SYNC_FILE_RANGE_WRITE 2
#define SYNC_FILE_RANGE_WAIT_AFTER 4

#endif