/** @addtogroup FileLib
* @{
*/
/**
* @file file.h
* @brief The main header for the user library for working with the file system
*/
#ifndef _FILE_H
#define _FILE_H
#include "../../../fs/const.h"
#include "../../../fs/type.h"
#include "../../../fs/stat.h"
#include "../../../fs/dir.h"
#include "../../../share/message.h"
#define F_OK 0x00
#define F_FILE_NOT_FOUND 0x01
#define F_FILE_NOT_OPEN 0x02
#define F_READ_ERROR 0x10
#define F_READ_OVERFLOW 0x11
#define F_SYSTEM_ERROR 0xf0
#define F_IPC_FAILURE 0xf1
#define F_MMAP_FAILURE 0xf2
#define F_COMM_FAILURE 0xf3
#define F_ERRTYPE_MASK 0xf0
#define F_MODE_READ 0x01
#define F_MODE_WRITE 0x02
#define F_MODE_READ_WRITE F_MODE_READ | F_MODE_WRITE
#define F_MODE_APPEND 0x04
/**
*
*/
typedef struct {
char name[30];
unsigned short inode_num;
} dir_item_t;
/**
*
*/
typedef struct {
size_t size;
dir_item_t base_info;
void *share;
message_params_t *params;
unsigned int handle;
stat_t stat;
} file_t;
static int f_err;
/**
* a
*/
dir_item_t * ls(unsigned int * length);
/**
*
*/
int chdir(char * new_dir);
/**
*
*/
file_t * fopen (char * name, int mode);
/**
*
*/
int fstat(file_t * file);
/**
*
*/
int fread(file_t * file, void* buffer, unsigned int size);
/**
*
*/
int fseek(file_t * file, int offset, int whence);
/**
*
*/
int fclose(file_t * file);
#endif
/**
* }
*/