hollyhock
Loading...
Searching...
No Matches
file.hpp
Go to the documentation of this file.
1
59#pragma once
60#include <stdint.h>
61
67const int FILE_ENOMEM = -1;
68const int FILE_EINVAL = -2;
69const int FILE_EDEVFAIL = -3;
70const int FILE_EMOUNTED = -4;
71const int FILE_EACCES = -5;
72const int FILE_EBADFSID = -6;
73const int FILE_ENOVOLUME = -7;
74const int FILE_ENOPATH = -8;
75const int FILE_EEXIST = -9;
76const int FILE_ENAMETOOLONG = -10;
77const int FILE_EOUTOFBOUND = -11;
78const int FILE_EUNFORMAT = -12;
79const int FILE_ENOSPC = -13;
80const int FILE_ENOENT = -14;
81const int FILE_EISDIRECTORY = -15;
82const int FILE_ESHARE = -16;
83const int FILE_EMFILE = -17;
84const int FILE_EBADF = -18;
85const int FILE_EEOF = -19;
86const int FILE_ENOTEMPTY = -20;
87const int FILE_ECLUSTERSIZEMISMATCH = -40;
88const int FILE_ESYSTEM = -99;
90
97const int FILE_SEEK_SET = 0;
99const int FILE_SEEK_CUR = 1;
101const int FILE_SEEK_END = 2;
103
111const int FILE_OPEN_READ = 1 << 0;
113const int FILE_OPEN_WRITE = 1 << 1;
115const int FILE_OPEN_CREATE = 1 << 2;
117const int FILE_OPEN_APPEND = 1 << 4;
119
126uint16_t constexpr File_StatDateYear(uint16_t date) {
127 return ((date >> 9) & 0b1111111) + 1980;
128}
129
136uint16_t constexpr File_StatDateMonth(uint16_t date) {
137 return (date >> 5) & 0b1111;
138}
139
146uint16_t constexpr File_StatDateDay(uint16_t date) {
147 return date & 0b11111;
148}
149
156uint16_t constexpr File_StatTimeHour(uint16_t time) {
157 return (time >> 11) & 0b11111;
158}
159
166uint16_t constexpr File_StatTimeMinute(uint16_t time) {
167 return (time >> 5) & 0b111111;
168}
169
178uint16_t constexpr File_StatTimeSecond(uint16_t time) {
179 return (time & 0b11111) * 2;
180}
181
248struct File_Stat {
249 uint32_t unknown1;
250
254 uint32_t fileSize;
255
260 uint16_t creationDate;
261
266 uint16_t creationTime;
267
273
279
280 uint16_t unknown2;
281
287};
288
294 uint8_t unknown0[4];
295
297 enum : uint16_t {
298 EntryTypeFile = 0x1,
299 EntryTypeDirectory = 0x5
301
302 uint8_t unknown1[2];
303
308 uint32_t size;
309
310 uint8_t unknown2[8];
311};
312
319extern "C"
320int File_Close(int fd);
321
330extern "C"
331int File_FindClose(int findHandle);
332
352extern "C"
353int File_FindFirst(const wchar_t *path, int *findHandle, wchar_t *name, struct File_FindInfo *findInfoBuf);
354
364extern "C"
365int File_FindNext(int findHandle, wchar_t *name, struct File_FindInfo *findInfoBuf);
366
374extern "C"
375int File_Fstat(int fd, struct File_Stat *buf);
376
388extern "C"
389int File_GetAddr(int fd, int offset, const void **addr);
390
400extern "C"
401int File_Lseek(int fd, int offset, int whence);
402
409extern "C"
410int File_Mkdir(const char *path);
411
422extern "C"
423int File_Open(const char *path, int flags);
424
437extern "C"
438int File_Read(int fd, void *buf, int count);
439
446extern "C"
447int File_Remove(const char *path);
448
456extern "C"
457int File_Rename(const char *oldPath, const char *newPath);
458
466extern "C"
467int File_Stat(const char *path, struct File_Stat *buf);
468
478extern "C"
479int File_Write(int fd, const void *buf, int count);
int File_Open(const char *path, int flags)
uint16_t constexpr File_StatTimeHour(uint16_t time)
Definition file.hpp:156
uint16_t constexpr File_StatDateMonth(uint16_t date)
Definition file.hpp:136
int File_Lseek(int fd, int offset, int whence)
uint16_t constexpr File_StatTimeSecond(uint16_t time)
Definition file.hpp:178
int File_Read(int fd, void *buf, int count)
int File_Fstat(int fd, struct File_Stat *buf)
int File_Rename(const char *oldPath, const char *newPath)
int File_Write(int fd, const void *buf, int count)
int File_Close(int fd)
int File_FindNext(int findHandle, wchar_t *name, struct File_FindInfo *findInfoBuf)
uint16_t constexpr File_StatTimeMinute(uint16_t time)
Definition file.hpp:166
int File_Mkdir(const char *path)
uint16_t constexpr File_StatDateDay(uint16_t date)
Definition file.hpp:146
uint16_t constexpr File_StatDateYear(uint16_t date)
Definition file.hpp:126
int File_FindFirst(const wchar_t *path, int *findHandle, wchar_t *name, struct File_FindInfo *findInfoBuf)
int File_FindClose(int findHandle)
int File_Remove(const char *path)
int File_GetAddr(int fd, int offset, const void **addr)
const int FILE_SEEK_SET
Set the file offset to offset.
Definition file.hpp:97
const int FILE_SEEK_CUR
Set the file offset to the current position, plus offset bytes.
Definition file.hpp:99
const int FILE_SEEK_END
Set the file offset to the end of the file, plus offset bytes.
Definition file.hpp:101
const int FILE_OPEN_READ
Open the file as readable.
Definition file.hpp:111
const int FILE_OPEN_WRITE
Open the file as writable.
Definition file.hpp:113
const int FILE_OPEN_CREATE
Create the file, if it does not already exist.
Definition file.hpp:115
const int FILE_OPEN_APPEND
Opens the file with the file offset set to the end of the file.
Definition file.hpp:117
Definition file.hpp:293
enum File_FindInfo::@0 type
The type of entry which was located.
uint32_t size
Definition file.hpp:308
Definition file.hpp:248
uint16_t lastModifiedTime
Definition file.hpp:278
uint16_t lastModifiedDate
Definition file.hpp:272
uint16_t lastAccessedDate
Definition file.hpp:286
uint32_t fileSize
Definition file.hpp:254
uint16_t creationTime
Definition file.hpp:266
uint16_t creationDate
Definition file.hpp:260