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