📄 dev_ep.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: dev_ep.h
** Last modified Date: 2005-04-22
** Last Version: V1.0
** Description:
**
**------------------------------------------------------------------------------------------------------
** Created By: Lishan Zhou
** Created date: 2005-04-22
** Version: V1.0
** Description:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#ifndef _DEV_EP_H
#define _DEV_EP_H
#include "..\chap9.h"
#define venderID( x ) (((x)->dev_descriptor).idVendor)
#define DEFAULT_BUFFER_SIZE 8
#define MAX_DEVICE_NUM (MAX_DEV_INF_MEMRY+2)
#define MAX_ENDPOINT_NUM 16
#define ENDPOINT_BE_FREE 0x1f
#define ENDPOINT_SHARE 0x04
typedef struct epi *endpoint_info_ptr;
typedef struct epi
{
unsigned max_packet_size:10;
unsigned dev_addr:7;
unsigned ep_num:5;
unsigned toggle:1;
unsigned speed:1;
unsigned direction:2;
unsigned tr_type:1;
unsigned transfer_type:3;
std_endpoint_descriptor endpoint_descriptor;
unsigned int endpoint_create_id;
struct transfr *tr_instance_ptr;
}endpoint_info;
typedef struct dev
{
unsigned char address;
unsigned char speed;
std_dev_descriptor dev_descriptor;
std_conf_descriptor conf_descriptor;
std_interface_descriptor interfacef_descriptor;
endpoint_info *epi_ptr[ MAX_ENDPOINT_NUM ];
#ifdef STRING_DESCRIPTOR
unsigned short *string_manufacturer;
unsigned short *string_product;
unsigned short *string_serialNum;
#endif
void *class_instance_ptr;
unsigned char topology_layer;
}device_instance;
device_instance *create_device( unsigned char speed, unsigned char topology_layer );
void dispose_device( device_instance **dvi_ptr_ptr );
void device_list_linitialize( void );
device_instance *find_device( unsigned char address );
unsigned short std_request( unsigned char *buff_ptr, device_instance *dvi_ptr, unsigned short req, unsigned short wValue, unsigned short wIndex, unsigned short *wLength );
device_instance *find_class_interface(unsigned char InterfaceClassID, unsigned char DeviceIndex);
unsigned char check_interface_class_ID( device_instance *dviPtr, unsigned char InterfaceClassID );
unsigned char get_interface_class_ID( device_instance *dviPtr );
unsigned char get_device_class_ID( device_instance *dviPtr );
unsigned char get_interface_protocol_ID( device_instance *dviPtr );
unsigned char check_interface_protocol_ID( device_instance *dviPtr, unsigned char InterfaceProtocolID );
unsigned char check_interface_subclass_ID( device_instance *dviPtr, unsigned char InterfaceSubclassID );
unsigned char get_interface_subclass_ID( device_instance *dviPtr );
device_instance *find_pid_vid( unsigned short VID,unsigned short PID );
endpoint_info * find_endport_type(device_instance *dviPtr, unsigned char endport_type,unsigned char endport_direction,unsigned char index);
endpoint_info * find_endport_number( device_instance *dviPtr,
unsigned char endport_number,
unsigned char endport_direction);
void ini_endpoint_info(void);
void ini_device_instance(void);
endpoint_info * malloc_endpoint_info(void);
unsigned char ClearEndpointSTALL(device_instance *dvi_ptr, endpoint_info *epi_ptr);
#define Get_bInterfaceProtocol(dvi_ptr) dvi_ptr->interfacef_descriptor.bInterfaceProtocol
#define Get_bInterfaceSubClass(dvi_ptr) dvi_ptr->interfacef_descriptor.bInterfaceSubClass
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -