65 lines
1.5 KiB
Go
65 lines
1.5 KiB
Go
package blefs
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var (
|
|
ErrFileNotExists = errors.New("file does not exist")
|
|
ErrFileReadOnly = errors.New("file is read only")
|
|
ErrFileWriteOnly = errors.New("file is write only")
|
|
ErrInvalidOffset = errors.New("invalid file offset")
|
|
ErrOffsetChanged = errors.New("offset has already been changed")
|
|
ErrReadOpen = errors.New("only one file can be opened for reading at a time")
|
|
ErrWriteOpen = errors.New("only one file can be opened for writing at a time")
|
|
ErrNoRemoveRoot = errors.New("refusing to remove root directory")
|
|
)
|
|
|
|
// FSError represents an error returned by BLE FS
|
|
type FSError struct {
|
|
Code int8
|
|
}
|
|
|
|
// Error returns the string associated with the error code
|
|
func (err FSError) Error() string {
|
|
switch err.Code {
|
|
case 0x02:
|
|
return "filesystem error"
|
|
case 0x05:
|
|
return "read-only filesystem"
|
|
case 0x03:
|
|
return "no such file"
|
|
case 0x04:
|
|
return "protocol error"
|
|
case -5:
|
|
return "input/output error"
|
|
case -84:
|
|
return "filesystem is corrupted"
|
|
case -2:
|
|
return "no such directory entry"
|
|
case -17:
|
|
return "entry already exists"
|
|
case -20:
|
|
return "entry is not a directory"
|
|
case -39:
|
|
return "directory is not empty"
|
|
case -9:
|
|
return "bad file number"
|
|
case -27:
|
|
return "file is too large"
|
|
case -22:
|
|
return "invalid parameter"
|
|
case -28:
|
|
return "no space left on device"
|
|
case -12:
|
|
return "no more memory available"
|
|
case -61:
|
|
return "no attr available"
|
|
case -36:
|
|
return "file name is too long"
|
|
default:
|
|
return fmt.Sprintf("unknown error (code %d)", err.Code)
|
|
}
|
|
}
|