in ff_stdio.c [1804:1975]
int prvFFErrorToErrno( FF_Error_t xError )
{
if( FF_isERR( xError ) == pdFALSE )
{
return 0;
}
/* Store the last +FAT error code received. */
stdioSET_FF_ERROR( xError );
switch( FF_GETERROR( xError ) )
{
/* Global Error Codes. */
case FF_ERR_NONE:
return 0; /* No Error. */
case FF_ERR_NULL_POINTER:
return pdFREERTOS_ERRNO_EBADF; /* pxIOManager was NULL. */
case FF_ERR_NOT_ENOUGH_MEMORY:
return pdFREERTOS_ERRNO_ENOMEM; /* malloc() failed! - Could not allocate handle memory. */
case FF_ERR_DEVICE_DRIVER_FAILED:
return pdFREERTOS_ERRNO_EIO; /* The Block Device driver reported a FATAL error, cannot continue. */
/* User return codes for Rd/Wr functions:. */
case FF_ERR_IOMAN_DRIVER_BUSY:
return pdFREERTOS_ERRNO_EBUSY; /* 10. */
case FF_ERR_IOMAN_DRIVER_FATAL_ERROR:
return pdFREERTOS_ERRNO_EUNATCH; /* Protocol driver not attached. */
/* IOMAN Error Codes. */
case FF_ERR_IOMAN_BAD_BLKSIZE:
return pdFREERTOS_ERRNO_EINVAL; /* The provided blocksize was not a multiple of 512. */
case FF_ERR_IOMAN_BAD_MEMSIZE:
return pdFREERTOS_ERRNO_EINVAL; /* The memory size was not a multiple of the blocksize. */
case FF_ERR_IOMAN_DEV_ALREADY_REGD:
return pdFREERTOS_ERRNO_EADDRINUSE; /* Device was already registered. Use FF_UnRegister() to re-use this IOMAN with another device. */
case FF_ERR_IOMAN_NO_MOUNTABLE_PARTITION:
return pdFREERTOS_ERRNO_ENOMEDIUM; /* A mountable partition could not be found on the device. */
case FF_ERR_IOMAN_INVALID_FORMAT:
return pdFREERTOS_ERRNO_EFTYPE; /* The. */
case FF_ERR_IOMAN_INVALID_PARTITION_NUM:
return pdFREERTOS_ERRNO_EINVAL; /* The partition number provided was out of range. */
case FF_ERR_IOMAN_NOT_FAT_FORMATTED:
return pdFREERTOS_ERRNO_EFTYPE; /* The partition did not look like a FAT partition. */
case FF_ERR_IOMAN_DEV_INVALID_BLKSIZE:
return pdFREERTOS_ERRNO_EINVAL; /* IOMAN object BlkSize is not compatible with the blocksize of this device driver. */
case FF_ERR_IOMAN_PARTITION_MOUNTED:
return pdFREERTOS_ERRNO_EADDRINUSE; /* Device is in use by an actively mounted partition. Unmount the partition first. */
case FF_ERR_IOMAN_ACTIVE_HANDLES:
return pdFREERTOS_ERRNO_EBUSY; /* The partition cannot be unmounted until all active file handles are closed. (There may also be active handles on the cache). */
case FF_ERR_IOMAN_GPT_HEADER_CORRUPT:
return pdFREERTOS_ERRNO_EBADE; /* The GPT partition table appears to be corrupt, refusing to mount. */
case FF_ERR_IOMAN_NOT_ENOUGH_FREE_SPACE:
return pdFREERTOS_ERRNO_ENOSPC; /* 22. */
case FF_ERR_IOMAN_OUT_OF_BOUNDS_READ:
return pdFREERTOS_ERRNO_ESPIPE; /* 23, return 'Illegal seek'. */
case FF_ERR_IOMAN_OUT_OF_BOUNDS_WRITE:
return pdFREERTOS_ERRNO_ESPIPE; /* 24. */
case FF_ERR_IOMAN_DRIVER_NOMEDIUM:
return pdFREERTOS_ERRNO_ENOMEDIUM; /* The medium (e.g. SD-card) has been extracted. */
/* File Error Codes 30 +. */
case FF_ERR_FILE_ALREADY_OPEN:
return pdFREERTOS_ERRNO_EALREADY; /* File is in use. */
case FF_ERR_FILE_NOT_FOUND:
return pdFREERTOS_ERRNO_ENOENT; /* File was not found. */
case FF_ERR_FILE_OBJECT_IS_A_DIR:
return pdFREERTOS_ERRNO_EISDIR; /* Tried to FF_Open() a Directory. */
case FF_ERR_FILE_IS_READ_ONLY:
return pdFREERTOS_ERRNO_EROFS; /* Tried to FF_Open() a file marked read only. */
case FF_ERR_FILE_INVALID_PATH:
return pdFREERTOS_ERRNO_ENOTDIR; /* The path of the file was not found. */
case FF_ERR_FILE_NOT_OPENED_IN_WRITE_MODE:
return pdFREERTOS_ERRNO_EACCES; /* 35. */
case FF_ERR_FILE_NOT_OPENED_IN_READ_MODE:
return pdFREERTOS_ERRNO_EACCES; /* 36. */
case FF_ERR_FILE_EXTEND_FAILED:
return pdFREERTOS_ERRNO_ENOSPC; /* Could not extend the file. */
case FF_ERR_FILE_DESTINATION_EXISTS:
return pdFREERTOS_ERRNO_EEXIST; /* 38. */
case FF_ERR_FILE_SOURCE_NOT_FOUND:
return pdFREERTOS_ERRNO_ENOENT; /* 39. */
case FF_ERR_FILE_DIR_NOT_FOUND:
return pdFREERTOS_ERRNO_ENOENT; /* 40. */
case FF_ERR_FILE_COULD_NOT_CREATE_DIRENT:
return pdFREERTOS_ERRNO_EIO; /* 41. */
case FF_ERR_FILE_BAD_HANDLE:
return pdFREERTOS_ERRNO_EBADF; /* A file handle was invalid. */
case FF_ERR_FILE_MEDIA_REMOVED:
return pdFREERTOS_ERRNO_ENODEV; /* File handle got invalid because media was removed. */
case FF_ERR_FILE_SEEK_INVALID_POSITION:
return pdFREERTOS_ERRNO_ESPIPE; /* Illegal position, outside the file's space */
case FF_ERR_FILE_SEEK_INVALID_ORIGIN:
return pdFREERTOS_ERRNO_EINVAL; /* Seeking beyond end of file. */
/* Directory Error Codes 50 +. */
case FF_ERR_DIR_OBJECT_EXISTS:
return pdFREERTOS_ERRNO_EEXIST; /* A file or folder of the same name already exists in the current directory. */
case FF_ERR_DIR_DIRECTORY_FULL:
return pdFREERTOS_ERRNO_ENOSPC; /* No more items could be added to the directory. */
case FF_ERR_DIR_END_OF_DIR:
return pdFREERTOS_ERRNO_ENMFILE; /*/. */
case FF_ERR_DIR_NOT_EMPTY:
return pdFREERTOS_ERRNO_ENOTEMPTY; /* Cannot delete a directory that contains files or folders. */
case FF_ERR_DIR_INVALID_PATH:
return pdFREERTOS_ERRNO_EINVAL; /* Could not find the directory specified by the path. */
case FF_ERR_DIR_CANT_EXTEND_ROOT_DIR:
return pdFREERTOS_ERRNO_ENOSPC; /* Can't extend the root dir. */
case FF_ERR_DIR_EXTEND_FAILED:
return pdFREERTOS_ERRNO_ENOSPC; /* Not enough space to extend the directory. */
case FF_ERR_DIR_NAME_TOO_LONG:
return pdFREERTOS_ERRNO_ENAMETOOLONG; /* Name exceeds the number of allowed characters for a filename. */
/* Fat Error Codes 70 +. */
case FF_ERR_FAT_NO_FREE_CLUSTERS:
return pdFREERTOS_ERRNO_ENOSPC; /* No more free space is available on the disk. */
/* UNICODE Error Codes 100 +. */
case FF_ERR_UNICODE_INVALID_CODE:
return pdFREERTOS_ERRNO_EBADE; /* An invalid Unicode character was provided!. */
case FF_ERR_UNICODE_DEST_TOO_SMALL:
return pdFREERTOS_ERRNO_ENOBUFS; /* Not enough space in the UTF-16 buffer to encode the entire sequence as UTF-16. */
case FF_ERR_UNICODE_INVALID_SEQUENCE:
return pdFREERTOS_ERRNO_EILSEQ; /* An invalid UTF-16 sequence was encountered. */
case FF_ERR_UNICODE_CONVERSION_EXCEEDED:
return pdFREERTOS_ERRNO_ENAMETOOLONG; /* Filename exceeds MAX long-filename length when converted to UTF-16. */
}
return pdFREERTOS_ERRNO_EFAULT;
}