109 lines
4.1 KiB
C
109 lines
4.1 KiB
C
|
/*
|
||
|
* FreeRTOS+FAT V2.3.3
|
||
|
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||
|
*
|
||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||
|
* this software and associated documentation files (the "Software"), to deal in
|
||
|
* the Software without restriction, including without limitation the rights to
|
||
|
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||
|
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||
|
* subject to the following conditions:
|
||
|
*
|
||
|
* The above copyright notice and this permission notice shall be included in all
|
||
|
* copies or substantial portions of the Software.
|
||
|
*
|
||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||
|
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||
|
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||
|
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
|
*
|
||
|
* https://www.FreeRTOS.org
|
||
|
* https://github.com/FreeRTOS
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef _FF_FATDEF_H_
|
||
|
#define _FF_FATDEF_H_
|
||
|
|
||
|
/*
|
||
|
* This file defines offsets to various data for the FAT specification.
|
||
|
*/
|
||
|
|
||
|
/* MBR / PBR Offsets. */
|
||
|
|
||
|
#define FF_FAT_BYTES_PER_SECTOR 0x00B
|
||
|
#define FF_FAT_SECTORS_PER_CLUS 0x00D
|
||
|
#define FF_FAT_RESERVED_SECTORS 0x00E
|
||
|
#define FF_FAT_NUMBER_OF_FATS 0x010
|
||
|
#define FF_FAT_ROOT_ENTRY_COUNT 0x011
|
||
|
#define FF_FAT_16_TOTAL_SECTORS 0x013
|
||
|
#define FF_FAT_MEDIA_TYPE 0x015
|
||
|
|
||
|
#define FF_FAT_32_TOTAL_SECTORS 0x020
|
||
|
#define FF_FAT_16_SECTORS_PER_FAT 0x016
|
||
|
#define FF_FAT_32_SECTORS_PER_FAT 0x024
|
||
|
#define FF_FAT_ROOT_DIR_CLUSTER 0x02C
|
||
|
#define FF_FAT_EXT_BOOT_SIGNATURE 0x042
|
||
|
|
||
|
#define FF_FAT_16_VOL_LABEL 0x02B
|
||
|
#define FF_FAT_32_VOL_LABEL 0x047
|
||
|
|
||
|
#define FF_FAT_PTBL 0x1BE
|
||
|
#define FF_FAT_PTBL_LBA 0x008
|
||
|
#define FF_FAT_PTBL_SECT_COUNT 0x00C
|
||
|
#define FF_FAT_PTBL_ACTIVE 0x000
|
||
|
#define FF_FAT_PTBL_ID 0x004
|
||
|
|
||
|
#define FF_DOS_EXT_PART 0x05
|
||
|
#define FF_LINUX_EXT_PART 0x85
|
||
|
#define FF_WIN98_EXT_PART 0x0f
|
||
|
|
||
|
#define FF_FAT_MBR_SIGNATURE 0x1FE
|
||
|
|
||
|
#define FF_FAT_DELETED 0xE5
|
||
|
|
||
|
/* Directory Entry Offsets. */
|
||
|
#define FF_FAT_DIRENT_SHORTNAME 0x000
|
||
|
#define FF_FAT_DIRENT_ATTRIB 0x00B
|
||
|
#define FF_FAT_DIRENT_CREATE_TIME 0x00E /* Creation Time. */
|
||
|
#define FF_FAT_DIRENT_CREATE_DATE 0x010 /* Creation Date. */
|
||
|
#define FF_FAT_DIRENT_LASTACC_DATE 0x012 /* Date of Last Access. */
|
||
|
#define FF_FAT_DIRENT_CLUS_HIGH 0x014
|
||
|
#define FF_FAT_DIRENT_LASTMOD_TIME 0x016 /* Time of Last modification. */
|
||
|
#define FF_FAT_DIRENT_LASTMOD_DATE 0x018 /* Date of Last modification. */
|
||
|
#define FF_FAT_DIRENT_CLUS_LOW 0x01A
|
||
|
#define FF_FAT_DIRENT_FILESIZE 0x01C
|
||
|
#define FF_FAT_LFN_ORD 0x000
|
||
|
#define FF_FAT_LFN_NAME_1 0x001
|
||
|
#define FF_FAT_LFN_CHECKSUM 0x00D
|
||
|
#define FF_FAT_LFN_NAME_2 0x00E
|
||
|
#define FF_FAT_LFN_NAME_3 0x01C
|
||
|
|
||
|
/* Dirent Attributes. */
|
||
|
#define FF_FAT_ATTR_READONLY 0x01
|
||
|
#define FF_FAT_ATTR_HIDDEN 0x02
|
||
|
#define FF_FAT_ATTR_SYSTEM 0x04
|
||
|
#define FF_FAT_ATTR_VOLID 0x08
|
||
|
#define FF_FAT_ATTR_DIR 0x10
|
||
|
#define FF_FAT_ATTR_ARCHIVE 0x20
|
||
|
#define FF_FAT_ATTR_LFN 0x0F
|
||
|
|
||
|
/**
|
||
|
* -- Hein_Tibosch additions for mixed case in shortnames --
|
||
|
*
|
||
|
* Specifically, bit 4 means lowercase extension and bit 3 lowercase basename,
|
||
|
* which allows for combinations such as "example.TXT" or "HELLO.txt" but not "Mixed.txt"
|
||
|
*/
|
||
|
|
||
|
#define FF_FAT_CASE_OFFS 0x0C /* After NT/XP : 2 case bits. */
|
||
|
#define FF_FAT_CASE_ATTR_BASE 0x08
|
||
|
#define FF_FAT_CASE_ATTR_EXT 0x10
|
||
|
|
||
|
#if ( ffconfigLFN_SUPPORT != 0 ) && ( ffconfigINCLUDE_SHORT_NAME != 0 )
|
||
|
#define FF_FAT_ATTR_IS_LFN 0x40 /* artificial attribute, for debugging only. */
|
||
|
#endif
|
||
|
|
||
|
#endif /* ifndef _FF_FATDEF_H_ */
|