Commit bc717fcb authored by Alex Elder's avatar Alex Elder Committed by Greg Kroah-Hartman

greybus: define gb_operation_status_map()

Define a common function that maps an operation status value to a
Linux negative errno.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent d30df426
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment