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 */ 46