Annotation of Gnu-Mach/linux/src/include/asm-i386/byteorder.h, revision 1.1.1.1

1.1       root        1: #ifndef _I386_BYTEORDER_H
                      2: #define _I386_BYTEORDER_H
                      3: 
                      4: #undef ntohl
                      5: #undef ntohs
                      6: #undef htonl
                      7: #undef htons
                      8: 
                      9: #ifndef __LITTLE_ENDIAN
                     10: #define __LITTLE_ENDIAN 1234
                     11: #endif
                     12: 
                     13: #ifndef __LITTLE_ENDIAN_BITFIELD
                     14: #define __LITTLE_ENDIAN_BITFIELD
                     15: #endif
                     16: 
                     17: /* For avoiding bswap on i386 */
                     18: #ifdef __KERNEL__
                     19: #include <linux/config.h>
                     20: #endif
                     21: 
                     22: extern unsigned long int       ntohl(unsigned long int);
                     23: extern unsigned short int      ntohs(unsigned short int);
                     24: extern unsigned long int       htonl(unsigned long int);
                     25: extern unsigned short int      htons(unsigned short int);
                     26: 
                     27: extern __inline__ unsigned long int    __ntohl(unsigned long int);
                     28: extern __inline__ unsigned short int   __ntohs(unsigned short int);
                     29: extern __inline__ unsigned long int    __constant_ntohl(unsigned long int);
                     30: extern __inline__ unsigned short int   __constant_ntohs(unsigned short int);
                     31: 
                     32: extern __inline__ unsigned long int
                     33: __ntohl(unsigned long int x)
                     34: {
                     35: #if defined(__KERNEL__) && !defined(CONFIG_M386)
                     36:        __asm__("bswap %0" : "=r" (x) : "0" (x));
                     37: #else
                     38:        __asm__("xchgb %b0,%h0\n\t"     /* swap lower bytes     */
                     39:                "rorl $16,%0\n\t"       /* swap words           */
                     40:                "xchgb %b0,%h0"         /* swap higher bytes    */
                     41:                :"=q" (x)
                     42:                : "0" (x));
                     43: #endif 
                     44:        return x;
                     45: }
                     46: 
                     47: #define __constant_ntohl(x) \
                     48:        ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
                     49:                             (((unsigned long int)(x) & 0x0000ff00U) <<  8) | \
                     50:                             (((unsigned long int)(x) & 0x00ff0000U) >>  8) | \
                     51:                             (((unsigned long int)(x) & 0xff000000U) >> 24)))
                     52: 
                     53: extern __inline__ unsigned short int
                     54: __ntohs(unsigned short int x)
                     55: {
                     56:        __asm__("xchgb %b0,%h0"         /* swap bytes           */
                     57:                : "=q" (x)
                     58:                :  "0" (x));
                     59:        return x;
                     60: }
                     61: 
                     62: #define __constant_ntohs(x) \
                     63:        ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \
                     64:                              (((unsigned short int)(x) & 0xff00) >> 8))) \
                     65: 
                     66: #define __htonl(x) __ntohl(x)
                     67: #define __htons(x) __ntohs(x)
                     68: #define __constant_htonl(x) __constant_ntohl(x)
                     69: #define __constant_htons(x) __constant_ntohs(x)
                     70: 
                     71: #ifdef  __OPTIMIZE__
                     72: #  define ntohl(x) \
                     73: (__builtin_constant_p((long)(x)) ? \
                     74:  __constant_ntohl((x)) : \
                     75:  __ntohl((x)))
                     76: #  define ntohs(x) \
                     77: (__builtin_constant_p((short)(x)) ? \
                     78:  __constant_ntohs((x)) : \
                     79:  __ntohs((x)))
                     80: #  define htonl(x) \
                     81: (__builtin_constant_p((long)(x)) ? \
                     82:  __constant_htonl((x)) : \
                     83:  __htonl((x)))
                     84: #  define htons(x) \
                     85: (__builtin_constant_p((short)(x)) ? \
                     86:  __constant_htons((x)) : \
                     87:  __htons((x)))
                     88: #endif
                     89: 
                     90: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.