tspp.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef _TSPP_H_
  2. #define _TSPP_H_
  3. #include <linux/ioctl.h>
  4. #define TSPP_NUM_SYSTEM_KEYS 8
  5. enum tspp_key_parity {
  6. TSPP_KEY_PARITY_EVEN,
  7. TSPP_KEY_PARITY_ODD
  8. };
  9. enum tspp_source {
  10. TSPP_SOURCE_TSIF0,
  11. TSPP_SOURCE_TSIF1,
  12. TSPP_SOURCE_MEM,
  13. TSPP_SOURCE_NONE = -1
  14. };
  15. enum tspp_mode {
  16. TSPP_MODE_DISABLED,
  17. TSPP_MODE_PES,
  18. TSPP_MODE_RAW,
  19. TSPP_MODE_RAW_NO_SUFFIX
  20. };
  21. enum tspp_tsif_mode {
  22. TSPP_TSIF_MODE_LOOPBACK, /* loopback mode */
  23. TSPP_TSIF_MODE_1, /* without sync */
  24. TSPP_TSIF_MODE_2 /* with sync signal */
  25. };
  26. struct tspp_filter {
  27. int pid;
  28. int mask;
  29. enum tspp_mode mode;
  30. unsigned int priority; /* 0 - 15 */
  31. int decrypt;
  32. enum tspp_source source;
  33. };
  34. struct tspp_select_source {
  35. enum tspp_source source;
  36. enum tspp_tsif_mode mode;
  37. int clk_inverse;
  38. int data_inverse;
  39. int sync_inverse;
  40. int enable_inverse;
  41. };
  42. struct tspp_pid {
  43. int pid;
  44. };
  45. struct tspp_key {
  46. enum tspp_key_parity parity;
  47. int lsb;
  48. int msb;
  49. };
  50. struct tspp_iv {
  51. int data[2];
  52. };
  53. struct tspp_system_keys {
  54. int data[TSPP_NUM_SYSTEM_KEYS];
  55. };
  56. struct tspp_buffer {
  57. int size;
  58. };
  59. /* defines for IOCTL functions */
  60. /* read Documentation/ioctl-number.txt */
  61. /* some random number to avoid coinciding with other ioctl numbers */
  62. #define TSPP_IOCTL_BASE 0xAA
  63. #define TSPP_IOCTL_SELECT_SOURCE \
  64. _IOW(TSPP_IOCTL_BASE, 0, struct tspp_select_source)
  65. #define TSPP_IOCTL_ADD_FILTER \
  66. _IOW(TSPP_IOCTL_BASE, 1, struct tspp_filter)
  67. #define TSPP_IOCTL_REMOVE_FILTER \
  68. _IOW(TSPP_IOCTL_BASE, 2, struct tspp_pid)
  69. #define TSPP_IOCTL_SET_KEY \
  70. _IOW(TSPP_IOCTL_BASE, 3, struct tspp_key)
  71. #define TSPP_IOCTL_SET_IV \
  72. _IOW(TSPP_IOCTL_BASE, 4, struct tspp_iv)
  73. #define TSPP_IOCTL_SET_SYSTEM_KEYS \
  74. _IOW(TSPP_IOCTL_BASE, 5, struct tspp_system_keys)
  75. #define TSPP_IOCTL_BUFFER_SIZE \
  76. _IOW(TSPP_IOCTL_BASE, 6, struct tspp_buffer)
  77. #define TSPP_IOCTL_CLOSE_STREAM \
  78. _IO(TSPP_IOCTL_BASE, 7)
  79. #endif /* _TSPP_H_ */