include/linux/patchkey.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     1 /*
       
     2  * <linux/patchkey.h> -- definition of _PATCHKEY macro
       
     3  *
       
     4  * Copyright (C) 2005 Stuart Brady
       
     5  *
       
     6  * This exists because awe_voice.h defined its own _PATCHKEY and it wasn't
       
     7  * clear whether removing this would break anything in userspace.
       
     8  *
       
     9  * Do not include this file directly.  Please use <sys/soundcard.h> instead.
       
    10  * For kernel code, use <linux/soundcard.h>
       
    11  */
       
    12 
       
    13 #ifndef _LINUX_PATCHKEY_H_INDIRECT
       
    14 #error "patchkey.h included directly"
       
    15 #endif
       
    16 
       
    17 #ifndef _LINUX_PATCHKEY_H
       
    18 #define _LINUX_PATCHKEY_H
       
    19 
       
    20 /* Endian macros. */
       
    21 #ifdef __KERNEL__
       
    22 #  include <asm/byteorder.h>
       
    23 #else
       
    24 #  include <endian.h>
       
    25 #endif
       
    26 
       
    27 #if defined(__KERNEL__)
       
    28 #  if defined(__BIG_ENDIAN)
       
    29 #    define _PATCHKEY(id) (0xfd00|id)
       
    30 #  elif defined(__LITTLE_ENDIAN)
       
    31 #    define _PATCHKEY(id) ((id<<8)|0x00fd)
       
    32 #  else
       
    33 #    error "could not determine byte order"
       
    34 #  endif
       
    35 #elif defined(__BYTE_ORDER)
       
    36 #  if __BYTE_ORDER == __BIG_ENDIAN
       
    37 #    define _PATCHKEY(id) (0xfd00|id)
       
    38 #  elif __BYTE_ORDER == __LITTLE_ENDIAN
       
    39 #    define _PATCHKEY(id) ((id<<8)|0x00fd)
       
    40 #  else
       
    41 #    error "could not determine byte order"
       
    42 #  endif
       
    43 #endif
       
    44 
       
    45 #endif /* _LINUX_PATCHKEY_H */