Linus Torvalds writes: (Summary) So what those
BLIST defines should do is to use a special type something like
BLIST defines should do is to use a special type something like
typedef unsigned int __bitwise blist_flags_t;
typedef unsigned int __bitwise blist_flags_t;
and now you have _one_ type thanks to that typedef, that is different from all the other bitwise types. That's why things like this work:
That's why things like this work:
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u16 __bitwise __be16;
where __le16 and __be16 are actually different types, even though their underlying _storage_ is the same (a 16-bit unsigned).
typedef unsigned int __bitwise blist_flags_t;
and now you have _one_ type thanks to that typedef, that is different from all the other bitwise types. That's why things like this work:
That's why things like this work:
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u16 __bitwise __be16;
where __le16 and __be16 are actually different types, even though their underlying _storage_ is the same (a 16-bit unsigned).