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 }
uint32_t fileperms(const char *Path)
[FileIO] Возвращает информацию о правах доступа на сущность
Definition: fileio.c:156
bool mkdir(const char *Path)
[FileIO] Создает папку
Definition: fileio.c:193
bool file_exists(const char *Path)
[FileIO] Проверяет существует ли сущность
Definition: fileio.c:54
bool unlink(const char *Path)
[FileIO] Удаляет файл
Definition: fileio.c:204
size_t filesize(const char *Path)
[FileIO] Возвращает размер указанного файла
Definition: fileio.c:67
bool is_file(const char *Path)
[FileIO] Проверяет существует ли сущность и является ли она файлом
Definition: fileio.c:24
bool is_executable(const char *Path)
[FileIO] Проверяет права выполнения у сущности
Definition: fileio.c:139
bool is_writable(const char *Path)
[FileIO] Проверяет права записи у сущности
Definition: fileio.c:122
bool is_readable(const char *Path)
[FileIO] Проверяет права чтения у сущности
Definition: fileio.c:105
bool rmdir(const char *Path)
[FileIO] Удаляет папку
Definition: fileio.c:215
bool is_dir(const char *Path)
[FileIO] Проверяет существует ли сущность и является ли она папкой
Definition: fileio.c:39
size_t filemtime(const char *Path)
[FileIO] Возвращает время последнего изменения файла
Definition: fileio.c:83
bool touch(const char *Path)
[FileIO] Создает файл
Definition: fileio.c:180