ss928_framework/ss928sdk/include/ot_mcc_usrdev.h
2024-12-16 13:31:45 +08:00

99 lines
2.6 KiB
C
Executable File

/*
Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd.
*/
#include <linux/ioctl.h>
#ifndef OT_MCC_USERDEV_H
#define OT_MCC_USERDEV_H
#define MCC_USR_MODULE_NAME "MCC_USR"
#define MCC_USR_VERSION __DATE__", "__TIME__
#define VENDOR_MAX_MAP_DEV 0x1f
#define NORMAL_MESSAGE_SIZE 128
#define MAXIMAL_MESSAGE_SIZE 0x1000
struct ot_mcc_handle_attr {
int target_id;
int port;
int priority;
/* to store remote device ids */
int remote_id[VENDOR_MAX_MAP_DEV];
};
#define OT_IOC_MCC_BASE 'M'
/* Create a new mcc handle. A file descriptor is only used once for one mcc handle. */
#define OT_MCC_IOC_CONNECT _IOW(OT_IOC_MCC_BASE, 1, struct ot_mcc_handle_attr)
#define OT_MCC_IOC_CHECK _IOW(OT_IOC_MCC_BASE, 2, struct ot_mcc_handle_attr)
#define OT_MCC_IOC_GET_LOCAL_ID _IOW(OT_IOC_MCC_BASE, 4, struct ot_mcc_handle_attr)
#define OT_MCC_IOC_GET_REMOTE_ID _IOW(OT_IOC_MCC_BASE, 5, struct ot_mcc_handle_attr)
#define OT_MCC_IOC_ATTR_INIT _IOW(OT_IOC_MCC_BASE, 6, struct ot_mcc_handle_attr)
#ifdef __KERNEL__
#include <linux/module.h>
#include <linux/kernel.h>
#include <asm/ioctl.h>
#include <linux/wait.h>
#define OT_MCC_DEBUG 4
#define OT_MCC_INFO 3
#define OT_MCC_ERR 2
#define OT_MCC_FATAL 1
#define OT_MCC_DBG_LEVEL 2
#define ot_mcc_trace(level, s, params...) \
do { \
if (level <= OT_MCC_DBG_LEVEL) { \
printk(KERN_INFO "[%s, %d]: " s "\n", __FUNCTION__, __LINE__, ##params); \
} \
} while (0)
struct os_mcc_handle {
td_ulong pci_handle; /* pci handle */
struct list_head mem_list; /* mem list */
wait_queue_head_t wait;
};
typedef struct os_mcc_handle os_mcc_handle_t;
struct os_mcc_handle_opt {
int (*recvfrom_notify)(td_void *handle, td_void *buf, td_u32 data_len);
td_ulong data;
};
typedef struct os_mcc_handle_opt os_mcc_handle_opt_t;
os_mcc_handle_t *os_mcc_open(struct ot_mcc_handle_attr *attr);
void os_mcc_handle_attr_init(struct ot_mcc_handle_attr *attr);
int os_mcc_sendto(os_mcc_handle_t *handle, const td_void *buf, td_u32 len);
int os_mcc_sendto_user(os_mcc_handle_t *handle, const td_void *buf, td_u32 len, td_s32 flag);
int os_mcc_close(os_mcc_handle_t *handle);
int os_mcc_getopt(os_mcc_handle_t *handle, os_mcc_handle_opt_t *opt);
int os_mcc_setopt(os_mcc_handle_t *handle, const os_mcc_handle_opt_t *opt);
int os_mcc_getlocalid(os_mcc_handle_t *handle);
int os_mcc_getremoteids(td_s32 ids[], os_mcc_handle_t *handle);
int os_mcc_check_remote(td_s32 remote_id, os_mcc_handle_t *handle);
int os_mcc_register(td_void);
#endif /* __KERNEL__ */
#endif /* OT_MCC_USERDEV_H */