From 06e686eaab344b1d38125e49abeb31a416428201 Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Fri, 1 Apr 2016 13:42:04 +0200 Subject: s390x/css: introduce property type for device ids Let's introduce a CssDevId to handle device ids of the xx.x.xxxx type used for channel devices. This has some benefits: - We can use them in virtio-ccw and split the validity checks for a channel device id in general from the constraint checking within the virtio-ccw scope. - We can reuse the device id type for future non-virtio channel devices. While we're at it, improve the validity checks and disallow e.g. trailing characters. Suggested-by: Dong Jia Shi Acked-by: David Hildenbrand Reviewed-by: Dong Jia Shi Signed-off-by: Cornelia Huck --- include/hw/s390x/css.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'include/hw') diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h index 98b2e2cc79..38f4d77779 100644 --- a/include/hw/s390x/css.h +++ b/include/hw/s390x/css.h @@ -151,5 +151,22 @@ int css_do_rsch(SubchDev *sch); int css_do_rchp(uint8_t cssid, uint8_t chpid); bool css_present(uint8_t cssid); #endif +/* + * Identify a device within the channel subsystem. + * Note that this can be used to identify either the subchannel or + * the attached I/O device, as there's always one I/O device per + * subchannel. + */ +typedef struct CssDevId { + uint8_t cssid; + uint8_t ssid; + uint16_t devid; + bool valid; +} CssDevId; + +extern PropertyInfo css_devid_propinfo; + +#define DEFINE_PROP_CSS_DEV_ID(_n, _s, _f) \ + DEFINE_PROP(_n, _s, _f, css_devid_propinfo, CssDevId) #endif -- cgit v1.2.3