159 lines
5.0 KiB
C
159 lines
5.0 KiB
C
/*
|
|
* This file is subject to the terms of the GFX License. If a copy of
|
|
* the license was not distributed with this file, you can obtain one at:
|
|
*
|
|
* http://ugfx.org/license.html
|
|
*/
|
|
|
|
/**
|
|
* @file include/gfile/options.h
|
|
* @brief GFILE - File IO options header file.
|
|
*
|
|
* @addtogroup GFILE
|
|
* @{
|
|
*/
|
|
|
|
#ifndef _GFILE_OPTIONS_H
|
|
#define _GFILE_OPTIONS_H
|
|
|
|
/**
|
|
* @name GFILE Functionality to be included
|
|
* @{
|
|
*/
|
|
/**
|
|
* @brief Include printg, fprintg etc functions
|
|
* @details Defaults to FALSE
|
|
*/
|
|
#ifndef GFILE_NEED_PRINTG
|
|
#define GFILE_NEED_PRINTG FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include scang, fscang etc functions
|
|
* @details Defaults to FALSE
|
|
*/
|
|
#ifndef GFILE_NEED_SCANG
|
|
#define GFILE_NEED_SCANG FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include the string sprintg/sscang functions
|
|
* @details Defaults to FALSE
|
|
* @pre To get sprintg functions you also need to define @p GFILE_NEED_PRINTG
|
|
* @pre To get sscang functions you also need to define @p GFILE_NEED_SCANG
|
|
*/
|
|
#ifndef GFILE_NEED_STRINGS
|
|
#define GFILE_NEED_STRINGS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Map many stdio functions to their GFILE equivalent
|
|
* @details Defaults to FALSE
|
|
* @note This replaces the functions in stdio.h with equivalents
|
|
* - Do not include stdio.h as it has different conflicting definitions.
|
|
*/
|
|
#ifndef GFILE_NEED_STDIO
|
|
#define GFILE_NEED_STDIO FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include the ROM file system
|
|
* @details Defaults to FALSE
|
|
* @note If GFILE_ALLOW_DEVICESPECIFIC is on then you can ensure that you are
|
|
* opening a file on the ROM file system by prefixing
|
|
* its name with "S|" (the letter 'S', followed by a vertical bar).
|
|
* @note This requires a file called romfs_files.h to be in the
|
|
* users project include path. This file should include all the files
|
|
* converted to .h files using the file2c utility (using flags "-dbcs").
|
|
*/
|
|
#ifndef GFILE_NEED_ROMFS
|
|
#define GFILE_NEED_ROMFS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include the RAM file system
|
|
* @details Defaults to FALSE
|
|
* @note If GFILE_ALLOW_DEVICESPECIFIC is on then you can ensure that you are
|
|
* opening a file on the RAM file system by prefixing
|
|
* its name with "R|" (the letter 'R', followed by a vertical bar).
|
|
* @note You must also define GFILE_RAMFS_SIZE with the size of the file system
|
|
* to be allocated in RAM.
|
|
*/
|
|
#ifndef GFILE_NEED_RAMFS
|
|
#define GFILE_NEED_RAMFS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include the FAT file system driver
|
|
* @details Defaults to FALSE
|
|
* @note If GFILE_ALLOW_DEVICESPECIFIC is on then you can ensure that you are
|
|
* opening a file on the FAT file system by prefixing
|
|
* its name with "F|" (the letter 'F', followed by a vertical bar).
|
|
* @note You must separately include the FATFS library and code.
|
|
*/
|
|
#ifndef GFILE_NEED_FATFS
|
|
#define GFILE_NEED_FATFS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include the operating system's native file system
|
|
* @details Defaults to FALSE
|
|
* @note If GFILE_ALLOW_DEVICESPECIFIC is on then you can ensure that you are
|
|
* opening a file on the native file system by prefixing
|
|
* its name with "N|" (the letter 'N', followed by a vertical bar).
|
|
* @note If defined then the gfileStdOut and gfileStdErr handles
|
|
* use the operating system equivalent stdio and stderr.
|
|
* If it is not defined the gfileStdOut and gfileStdErr io is discarded.
|
|
*/
|
|
#ifndef GFILE_NEED_NATIVEFS
|
|
#define GFILE_NEED_NATIVEFS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include ChibiOS BaseFileStream support
|
|
* @details Defaults to FALSE
|
|
* @pre This is only relevant on the ChibiOS operating system.
|
|
* @note Use the @p gfileOpenBaseFileStream() call to open a GFILE based on a
|
|
* BaseFileStream. The BaseFileStream must already be open.
|
|
* @note A GFile of this type cannot be opened by filename. The BaseFileStream
|
|
* must be pre-opened using the operating system.
|
|
*/
|
|
#ifndef GFILE_NEED_CHIBIOSFS
|
|
#define GFILE_NEED_CHIBIOSFS FALSE
|
|
#endif
|
|
/**
|
|
* @brief Include raw memory pointer support
|
|
* @details Defaults to FALSE
|
|
* @note Use the @p gfileOpenMemory() call to open a GFILE based on a
|
|
* memory pointer. The GFILE opened appears to be of unlimited size.
|
|
* @note A GFile of this type cannot be opened by filename.
|
|
*/
|
|
#ifndef GFILE_NEED_MEMFS
|
|
#define GFILE_NEED_MEMFS FALSE
|
|
#endif
|
|
/**
|
|
* @}
|
|
*
|
|
* @name GFILE Optional Parameters
|
|
* @{
|
|
*/
|
|
/**
|
|
* @brief Add floating point support to printg/scang etc.
|
|
*/
|
|
#ifndef GFILE_ALLOW_FLOATS
|
|
#define GFILE_ALLOW_FLOATS
|
|
#endif
|
|
/**
|
|
* @brief Can the device be specified as part of the file name.
|
|
* @note If this is on then a device letter and a vertical bar can be
|
|
* prefixed on a file name to specify that it must be on a
|
|
* specific device.
|
|
*/
|
|
#ifndef GFILE_ALLOW_DEVICESPECIFIC
|
|
#define GFILE_ALLOW_DEVICESPECIFIC FALSE
|
|
#endif
|
|
/**
|
|
* @brief The maximum number of open files
|
|
* @note This count excludes gfileStdIn, gfileStdOut and gfileStdErr
|
|
* (if open by default).
|
|
*/
|
|
#ifndef GFILE_MAX_GFILES
|
|
#define GFILE_MAX_GFILES 3
|
|
#endif
|
|
/** @} */
|
|
|
|
#endif /* _GFILE_OPTIONS_H */
|
|
/** @} */
|