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
43 /* file open modes*/
44#define FILE_OPEN_READ_ONLY (1<<1)
45#define FILE_OPEN_WRITE (1<<2)
46#define FILE_OPEN_CREAT (1<<3)
47
48#define FILE_DIRECTORY (1<<1)
49#define FILE_GENERAL (1<<2)
50#define FILE_DEVICE (1<<3)
51#define FILE_DELETED (1<<4)
52#define FILE_INVALID (1<<5)
53#define FILE_FILE_SYSTEM (1<<6)
54#define FILE_PIPE (1<<7)
55
56#define XENEVA_STDIN 0
57#define XENEVA_STDOUT 1
58#define XENEVA_STDERR 2
59
60/* number of supported storage device*/
61#define XE_MAX_STORAGE_DEVICE 26
62/* number of partitions in each storage device */
63#define XE_MAX_PARTITION 128
64
65#pragma pack (push,1)
66typedef struct _GUID {
70 uint8_t Data4[8];
72#pragma pack(pop)
73
74
75#pragma pack(push,1)
84#pragma pack(pop)
85
86#pragma pack(push,1)
93#pragma pack(pop)
94
95 typedef struct _XEFileStatus_ {
96 uint8_t filemode; //mode of the file
97 size_t size; //size in bytes
100 uint32_t user_id; //for future use
101 uint32_t group_id; //for future use
105
106
107//#pragma pack(push,1)
119//#pragma pack(pop)
120
121#pragma pack(push,1)
130#pragma pack(pop)
131
132 XE_LIB int _KeOpenFile(char* pathname, int mode);
133 XE_LIB size_t _KeReadFile(int fd, void* buffer, size_t length);
134 XE_LIB size_t _KeWriteFile(int fd, void* buffer, size_t length);
135 XE_LIB int _KeCreateDir(char* filename);
136 XE_LIB int _KeRemoveFile(char* pathname);
137 XE_LIB int _KeCloseFile(int fd);
138 XE_LIB int _KeFileIoControl(int fd, int code, void* arg);
139 XE_LIB int _KeFileStat(int fd, void* buf);
140 XE_LIB int _KeOpenDir(char* filename);
141 XE_LIB int _KeReadDir(int dirfd, void* dirent);
142 XE_LIB int _KeFileSetOffset(int fd, size_t offset);
143 XE_LIB int _KeCreatePipe(char* name, size_t sz);
144 XE_LIB int _KeGetStorageDiskInfo(uint8_t diskID, void* buffer);
145 XE_LIB int _KeGetStoragePartitionInfo(uint8_t diskID, uint8_t partitionID, void* buffer);
146#ifdef __cplusplus
147}
148#endif
149
150#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:122
char filename[32]
Definition _kefile.h:123
int time
Definition _kefile.h:127
int date
Definition _kefile.h:126
int index
Definition _kefile.h:124
uint8_t flags
Definition _kefile.h:128
int size
Definition _kefile.h:125
Definition _kefile.h:108
uint8_t uchar_2
Definition _kefile.h:111
int syscall_magic
Definition _kefile.h:109
uint16_t ushort_2
Definition _kefile.h:113
uint64_t ulong_2
Definition _kefile.h:117
uint32_t uint_2
Definition _kefile.h:115
uint64_t ulong_1
Definition _kefile.h:116
uint16_t ushort_1
Definition _kefile.h:112
uint32_t uint_1
Definition _kefile.h:114
uint8_t uchar_1
Definition _kefile.h:110
Definition _kefile.h:95
uint32_t group_id
Definition _kefile.h:101
uint32_t num_links
Definition _kefile.h:102
uint32_t current_block
Definition _kefile.h:98
uint8_t filemode
Definition _kefile.h:96
uint32_t start_block
Definition _kefile.h:99
size_t size
Definition _kefile.h:97
uint8_t eof
Definition _kefile.h:103
uint32_t user_id
Definition _kefile.h:100
Definition _kefile.h:76
uint64_t maxBlocks
Definition _kefile.h:81
int num_partition
Definition _kefile.h:80
uint64_t blocksSize
Definition _kefile.h:82
uint8_t vDiskID
Definition _kefile.h:79
char serialNumber[20]
Definition _kefile.h:78
char diskname[40]
Definition _kefile.h:77
Definition _kefile.h:87
char mountedName[32]
Definition _kefile.h:88
GUID partitionGUID
Definition _kefile.h:89
uint64_t startingLBA
Definition _kefile.h:91
GUID uniqueGUID
Definition _kefile.h:90