]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - include/linux/patchkey.h
Merge branch 'upstream' into for-linus
[karo-tx-linux.git] / include / linux / patchkey.h
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 #else
36 #if defined(__BYTE_ORDER)
37 #  if __BYTE_ORDER == __BIG_ENDIAN
38 #    define _PATCHKEY(id) (0xfd00|id)
39 #  elif __BYTE_ORDER == __LITTLE_ENDIAN
40 #    define _PATCHKEY(id) ((id<<8)|0x00fd)
41 #  else
42 #    error "could not determine byte order"
43 #  endif
44 #endif
45 #endif
46
47 #endif /* _LINUX_PATCHKEY_H */