linux-headers/include/uapi/linux/mcst/mmrm_io.h

98 lines
3.1 KiB
C

/*
*
*/
#ifndef _UAPI_MMRM_IO_H
#define _UAPI_MMRM_IO_H
#define MEM_IVA 0x500
#define MEM_VADD 0x580
#define MEM_ABN 0x600
#define MEM_PCI 0x680
#define DEVICE_MEM_BYTE_SIZE 0x1C00
#define DEVICE_MEM_WORD_SIZE DEVICE_MEM_BYTE_SIZE / 4
#define NONE_TYPE 0
#define CONTROLLER_TYPE 1
#define TERMINAL_TYPE 2
#define MONITOR_TYPE 4
#define MMRM_IOC_MAGIC ('R' << 8)
#define MMRM_IOC_RESET_DEVICE MMRM_IOC_MAGIC | 1
#define MMRM_IOC_INIT_AS_CONTROLLER MMRM_IOC_MAGIC | 2
#define MMRM_IOC_INIT_AS_TERMINAL MMRM_IOC_MAGIC | 3
#define MMRM_IOC_INIT_AS_MONITOR MMRM_IOC_MAGIC | 4
#define MMRM_IOC_HALT_DEVICE MMRM_IOC_MAGIC | 5
#define MMRM_IOC_WRITE_SENT_INFORM MMRM_IOC_MAGIC | 6
#define MMRM_IOC_GET_DESK_RESULT MMRM_IOC_MAGIC | 7
#define MMRM_IOC_GET_RECEIVED_COM MMRM_IOC_MAGIC | 8
#define MMRM_IOC_CNTRL_COM_SENDING MMRM_IOC_MAGIC | 9
#define MMRM_IOC_PRINT_HISTORY MMRM_IOC_MAGIC | 10
#define MMRM_IOC_BUFFER_MEM_CLEAR MMRM_IOC_MAGIC | 11
#define MMRM_IOC_ONE_WORD_WRITING MMRM_IOC_MAGIC | 12
typedef unsigned char mmrm_term_dev_adr_t;
typedef unsigned char mmrm_subadress_t;
typedef unsigned char mmrm_term_trans_t;
typedef unsigned char mmrm_byte_msg_size_t;
typedef unsigned short mmrm_io_word_t;
typedef unsigned short channel_check_word_t;
typedef unsigned char mmrm_channel_msg_size_t;
typedef unsigned char mmrm_cntrl_com_code_t;
#define MIN_TERM_DEV_ADRESS 0
#define MAX_TERM_DEV_ADRESS 31
#define MIN_SUBADRESS 0
#define MAX_SUBADRESS 31
#define MIN_CHANNEL_MSG_SIZE 1
#define MAX_CHANNEL_MSG_SIZE 32
#define TERM_DEV_ADR_POS 0xF800
#define COMMAND_BIT_POS 0x0400
#define SUBADRESS_POS 0x03E0
#define SIZE_CODE_POS 0x001F
#define TERM_DEV_READ 2
#define TERM_DEV_WRITE 1
typedef struct mmrm_cnt_sent_fields {
int fields_number;
mmrm_term_dev_adr_t term_dev_adress;
mmrm_subadress_t subadress;
mmrm_cntrl_com_code_t cntrl_com_code;
} mmrm_cnt_sent_fields_t;
typedef union {
mmrm_byte_msg_size_t byte_msg_size;
mmrm_cntrl_com_code_t cntrl_com_code;
} size_or_code_t;
typedef struct mmrm_received_com_word {
mmrm_term_dev_adr_t term_dev_adress;
mmrm_term_trans_t term_trans_direction;
mmrm_subadress_t subadress;
size_or_code_t size_or_code;
} mmrm_received_com_word_t;
typedef union {
mmrm_io_word_t answer_word;
mmrm_io_word_t command_word;
} high_half_desk_res_t;
typedef struct desk_result {
high_half_desk_res_t high_half_desk_res;
channel_check_word_t channel_check_word;
} desk_result_t;
typedef struct one_word_writing {
unsigned int adress;
unsigned int value;
} one_word_writing_t;
#endif /* !(_UAPI_MMRM_IO_H) */