2 * Copyright 2007, Ingo Weinhold, bonefish@cs.tu-berlin.de.
3 * Distributed under the terms of the MIT License.
5 #ifndef _FSSH_SYSCALLS_H
6 #define _FSSH_SYSCALLS_H
19 fssh_dev_t
_kern_mount(const char *path
, const char *device
,
20 const char *fsName
, uint32_t flags
, const char *args
,
21 fssh_size_t argsLength
);
22 fssh_status_t
_kern_unmount(const char *path
, uint32_t flags
);
23 fssh_status_t
_kern_read_fs_info(fssh_dev_t device
,
24 struct fssh_fs_info
*info
);
25 fssh_status_t
_kern_write_fs_info(fssh_dev_t device
,
26 const struct fssh_fs_info
*info
, int mask
);
27 fssh_status_t
_kern_sync(void);
28 fssh_status_t
_kern_entry_ref_to_path(fssh_dev_t device
, fssh_ino_t inode
,
29 const char *leaf
, char *userPath
, fssh_size_t pathLength
);
30 fssh_dev_t
_kern_next_device(int32_t *_cookie
);
31 int _kern_open_entry_ref(fssh_dev_t device
, fssh_ino_t inode
,
32 const char *name
, int openMode
, int perms
);
33 int _kern_open(int fd
, const char *path
, int openMode
, int perms
);
34 int _kern_open_dir_entry_ref(fssh_dev_t device
, fssh_ino_t inode
,
36 int _kern_open_dir(int fd
, const char *path
);
37 fssh_status_t
_kern_fcntl(int fd
, int op
, uint32_t argument
);
38 fssh_status_t
_kern_fsync(int fd
);
39 fssh_status_t
_kern_lock_node(int fd
);
40 fssh_status_t
_kern_unlock_node(int fd
);
41 fssh_status_t
_kern_create_dir_entry_ref(fssh_dev_t device
, fssh_ino_t inode
,
42 const char *name
, int perms
);
43 fssh_status_t
_kern_create_dir(int fd
, const char *path
, int perms
);
44 fssh_status_t
_kern_remove_dir(int fd
, const char *path
);
45 fssh_status_t
_kern_read_link(int fd
, const char *path
, char *buffer
,
46 fssh_size_t
*_bufferSize
);
47 fssh_status_t
_kern_create_symlink(int fd
, const char *path
,
48 const char *toPath
, int mode
);
49 fssh_status_t
_kern_create_link(const char *path
, const char *toPath
);
50 fssh_status_t
_kern_unlink(int fd
, const char *path
);
51 fssh_status_t
_kern_rename(int oldFD
, const char *oldPath
, int newFD
,
53 fssh_status_t
_kern_access(const char *path
, int mode
);
54 fssh_status_t
_kern_read_stat(int fd
, const char *path
, bool traverseLeafLink
,
55 struct fssh_stat
*stat
, fssh_size_t statSize
);
56 fssh_status_t
_kern_write_stat(int fd
, const char *path
,
57 bool traverseLeafLink
, const struct fssh_stat
*stat
,
58 fssh_size_t statSize
, int statMask
);
59 int _kern_open_attr_dir(int fd
, const char *path
);
60 int _kern_create_attr(int fd
, const char *name
, uint32_t type
,
62 int _kern_open_attr(int fd
, const char *name
, int openMode
);
63 fssh_status_t
_kern_remove_attr(int fd
, const char *name
);
64 fssh_status_t
_kern_rename_attr(int fromFile
, const char *fromName
,
65 int toFile
, const char *toName
);
66 int _kern_open_index_dir(fssh_dev_t device
);
67 fssh_status_t
_kern_create_index(fssh_dev_t device
, const char *name
,
68 uint32_t type
, uint32_t flags
);
69 fssh_status_t
_kern_read_index_stat(fssh_dev_t device
, const char *name
,
70 struct fssh_stat
*stat
);
71 fssh_status_t
_kern_remove_index(fssh_dev_t device
, const char *name
);
72 fssh_status_t
_kern_getcwd(char *buffer
, fssh_size_t size
);
73 fssh_status_t
_kern_setcwd(int fd
, const char *path
);
75 fssh_status_t
_kern_initialize_volume(const char* fileSystem
,
76 const char *partition
, const char *name
,
77 const char *parameters
);
79 extern int _kern_open_query(fssh_dev_t device
, const char* query
,
80 fssh_size_t queryLength
, uint32_t flags
, fssh_port_id port
,
84 fssh_ssize_t
_kern_read(int fd
, fssh_off_t pos
, void *buffer
,
86 fssh_ssize_t
_kern_readv(int fd
, fssh_off_t pos
, const fssh_iovec
*vecs
,
88 fssh_ssize_t
_kern_write(int fd
, fssh_off_t pos
, const void *buffer
,
90 fssh_ssize_t
_kern_writev(int fd
, fssh_off_t pos
, const fssh_iovec
*vecs
,
92 fssh_off_t
_kern_seek(int fd
, fssh_off_t pos
, int seekType
);
93 fssh_status_t
_kern_ioctl(int fd
, uint32_t op
, void *buffer
,
95 fssh_ssize_t
_kern_read_dir(int fd
, struct fssh_dirent
*buffer
,
96 fssh_size_t bufferSize
, uint32_t maxCount
);
97 fssh_status_t
_kern_rewind_dir(int fd
);
98 fssh_status_t
_kern_close(int fd
);
99 int _kern_dup(int fd
);
100 int _kern_dup2(int ofd
, int nfd
);
103 } // namespace FSShell
106 #endif // _FSSH_SYSCALLS_H