#ifndef __OS_FS_H
#define __OS_FS_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <sys/types.h>
/*!
* \ingroup kernelu
* \defgroup fs File System
* @{
*/
#define ATTR_READ_ONLY 0x01
#define ATTR_HIDDEN 0x02
#define ATTR_SYSTEM 0x04
#define ATTR_VOLUME_ID 0x08
#define ATTR_DIRECTORY 0x10
#define ATTR_ARCHIVE 0x20
#define ATTR_DEVICE 0x1000
#define ATTR_LINK 0x2000
#ifndef KERNEL
struct request_t;
bool fsFullPath(const wchar_t* src, wchar_t* dst);
bool fsRequest(addr_t fd, struct request_t* req, size_t size);
addr_t fsOpen(const wchar_t* path);
bool fsClose(addr_t fd);
bool fsRead(addr_t fd, void* buffer, size_t* length);
bool fsWrite(addr_t fd, const void* buffer, size_t* length);
bool fsIoCtl(addr_t fd, dword code, void* params, size_t length);
bool fsSeek(addr_t fd, qword pos);
qword fsGetPosition(addr_t fd);
qword fsGetLength(addr_t fd);
#endif
//@}
#ifdef __cplusplus
}
#endif
#endif