550W Document
550W, a high-end OS
fs.h 文件参考
#include <common/types.h>
fs.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  super_block
 
struct  dir_entry
 
struct  fentry
 
struct  dirent64
 
struct  kstat
 

宏定义

#define DIR   0x040000
 
#define FILE   0x100000
 
#define SEEK_SET   0
 
#define SEEK_CUR   1
 
#define SEEK_END   2
 
#define STDIN   0
 
#define STDOUT   1
 
#define STDERR   2
 
#define STDMAX   3
 
#define stdin   STDIN
 
#define stdout   STDOUT
 
#define stderr   STDERR
 

类型定义

typedef struct super_block super_block_t
 
typedef struct dir_entry dir_entry_t
 
typedef struct fentry fentry_t
 
typedef struct dirent64 dirent64_t
 
typedef struct kstat kstat_t
 

函数

int fs_load_file (const char *name, uint8_t **bin, int *len)
 load elf file in root dir, 0 success, -1 fail 更多...
 
bool fs_check_file_existence (const char *name)
 
int fs_init ()
 
long sys_getcwd (char *buf, size_t size)
 
int sys_pipe2 (int *fd, mode_t flags)
 allocate pipe to fd[2]. 更多...
 
int sys_dup (int old)
 copy a fd and return the new one 更多...
 
int sys_dup3 (int old, int new, mode_t flags)
 copy a fd and return the new one 更多...
 
int sys_mkdirat (int dirfd, const char *path, mode_t mode)
 mk dir at patch, success 0 fail -1 更多...
 
int sys_chdir (char *path)
 change dir by patch, fail return -1 更多...
 
int sys_getdents64 (int fd, dirent64_t *dirent, size_t len)
 
int sys_openat (int dirfd, const char *filename, mode_t flags, mode_t mode)
 open a file with path/cwd+path/dirfd+path 更多...
 
int sys_close (int fd)
 
int sys_linkat (int old, const char *oldname, int newd, const char *newname, mode_t flags)
 
int sys_unlinkat (int dirfd, const char *path, mode_t flags)
 rm file directed by path, 0 success -1 fail 更多...
 
int sys_mount (const char *special, const char *dir, const char *type, mode_t flags, void *data)
 
int sys_umount2 (const char *special, mode_t flags)
 
ssize_t sys_read (int fd, char *buf, size_t count)
 read count bytes to buf of fd file 更多...
 
ssize_t sys_write (int fd, const char *buf, size_t count)
 
int sys_fstat (int fd, kstat_t *statbuf)
 
void * sys_mmap (void *addr, size_t length, int prot, int flags, int fd, off_t offset)
 
int sys_munmap (void *addr, size_t length)
 

变量

int fs_start_sec
 
int magic_number
 
int sb_sec_offset
 
int sb2_sec_offset
 
uint64_t iab_map_addr_offset
 
uint64_t sec_map_addr_offset
 
uint64_t iab_map_addr_size
 
uint64_t inode_addr_offset
 
uint64_t dir_addr_offset
 
uint64_t dir2_addr_offset
 
uint64_t dir3_addr_offset
 
uint64_t dir4_addr_offset
 
uint64_t data_addr_offset
 
uint64_t empty_block
 

宏定义说明

◆ DIR

#define DIR   0x040000

◆ FILE

#define FILE   0x100000

◆ SEEK_CUR

#define SEEK_CUR   1

◆ SEEK_END

#define SEEK_END   2

◆ SEEK_SET

#define SEEK_SET   0

◆ STDERR

#define STDERR   2

◆ stderr

#define stderr   STDERR

◆ STDIN

#define STDIN   0

◆ stdin

#define stdin   STDIN

◆ STDMAX

#define STDMAX   3

◆ STDOUT

#define STDOUT   1

◆ stdout

#define stdout   STDOUT

类型定义说明

◆ dir_entry_t

typedef struct dir_entry dir_entry_t

◆ dirent64_t

typedef struct dirent64 dirent64_t

◆ fentry_t

typedef struct fentry fentry_t

◆ kstat_t

typedef struct kstat kstat_t

◆ super_block_t

typedef struct super_block super_block_t

函数说明

◆ fs_check_file_existence()

bool fs_check_file_existence ( const char *  name)

◆ fs_init()

int fs_init ( )

◆ fs_load_file()

int fs_load_file ( const char *  name,
uint8_t **  bin,
int *  len 
)

load elf file in root dir, 0 success, -1 fail

参数
nameelf file should be loaded
返回
elf bit array

◆ sys_chdir()

int sys_chdir ( char *  path)

change dir by patch, fail return -1

参数
pathbuffer for dir path

◆ sys_close()

int sys_close ( int  fd)

◆ sys_dup()

int sys_dup ( int  old)

copy a fd and return the new one

参数
oldold fd

◆ sys_dup3()

int sys_dup3 ( int  old,
int  new,
mode_t  flags 
)

copy a fd and return the new one

参数
oldold fd
newnew fd

◆ sys_fstat()

int sys_fstat ( int  fd,
kstat_t statbuf 
)

◆ sys_getcwd()

long sys_getcwd ( char *  buf,
size_t  size 
)
参数
bufbuffer for cur_dir path
sizebytes of buf

◆ sys_getdents64()

int sys_getdents64 ( int  fd,
dirent64_t dirent,
size_t  len 
)

◆ sys_linkat()

int sys_linkat ( int  old,
const char *  oldname,
int  newd,
const char *  newname,
mode_t  flags 
)

◆ sys_mkdirat()

int sys_mkdirat ( int  dirfd,
const char *  path_0,
mode_t  mode 
)

mk dir at patch, success 0 fail -1

参数
dir_fdmkdir at this dir
flagAT_FDCWD means mkdir at cwd
pathpath if from '/', other just means dir name

◆ sys_mmap()

void* sys_mmap ( void *  addr,
size_t  length,
int  prot,
int  flags,
int  fd,
off_t  offset 
)

◆ sys_mount()

int sys_mount ( const char *  special,
const char *  dir,
const char *  type,
mode_t  flags,
void *  data 
)

◆ sys_munmap()

int sys_munmap ( void *  addr,
size_t  length 
)

◆ sys_openat()

int sys_openat ( int  dirfd,
const char *  filename,
mode_t  flags,
mode_t  mode 
)

open a file with path/cwd+path/dirfd+path

参数
fdfile descripter
bufbytes buf
countread len

◆ sys_pipe2()

int sys_pipe2 ( int *  fd,
mode_t  flags 
)

allocate pipe to fd[2].

参数
fdtarget fd array.
返回值
-1failed 0: succeed

◆ sys_read()

ssize_t sys_read ( int  fd,
char *  buf,
size_t  count 
)

read count bytes to buf of fd file

参数
fdfile descripter
bufbytes buf
countread len

◆ sys_umount2()

int sys_umount2 ( const char *  special,
mode_t  flags 
)

◆ sys_unlinkat()

int sys_unlinkat ( int  dirfd,
const char *  path_0,
mode_t  flags 
)

rm file directed by path, 0 success -1 fail

参数
dirfdfile descripter
pathdile path
count0 or AT_REMOVEDIR

◆ sys_write()

ssize_t sys_write ( int  fd,
const char *  buf,
size_t  count 
)

变量说明

◆ data_addr_offset

uint64_t data_addr_offset
extern

◆ dir2_addr_offset

uint64_t dir2_addr_offset
extern

◆ dir3_addr_offset

uint64_t dir3_addr_offset
extern

◆ dir4_addr_offset

uint64_t dir4_addr_offset
extern

◆ dir_addr_offset

uint64_t dir_addr_offset
extern

◆ empty_block

uint64_t empty_block
extern

◆ fs_start_sec

int fs_start_sec
extern

◆ iab_map_addr_offset

uint64_t iab_map_addr_offset
extern

◆ iab_map_addr_size

uint64_t iab_map_addr_size
extern

◆ inode_addr_offset

uint64_t inode_addr_offset
extern

◆ magic_number

int magic_number
extern

◆ sb2_sec_offset

int sb2_sec_offset
extern

◆ sb_sec_offset

int sb_sec_offset
extern

◆ sec_map_addr_offset

uint64_t sec_map_addr_offset
extern