forked from Elara6331/itd
		
	Use type switch for syscallErr
This commit is contained in:
		| @@ -11,41 +11,46 @@ func syscallErr(err error) syscall.Errno { | ||||
| 		return 0 | ||||
| 	} | ||||
|  | ||||
| 	switch err { | ||||
| 	case blefs.FSError{0x02}: // filesystem error | ||||
| 	switch err := err.(type) { | ||||
| 	case blefs.FSError: | ||||
| 		switch err.Code { | ||||
| 		case 0x02: // filesystem error | ||||
| 			return syscall.EIO // TODO | ||||
| 	case blefs.FSError{0x05}: // read-only filesystem | ||||
| 		case 0x05: // read-only filesystem | ||||
| 			return syscall.EROFS | ||||
| 	case blefs.FSError{0x03}: // no such file | ||||
| 		case 0x03: // no such file | ||||
| 			return syscall.ENOENT | ||||
| 	case blefs.FSError{0x04}: // protocol error | ||||
| 		case 0x04: // protocol error | ||||
| 			return syscall.EPROTO | ||||
| 	case blefs.FSError{-5}: // input/output error | ||||
| 		case -5: // input/output error | ||||
| 			return syscall.EIO | ||||
| 	case blefs.FSError{-84}: // filesystem is corrupted | ||||
| 		case -84: // filesystem is corrupted | ||||
| 			return syscall.ENOTRECOVERABLE // TODO | ||||
| 	case blefs.FSError{-2}: // no such directory entry | ||||
| 		case -2: // no such directory entry | ||||
| 			return syscall.ENOENT | ||||
| 	case blefs.FSError{-17}: // entry already exists | ||||
| 		case -17: // entry already exists | ||||
| 			return syscall.EEXIST | ||||
| 	case blefs.FSError{-20}: // entry is not a directory | ||||
| 		case -20: // entry is not a directory | ||||
| 			return syscall.ENOTDIR | ||||
| 	case blefs.FSError{-39}: // directory is not empty | ||||
| 		case -39: // directory is not empty | ||||
| 			return syscall.ENOTEMPTY | ||||
| 	case blefs.FSError{-9}: // bad file number | ||||
| 		case -9: // bad file number | ||||
| 			return syscall.EBADF | ||||
| 	case blefs.FSError{-27}: // file is too large | ||||
| 		case -27: // file is too large | ||||
| 			return syscall.EFBIG | ||||
| 	case blefs.FSError{-22}: // invalid parameter | ||||
| 		case -22: // invalid parameter | ||||
| 			return syscall.EINVAL | ||||
| 	case blefs.FSError{-28}: // no space left on device | ||||
| 		case -28: // no space left on device | ||||
| 			return syscall.ENOSPC | ||||
| 	case blefs.FSError{-12}: // no more memory available | ||||
| 		case -12: // no more memory available | ||||
| 			return syscall.ENOMEM | ||||
| 	case blefs.FSError{-61}: // no attr available | ||||
| 		case -61: // no attr available | ||||
| 			return syscall.ENODATA // TODO | ||||
| 	case blefs.FSError{-36}: // file name is too long | ||||
| 		case -36: // file name is too long | ||||
| 			return syscall.ENAMETOOLONG | ||||
| 		} | ||||
| 	default: | ||||
| 		switch err { | ||||
| 		case blefs.ErrFileNotExists: // file does not exist | ||||
| 			return syscall.ENOENT | ||||
| 		case blefs.ErrFileReadOnly: // file is read only | ||||
| @@ -63,6 +68,7 @@ func syscallErr(err error) syscall.Errno { | ||||
| 		case blefs.ErrNoRemoveRoot: // refusing to remove root directory | ||||
| 			return syscall.EPERM | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return syscall.EIO // TODO | ||||
| 	return syscall.EIO | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user