XenevaOS
Loading...
Searching...
No Matches
_kefile.h
Go to the documentation of this file.
1
32#ifndef __KE_FILE_H__
33#define __KE_FILE_H__
34
35#include <_xeneva.h>
36#include <stdint.h>
37
38#ifdef __cplusplus
40#endif
41
42 /* file open modes*/
43#define FILE_OPEN_READ_ONLY (1 << 1)
44#define FILE_OPEN_WRITE (1 << 2)
45#define FILE_OPEN_CREAT (1 << 3)
46
47#define FILE_DIRECTORY (1 << 1)
48#define FILE_GENERAL (1 << 2)
49#define FILE_DEVICE (1 << 3)
50#define FILE_DELETED (1 << 4)
51#define FILE_INVALID (1 << 5)
52#define FILE_FILE_SYSTEM (1 << 6)
53#define FILE_PIPE (1 << 7)
54
55#define XENEVA_STDIN 0
56#define XENEVA_STDOUT 1
57#define XENEVA_STDERR 2
58
59/* number of supported storage device*/
60#define XE_MAX_STORAGE_DEVICE 26
61/* number of partitions in each storage device */
62#define XE_MAX_PARTITION 128
63
64#ifdef ARCH_X64
65#pragma pack(push, 1)
66#endif
67 typedef struct _GUID {
71 uint8_t Data4[8];
73#ifdef ARCH_X64
74#pragma pack(pop)
75#endif
76
77#ifdef ARCH_X64
78#pragma pack(push, 1)
79#endif
88#ifdef ARCH_X64
89#pragma pack(pop)
90#endif
91
92#ifdef ARCH_X64
93#pragma pack(push, 1)
94#endif
101#ifdef ARCH_X64
102#pragma pack(pop)
103#endif
104
105 typedef struct _XEFileStatus_ {
106 uint8_t filemode; //mode of the file
107 size_t size; //size in bytes
110 uint32_t user_id; //for future use
111 uint32_t group_id; //for future use
115
116 //#pragma pack(push,1)
128 //#pragma pack(pop)
129
130 //#pragma pack(push,1)
139 //#pragma pack(pop)
140
141 XE_LIB int _KeOpenFile(char* pathname, int mode);
142 XE_LIB size_t _KeReadFile(int fd, void* buffer, size_t length);
143 XE_LIB size_t _KeWriteFile(int fd, void* buffer, size_t length);
144 XE_LIB int _KeCreateDir(char* filename);
145 XE_LIB int _KeRemoveFile(char* pathname);
146 XE_LIB int _KeCloseFile(int fd);
147 XE_LIB int _KeFileIoControl(int fd, int code, void* arg);
148 XE_LIB int _KeFileStat(int fd, void* buf);
149 XE_LIB int _KeOpenDir(char* filename);
150 XE_LIB int _KeReadDir(int dirfd, void* dirent);
151 XE_LIB int _KeFileSetOffset(int fd, size_t offset);
152 XE_LIB int _KeCreatePipe(char* name, size_t sz);
153 XE_LIB int _KeGetStorageDiskInfo(uint8_t diskID, void* buffer);
154 XE_LIB int _KeGetStoragePartitionInfo(uint8_t diskID, uint8_t partitionID, void* buffer);
155#ifdef __cplusplus
156}
157#endif
158
159#endif
XE_LIB int _KeFileIoControl(int fd, int code, void *arg)
XE_LIB int _KeGetStoragePartitionInfo(uint8_t diskID, uint8_t partitionID, void *buffer)
XE_LIB size_t _KeReadFile(int fd, void *buffer, size_t length)
XE_LIB int _KeFileSetOffset(int fd, size_t offset)
XE_LIB int _KeOpenFile(char *pathname, int mode)
XE_LIB int _KeFileStat(int fd, void *buf)
struct _XEDirectoryEnty_ XEDirectoryEntry
struct _XEFileStatus_ XEFileStatus
XE_LIB int _KeRemoveFile(char *pathname)
struct _disk_info_ XEVDiskInfo
struct _disk_partition_info_ XEVDiskPartitionInfo
XE_LIB int _KeCreatePipe(char *name, size_t sz)
XE_LIB size_t _KeWriteFile(int fd, void *buffer, size_t length)
XE_LIB int _KeGetStorageDiskInfo(uint8_t diskID, void *buffer)
XE_LIB int _KeCloseFile(int fd)
XE_LIB int _KeOpenDir(char *filename)
struct _GUID GUID
XE_LIB int _KeCreateDir(char *filename)
struct _XEFileControl_ XEFileIOControl
XE_LIB int _KeReadDir(int dirfd, void *dirent)
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
Definition _FsGUIDs.h:36
uint16_t Data2
Definition _FsGUIDs.h:38
uint32_t Data1
Definition _FsGUIDs.h:37
uint8_t Data4[8]
Definition _FsGUIDs.h:40
uint16_t Data3
Definition _FsGUIDs.h:39
Definition _kefile.h:131
char filename[32]
Definition _kefile.h:132
int time
Definition _kefile.h:136
int date
Definition _kefile.h:135
int index
Definition _kefile.h:133
uint8_t flags
Definition _kefile.h:137
int size
Definition _kefile.h:134
Definition _kefile.h:117
uint8_t uchar_2
Definition _kefile.h:120
int syscall_magic
Definition _kefile.h:118
uint16_t ushort_2
Definition _kefile.h:122
uint64_t ulong_2
Definition _kefile.h:126
uint32_t uint_2
Definition _kefile.h:124
uint64_t ulong_1
Definition _kefile.h:125
uint16_t ushort_1
Definition _kefile.h:121
uint32_t uint_1
Definition _kefile.h:123
uint8_t uchar_1
Definition _kefile.h:119
Definition _kefile.h:105
uint32_t group_id
Definition _kefile.h:111
uint32_t num_links
Definition _kefile.h:112
uint32_t current_block
Definition _kefile.h:108
uint8_t filemode
Definition _kefile.h:106
uint32_t start_block
Definition _kefile.h:109
size_t size
Definition _kefile.h:107
uint8_t eof
Definition _kefile.h:113
uint32_t user_id
Definition _kefile.h:110
Definition _kefile.h:80
uint64_t maxBlocks
Definition _kefile.h:85
int num_partition
Definition _kefile.h:84
uint64_t blocksSize
Definition _kefile.h:86
uint8_t vDiskID
Definition _kefile.h:83
char serialNumber[20]
Definition _kefile.h:82
char diskname[40]
Definition _kefile.h:81
Definition _kefile.h:95
char mountedName[32]
Definition _kefile.h:96
GUID partitionGUID
Definition _kefile.h:97
uint64_t startingLBA
Definition _kefile.h:99
GUID uniqueGUID
Definition _kefile.h:98