mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			fatfs: Update error code mapping
A lot of the error codes in fatfs were mapped incorrectly. This patch revisits the error code mapping to try to correct these mistakespull/6120/head
							parent
							
								
									659bcc3fb3
								
							
						
					
					
						commit
						b548fd8a39
					
				| 
						 | 
					@ -35,39 +35,27 @@
 | 
				
			||||||
static int fat_error_remap(FRESULT res)
 | 
					static int fat_error_remap(FRESULT res)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    switch(res) {
 | 
					    switch(res) {
 | 
				
			||||||
        case FR_OK:                     /* (0) Succeeded */
 | 
					        case FR_OK:                   return 0;           // (0) Succeeded
 | 
				
			||||||
            return 0;                   /* no error */
 | 
					        case FR_DISK_ERR:             return -EIO;        // (1) A hard error occurred in the low level disk I/O layer
 | 
				
			||||||
        case FR_DISK_ERR:               /* (1) A hard error occurred in the low level disk I/O layer */
 | 
					        case FR_INT_ERR:              return -1;          // (2) Assertion failed
 | 
				
			||||||
        case FR_NOT_READY:              /* (3) The physical drive cannot work */
 | 
					        case FR_NOT_READY:            return -EIO;        // (3) The physical drive cannot work
 | 
				
			||||||
            return -EIO;                /* I/O error */
 | 
					        case FR_NO_FILE:              return -ENOENT;     // (4) Could not find the file
 | 
				
			||||||
        case FR_NO_FILE:                /* (4) Could not find the file */
 | 
					        case FR_NO_PATH:              return -ENOTDIR;    // (5) Could not find the path
 | 
				
			||||||
        case FR_NO_PATH:                /* (5) Could not find the path */
 | 
					        case FR_INVALID_NAME:         return -EINVAL;     // (6) The path name format is invalid
 | 
				
			||||||
        case FR_INVALID_NAME:           /* (6) The path name format is invalid */
 | 
					        case FR_DENIED:               return -EACCES;     // (7) Access denied due to prohibited access or directory full
 | 
				
			||||||
        case FR_INVALID_DRIVE:          /* (11) The logical drive number is invalid */
 | 
					        case FR_EXIST:                return -EEXIST;     // (8) Access denied due to prohibited access
 | 
				
			||||||
        case FR_NO_FILESYSTEM:          /* (13) There is no valid FAT volume */
 | 
					        case FR_INVALID_OBJECT:       return -EBADF;      // (9) The file/directory object is invalid
 | 
				
			||||||
            return -ENOENT;             /* No such file or directory */
 | 
					        case FR_WRITE_PROTECTED:      return -EACCES;     // (10) The physical drive is write protected
 | 
				
			||||||
        case FR_DENIED:                 /* (7) Access denied due to prohibited access or directory full */
 | 
					        case FR_INVALID_DRIVE:        return -ENODEV;     // (11) The logical drive number is invalid
 | 
				
			||||||
            return -EACCES;             /* Permission denied */
 | 
					        case FR_NOT_ENABLED:          return -ENODEV;     // (12) The volume has no work area
 | 
				
			||||||
        case FR_EXIST:                  /* (8) Access denied due to prohibited access */
 | 
					        case FR_NO_FILESYSTEM:        return -EINVAL;     // (13) There is no valid FAT volume
 | 
				
			||||||
            return -EEXIST;             /* File exists */
 | 
					        case FR_MKFS_ABORTED:         return -EIO;        // (14) The f_mkfs() aborted due to any problem
 | 
				
			||||||
        case FR_WRITE_PROTECTED:        /* (10) The physical drive is write protected */
 | 
					        case FR_TIMEOUT:              return -ETIMEDOUT;  // (15) Could not get a grant to access the volume within defined period
 | 
				
			||||||
        case FR_LOCKED:                 /* (16) The operation is rejected according to the file sharing policy */
 | 
					        case FR_LOCKED:               return -EBUSY;      // (16) The operation is rejected according to the file sharing policy
 | 
				
			||||||
            return -EACCES;             /* Permission denied */
 | 
					        case FR_NOT_ENOUGH_CORE:      return -ENOMEM;     // (17) LFN working buffer could not be allocated
 | 
				
			||||||
        case FR_INVALID_OBJECT:         /* (9) The file/directory object is invalid */
 | 
					        case FR_TOO_MANY_OPEN_FILES:  return -ENFILE;     // (18) Number of open files > FF_FS_LOCK
 | 
				
			||||||
            return -EFAULT;             /* Bad address */
 | 
					        case FR_INVALID_PARAMETER:    return -EINVAL;     // (19) Given parameter is invalid
 | 
				
			||||||
        case FR_NOT_ENABLED:            /* (12) The volume has no work area */
 | 
					        default:                      return -res;
 | 
				
			||||||
            return -ENXIO;              /* No such device or address */
 | 
					 | 
				
			||||||
        case FR_NOT_ENOUGH_CORE:        /* (17) LFN working buffer could not be allocated */
 | 
					 | 
				
			||||||
            return -ENOMEM;             /* Not enough space */
 | 
					 | 
				
			||||||
        case FR_TOO_MANY_OPEN_FILES:    /* (18) Number of open files > _FS_LOCK */
 | 
					 | 
				
			||||||
            return -ENFILE;             /* Too many open files in system */
 | 
					 | 
				
			||||||
        case FR_INVALID_PARAMETER:      /* (19) Given parameter is invalid */
 | 
					 | 
				
			||||||
            return -ENOEXEC;            /* Exec format error */
 | 
					 | 
				
			||||||
        case FR_INT_ERR:                /* (2) Assertion failed */
 | 
					 | 
				
			||||||
        case FR_MKFS_ABORTED:           /* (14) The f_mkfs() aborted due to any parameter error */
 | 
					 | 
				
			||||||
        case FR_TIMEOUT:                /* (15) Could not get a grant to access the volume within defined period */
 | 
					 | 
				
			||||||
        default:                        /* Bad file number */
 | 
					 | 
				
			||||||
            return -EBADF;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue