xref: /openbmc/linux/arch/s390/include/asm/schid.h (revision 9ac8d3fb)
1 #ifndef ASM_SCHID_H
2 #define ASM_SCHID_H
3 
4 struct subchannel_id {
5 	__u32 cssid : 8;
6 	__u32 : 4;
7 	__u32 m : 1;
8 	__u32 ssid : 2;
9 	__u32 one : 1;
10 	__u32 sch_no : 16;
11 } __attribute__ ((packed, aligned(4)));
12 
13 #ifdef __KERNEL__
14 #include <linux/string.h>
15 
16 /* Helper function for sane state of pre-allocated subchannel_id. */
17 static inline void
18 init_subchannel_id(struct subchannel_id *schid)
19 {
20 	memset(schid, 0, sizeof(struct subchannel_id));
21 	schid->one = 1;
22 }
23 
24 static inline int
25 schid_equal(struct subchannel_id *schid1, struct subchannel_id *schid2)
26 {
27 	return !memcmp(schid1, schid2, sizeof(struct subchannel_id));
28 }
29 
30 #endif /* __KERNEL__ */
31 
32 #endif /* ASM_SCHID_H */
33