patchkey.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. #ifndef _LINUX_PATCHKEY_H_INDIRECT
  13. #error "patchkey.h included directly"
  14. #endif
  15. #ifndef _LINUX_PATCHKEY_H
  16. #define _LINUX_PATCHKEY_H
  17. /* Endian macros. */
  18. #ifdef __KERNEL__
  19. # include <asm/byteorder.h>
  20. #else
  21. # include <endian.h>
  22. #endif
  23. #if defined(__KERNEL__)
  24. # if defined(__BIG_ENDIAN)
  25. # define _PATCHKEY(id) (0xfd00|id)
  26. # elif defined(__LITTLE_ENDIAN)
  27. # define _PATCHKEY(id) ((id<<8)|0x00fd)
  28. # else
  29. # error "could not determine byte order"
  30. # endif
  31. #elif defined(__BYTE_ORDER)
  32. # if __BYTE_ORDER == __BIG_ENDIAN
  33. # define _PATCHKEY(id) (0xfd00|id)
  34. # elif __BYTE_ORDER == __LITTLE_ENDIAN
  35. # define _PATCHKEY(id) ((id<<8)|0x00fd)
  36. # else
  37. # error "could not determine byte order"
  38. # endif
  39. #endif
  40. #endif /* _LINUX_PATCHKEY_H */