mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 05:48:40 +00:00
greybus: define gb_operation_status_map()
Define a common function that maps an operation status value to a Linux negative errno. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
parent
d30df426ff
commit
bc717fcbf6
2 changed files with 31 additions and 0 deletions
|
@ -287,6 +287,35 @@ static void gb_operation_message_exit(struct gb_message *message)
|
|||
message->buffer_size = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Map an enum gb_operation_status value (which is represted in a
|
||||
* message as a single back a single byte) to an appropriate Linux
|
||||
* negative errno.
|
||||
*/
|
||||
int gb_operation_status_map(u8 status)
|
||||
{
|
||||
switch (status) {
|
||||
case GB_OP_SUCCESS:
|
||||
return 0;
|
||||
case GB_OP_INVALID:
|
||||
return -EINVAL;
|
||||
case GB_OP_NO_MEMORY:
|
||||
return -ENOMEM;
|
||||
case GB_OP_INTERRUPTED:
|
||||
return -EINTR;
|
||||
case GB_OP_RETRY:
|
||||
return -EAGAIN;
|
||||
case GB_OP_PROTOCOL_BAD:
|
||||
return -EPROTONOSUPPORT;
|
||||
case GB_OP_OVERFLOW:
|
||||
return -E2BIG;
|
||||
case GB_OP_TIMEOUT:
|
||||
return -ETIMEDOUT;
|
||||
default:
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a Greybus operation to be sent over the given connection.
|
||||
* The request buffer will big enough for a payload of the given
|
||||
|
|
|
@ -101,6 +101,8 @@ int gb_operation_response_send(struct gb_operation *operation);
|
|||
void gb_operation_cancel(struct gb_operation *operation);
|
||||
int gb_operation_wait(struct gb_operation *operation);
|
||||
|
||||
int gb_operation_status_map(u8 status);
|
||||
|
||||
int gb_operation_init(void);
|
||||
void gb_operation_exit(void);
|
||||
|
||||
|
|
Loading…
Reference in a new issue