0,0 → 1,101 |
/* |
* Copyright (c) 2007 Michal Konopa |
* Copyright (c) 2007 Martin Jelen |
* Copyright (c) 2007 Peter Majer |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* are met: |
* |
* - Redistributions of source code must retain the above copyright |
* notice, this list of conditions and the following disclaimer. |
* - Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* - The name of the author may not be used to endorse or promote products |
* derived from this software without specific prior written permission. |
* |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
|
/** @addtogroup libc |
* @{ |
*/ |
|
/** |
* @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; |
|
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 |
|
/** |
*@} |
/ |