git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/stable_2.4.x@3901 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2012-02-01 19:36:43 +00:00
parent f0756d090b
commit f33ccb6a72
1 changed files with 20 additions and 6 deletions

View File

@ -46,10 +46,15 @@
#ifndef _CHFILES_H_
#define _CHFILES_H_
/**
* @brief No error return code.
*/
#define FILE_OK 0
/**
* @brief Error code from the file stream methods.
*/
#define FILE_ERROR 0xFFFFFFFFUL
#define FILE_ERROR 0xFFFFFFFFUL
/**
* @brief File offset type.
@ -70,7 +75,7 @@ typedef uint32_t fileoffset_t;
/* File get current position method.*/ \
fileoffset_t (*getposition)(void *instance); \
/* File seek method.*/ \
fileoffset_t (*lseek)(void *instance, fileoffset_t offset);
uint32_t (*lseek)(void *instance, fileoffset_t offset);
/**
* @brief @p BaseFileStream specific data.
@ -110,6 +115,9 @@ typedef struct {
* @details The function closes a file stream.
*
* @param[in] ip pointer to a @p BaseFileStream or derived class
* @return The operation status.
* @retval FILE_OK no error.
* @retval FILE_ERROR operation failed.
*
* @api
*/
@ -119,38 +127,44 @@ typedef struct {
* @brief Returns an implementation dependent error code.
*
* @param[in] ip pointer to a @p BaseFileStream or derived class
* @return Implementation dependent error code.
*
* @api
*/
#define chFileStreamGetError ((ip)->vmt->geterror(ip))
#define chFileStreamGetError(ip) ((ip)->vmt->geterror(ip))
/**
* @brief Returns the current file size.
*
* @param[in] ip pointer to a @p BaseFileStream or derived class
* @return The file size.
*
* @api
*/
#define chFileStreamGetSize ((ip)->vmt->getposition(ip))
#define chFileStreamGetSize(ip) ((ip)->vmt->getposition(ip))
/**
* @brief Returns the current file pointer position.
*
* @param[in] ip pointer to a @p BaseFileStream or derived class
* @return The current position inside the file.
*
* @api
*/
#define chFileStreamGetPosition ((ip)->vmt->getposition(ip))
#define chFileStreamGetPosition(ip) ((ip)->vmt->getposition(ip))
/**
* @brief Moves the file current pointer to an absolute position.
*
* @param[in] ip pointer to a @p BaseFileStream or derived class
* @param[in] offset new absolute position
* @return The operation status.
* @retval FILE_OK no error.
* @retval FILE_ERROR operation failed.
*
* @api
*/
#define chFileStreamSeek ((ip)->vmt->lseek(ip, offset))
#define chFileStreamSeek(ip) ((ip)->vmt->lseek(ip, offset))
/** @} */
#endif /* _CHFILES_H_ */