98 lines
3.1 KiB
C
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) */
|
|
|