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

Last change on this file since 757 was 746, checked in by alain, 9 years ago

Improve the _fat_lseek() function to support
the SEEK_END value for the <whence> argument.

File size: 3.1 KB
RevLine 
[663]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_CREATE                0x20
41
42/********************************************************************************
43  _fat_lseek() flags.
44********************************************************************************/
45
46#define SEEK_SET                0
47#define SEEK_CUR                1
[746]48#define SEEK_END                2
[663]49
[664]50/********************************************************************************
51  Error codes map.
52********************************************************************************/
53
54#define GIET_FAT32_OK                   (  0)
55#define GIET_FAT32_NOT_INITIALIZED      (- 1)
56#define GIET_FAT32_INVALID_BOOT_SECTOR  (- 2)
57#define GIET_FAT32_IO_ERROR             (- 3)
58#define GIET_FAT32_FILE_NOT_FOUND       (- 4)
59#define GIET_FAT32_INVALID_FD           (- 5)
60#define GIET_FAT32_NAME_TOO_LONG        (- 6)
61#define GIET_FAT32_TOO_MANY_OPEN_FILES  (- 7)
62#define GIET_FAT32_NOT_OPEN             (- 8)
63#define GIET_FAT32_IS_OPEN              (- 9)
64#define GIET_FAT32_READ_ONLY            (-10)
65#define GIET_FAT32_NO_FREE_SPACE        (-11)
66#define GIET_FAT32_INVALID_ARG          (-12)
67#define GIET_FAT32_NOT_A_DIRECTORY      (-13)
68#define GIET_FAT32_IS_DIRECTORY         (-14)
69#define GIET_FAT32_DIRECTORY_NOT_EMPTY  (-15)
70#define GIET_FAT32_MOVE_INTO_SUBDIR     (-16)
71#define GIET_FAT32_FILE_EXISTS          (-17)
72#define GIET_FAT32_NO_MORE_ENTRIES      (-18)
73#define GIET_FAT32_BUFFER_TOO_SMALL     (-19)
74
[663]75#endif // _FAT32_SHARED
76
77// Local Variables:
78// tab-width: 4
79// c-basic-offset: 4
80// c-file-offsets:((innamespace . 0)(inline-open . 0))
81// indent-tabs-mode: nil
82// End:
83// vim: filetype=c:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
84
Note: See TracBrowser for help on using the repository browser.