source: soft/giet_vm/giet_fat32/fat32_shared.h @ 807

Last change on this file since 807 was 807, checked in by alain, 8 years ago

Fix a bug in the O_TRUNC flag used by the giet_fat_open() system call.
Introduce support for the O_APPEND flag for the same system call.

File size: 3.5 KB
Line 
1////////////////////////////////////////////////////////////////////////////////
2// File     : fat32_shared.h
3// Date     : 27/07/2015
4// Author   : Clément Guérin
5// Copyright (c) UPMC-LIP6
6////////////////////////////////////////////////////////////////////////////////
7
8#ifndef _FAT32_SHARED
9#define _FAT32_SHARED
10
11/********************************************************************************
12  This struct is used by _fat_file_info().
13********************************************************************************/
14
15typedef struct fat_file_info_s
16{
17    unsigned int size;      // size in bytes
18    unsigned int offset;    // offset in bytes
19    unsigned int is_dir;    // is the file a directory
20}   fat_file_info_t;
21
22/********************************************************************************
23  This struct is used by _fat_readdir(). It describes a directory entry.
24********************************************************************************/
25
26typedef struct fat_dirent_s
27{
28    unsigned int cluster;   // cluster index
29    unsigned int size;      // size in bytes
30    unsigned int is_dir;    // is the entry a directory
31    char name[36];          // entry name
32}   fat_dirent_t;
33
34/********************************************************************************
35  _fat_open() flags.
36********************************************************************************/
37
38#define O_RDONLY                0x01
39#define O_TRUNC                 0x10
40#define O_CREAT                 0x20
41#define O_APPEND                0x40
42
43/********************************************************************************
44  _fat_lseek() flags.
45********************************************************************************/
46
47#define SEEK_SET                0
48#define SEEK_CUR                1
49#define SEEK_END                2
50
51/********************************************************************************
52  _fat_dump_block() types.
53********************************************************************************/
54
55#define DUMP_BS                 0
56#define DUMP_FS                 1
57#define DUMP_FAT                2
58#define DUMP_FILE               3
59#define DUMP_DIR                4
60
61/********************************************************************************
62  Error codes map.
63********************************************************************************/
64
65#define GIET_FAT32_OK                   (  0)
66#define GIET_FAT32_NOT_INITIALIZED      (- 1)
67#define GIET_FAT32_INVALID_BOOT_SECTOR  (- 2)
68#define GIET_FAT32_IO_ERROR             (- 3)
69#define GIET_FAT32_FILE_NOT_FOUND       (- 4)
70#define GIET_FAT32_INVALID_FD           (- 5)
71#define GIET_FAT32_NAME_TOO_LONG        (- 6)
72#define GIET_FAT32_TOO_MANY_OPEN_FILES  (- 7)
73#define GIET_FAT32_NOT_OPEN             (- 8)
74#define GIET_FAT32_IS_OPEN              (- 9)
75#define GIET_FAT32_READ_ONLY            (-10)
76#define GIET_FAT32_NO_FREE_SPACE        (-11)
77#define GIET_FAT32_INVALID_ARG          (-12)
78#define GIET_FAT32_NOT_A_DIRECTORY      (-13)
79#define GIET_FAT32_IS_DIRECTORY         (-14)
80#define GIET_FAT32_DIRECTORY_NOT_EMPTY  (-15)
81#define GIET_FAT32_MOVE_INTO_SUBDIR     (-16)
82#define GIET_FAT32_FILE_EXISTS          (-17)
83#define GIET_FAT32_NO_MORE_ENTRIES      (-18)
84#define GIET_FAT32_BUFFER_TOO_SMALL     (-19)
85
86#endif // _FAT32_SHARED
87
88// Local Variables:
89// tab-width: 4
90// c-basic-offset: 4
91// c-file-offsets:((innamespace . 0)(inline-open . 0))
92// indent-tabs-mode: nil
93// End:
94// vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
95
Note: See TracBrowser for help on using the repository browser.