📄 data_tr.h
字号:
/*
** Kenobi2 version 1.3
**
** ** This code has been made to check/learn the 1161 functionalities **
** ** Release 25-Feb-2002 **
**
** OKANO, Akifumi
**
** Computing Segment, Semisonductors Div, Philips Japan Ltd.
** akifumi.okano@philips.com
** +81-3-3740-4668
*/
#ifndef _DATA_TR_H
#define _DATA_TR_H
#define CompletionCode_NoEror 0x0
#define CompletionCode_CRC 0x1
#define CompletionCode_BitStuffing 0x2
#define CompletionCode_DataToggleMismatch 0x3
#define CompletionCode_Stall 0x4
#define CompletionCode_DeviceNotResponding 0x5
#define CompletionCode_PIDCheckFailure 0x6
#define CompletionCode_UnexpectedPID 0x7
#define CompletionCode_DataOverrun 0x8
#define CompletionCode_DataUnderrun 0x9
#define CompletionCode_BufferOverrun 0xC
#define CompletionCode_BufferUnderrun 0xD
#define STILL_ACTIVE 0x80
#define Speed_Full 0
#define Speed_Low 1
#define DirectionPID_SETUP 0
#define DirectionPID_OUT 1
#define DirectionPID_IN 2
#define SETUP DirectionPID_SETUP
#define OUT DirectionPID_OUT
#define IN DirectionPID_IN
#define ATL_FULL_RW 0x0
#define ATL_SHORT_READ 0x1
#define ATL_SHORT_WRITE 0x2
#define Format_Async 0
#define Format_Iso 1
#define ATL_idle 0x0
#define ATL_ready 0x1
#define ATL_busy 0x2
#define ATL_done 0x4
#define ATL_abort 0x8
typedef struct PTD_h {
unsigned char byte[ 8 ];
}
PTD_header;
typedef struct PTD_h_p {
unsigned short ActualBytes;
unsigned char CompletionCode;
unsigned char Active;
unsigned char Toggle;
unsigned short MaxPacketSize;
unsigned char EndpointNumber;
unsigned char Last;
unsigned char Speed;
unsigned short TotalBytes;
unsigned char DirectionPID;
unsigned char Format;
unsigned char FunctionAddress;
}
PTD_header_param;
typedef struct atl_mng *ATLD_ptr;
typedef struct atl_mng {
unsigned char *atl_buffer_ptr;
unsigned short size;
unsigned char busy_flag;
unsigned char short_rw;
ATLD_ptr next;
}
ATLD;
ATLD *open_single_PTD_ATLD( PTD_header_param *ptd_param_ptr, unsigned char *data );
void readout_ATLD( unsigned char *data, unsigned short length, ATLD *atldPtr );
int close_ATLD( ATLD *atldPtr );
void link_ATLDs( ATLD *previousATLD, ATLD *currentATLD );
unsigned short ATL_buffer_state_FULL( void );
unsigned short ATL_buffer_state_DONE( void );
unsigned char completion_check_ATLD( PTD_header_param *ptd_param_ptr, ATLD *atldPtr );
int wait_ATLD_done( ATLD *atldPtr, int timeout );
void enable_transfer( void );
void abort_transfer( void );
int is_transfer_enabled( void );
void set_ATLD_base_ptr( ATLD *atldPtr );
ATLD *get_current_ATLD_ptr( void );
int is_DMA_enabled( void );
void write_ATL_buffer( ATLD *atldPtr );
void read_ATL_buffer( ATLD *atldPtr );
#define is_ATLD_ready( x ) ((x)->busy_flag & ATL_ready)
#define is_ATLD_busy( x ) ((x)->busy_flag & ATL_busy )
#define is_ATLD_done( x ) ((x)->busy_flag & ATL_done )
#endif _DATA_TR_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -