title: difference between __u8 and uint8_t
body: <p>can someone explain the difference between the types <code>uint8_t</code> and <code>__u8</code> ?</p>
  
  <p>i know that <code>uint8_t</code> are defined in stdint.h and they are available on every unix system.</p>
  
  <pre><code>/* Unsigned.  */
  typedef unsigned char       uint8_t;
  typedef unsigned short int  uint16_t;
  ...
  </code></pre>
  
  <p>And if i use them its recognizable what i intent to do.</p>
  
  <p>now i stumbled over the <code>__u8</code> and <code>__u16</code> types. its seems for me to be the same.</p>
  
  <p>some of those types are defined in linux/types.h</p>
  
  <pre><code>#ifdef __CHECKER__
  #define __bitwise__ __attribute__((bitwise))
  #else
  #define __bitwise__
  #endif
  #ifdef __CHECK_ENDIAN__
  #define __bitwise __bitwise__
  #else
  #define __bitwise
  #endif
  
  typedef __u16 __bitwise __le16;
  typedef __u16 __bitwise __be16;
  typedef __u32 __bitwise __le32;
  ...
  </code></pre>
  
  <p>i didnt find <code>__u8</code> but i can still use it and it behaves like uint8_t.</p>
  
  <p>is there some difference in performance or memory consumption?</p>
  
  <p>thanks for help :)</p>