#ifndef __SMS_CORE_API_H__
#define __SMS_CORE_API_H__
#define pr_fmt(fmt) …
#include <linux/device.h>
#include <linux/list.h>
#include <linux/mm.h>
#include <linux/scatterlist.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/wait.h>
#include <linux/timer.h>
#include <media/media-device.h>
#include <asm/page.h>
#include "smsir.h"
#define SMS_FW_ATSC_DENVER …
#define SMS_FW_CMMB_MING_APP …
#define SMS_FW_CMMB_VEGA_12MHZ …
#define SMS_FW_CMMB_VENICE_12MHZ …
#define SMS_FW_DVBH_RIO …
#define SMS_FW_DVB_NOVA_12MHZ_B0 …
#define SMS_FW_DVB_NOVA_12MHZ …
#define SMS_FW_DVB_RIO …
#define SMS_FW_FM_RADIO …
#define SMS_FW_FM_RADIO_RIO …
#define SMS_FW_DVBT_HCW_55XXX …
#define SMS_FW_ISDBT_HCW_55XXX …
#define SMS_FW_ISDBT_NOVA_12MHZ_B0 …
#define SMS_FW_ISDBT_NOVA_12MHZ …
#define SMS_FW_ISDBT_PELE …
#define SMS_FW_ISDBT_RIO …
#define SMS_FW_DVBT_NOVA_A …
#define SMS_FW_DVBT_NOVA_B …
#define SMS_FW_DVBT_STELLAR …
#define SMS_FW_TDMB_DENVER …
#define SMS_FW_TDMB_NOVA_12MHZ_B0 …
#define SMS_FW_TDMB_NOVA_12MHZ …
#define SMS_PROTOCOL_MAX_RAOUNDTRIP_MS …
#define SMS_ALLOC_ALIGNMENT …
#define SMS_DMA_ALIGNMENT …
#define SMS_ALIGN_ADDRESS(addr) …
#define SMS_DEVICE_FAMILY1 …
#define SMS_DEVICE_FAMILY2 …
#define SMS_ROM_NO_RESPONSE …
#define SMS_DEVICE_NOT_READY …
enum sms_device_type_st { … };
enum sms_power_mode_st { … };
struct smscore_device_t;
struct smscore_client_t;
struct smscore_buffer_t;
hotplug_t;
setmode_t;
detectmode_t;
sendrequest_t;
preload_t;
postload_t;
onresponse_t;
onremove_t;
struct smscore_buffer_t { … };
struct smsdevice_params_t { … };
struct smsclient_params_t { … };
struct smscore_device_t { … };
#define SMS_ANTENNA_GPIO_0 …
#define SMS_ANTENNA_GPIO_1 …
enum sms_bandwidth_mode { … };
#define MSG_HDR_FLAG_SPLIT_MSG …
#define MAX_GPIO_PIN_NUMBER …
#define HIF_TASK …
#define HIF_TASK_SLAVE …
#define HIF_TASK_SLAVE2 …
#define HIF_TASK_SLAVE3 …
#define SMS_HOST_LIB …
#define DVBT_BDA_CONTROL_MSG_ID …
#define SMS_MAX_PAYLOAD_SIZE …
#define SMS_TUNE_TIMEOUT …
enum msg_types { … };
#define SMS_INIT_MSG_EX(ptr, type, src, dst, len) …
#define SMS_INIT_MSG(ptr, type, len) …
enum SMS_DVB3_EVENTS { … };
enum SMS_DEVICE_MODE { … };
struct sms_msg_hdr { … };
struct sms_msg_data { … };
struct sms_msg_data2 { … };
struct sms_msg_data5 { … };
struct sms_data_download { … };
struct sms_version_res { … };
struct sms_firmware { … };
struct sms_stats { … };
struct sms_msg_statistics_info { … };
struct sms_isdbt_layer_stats { … };
struct sms_isdbt_stats { … };
struct sms_isdbt_stats_ex { … };
struct sms_pid_stats_data { … };
struct sms_pid_data { … };
#define CORRECT_STAT_RSSI(_stat) …
#define CORRECT_STAT_BANDWIDTH(_stat) …
#define CORRECT_STAT_TRANSMISSON_MODE(_stat) …
struct sms_tx_stats { … };
struct sms_rx_stats { … };
struct sms_rx_stats_ex { … };
#define SRVM_MAX_PID_FILTERS …
struct sms_stats_dvb { … };
struct sms_stats_dvb_ex { … };
struct sms_srvm_signal_status { … };
struct smscore_config_gpio { … };
char *smscore_translate_msg(enum msg_types msgtype);
extern int smscore_registry_getmode(char *devpath);
extern int smscore_register_hotplug(hotplug_t hotplug);
extern void smscore_unregister_hotplug(hotplug_t hotplug);
extern int smscore_register_device(struct smsdevice_params_t *params,
struct smscore_device_t **coredev,
gfp_t gfp_buf_flags,
void *mdev);
extern void smscore_unregister_device(struct smscore_device_t *coredev);
extern int smscore_start_device(struct smscore_device_t *coredev);
extern int smscore_set_device_mode(struct smscore_device_t *coredev, int mode);
extern int smscore_get_device_mode(struct smscore_device_t *coredev);
extern int smscore_register_client(struct smscore_device_t *coredev,
struct smsclient_params_t *params,
struct smscore_client_t **client);
extern void smscore_unregister_client(struct smscore_client_t *client);
extern int smsclient_sendrequest(struct smscore_client_t *client,
void *buffer, size_t size);
extern void smscore_onresponse(struct smscore_device_t *coredev,
struct smscore_buffer_t *cb);
extern
struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev);
extern void smscore_putbuffer(struct smscore_device_t *coredev,
struct smscore_buffer_t *cb);
int smscore_configure_gpio(struct smscore_device_t *coredev, u32 pin,
struct smscore_config_gpio *pinconfig);
int smscore_set_gpio(struct smscore_device_t *coredev, u32 pin, int level);
extern int smscore_gpio_configure(struct smscore_device_t *coredev, u8 pin_num,
struct smscore_config_gpio *p_gpio_config);
extern int smscore_gpio_set_level(struct smscore_device_t *coredev, u8 pin_num,
u8 new_level);
extern int smscore_gpio_get_level(struct smscore_device_t *coredev, u8 pin_num,
u8 *level);
void smscore_set_board_id(struct smscore_device_t *core, int id);
int smscore_get_board_id(struct smscore_device_t *core);
int smscore_led_state(struct smscore_device_t *core, int led);
#endif