| /* | |
| * FreeRTOS+FAT SL V1.0.1 (C) 2014 HCC Embedded | |
| * | |
| * The FreeRTOS+FAT SL license terms are different to the FreeRTOS license | |
| * terms. | |
| * | |
| * FreeRTOS+FAT SL uses a dual license model that allows the software to be used | |
| * under a standard GPL open source license, or a commercial license. The | |
| * standard GPL license (unlike the modified GPL license under which FreeRTOS | |
| * itself is distributed) requires that all software statically linked with | |
| * FreeRTOS+FAT SL is also distributed under the same GPL V2 license terms. | |
| * Details of both license options follow: | |
| * | |
| * - Open source licensing - | |
| * FreeRTOS+FAT SL is a free download and may be used, modified, evaluated and | |
| * distributed without charge provided the user adheres to version two of the | |
| * GNU General Public License (GPL) and does not remove the copyright notice or | |
| * this text. The GPL V2 text is available on the gnu.org web site, and on the | |
| * following URL: http://www.FreeRTOS.org/gpl-2.0.txt. | |
| * | |
| * - Commercial licensing - | |
| * Businesses and individuals who for commercial or other reasons cannot comply | |
| * with the terms of the GPL V2 license must obtain a commercial license before | |
| * incorporating FreeRTOS+FAT SL into proprietary software for distribution in | |
| * any form. Commercial licenses can be purchased from | |
| * http://shop.freertos.org/fat_sl and do not require any source files to be | |
| * changed. | |
| * | |
| * FreeRTOS+FAT SL is distributed in the hope that it will be useful. You | |
| * cannot use FreeRTOS+FAT SL unless you agree that you use the software 'as | |
| * is'. FreeRTOS+FAT SL is provided WITHOUT ANY WARRANTY; without even the | |
| * implied warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A | |
| * PARTICULAR PURPOSE. Real Time Engineers Ltd. and HCC Embedded disclaims all | |
| * conditions and terms, be they implied, expressed, or statutory. | |
| * | |
| * http://www.FreeRTOS.org | |
| * http://www.FreeRTOS.org/FreeRTOS-Plus | |
| * | |
| */ | |
| #ifndef __VOLUME_H | |
| #define __VOLUME_H | |
| #include "config_fat_sl.h" | |
| #include "../../version/ver_fat_sl.h" | |
| #if VER_FAT_SL_MAJOR != 5 || VER_FAT_SL_MINOR != 2 | |
| #error Incompatible FAT_SL version number! | |
| #endif | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef struct | |
| { | |
| unsigned char sector_per_cluster; | |
| unsigned char number_of_FATs; | |
| unsigned char media_descriptor; | |
| unsigned long rootcluster; | |
| unsigned long sector_per_FAT; | |
| unsigned long sector_per_FAT32; | |
| unsigned long serial_number; | |
| } F_BOOTRECORD; | |
| typedef struct | |
| { | |
| unsigned long sector; /*start sector*/ | |
| unsigned long num; /*number of sectors*/ | |
| } F_SECTOR; | |
| typedef struct | |
| { | |
| unsigned char state; | |
| F_BOOTRECORD bootrecord; | |
| F_SECTOR firstfat; | |
| F_SECTOR root; | |
| F_SECTOR _tdata; | |
| unsigned long actsector; | |
| unsigned long fatsector; | |
| unsigned long lastalloccluster; | |
| unsigned char modified; | |
| char cwd[F_MAXPATH]; /*current working folder in this volume*/ | |
| unsigned char mediatype; | |
| unsigned long maxcluster; | |
| } F_VOLUME; | |
| enum | |
| { | |
| /* 0 */ | |
| F_STATE_NONE, | |
| /* 1 */ F_STATE_NEEDMOUNT, | |
| /* 2 */ F_STATE_WORKING | |
| }; | |
| extern F_VOLUME gl_volume; | |
| extern F_FILE gl_file; | |
| extern char gl_sector[F_SECTOR_SIZE]; /* actual sector */ | |
| unsigned char _f_getvolume ( void ); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* ifndef __VOLUME_H */ |