⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dev_ep.h

📁 ARM读写U盘驱动软件包源程序
💻 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 + -