[PATCH 035/117] Staging: hv: vmbus: Introduce a function to map the dev_type guid to a name
From: "K. Y. Srinivasan" <kys@microsoft.com>
Date: 2011-07-15 18:03:18
Also in:
lkml
Subsystem:
staging subsystem, the rest · Maintainers:
Greg Kroah-Hartman, Linus Torvalds
To support "human readable" sysfs attribute, introduce a function to map the dev_type guid to a string. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> --- drivers/staging/hv/channel_mgmt.c | 36 ++++++++++++++++++++++++++++++++++++ drivers/staging/hv/hyperv.h | 2 +- 2 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/drivers/staging/hv/channel_mgmt.c b/drivers/staging/hv/channel_mgmt.c
index 11beb41..926bc87 100644
--- a/drivers/staging/hv/channel_mgmt.c
+++ b/drivers/staging/hv/channel_mgmt.c@@ -112,6 +112,42 @@ static const uuid_le }; +static const char *blk_dev_type = "hv_block"; +static const char *net_dev_type = "hv_net"; +static const char *scsi_dev_type = "hv_scsi"; +static const char *mouse_dev_type = "hv_mouse"; +static const char *util_dev_type = "hv_util"; + +/* + * Map the dev_type guid to a human readable string. + * The indices used in this function are based on + * the table defined earlier - supported_device_classes[] + */ +const char *hv_get_devtype_name(const uuid_le *type) +{ + int i; + + for (i = 0; i < MAX_NUM_DEVICE_CLASSES_SUPPORTED; i++) { + if (!memcmp(type, supported_device_classes[i].b, + sizeof(uuid_le))) { + switch (i) { + case 0: + return scsi_dev_type; + case 1: + return net_dev_type; + case 2: + return mouse_dev_type; + case 3: + return blk_dev_type; + } + } + } + /* + * Currently the util driver is used + * to handle all these devices. + */ + return util_dev_type; +} /** * prep_negotiate_resp() - Create default response for Hyper-V Negotiate message
diff --git a/drivers/staging/hv/hyperv.h b/drivers/staging/hv/hyperv.h
index 60ead66..c4a9f38 100644
--- a/drivers/staging/hv/hyperv.h
+++ b/drivers/staging/hv/hyperv.h@@ -942,5 +942,5 @@ extern void prep_negotiate_resp(struct icmsg_hdr *, struct icmsg_negotiate *, u8 *); extern void chn_cb_negotiate(void *); extern struct hyperv_service_callback hv_cb_utils[]; - +const char *hv_get_devtype_name(const uuid_le *type); #endif /* _HYPERV_H */
--
1.7.4.1