1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi Copyright ((c)) NDS Limited 2005-2010 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi P R O P R I E T A R Y & C O N F I D E N T I A L 5*53ee8cc1Swenshuai.xi 6*53ee8cc1Swenshuai.xi The copyright of this code and related documentation together with 7*53ee8cc1Swenshuai.xi any other associated intellectual property rights are vested in 8*53ee8cc1Swenshuai.xi NDS Limited and may not be used except in accordance with the terms 9*53ee8cc1Swenshuai.xi of the licence that you have entered into with NDS Limited. 10*53ee8cc1Swenshuai.xi Use of this material without an express licence from NDS Limited 11*53ee8cc1Swenshuai.xi shall be an infringement of copyright and any other intellectual 12*53ee8cc1Swenshuai.xi property rights that may be incorporated with this material. 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xi P L E A S E N O T E : 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xi This header file has been automatically generated from a source CDI 17*53ee8cc1Swenshuai.xi Specification file in XML format. 18*53ee8cc1Swenshuai.xi */ 19*53ee8cc1Swenshuai.xi /* 20*53ee8cc1Swenshuai.xi CDI Issue 7 21*53ee8cc1Swenshuai.xi */ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi /* 24*53ee8cc1Swenshuai.xi CDI header file for the demux rasp device. 25*53ee8cc1Swenshuai.xi This file is immutable. Do not edit. 26*53ee8cc1Swenshuai.xi */ 27*53ee8cc1Swenshuai.xi 28*53ee8cc1Swenshuai.xi #ifndef __NDS_CDI_RASPDEMUXRASP_H__ 29*53ee8cc1Swenshuai.xi #define __NDS_CDI_RASPDEMUXRASP_H__ 30*53ee8cc1Swenshuai.xi 31*53ee8cc1Swenshuai.xi /* Include the platform-specific IOCTL macros. */ 32*53ee8cc1Swenshuai.xi #include <common_ioctl.h> 33*53ee8cc1Swenshuai.xi #include <rasp_ioctl.h> 34*53ee8cc1Swenshuai.xi #include <cdi_stdint.h> 35*53ee8cc1Swenshuai.xi #include <common.h> 36*53ee8cc1Swenshuai.xi 37*53ee8cc1Swenshuai.xi /* Definitions and types. */ 38*53ee8cc1Swenshuai.xi #ifndef _PTS_DEFINED_ 39*53ee8cc1Swenshuai.xi #define _PTS_DEFINED_ 40*53ee8cc1Swenshuai.xi typedef tag_PTS_do_not_use_in_client PTS; 41*53ee8cc1Swenshuai.xi #endif 42*53ee8cc1Swenshuai.xi 43*53ee8cc1Swenshuai.xi /* Demux RASP notification field definitions. */ 44*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_PAYLOAD_UNIT_START_INDICATOR (0x00000001U) 45*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_CHANGE_ES_TO_NOT_SCRAMBLED (0x00000002U) 46*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_CHANGE_ES_TO_EVEN_SCRAMBLED (0x00000004U) 47*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_CHANGE_ES_TO_ODD_SCRAMBLED (0x00000008U) 48*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_DISCONTINUITY_INDICATOR (0x00000100U) 49*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_RANDOM_ACCESS_INDICATOR (0x00000200U) 50*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_ES_PRIORITY_INDICATOR (0x00000400U) 51*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_PCR_FLAG (0x00000800U) 52*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_OPCR_FLAG (0x00001000U) 53*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_SPLICING_POINT_FLAG (0x00002000U) 54*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_TRANSPORT_PRIVATE_DATA (0x00004000U) 55*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_ADAPTATION_FIELD_EXTENSION_FLAG (0x00008000U) 56*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GENERAL_FIRST_PACKET (0x01000000U) 57*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GENERAL_INTERNAL_TICK (0x02000000U) 58*53ee8cc1Swenshuai.xi /* Obsolete: 59*53ee8cc1Swenshuai.xi The following definitions for DEMUX_RASP_* are obsolete 60*53ee8cc1Swenshuai.xi as of CDI [version 2] Issue 5. 61*53ee8cc1Swenshuai.xi The definitions may be removed in a future version 62*53ee8cc1Swenshuai.xi of the CDI specification and from this header file. 63*53ee8cc1Swenshuai.xi */ 64*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_SECTION_FILTER_MATCH (0x00000020U) 65*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TPID_PACKET_REPLACEMENT (0x00010000U) 66*53ee8cc1Swenshuai.xi 67*53ee8cc1Swenshuai.xi /* Demux RASP Event definitions. */ 68*53ee8cc1Swenshuai.xi #define DEMUX_RASP_EVENT_THRESHOLD_REACHED (0x00000001U) 69*53ee8cc1Swenshuai.xi #define DEMUX_RASP_EVENT_OVERFLOW (0x00000002U) 70*53ee8cc1Swenshuai.xi #define DEMUX_RASP_EVENT_TP_PAYLOAD_THRESHOLD_REACHED (0x00000004U) 71*53ee8cc1Swenshuai.xi #define DEMUX_RASP_EVENT_TP_PAYLOAD_OVERFLOW (0x00000008U) 72*53ee8cc1Swenshuai.xi 73*53ee8cc1Swenshuai.xi /* Capabilities Versions definitions. */ 74*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_V0 (0x00000001U) 75*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_V1 (0x00000002U) 76*53ee8cc1Swenshuai.xi 77*53ee8cc1Swenshuai.xi /* RASP TP Payload PES Notification Fields definitions. */ 78*53ee8cc1Swenshuai.xi #define DEMUX_RASP_PES_PTS (0x00000001U) 79*53ee8cc1Swenshuai.xi 80*53ee8cc1Swenshuai.xi /* RASP Encoding Formats definitions. */ 81*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_ENCODING_FORMAT_MPEG2 (0x00000001U) 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.xi /* MPEG2 ES Encoding Format definitions. */ 84*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_SEQUENCE_START (0x00000001U) 85*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PICTURE_I_START (0x00000010U) 86*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PICTURE_P_START (0x00000020U) 87*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PICTURE_B_START (0x00000040U) 88*53ee8cc1Swenshuai.xi 89*53ee8cc1Swenshuai.xi /* MPEG2 ES Encoding Format definitions. */ 90*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FIELD_TOP (0x01U) 91*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FIELD_BOTTOM (0x02U) 92*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FRAME (0x03U) 93*53ee8cc1Swenshuai.xi 94*53ee8cc1Swenshuai.xi /* Demux Trigger definitions. */ 95*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TRIGGER_BY_TIME (1U) 96*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TRIGGER_BY_RASP_DATA (2U) 97*53ee8cc1Swenshuai.xi 98*53ee8cc1Swenshuai.xi /* DemuxRaspConfiguration structure */ 99*53ee8cc1Swenshuai.xi typedef struct DemuxRaspConfiguration_cdi 100*53ee8cc1Swenshuai.xi { 101*53ee8cc1Swenshuai.xi uint32_t thresholdType; 102*53ee8cc1Swenshuai.xi uint32_t raspDataThreshold; 103*53ee8cc1Swenshuai.xi uint32_t timeThreshold; 104*53ee8cc1Swenshuai.xi uint32_t tpidIndependentEvents; 105*53ee8cc1Swenshuai.xi } DemuxRaspConfiguration; 106*53ee8cc1Swenshuai.xi 107*53ee8cc1Swenshuai.xi /* DemuxRaspTPMask structure */ 108*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPMask_cdi 109*53ee8cc1Swenshuai.xi { 110*53ee8cc1Swenshuai.xi uint32_t tpid; 111*53ee8cc1Swenshuai.xi uint32_t tpMaskID; 112*53ee8cc1Swenshuai.xi uint32_t eventMask; 113*53ee8cc1Swenshuai.xi uint32_t payloadMask; 114*53ee8cc1Swenshuai.xi } DemuxRaspTPMask; 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi /* DemuxRaspTimerTPNumber structure */ 117*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTimerTPNumber_cdi 118*53ee8cc1Swenshuai.xi { 119*53ee8cc1Swenshuai.xi uint32_t time; 120*53ee8cc1Swenshuai.xi uint8_t packetNumber[8]; 121*53ee8cc1Swenshuai.xi } DemuxRaspTimerTPNumber; 122*53ee8cc1Swenshuai.xi 123*53ee8cc1Swenshuai.xi /* DemuxRaspTP structure */ 124*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTP_cdi 125*53ee8cc1Swenshuai.xi { 126*53ee8cc1Swenshuai.xi uint8_t packetNumber[8]; 127*53ee8cc1Swenshuai.xi uint8_t bufferLength; 128*53ee8cc1Swenshuai.xi uint8_t *buffer; 129*53ee8cc1Swenshuai.xi } DemuxRaspTP; 130*53ee8cc1Swenshuai.xi 131*53ee8cc1Swenshuai.xi /* DemuxRaspReplaceTP structure */ 132*53ee8cc1Swenshuai.xi 133*53ee8cc1Swenshuai.xi /* Obsolete: 134*53ee8cc1Swenshuai.xi The following definition for DemuxRaspReplaceTP is obsolete 135*53ee8cc1Swenshuai.xi as of CDI [version 2] Issue 5. 136*53ee8cc1Swenshuai.xi The definition may be removed in a future version of the 137*53ee8cc1Swenshuai.xi CDI specification and from this header file. 138*53ee8cc1Swenshuai.xi */ 139*53ee8cc1Swenshuai.xi typedef struct DemuxRaspReplaceTP_cdi 140*53ee8cc1Swenshuai.xi { 141*53ee8cc1Swenshuai.xi uint32_t tpid; 142*53ee8cc1Swenshuai.xi uint32_t tpReplacerID; 143*53ee8cc1Swenshuai.xi uint8_t fromByte; 144*53ee8cc1Swenshuai.xi uint8_t numBytes; 145*53ee8cc1Swenshuai.xi const void *replaceData; 146*53ee8cc1Swenshuai.xi } DemuxRaspReplaceTP; 147*53ee8cc1Swenshuai.xi 148*53ee8cc1Swenshuai.xi /* DemuxRaspDataBlock structure */ 149*53ee8cc1Swenshuai.xi typedef struct DemuxRaspDataBlock_cdi 150*53ee8cc1Swenshuai.xi { 151*53ee8cc1Swenshuai.xi uint32_t eventDescriptor; 152*53ee8cc1Swenshuai.xi uint32_t tpid; 153*53ee8cc1Swenshuai.xi uint8_t packetNumber[8]; 154*53ee8cc1Swenshuai.xi uint32_t timer; 155*53ee8cc1Swenshuai.xi uint32_t streamClock; 156*53ee8cc1Swenshuai.xi } DemuxRaspDataBlock; 157*53ee8cc1Swenshuai.xi 158*53ee8cc1Swenshuai.xi /* DemuxRaspRead structure */ 159*53ee8cc1Swenshuai.xi typedef struct DemuxRaspRead_cdi 160*53ee8cc1Swenshuai.xi { 161*53ee8cc1Swenshuai.xi uint32_t numDataBlocksToRead; 162*53ee8cc1Swenshuai.xi DemuxRaspDataBlock *dataBlocks; 163*53ee8cc1Swenshuai.xi uint32_t numDataBlocksReturned; 164*53ee8cc1Swenshuai.xi } DemuxRaspRead; 165*53ee8cc1Swenshuai.xi 166*53ee8cc1Swenshuai.xi /* DemuxRaspCapsEx structure */ 167*53ee8cc1Swenshuai.xi typedef struct DemuxRaspCapsEx_cdi 168*53ee8cc1Swenshuai.xi { 169*53ee8cc1Swenshuai.xi uint32_t version; 170*53ee8cc1Swenshuai.xi void *capability; 171*53ee8cc1Swenshuai.xi uint32_t capabilitySize; 172*53ee8cc1Swenshuai.xi } DemuxRaspCapsEx; 173*53ee8cc1Swenshuai.xi 174*53ee8cc1Swenshuai.xi /* Demux RASP features definitions. */ 175*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_EVERY_SLOT_TIME (0x01U) 176*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_STREAM_CLOCK_STAMP (0x02U) 177*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_LOCAL_CLOCK_STAMP (0x04U) 178*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_TRIGGER_BY_RASP_DATA (0x08U) 179*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_TRIGGER_BY_TIME (0x10U) 180*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_GET_TIMER_IN_TICKS (0x20U) 181*53ee8cc1Swenshuai.xi #define DEMUX_RASP_FEATURE_TP_PAYLOAD_INDEXING (0x40U) 182*53ee8cc1Swenshuai.xi 183*53ee8cc1Swenshuai.xi /* Demux RASP capability definitions. */ 184*53ee8cc1Swenshuai.xi 185*53ee8cc1Swenshuai.xi /* Obsolete: 186*53ee8cc1Swenshuai.xi The following definitions for Demux RASP capability (DEMUX_RASP_CAP_*) 187*53ee8cc1Swenshuai.xi are obsolete as of CDI [version 2] Issue 5. 188*53ee8cc1Swenshuai.xi The definition may be removed in a future version of the CDI specification 189*53ee8cc1Swenshuai.xi and from this header file. 190*53ee8cc1Swenshuai.xi */ 191*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_EVERY_SLOT_TIME (DEMUX_RASP_FEATURE_EVERY_SLOT_TIME) 192*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_STREAM_CLOCK_STAMP (DEMUX_RASP_FEATURE_STREAM_CLOCK_STAMP) 193*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_LOCAL_CLOCK_STAMP (DEMUX_RASP_FEATURE_LOCAL_CLOCK_STAMP) 194*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_TRIGGER_BY_RASP_DATA (DEMUX_RASP_FEATURE_TRIGGER_BY_RASP_DATA) 195*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CAP_TRIGGER_BY_TIME (DEMUX_RASP_FEATURE_TRIGGER_BY_TIME) 196*53ee8cc1Swenshuai.xi 197*53ee8cc1Swenshuai.xi /* DemuxRaspCaps structure */ 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi /* Obsolete: 200*53ee8cc1Swenshuai.xi The following definition for DemuxRaspCaps is obsolete 201*53ee8cc1Swenshuai.xi as of CDI [version 2] Issue 5. 202*53ee8cc1Swenshuai.xi The definition may be removed in a future version of the 203*53ee8cc1Swenshuai.xi CDI specification and from this header file. 204*53ee8cc1Swenshuai.xi */ 205*53ee8cc1Swenshuai.xi typedef struct DemuxRaspCaps_cdi 206*53ee8cc1Swenshuai.xi { 207*53ee8cc1Swenshuai.xi uint32_t raspEvents; 208*53ee8cc1Swenshuai.xi uint32_t clockRate; 209*53ee8cc1Swenshuai.xi uint16_t numConnections; 210*53ee8cc1Swenshuai.xi uint16_t numRaspDataBlocks; 211*53ee8cc1Swenshuai.xi uint16_t numTPs; 212*53ee8cc1Swenshuai.xi uint16_t numTPMasks; 213*53ee8cc1Swenshuai.xi uint16_t numTPreplacers; 214*53ee8cc1Swenshuai.xi uint8_t functionalityMask; 215*53ee8cc1Swenshuai.xi } DemuxRaspCaps; 216*53ee8cc1Swenshuai.xi 217*53ee8cc1Swenshuai.xi typedef DemuxRaspCaps DemuxRaspCapsV0; 218*53ee8cc1Swenshuai.xi 219*53ee8cc1Swenshuai.xi /* DemuxRaspCapsV1 structure */ 220*53ee8cc1Swenshuai.xi typedef struct DemuxRaspCapsV1_cdi 221*53ee8cc1Swenshuai.xi { 222*53ee8cc1Swenshuai.xi uint32_t raspEvents; 223*53ee8cc1Swenshuai.xi uint32_t clockRate; 224*53ee8cc1Swenshuai.xi uint16_t numConnections; 225*53ee8cc1Swenshuai.xi uint16_t numRaspDataBlocks; 226*53ee8cc1Swenshuai.xi uint16_t numTPs; 227*53ee8cc1Swenshuai.xi uint16_t numTPMasks; 228*53ee8cc1Swenshuai.xi uint8_t features; 229*53ee8cc1Swenshuai.xi } DemuxRaspCapsV1; 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xi /* TP Payload Data Block Version definitions. */ 232*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_DATABLOCK_V0 (0x00000001U) 233*53ee8cc1Swenshuai.xi 234*53ee8cc1Swenshuai.xi /* RASP TP Payload Feature Definitions definitions. */ 235*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_FEATURE_LOCAL_CLOCK_STAMP (0x00000001U) 236*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_FEATURE_TRIGGER_BY_RASP_DATA (0x00000002U) 237*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_FEATURE_TRIGGER_BY_TIME (0x00000004U) 238*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_FEATURE_ES_MPEG2_FRAME_FIELD (0x00000008U) 239*53ee8cc1Swenshuai.xi 240*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadCaps structure */ 241*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadCaps_cdi 242*53ee8cc1Swenshuai.xi { 243*53ee8cc1Swenshuai.xi uint32_t features; 244*53ee8cc1Swenshuai.xi uint32_t pesEvents; 245*53ee8cc1Swenshuai.xi uint32_t esEncodingFormats; 246*53ee8cc1Swenshuai.xi uint16_t numRaspTPPayloadDataBlocks; 247*53ee8cc1Swenshuai.xi uint16_t numTPPayloadMasks; 248*53ee8cc1Swenshuai.xi uint8_t tpPayloadDataBlockVersion; 249*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadCaps; 250*53ee8cc1Swenshuai.xi 251*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadESCaps structure */ 252*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadESCaps_cdi 253*53ee8cc1Swenshuai.xi { 254*53ee8cc1Swenshuai.xi uint32_t esEncodingFormat; 255*53ee8cc1Swenshuai.xi uint32_t esEvents; 256*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadESCaps; 257*53ee8cc1Swenshuai.xi 258*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadConfiguration structure */ 259*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadConfiguration_cdi 260*53ee8cc1Swenshuai.xi { 261*53ee8cc1Swenshuai.xi uint32_t thresholdType; 262*53ee8cc1Swenshuai.xi uint32_t raspDataThreshold; 263*53ee8cc1Swenshuai.xi uint32_t timeThreshold; 264*53ee8cc1Swenshuai.xi uint32_t tpidIndependentEvents; 265*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadConfiguration; 266*53ee8cc1Swenshuai.xi 267*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadMask structure */ 268*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadMask_cdi 269*53ee8cc1Swenshuai.xi { 270*53ee8cc1Swenshuai.xi uint32_t tpid; 271*53ee8cc1Swenshuai.xi uint32_t tpPayloadMaskID; 272*53ee8cc1Swenshuai.xi uint32_t pesEventMask; 273*53ee8cc1Swenshuai.xi uint32_t esEncodingFormat; 274*53ee8cc1Swenshuai.xi uint32_t esEventMask; 275*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadMask; 276*53ee8cc1Swenshuai.xi 277*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadDataBlockV0 structure */ 278*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadDataBlockV0_cdi 279*53ee8cc1Swenshuai.xi { 280*53ee8cc1Swenshuai.xi uint32_t pesEventDescriptor; 281*53ee8cc1Swenshuai.xi uint32_t esEventDescriptor; 282*53ee8cc1Swenshuai.xi uint32_t tpid; 283*53ee8cc1Swenshuai.xi uint8_t packetNumber[8]; 284*53ee8cc1Swenshuai.xi uint32_t timer; 285*53ee8cc1Swenshuai.xi PTS pts; 286*53ee8cc1Swenshuai.xi uint8_t pictureType; 287*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadDataBlockV0; 288*53ee8cc1Swenshuai.xi 289*53ee8cc1Swenshuai.xi /* DemuxRaspTPPayloadRead structure */ 290*53ee8cc1Swenshuai.xi typedef struct DemuxRaspTPPayloadRead_cdi 291*53ee8cc1Swenshuai.xi { 292*53ee8cc1Swenshuai.xi uint32_t numDataBlocksToRead; 293*53ee8cc1Swenshuai.xi void *dataBlocks; 294*53ee8cc1Swenshuai.xi uint32_t numDataBlocksReturned; 295*53ee8cc1Swenshuai.xi } DemuxRaspTPPayloadRead; 296*53ee8cc1Swenshuai.xi 297*53ee8cc1Swenshuai.xi 298*53ee8cc1Swenshuai.xi /* IOCTL functions. */ 299*53ee8cc1Swenshuai.xi 300*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 301*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_SUBSCRIBE_EVENTS, 302*53ee8cc1Swenshuai.xi int eventMask); 303*53ee8cc1Swenshuai.xi */ 304*53ee8cc1Swenshuai.xi #define DEMUX_RASP_SUBSCRIBE_EVENTS (int)CDI_IOW_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+0U)) 305*53ee8cc1Swenshuai.xi 306*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 307*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_EVENTS, 308*53ee8cc1Swenshuai.xi int *events); 309*53ee8cc1Swenshuai.xi */ 310*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_EVENTS (int)CDI_IOR_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+1U)) 311*53ee8cc1Swenshuai.xi 312*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 313*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_CONNECTION_IDS, 314*53ee8cc1Swenshuai.xi int *remuxIds); 315*53ee8cc1Swenshuai.xi */ 316*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_CONNECTION_IDS (int)CDI_IOR_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+2U)) 317*53ee8cc1Swenshuai.xi 318*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 319*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_START); 320*53ee8cc1Swenshuai.xi */ 321*53ee8cc1Swenshuai.xi #define DEMUX_RASP_START (int)CDI_IO(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+3U)) 322*53ee8cc1Swenshuai.xi 323*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 324*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_STOP); 325*53ee8cc1Swenshuai.xi */ 326*53ee8cc1Swenshuai.xi #define DEMUX_RASP_STOP (int)CDI_IO(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+4U)) 327*53ee8cc1Swenshuai.xi 328*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 329*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_CAPS, 330*53ee8cc1Swenshuai.xi DemuxRaspCaps *caps); 331*53ee8cc1Swenshuai.xi */ 332*53ee8cc1Swenshuai.xi 333*53ee8cc1Swenshuai.xi /* Obsolete: 334*53ee8cc1Swenshuai.xi The following definition for ioctl DEMUX_RASP_GET_CAPS 335*53ee8cc1Swenshuai.xi is obsolete as of CDI [version 2] Issue 5. 336*53ee8cc1Swenshuai.xi The definition may be removed in a future version of the CDI specification 337*53ee8cc1Swenshuai.xi and from this header file. 338*53ee8cc1Swenshuai.xi */ 339*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_CAPS (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+5U), DemuxRaspCaps) 340*53ee8cc1Swenshuai.xi 341*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 342*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_ATTACH_REMUX, 343*53ee8cc1Swenshuai.xi int remuxId); 344*53ee8cc1Swenshuai.xi */ 345*53ee8cc1Swenshuai.xi #define DEMUX_RASP_ATTACH_REMUX (int)CDI_IOW_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+6U)) 346*53ee8cc1Swenshuai.xi 347*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 348*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_CONFIGURE, 349*53ee8cc1Swenshuai.xi DemuxRaspConfiguration *params); 350*53ee8cc1Swenshuai.xi */ 351*53ee8cc1Swenshuai.xi #define DEMUX_RASP_CONFIGURE (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+7U), DemuxRaspConfiguration) 352*53ee8cc1Swenshuai.xi 353*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 354*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_SET_TP_MASK, 355*53ee8cc1Swenshuai.xi DemuxRaspTPMask *params); 356*53ee8cc1Swenshuai.xi */ 357*53ee8cc1Swenshuai.xi #define DEMUX_RASP_SET_TP_MASK (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+8U), DemuxRaspTPMask) 358*53ee8cc1Swenshuai.xi 359*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 360*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_TIMER_AND_TP_NUMBER, 361*53ee8cc1Swenshuai.xi DemuxRaspTimerTPNumber *params); 362*53ee8cc1Swenshuai.xi */ 363*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_TIMER_AND_TP_NUMBER (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+9U), DemuxRaspTimerTPNumber) 364*53ee8cc1Swenshuai.xi 365*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 366*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_TP, 367*53ee8cc1Swenshuai.xi DemuxRaspTP *params); 368*53ee8cc1Swenshuai.xi */ 369*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_TP (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+10U), DemuxRaspTP) 370*53ee8cc1Swenshuai.xi 371*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 372*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_REPLACE_TP, 373*53ee8cc1Swenshuai.xi DemuxRaspReplaceTP *params); 374*53ee8cc1Swenshuai.xi */ 375*53ee8cc1Swenshuai.xi 376*53ee8cc1Swenshuai.xi /* Obsolete: 377*53ee8cc1Swenshuai.xi The following definition for ioctl DEMUX_RASP_REPLACE_TP 378*53ee8cc1Swenshuai.xi is obsolete as of CDI [version 2] Issue 5. 379*53ee8cc1Swenshuai.xi The definition may be removed in a future version of the CDI specification 380*53ee8cc1Swenshuai.xi and from this header file. 381*53ee8cc1Swenshuai.xi */ 382*53ee8cc1Swenshuai.xi #define DEMUX_RASP_REPLACE_TP (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+11U), DemuxRaspReplaceTP) 383*53ee8cc1Swenshuai.xi 384*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 385*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_READ, 386*53ee8cc1Swenshuai.xi DemuxRaspRead *arg); 387*53ee8cc1Swenshuai.xi */ 388*53ee8cc1Swenshuai.xi #define DEMUX_RASP_READ (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+12U), DemuxRaspRead) 389*53ee8cc1Swenshuai.xi 390*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 391*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_CAPS_EX_VERSIONS, 392*53ee8cc1Swenshuai.xi uint32_t *versions); 393*53ee8cc1Swenshuai.xi */ 394*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_CAPS_EX_VERSIONS (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+13U), uint32_t) 395*53ee8cc1Swenshuai.xi 396*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 397*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_CAPS_EX, 398*53ee8cc1Swenshuai.xi DemuxRaspCapsEx *arg); 399*53ee8cc1Swenshuai.xi */ 400*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_CAPS_EX (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+14U), DemuxRaspCapsEx) 401*53ee8cc1Swenshuai.xi 402*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 403*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_TP_PAYLOAD_CAPS, 404*53ee8cc1Swenshuai.xi DemuxRaspTPPayloadCaps *params); 405*53ee8cc1Swenshuai.xi */ 406*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_TP_PAYLOAD_CAPS (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+15U), DemuxRaspTPPayloadCaps) 407*53ee8cc1Swenshuai.xi 408*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 409*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_GET_TP_PAYLOAD_ES_CAPS, 410*53ee8cc1Swenshuai.xi DemuxRaspTPPayloadESCaps *params); 411*53ee8cc1Swenshuai.xi */ 412*53ee8cc1Swenshuai.xi #define DEMUX_RASP_GET_TP_PAYLOAD_ES_CAPS (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+16U), DemuxRaspTPPayloadESCaps) 413*53ee8cc1Swenshuai.xi 414*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 415*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_TP_PAYLOAD_CONFIGURE, 416*53ee8cc1Swenshuai.xi DemuxRaspTPPayloadConfiguration *params); 417*53ee8cc1Swenshuai.xi */ 418*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_CONFIGURE (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+17U), DemuxRaspTPPayloadConfiguration) 419*53ee8cc1Swenshuai.xi 420*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 421*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_TP_PAYLOAD_SET_MASK, 422*53ee8cc1Swenshuai.xi DemuxRaspTPPayloadMask *params); 423*53ee8cc1Swenshuai.xi */ 424*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_SET_MASK (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+18U), DemuxRaspTPPayloadMask) 425*53ee8cc1Swenshuai.xi 426*53ee8cc1Swenshuai.xi /* int ioctl(int fd, 427*53ee8cc1Swenshuai.xi int request == DEMUX_RASP_TP_PAYLOAD_READ, 428*53ee8cc1Swenshuai.xi DemuxRaspTPPayloadRead *arg); 429*53ee8cc1Swenshuai.xi */ 430*53ee8cc1Swenshuai.xi #define DEMUX_RASP_TP_PAYLOAD_READ (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+19U), DemuxRaspTPPayloadRead) 431*53ee8cc1Swenshuai.xi 432*53ee8cc1Swenshuai.xi #endif 433*53ee8cc1Swenshuai.xi /* End of File. */ 434