usbip: tools: add more error codes for usbip request/reply messages
Currently ST_OK and ST_NA are the only values defined to communicate status of a request from a client. Add more error codes to clearly indicate what failed. For example, when client sends request to import a device that isn't export-able, server can send a specific error code to the client. Existing defines are moved to a common header in libsrc to be included in the libusbip_la-usbip_common.o to be used by all the usbip tools. Supporting interface to print error strings is added to the common lib. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8fe8f5821c
commit
f6bcbf2e24
|
@ -66,6 +66,29 @@ const char *usbip_speed_string(int num)
|
|||
return "Unknown Speed";
|
||||
}
|
||||
|
||||
struct op_common_status_string {
|
||||
int num;
|
||||
char *desc;
|
||||
};
|
||||
|
||||
static struct op_common_status_string op_common_status_strings[] = {
|
||||
{ ST_OK, "Request Completed Successfully" },
|
||||
{ ST_NA, "Request Failed" },
|
||||
{ ST_DEV_BUSY, "Device busy (exported)" },
|
||||
{ ST_DEV_ERR, "Device in error state" },
|
||||
{ ST_NODEV, "Device not found" },
|
||||
{ ST_ERROR, "Unexpected response" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
const char *usbip_op_common_status_string(int status)
|
||||
{
|
||||
for (int i = 0; op_common_status_strings[i].desc != NULL; i++)
|
||||
if (op_common_status_strings[i].num == status)
|
||||
return op_common_status_strings[i].desc;
|
||||
|
||||
return "Unknown Op Common Status";
|
||||
}
|
||||
|
||||
#define DBG_UDEV_INTEGER(name)\
|
||||
dbg("%-20s = %x", to_string(name), (int) udev->name)
|
||||
|
|
|
@ -43,6 +43,16 @@
|
|||
#define SYSFS_PATH_MAX 256
|
||||
#define SYSFS_BUS_ID_SIZE 32
|
||||
|
||||
/* Defines for op_code status in server/client op_common PDUs */
|
||||
#define ST_OK 0x00
|
||||
#define ST_NA 0x01
|
||||
/* Device requested for import is not available */
|
||||
#define ST_DEV_BUSY 0x02
|
||||
/* Device requested for import is in error state */
|
||||
#define ST_DEV_ERR 0x03
|
||||
#define ST_NODEV 0x04
|
||||
#define ST_ERROR 0x05
|
||||
|
||||
extern int usbip_use_syslog;
|
||||
extern int usbip_use_stderr;
|
||||
extern int usbip_use_debug ;
|
||||
|
@ -130,6 +140,7 @@ int read_usb_interface(struct usbip_usb_device *udev, int i,
|
|||
|
||||
const char *usbip_speed_string(int num);
|
||||
const char *usbip_status_string(int32_t status);
|
||||
const char *usbip_op_common_status_string(int status);
|
||||
|
||||
int usbip_names_init(char *);
|
||||
void usbip_names_free(void);
|
||||
|
|
|
@ -27,9 +27,7 @@ struct op_common {
|
|||
#define OP_REPLY (0x00 << 8)
|
||||
uint16_t code;
|
||||
|
||||
/* add more error code */
|
||||
#define ST_OK 0x00
|
||||
#define ST_NA 0x01
|
||||
/* status codes defined in usbip_common.h */
|
||||
uint32_t status; /* op_code status (for reply) */
|
||||
|
||||
} __attribute__((packed));
|
||||
|
|
Loading…
Reference in a new issue