SayoriOS 0.3.3

fileio.c
См. документацию.
1
10 #include "io/ports.h"
11 #include "mem/vmm.h"
12 #include "../../include/lib/fileio.h"
13 #include "../../include/fs/fsm.h"
14 #include "../../include/fs/nvfs.h"
15
16
24 bool is_file(const char* Path){
25 FSM_FILE file = nvfs_info(Path);
26 if (file.Ready != 1) return false;
27 if (file.Type != 0) return false;
28 return true;
29 }
30
31
39 bool is_dir(const char* Path){
40 FSM_FILE file = nvfs_info(Path);
41 if (file.Ready != 1) return false;
42 if (file.Type != 5) return false;
43 return true;
44 }
45
46
54 bool file_exists(const char* Path){
55 FSM_FILE file = nvfs_info(Path);
56 if (file.Ready != 1) return false;
57 return true;
58 }
59
67 size_t filesize(const char* Path){
68 FSM_FILE file = nvfs_info(Path);
69 if (file.Ready != 1) return 0;
70 if (file.Type != 0) return 0;
71 return file.Size;
72 }
73
83 size_t filemtime(const char* Path){
84 qemu_log("filemtime: %s", Path);
85 FSM_FILE file = nvfs_info(Path);
86 if (file.Ready != 1) return 0;
87 if (file.Type != 0) return 0;
88 size_t unix = 1234567;
89 return unix;
90 // qemu_log(" |--- Query: %x", &file.LastTime);
91 //size_t unix = fsm_DateConvertToUnix(file.LastTime);
92
93 //qemu_log(" |--- Return: %d", unix);
94 return unix;
95 }
96
97
105 bool is_readable(const char* Path){
106 FSM_FILE file = nvfs_info(Path);
107 if (file.Ready != 1) return false;
108 if (file.CHMOD & FSM_CHMOD_READ) {
109 return true;
110 }
111 return false;
112 }
113
114
122 bool is_writable(const char* Path){
123 FSM_FILE file = nvfs_info(Path);
124 if (file.Ready != 1) return false;
125 if (file.CHMOD & FSM_CHMOD_WRITE) {
126 return true;
127 }
128 return false;
129 }
130
131
139 bool is_executable(const char* Path){
140 FSM_FILE file = nvfs_info(Path);
141 if (file.Ready != 1) return false;
142 if (file.CHMOD & FSM_CHMOD_EXEC) {
143 return true;
144 }
145 return false;
146 }
147
148
156 uint32_t fileperms(const char* Path){
157 FSM_FILE file = nvfs_info(Path);
158 if (file.Ready != 1) return false;
159 uint32_t ret = 0;
160 if (file.CHMOD & FSM_CHMOD_READ) {
161 ret |= FSM_CHMOD_READ;
162 }
163 if (file.CHMOD & FSM_CHMOD_EXEC) {
164 ret |= FSM_CHMOD_EXEC;
165 }
166 if (file.CHMOD & FSM_CHMOD_WRITE) {
167 ret |= FSM_CHMOD_WRITE;
168 }
169 return (ret * 100) + (ret * 10) + ret;
170 }
171
172
180 bool touch(const char* Path){
181 FSM_FILE file = nvfs_info(Path);
182 return nvfs_create(Path, 0);
183 }
184
185
193 bool mkdir(const char* Path){
194 return nvfs_create(Path, 1);
195 }
196
204 bool unlink(const char* Path){
205 return nvfs_delete(Path, 0);
206 }
207
215 bool rmdir(const char* Path){
216 return nvfs_delete(Path, 1);
217 }
fileperms
uint32_t fileperms(const char *Path)
[FileIO] Возвращает информацию о правах доступа на сущность
Definition: fileio.c:156
mkdir
bool mkdir(const char *Path)
[FileIO] Создает папку
Definition: fileio.c:193
file_exists
bool file_exists(const char *Path)
[FileIO] Проверяет существует ли сущность
Definition: fileio.c:54
unlink
bool unlink(const char *Path)
[FileIO] Удаляет файл
Definition: fileio.c:204
filesize
size_t filesize(const char *Path)
[FileIO] Возвращает размер указанного файла
Definition: fileio.c:67
is_file
bool is_file(const char *Path)
[FileIO] Проверяет существует ли сущность и является ли она файлом
Definition: fileio.c:24
is_executable
bool is_executable(const char *Path)
[FileIO] Проверяет права выполнения у сущности
Definition: fileio.c:139
is_writable
bool is_writable(const char *Path)
[FileIO] Проверяет права записи у сущности
Definition: fileio.c:122
is_readable
bool is_readable(const char *Path)
[FileIO] Проверяет права чтения у сущности
Definition: fileio.c:105
rmdir
bool rmdir(const char *Path)
[FileIO] Удаляет папку
Definition: fileio.c:215
is_dir
bool is_dir(const char *Path)
[FileIO] Проверяет существует ли сущность и является ли она папкой
Definition: fileio.c:39
filemtime
size_t filemtime(const char *Path)
[FileIO] Возвращает время последнего изменения файла
Definition: fileio.c:83
touch
bool touch(const char *Path)
[FileIO] Создает файл
Definition: fileio.c:180