linux/drivers/media/pci/saa7164/saa7164-types.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *  Driver for the NXP SAA7164 PCIe bridge
 *
 *  Copyright (c) 2010-2015 Steven Toth <[email protected]>
 */

/* TODO: Cleanup and shorten the namespace */

/* Some structures are passed directly to/from the firmware and
 * have strict alignment requirements. This is one of them.
 */
struct tmComResHWDescr {} __attribute__((packed));

/* This is DWORD aligned on windows but I can't find the right
 * gcc syntax to match the binary data from the device.
 * I've manually padded with Reserved[3] bytes to match the hardware,
 * but this could break if GCC decides to pack in a different way.
 */
struct tmComResInterfaceDescr {};

struct tmComResBusDescr {};

enum tmBusType {};

struct tmComResBusInfo {};

struct tmComResInfo {} __attribute__((packed));

enum tmComResCmd {};

struct cmd {};

struct tmDescriptor {};

struct tmComResDescrHeader {} __attribute__((packed));

struct tmComResExtDevDescrHeader {} __attribute__((packed));

struct tmComResGPIO {} __attribute__((packed));

struct tmComResPathDescrHeader {} __attribute__((packed));

/* terminaltype */
enum tmComResTermType {};

struct tmComResAntTermDescrHeader {} __attribute__((packed));

struct tmComResTunerDescrHeader {} __attribute__((packed));

enum tmBufferFlag {};

struct tmBuffer {};

struct tmHWStreamParameters {};

struct tmStreamParameters {};

struct tmComResDMATermDescrHeader {} __attribute__((packed));

/*
 *
 * Description:
 *  This is the transport stream format header.
 *
 * Settings:
 *  bLength                 - The size of this descriptor in bytes.
 *  bDescriptorType         - CS_INTERFACE.
 *  bDescriptorSubtype      - VS_FORMAT_MPEG2TS descriptor subtype.
 *  bFormatIndex            - A non-zero constant that uniquely identifies the
 *                            format.
 *  bDataOffset             - Offset to TSP packet within MPEG-2 TS transport
 *                            stride, in bytes.
 *  bPacketLength           - Length of TSP packet, in bytes (typically 188).
 *  bStrideLength           - Length of MPEG-2 TS transport stride.
 *  guidStrideFormat        - A Globally Unique Identifier indicating the
 *                            format of the stride data (if any). Set to zeros
 *                            if there is no Stride Data, or if the Stride
 *                            Data is to be ignored by the application.
 *
 */
struct tmComResTSFormatDescrHeader {} __attribute__((packed));

/* Encoder related structures */

/* A/V Mux Selector */
struct tmComResSelDescrHeader {} __attribute__((packed));

/* A/V Audio processor definitions */
struct tmComResProcDescrHeader {} __attribute__((packed));

/* Video bitrate control message */
#define EU_VIDEO_BIT_RATE_MODE_CONSTANT
#define EU_VIDEO_BIT_RATE_MODE_VARIABLE_AVERAGE
#define EU_VIDEO_BIT_RATE_MODE_VARIABLE_PEAK
struct tmComResEncVideoBitRate {} __attribute__((packed));

/* Video Encoder Aspect Ratio message */
struct tmComResEncVideoInputAspectRatio {} __attribute__((packed));

/* Video Encoder GOP IBP message */
/* 1. IPPPPPPPPPPPPPP */
/* 2. IBPBPBPBPBPBPBP */
/* 3. IBBPBBPBBPBBP   */
#define SAA7164_ENCODER_DEFAULT_GOP_DIST
#define SAA7164_ENCODER_DEFAULT_GOP_SIZE
struct tmComResEncVideoGopStructure {} __attribute__((packed));

/* Encoder processor definition */
struct tmComResEncoderDescrHeader {} __attribute__((packed));

/* Audio processor definition */
struct tmComResAFeatureDescrHeader {} __attribute__((packed));

/* Audio control messages */
struct tmComResAudioDefaults {} __attribute__((packed));

/* Audio bitrate control message */
struct tmComResEncAudioBitRate {} __attribute__((packed));

/* Tuner / AV Decoder messages */
struct tmComResTunerStandard {} __attribute__((packed));

struct tmComResTunerStandardAuto {} __attribute__((packed));

/* EEPROM definition for PS stream types */
struct tmComResPSFormatDescrHeader {} __attribute__((packed));

/* VBI control structure */
struct tmComResVBIFormatDescrHeader {} __attribute__((packed));

struct tmComResProbeCommit {} __attribute__((packed));

struct tmComResDebugSetLevel {} __attribute__((packed));

struct tmComResDebugGetData {} __attribute__((packed));

struct tmFwInfoStruct {} __attribute__((packed));