Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
c4aeb6d5
Commit
c4aeb6d5
authored
Sep 01, 2012
by
Dean Camera
Browse files
Update FatFS library copies to the latest R0.09a version.
parent
376160e2
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Projects/TempDataLogger/Lib/FATFs/00readme.txt
View file @
c4aeb6d5
FatFs Module Source Files R0.0
8b
(C)ChaN, 201
1
FatFs Module Source Files R0.0
9a
(C)ChaN, 201
2
FILES
...
...
@@ -7,7 +7,8 @@ FILES
ff.h Common include file for FatFs and application module.
ff.c FatFs module.
diskio.h Common include file for FatFs and disk I/O module.
integer.h Alternative type definitions for integer variables.
diskio.c An example of glue function to attach existing disk I/O module to FatFs.
integer.h Integer type definitions for FatFs.
option Optional external functions.
Low level disk I/O module is not included in this archive because the FatFs
...
...
@@ -23,7 +24,7 @@ AGREEMENTS
small embedded systems. This is a free software and is opened for education,
research and commercial developments under license policy of following trems.
Copyright (C) 201
1
, ChaN, all right reserved.
Copyright (C) 201
2
, ChaN, all right reserved.
* The FatFs module is a free software and there is NO WARRANTY.
* No restriction on use. You can use, modify and redistribute it for
...
...
@@ -125,3 +126,10 @@ REVISION HISTORY
f_lseek() reports required table size on creating CLMP.
Extended format syntax of f_printf function.
Ignores duplicated directory separators in given path names.
Sep 06,'11 R0.09 f_mkfs() supports multiple partition to finish the multiple partition feature.
Added f_fdisk(). (_MULTI_PARTITION = 2)
Aug 27,'12 R0.09a Fixed assertion failure due to OS/2 EA on FAT12/16.
Changed API rejects null object pointer to avoid crash.
Changed option name _FS_SHARE to _FS_LOCK.
Projects/TempDataLogger/Lib/FATFs/diskio.c
View file @
c4aeb6d5
...
...
@@ -38,7 +38,7 @@ DRESULT disk_read (
BYTE
drv
,
/* Physical drive number (0..) */
BYTE
*
buff
,
/* Data buffer to store read data */
DWORD
sector
,
/* Sector address (LBA) */
BYTE
count
/* Number of sectors to read (1..
255
) */
BYTE
count
/* Number of sectors to read (1..
128
) */
)
{
DataflashManager_ReadBlocks_RAM
(
sector
,
count
,
buff
);
...
...
@@ -55,7 +55,7 @@ DRESULT disk_write (
BYTE
drv
,
/* Physical drive number (0..) */
const
BYTE
*
buff
,
/* Data to be written */
DWORD
sector
,
/* Sector address (LBA) */
BYTE
count
/* Number of sectors to write (1..
255
) */
BYTE
count
/* Number of sectors to write (1..
128
) */
)
{
DataflashManager_WriteBlocks_RAM
(
sector
,
count
,
buff
);
...
...
Projects/TempDataLogger/Lib/FATFs/diskio.h
View file @
c4aeb6d5
...
...
@@ -2,10 +2,12 @@
/ Low level disk interface module include file
/-----------------------------------------------------------------------*/
#ifndef _DISKIO
#ifndef _DISKIO_DEFINED
#define _DISKIO_DEFINED
#define _READONLY 0
/* 1: Read-only mode */
#define _USE_IOCTL 1
#ifdef __cplusplus
extern
"C"
{
#endif
#include
"integer.h"
...
...
@@ -45,23 +47,9 @@ DRESULT disk_ioctl (BYTE, BYTE, void*);
/* Generic command */
#define CTRL_SYNC 0
/* Mandatory for write functions */
#define GET_SECTOR_COUNT 1
/* Mandatory for only f_mkfs() */
#define GET_SECTOR_SIZE 2
/* Mandatory for multiple sector size cfg */
#define GET_BLOCK_SIZE 3
/* Mandatory for only f_mkfs() */
#define CTRL_POWER 4
#define CTRL_LOCK 5
#define CTRL_EJECT 6
/* MMC/SDC command */
#define MMC_GET_TYPE 10
#define MMC_GET_CSD 11
#define MMC_GET_CID 12
#define MMC_GET_OCR 13
#define MMC_GET_SDSTAT 14
/* ATA/CF command */
#define ATA_GET_REV 20
#define ATA_GET_MODEL 21
#define ATA_GET_SN 22
#define _DISKIO
#ifdef __cplusplus
}
#endif
#endif
Projects/TempDataLogger/Lib/FATFs/ff.c
View file @
c4aeb6d5
This diff is collapsed.
Click to expand it.
Projects/TempDataLogger/Lib/FATFs/ff.h
View file @
c4aeb6d5
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module include file R0.0
8b
(C)ChaN, 201
1
/ FatFs - FAT file system module include file R0.0
9a
(C)ChaN, 201
2
/----------------------------------------------------------------------------/
/ FatFs module is a generic FAT file system module for small embedded systems.
/ This is a free software that opened for education, research and commercial
/ developments under license policy of following terms.
/
/ Copyright (C) 201
1
, ChaN, all right reserved.
/ Copyright (C) 201
2
, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is NO WARRANTY.
/ * No restriction on use. You can use, modify and redistribute it for
...
...
@@ -15,7 +15,7 @@
/----------------------------------------------------------------------------*/
#ifndef _FATFS
#define _FATFS
8237
/* Revision ID */
#define _FATFS
4004
/* Revision ID */
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -33,17 +33,17 @@ extern "C" {
/* Definitions of volume management */
#if _MULTI_PARTITION
/* Multiple partition configuration */
#define LD2PD(vol) (VolToPart[vol].pd)
/* Get physical drive# */
#define LD2PT(vol) (VolToPart[vol].pt)
/* Get partition# */
typedef
struct
{
BYTE
pd
;
/* Physical drive
#
*/
BYTE
pt
;
/* Partition
# (0-3
) */
BYTE
pd
;
/* Physical drive
number
*/
BYTE
pt
;
/* Partition
: 0:Auto detect, 1-4:Forced partition
) */
}
PARTITION
;
extern
const
PARTITION
VolToPart
[];
/* Volume - Physical location resolution table */
extern
PARTITION
VolToPart
[];
/* Volume - Partition resolution table */
#define LD2PD(vol) (VolToPart[vol].pd)
/* Get physical drive number */
#define LD2PT(vol) (VolToPart[vol].pt)
/* Get partition index */
#else
/* Single partition configuration */
#define LD2PD(vol) (vol)
/*
L
ogical drive
#
is bound to the same physical drive
#
*/
#define LD2PT(vol) 0
/* Always mounts the 1st partition */
#else
/* Single partition configuration */
#define LD2PD(vol)
(BYTE)
(vol)
/*
Each l
ogical drive is bound to the same physical drive
number
*/
#define LD2PT(vol) 0
/* Always mounts the 1st partition
or in SFD
*/
#endif
...
...
@@ -84,7 +84,7 @@ typedef struct {
WORD
id
;
/* File system mount ID */
WORD
n_rootdir
;
/* Number of root directory entries (FAT12/16) */
#if _MAX_SS != 512
WORD
ssize
;
/* Bytes per sector (512,1024,2048
,
4096) */
WORD
ssize
;
/* Bytes per sector (512,
1024,
2048
or
4096) */
#endif
#if _FS_REENTRANT
_SYNC_t
sobj
;
/* Identifier of sync object */
...
...
@@ -111,24 +111,24 @@ typedef struct {
/* File object structure (FIL) */
typedef
struct
{
FATFS
*
fs
;
/* Pointer to the
owner
file system object */
WORD
id
;
/*
Owner f
ile system mount ID */
FATFS
*
fs
;
/* Pointer to the
related
file system object */
WORD
id
;
/*
F
ile system mount ID
of the related file system object
*/
BYTE
flag
;
/* File status flags */
BYTE
pad1
;
DWORD
fptr
;
/* File read/write pointer (0 on file open) */
DWORD
fptr
;
/* File read/write pointer (0
ed
on file open) */
DWORD
fsize
;
/* File size */
DWORD
sclust
;
/* File start cluster (0 when fsize
==
0) */
DWORD
clust
;
/* Current cluster */
DWORD
dsect
;
/* Current data sector */
DWORD
sclust
;
/* File
data
start cluster (0
:no data cluster, always 0
when fsize
is
0) */
DWORD
clust
;
/* Current cluster
of fpter
*/
DWORD
dsect
;
/* Current data sector
of fpter
*/
#if !_FS_READONLY
DWORD
dir_sect
;
/* Sector containing the directory entry */
BYTE
*
dir_ptr
;
/* Ponter to the directory entry in the window */
BYTE
*
dir_ptr
;
/* Po
i
nter to the directory entry in the window */
#endif
#if _USE_FASTSEEK
DWORD
*
cltbl
;
/* Pointer to the cluster link map table (null on file open) */
#endif
#if _FS_
SHARE
UINT
lockid
;
/* File lock ID (index of file semaphore table) */
#if _FS_
LOCK
UINT
lockid
;
/* File lock ID (index of file semaphore table
Files[]
) */
#endif
#if !_FS_TINY
BYTE
buf
[
_MAX_SS
];
/* File data read/write buffer */
...
...
@@ -176,24 +176,25 @@ typedef struct {
typedef
enum
{
FR_OK
=
0
,
/* (0) Succeeded */
FR_DISK_ERR
,
/* (1) A hard error occured in the low level disk I/O layer */
FR_DISK_ERR
,
/* (1) A hard error occur
r
ed in the low level disk I/O layer */
FR_INT_ERR
,
/* (2) Assertion failed */
FR_NOT_READY
,
/* (3) The physical drive cannot work */
FR_NO_FILE
,
/* (4) Could not find the file */
FR_NO_PATH
,
/* (5) Could not find the path */
FR_INVALID_NAME
,
/* (6) The path name format is invalid */
FR_DENIED
,
/* (7) Acces denied due to prohibited access or directory full */
FR_EXIST
,
/* (8) Acces denied due to prohibited access */
FR_DENIED
,
/* (7) Acces
s
denied due to prohibited access or directory full */
FR_EXIST
,
/* (8) Acces
s
denied due to prohibited access */
FR_INVALID_OBJECT
,
/* (9) The file/directory object is invalid */
FR_WRITE_PROTECTED
,
/* (10) The physical drive is write protected */
FR_INVALID_DRIVE
,
/* (11) The logical drive number is invalid */
FR_NOT_ENABLED
,
/* (12) The volume has no work area */
FR_NO_FILESYSTEM
,
/* (13) There is no valid FAT volume
on the physical drive
*/
FR_NO_FILESYSTEM
,
/* (13) There is no valid FAT volume */
FR_MKFS_ABORTED
,
/* (14) The f_mkfs() aborted due to any parameter error */
FR_TIMEOUT
,
/* (15) Could not get a grant to access the volume within defined period */
FR_LOCKED
,
/* (16) The operation is rejected according to the file sharing policy */
FR_NOT_ENOUGH_CORE
,
/* (17) LFN working buffer could not be allocated */
FR_TOO_MANY_OPEN_FILES
/* (18) Number of open files > _FS_SHARE */
FR_TOO_MANY_OPEN_FILES
,
/* (18) Number of open files > _FS_SHARE */
FR_INVALID_PARAMETER
/* (19) Given parameter is invalid */
}
FRESULT
;
...
...
@@ -216,27 +217,28 @@ FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT
f_unlink
(
const
TCHAR
*
);
/* Delete an existing file or directory */
FRESULT
f_mkdir
(
const
TCHAR
*
);
/* Create a new directory */
FRESULT
f_chmod
(
const
TCHAR
*
,
BYTE
,
BYTE
);
/* Change attribute of the file/dir */
FRESULT
f_utime
(
const
TCHAR
*
,
const
FILINFO
*
);
/* Change time
-
stamp of the file/dir */
FRESULT
f_utime
(
const
TCHAR
*
,
const
FILINFO
*
);
/* Change times
-
tamp of the file/dir */
FRESULT
f_rename
(
const
TCHAR
*
,
const
TCHAR
*
);
/* Rename/Move a file or directory */
FRESULT
f_forward
(
FIL
*
,
UINT
(
*
)(
const
BYTE
*
,
UINT
),
UINT
,
UINT
*
);
/* Forward data to the stream */
FRESULT
f_mkfs
(
BYTE
,
BYTE
,
UINT
);
/* Create a file system on the drive */
FRESULT
f_chdrive
(
BYTE
);
/* Change current drive */
FRESULT
f_chdir
(
const
TCHAR
*
);
/* Change current directory */
FRESULT
f_getcwd
(
TCHAR
*
,
UINT
);
/* Get current directory */
FRESULT
f_forward
(
FIL
*
,
UINT
(
*
)(
const
BYTE
*
,
UINT
),
UINT
,
UINT
*
);
/* Forward data to the stream */
FRESULT
f_mkfs
(
BYTE
,
BYTE
,
UINT
);
/* Create a file system on the drive */
FRESULT
f_fdisk
(
BYTE
,
const
DWORD
[],
void
*
);
/* Divide a physical drive into some partitions */
int
f_putc
(
TCHAR
,
FIL
*
);
/* Put a character to the file */
int
f_puts
(
const
TCHAR
*
,
FIL
*
);
/* Put a string to the file */
int
f_printf
(
FIL
*
,
const
TCHAR
*
,
...);
/* Put a formatted string to the file */
TCHAR
*
f_gets
(
TCHAR
*
,
int
,
FIL
*
);
/* Get a string from the file */
#ifndef EOF
#define EOF (-1)
#endif
#define f_eof(fp) (((fp)->fptr == (fp)->fsize) ? 1 : 0)
#define f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
#define f_tell(fp) ((fp)->fptr)
#define f_size(fp) ((fp)->fsize)
#ifndef EOF
#define EOF (-1)
#endif
...
...
@@ -308,7 +310,7 @@ int ff_del_syncobj (_SYNC_t); /* Delete a sync object */
#define AM_MASK 0x3F
/* Mask of defined bits */
/* Fast seek f
unction
*/
/* Fast seek f
eature
*/
#define CREATE_LINKMAP 0xFFFFFFFF
...
...
@@ -333,4 +335,3 @@ int ff_del_syncobj (_SYNC_t); /* Delete a sync object */
#endif
#endif
/* _FATFS */
Projects/TempDataLogger/Lib/FATFs/ffconf.h
View file @
c4aeb6d5
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.0
8b
(C)ChaN, 201
1
/ FatFs - FAT file system module configuration file R0.0
9a
(C)ChaN, 201
2
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
...
...
@@ -7,7 +7,7 @@
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF
8237
/* Revision ID */
#define _FFCONF
4004
/* Revision ID */
/*---------------------------------------------------------------------------/
...
...
@@ -36,7 +36,7 @@
/ 3: f_lseek is removed in addition to 2. */
#define _USE_STRFUNC 0
/* 0:Disable or 1
/
2:Enable */
#define _USE_STRFUNC 0
/* 0:Disable or 1
-
2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */
...
...
@@ -137,7 +137,7 @@
/ and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
#define _MULTI_PARTITION 0
/* 0:Single partition
or 1:M
ultiple partition */
#define _MULTI_PARTITION 0
/* 0:Single partition
, 1/2:Enable m
ultiple partition */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
...
...
@@ -163,7 +163,8 @@
/ When the byte order on the memory is big-endian or address miss-aligned word
/ access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/ If it is not the case, the value can also be set to 1 to improve the
/ performance and code size. */
/ performance and code size.
*/
/* A header file that defines sync object types on the O/S, such as
...
...
@@ -181,9 +182,9 @@
/ function must be added to the project. */
#define _FS_
SHARE
0
/* 0:Disable or >=1:Enable */
/* To enable file
shareing
feature, set _FS_
SHARE
to 1 or greater.
The value
defines how many files can be opened simultaneously. */
#define _FS_
LOCK
0
/* 0:Disable or >=1:Enable */
/* To enable file
lock control
feature, set _FS_
LOCK
to 1 or greater.
The value
defines how many files can be opened simultaneously. */
#endif
/* _FFCONFIG */
...
...
Projects/Webserver/Lib/FATFs/00readme.txt
View file @
c4aeb6d5
FatFs Module Source Files R0.0
8b
(C)ChaN, 201
1
FatFs Module Source Files R0.0
9a
(C)ChaN, 201
2
FILES
...
...
@@ -7,7 +7,8 @@ FILES
ff.h Common include file for FatFs and application module.
ff.c FatFs module.
diskio.h Common include file for FatFs and disk I/O module.
integer.h Alternative type definitions for integer variables.
diskio.c An example of glue function to attach existing disk I/O module to FatFs.
integer.h Integer type definitions for FatFs.
option Optional external functions.
Low level disk I/O module is not included in this archive because the FatFs
...
...
@@ -23,7 +24,7 @@ AGREEMENTS
small embedded systems. This is a free software and is opened for education,
research and commercial developments under license policy of following trems.
Copyright (C) 201
1
, ChaN, all right reserved.
Copyright (C) 201
2
, ChaN, all right reserved.
* The FatFs module is a free software and there is NO WARRANTY.
* No restriction on use. You can use, modify and redistribute it for
...
...
@@ -125,3 +126,10 @@ REVISION HISTORY
f_lseek() reports required table size on creating CLMP.
Extended format syntax of f_printf function.
Ignores duplicated directory separators in given path names.
Sep 06,'11 R0.09 f_mkfs() supports multiple partition to finish the multiple partition feature.
Added f_fdisk(). (_MULTI_PARTITION = 2)
Aug 27,'12 R0.09a Fixed assertion failure due to OS/2 EA on FAT12/16.
Changed API rejects null object pointer to avoid crash.
Changed option name _FS_SHARE to _FS_LOCK.
Projects/Webserver/Lib/FATFs/diskio.c
View file @
c4aeb6d5
...
...
@@ -38,7 +38,7 @@ DRESULT disk_read (
BYTE
drv
,
/* Physical drive number (0..) */
BYTE
*
buff
,
/* Data buffer to store read data */
DWORD
sector
,
/* Sector address (LBA) */
BYTE
count
/* Number of sectors to read (1..
255
) */
BYTE
count
/* Number of sectors to read (1..
128
) */
)
{
DataflashManager_ReadBlocks_RAM
(
sector
,
count
,
buff
);
...
...
@@ -55,7 +55,7 @@ DRESULT disk_write (
BYTE
drv
,
/* Physical drive number (0..) */
const
BYTE
*
buff
,
/* Data to be written */
DWORD
sector
,
/* Sector address (LBA) */
BYTE
count
/* Number of sectors to write (1..
255
) */
BYTE
count
/* Number of sectors to write (1..
128
) */
)
{
DataflashManager_WriteBlocks_RAM
(
sector
,
count
,
buff
);
...
...
Projects/Webserver/Lib/FATFs/diskio.h
View file @
c4aeb6d5
...
...
@@ -2,10 +2,12 @@
/ Low level disk interface module include file
/-----------------------------------------------------------------------*/
#ifndef _DISKIO
#ifndef _DISKIO_DEFINED
#define _DISKIO_DEFINED
#define _READONLY 0
/* 1: Read-only mode */
#define _USE_IOCTL 0
#ifdef __cplusplus
extern
"C"
{
#endif
#include
"integer.h"
#include
"ff.h"
...
...
@@ -32,9 +34,7 @@ typedef enum {
DSTATUS
disk_initialize
(
BYTE
);
DSTATUS
disk_status
(
BYTE
);
DRESULT
disk_read
(
BYTE
,
BYTE
*
,
DWORD
,
BYTE
);
#if _READONLY == 0
DRESULT
disk_write
(
BYTE
,
const
BYTE
*
,
DWORD
,
BYTE
);
#endif
DRESULT
disk_ioctl
(
BYTE
,
BYTE
,
void
*
);
...
...
@@ -45,6 +45,8 @@ DRESULT disk_ioctl (BYTE, BYTE, void*);
#define STA_PROTECT 0x04
/* Write protected */
#define _DISKIO
#ifdef __cplusplus
}
#endif
#endif
Projects/Webserver/Lib/FATFs/ff.c
View file @
c4aeb6d5
This diff is collapsed.
Click to expand it.
Projects/Webserver/Lib/FATFs/ff.h
View file @
c4aeb6d5
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module include file R0.0
8b
(C)ChaN, 201
1
/ FatFs - FAT file system module include file R0.0
9a
(C)ChaN, 201
2
/----------------------------------------------------------------------------/
/ FatFs module is a generic FAT file system module for small embedded systems.
/ This is a free software that opened for education, research and commercial
/ developments under license policy of following terms.
/
/ Copyright (C) 201
1
, ChaN, all right reserved.
/ Copyright (C) 201
2
, ChaN, all right reserved.
/
/ * The FatFs module is a free software and there is NO WARRANTY.
/ * No restriction on use. You can use, modify and redistribute it for
...
...
@@ -15,7 +15,7 @@
/----------------------------------------------------------------------------*/
#ifndef _FATFS
#define _FATFS
8237
/* Revision ID */
#define _FATFS
4004
/* Revision ID */
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -33,17 +33,17 @@ extern "C" {
/* Definitions of volume management */
#if _MULTI_PARTITION
/* Multiple partition configuration */
#define LD2PD(vol) (VolToPart[vol].pd)
/* Get physical drive# */
#define LD2PT(vol) (VolToPart[vol].pt)
/* Get partition# */
typedef
struct
{
BYTE
pd
;
/* Physical drive
#
*/
BYTE
pt
;
/* Partition
# (0-3
) */
BYTE
pd
;
/* Physical drive
number
*/
BYTE
pt
;
/* Partition
: 0:Auto detect, 1-4:Forced partition
) */
}
PARTITION
;
extern
const
PARTITION
VolToPart
[];
/* Volume - Physical location resolution table */
extern
PARTITION
VolToPart
[];
/* Volume - Partition resolution table */
#define LD2PD(vol) (VolToPart[vol].pd)
/* Get physical drive number */
#define LD2PT(vol) (VolToPart[vol].pt)
/* Get partition index */
#else
/* Single partition configuration */
#define LD2PD(vol) (vol)
/*
L
ogical drive
#
is bound to the same physical drive
#
*/
#define LD2PT(vol) 0
/* Always mounts the 1st partition */
#else
/* Single partition configuration */
#define LD2PD(vol)
(BYTE)
(vol)
/*
Each l
ogical drive is bound to the same physical drive
number
*/
#define LD2PT(vol) 0
/* Always mounts the 1st partition
or in SFD
*/
#endif
...
...
@@ -84,7 +84,7 @@ typedef struct {
WORD
id
;
/* File system mount ID */
WORD
n_rootdir
;
/* Number of root directory entries (FAT12/16) */
#if _MAX_SS != 512
WORD
ssize
;
/* Bytes per sector (512,1024,2048
,
4096) */
WORD
ssize
;
/* Bytes per sector (512,
1024,
2048
or
4096) */
#endif
#if _FS_REENTRANT
_SYNC_t
sobj
;
/* Identifier of sync object */
...
...
@@ -111,24 +111,24 @@ typedef struct {
/* File object structure (FIL) */
typedef
struct
{
FATFS
*
fs
;
/* Pointer to the
owner
file system object */
WORD
id
;
/*
Owner f
ile system mount ID */
FATFS
*
fs
;
/* Pointer to the
related
file system object */
WORD
id
;
/*
F
ile system mount ID
of the related file system object
*/
BYTE
flag
;
/* File status flags */
BYTE
pad1
;
DWORD
fptr
;
/* File read/write pointer (0 on file open) */
DWORD
fptr
;
/* File read/write pointer (0
ed
on file open) */
DWORD
fsize
;
/* File size */
DWORD
sclust
;
/* File start cluster (0 when fsize
==
0) */
DWORD
clust
;
/* Current cluster */
DWORD
dsect
;
/* Current data sector */
DWORD
sclust
;
/* File
data
start cluster (0
:no data cluster, always 0
when fsize
is
0) */
DWORD
clust
;
/* Current cluster
of fpter
*/
DWORD
dsect
;
/* Current data sector
of fpter
*/
#if !_FS_READONLY
DWORD
dir_sect
;
/* Sector containing the directory entry */
BYTE
*
dir_ptr
;
/* Ponter to the directory entry in the window */
BYTE
*
dir_ptr
;
/* Po
i
nter to the directory entry in the window */
#endif
#if _USE_FASTSEEK
DWORD
*
cltbl
;
/* Pointer to the cluster link map table (null on file open) */
#endif
#if _FS_
SHARE
UINT
lockid
;
/* File lock ID (index of file semaphore table) */
#if _FS_
LOCK
UINT
lockid
;
/* File lock ID (index of file semaphore table
Files[]
) */
#endif
#if !_FS_TINY
BYTE
buf
[
_MAX_SS
];
/* File data read/write buffer */
...
...
@@ -188,12 +188,13 @@ typedef enum {
FR_WRITE_PROTECTED
,
/* (10) The physical drive is write protected */
FR_INVALID_DRIVE
,
/* (11) The logical drive number is invalid */
FR_NOT_ENABLED
,
/* (12) The volume has no work area */
FR_NO_FILESYSTEM
,
/* (13) There is no valid FAT volume
on the physical drive
*/
FR_NO_FILESYSTEM
,
/* (13) There is no valid FAT volume */
FR_MKFS_ABORTED
,
/* (14) The f_mkfs() aborted due to any parameter error */
FR_TIMEOUT
,
/* (15) Could not get a grant to access the volume within defined period */
FR_LOCKED
,
/* (16) The operation is rejected according to the file sharing policy */
FR_NOT_ENOUGH_CORE
,
/* (17) LFN working buffer could not be allocated */
FR_TOO_MANY_OPEN_FILES
/* (18) Number of open files > _FS_SHARE */
FR_TOO_MANY_OPEN_FILES
,
/* (18) Number of open files > _FS_SHARE */
FR_INVALID_PARAMETER
/* (19) Given parameter is invalid */
}
FRESULT
;
...
...
@@ -216,27 +217,28 @@ FRESULT f_sync (FIL*); /* Flush cached data of a writing file */
FRESULT
f_unlink
(
const
TCHAR
*
);
/* Delete an existing file or directory */
FRESULT
f_mkdir
(
const
TCHAR
*
);
/* Create a new directory */
FRESULT
f_chmod
(
const
TCHAR
*
,
BYTE
,
BYTE
);
/* Change attribute of the file/dir */
FRESULT
f_utime
(
const
TCHAR
*
,
const
FILINFO
*
);
/* Change time
-
stamp of the file/dir */
FRESULT
f_utime
(
const
TCHAR
*
,
const
FILINFO
*
);
/* Change times
-
tamp of the file/dir */
FRESULT
f_rename
(
const
TCHAR
*
,
const
TCHAR
*
);
/* Rename/Move a file or directory */
FRESULT
f_forward
(
FIL
*
,
UINT
(
*
)(
const
BYTE
*
,
UINT
),
UINT
,
UINT
*
);
/* Forward data to the stream */
FRESULT
f_mkfs
(
BYTE
,
BYTE
,
UINT
);
/* Create a file system on the drive */
FRESULT
f_chdrive
(
BYTE
);
/* Change current drive */
FRESULT
f_chdir
(
const
TCHAR
*
);
/* Change current directory */
FRESULT
f_getcwd
(
TCHAR
*
,
UINT
);
/* Get current directory */
FRESULT
f_forward
(
FIL
*
,
UINT
(
*
)(
const
BYTE
*
,
UINT
),
UINT
,
UINT
*
);
/* Forward data to the stream */
FRESULT
f_mkfs
(
BYTE
,
BYTE
,
UINT
);
/* Create a file system on the drive */
FRESULT
f_fdisk
(
BYTE
,
const
DWORD
[],
void
*
);
/* Divide a physical drive into some partitions */
int
f_putc
(
TCHAR
,
FIL
*
);
/* Put a character to the file */
int
f_puts
(
const
TCHAR
*
,
FIL
*
);
/* Put a string to the file */
int
f_printf
(
FIL
*
,
const
TCHAR
*
,
...);
/* Put a formatted string to the file */
TCHAR
*
f_gets
(
TCHAR
*
,
int
,
FIL
*
);
/* Get a string from the file */
#ifndef EOF
#define EOF (-1)
#endif
#define f_eof(fp) (((fp)->fptr == (fp)->fsize) ? 1 : 0)
#define f_error(fp) (((fp)->flag & FA__ERROR) ? 1 : 0)
#define f_tell(fp) ((fp)->fptr)
#define f_size(fp) ((fp)->fsize)
#ifndef EOF
#define EOF (-1)
#endif
...
...
@@ -308,7 +310,7 @@ int ff_del_syncobj (_SYNC_t); /* Delete a sync object */
#define AM_MASK 0x3F
/* Mask of defined bits */
/* Fast seek f
unction
*/
/* Fast seek f
eature
*/
#define CREATE_LINKMAP 0xFFFFFFFF
...
...
@@ -333,4 +335,3 @@ int ff_del_syncobj (_SYNC_t); /* Delete a sync object */
#endif
#endif
/* _FATFS */
Projects/Webserver/Lib/FATFs/ffconf.h
View file @
c4aeb6d5
/*---------------------------------------------------------------------------/
/ FatFs - FAT file system module configuration file R0.0
8b
(C)ChaN, 201
1
/ FatFs - FAT file system module configuration file R0.0
9a
(C)ChaN, 201
2
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
...
...
@@ -7,7 +7,7 @@
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF
8237
/* Revision ID */
#define _FFCONF
4004
/* Revision ID */
/*---------------------------------------------------------------------------/
...
...
@@ -36,7 +36,7 @@
/ 3: f_lseek is removed in addition to 2. */
#define _USE_STRFUNC 0
/* 0:Disable or 1
/
2:Enable */
#define _USE_STRFUNC 0
/* 0:Disable or 1
-
2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */
...
...
@@ -137,7 +137,7 @@
/ and GET_SECTOR_SIZE command must be implemented to the disk_ioctl function. */
#define _MULTI_PARTITION 0
/* 0:Single partition
or 1:M
ultiple partition */
#define _MULTI_PARTITION 0
/* 0:Single partition
, 1/2:Enable m
ultiple partition */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primary partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
...
...
@@ -181,9 +181,9 @@
/ function must be added to the project. */
#define _FS_
SHARE
0
/* 0:Disable or >=1:Enable */
/* To enable file
sharing
feature, set _FS_
SHARE
to 1 or greater.
The value
defines how many files can be opened simultaneously. */
#define _FS_
LOCK
0
/* 0:Disable or >=1:Enable */
/* To enable file
lock control
feature, set _FS_
LOCK
to 1 or greater.
The value
defines how many files can be opened simultaneously. */
#endif
/* _FFCONFIG */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment