#ifndef __WINBOND_WB35_TX_S_H
#define __WINBOND_WB35_TX_S_H

#include "mds_s.h"

//====================================
// IS89C35 Tx related definition
//====================================
#define TX_INTERFACE			0	// Interface 1
#define TX_PIPE					3	// endpoint 4
#define TX_INTERRUPT			1	// endpoint 2
#define MAX_INTERRUPT_LENGTH	64	// It must be 64 for EP2 hardware



//====================================
// Internal variable for module
//====================================


typedef struct _WB35TX
{
	// For Tx buffer
	u8	TxBuffer[ MAX_USB_TX_BUFFER_NUMBER ][ MAX_USB_TX_BUFFER ];

	// For Interrupt pipe
	u8	EP2_buf[MAX_INTERRUPT_LENGTH];

	atomic_t	TxResultCount;// For thread control of EP2 931130.4.m
	atomic_t	TxFireCounter;// For thread control of EP4 931130.4.n
	u32			ByteTransfer;

	u32	    TxSendIndex;// The next index of Mds array to be sent
	u32	    EP2vm_state; // for EP2vm state
	u32	    EP4vm_state; // for EP4vm state
	u32	    tx_halt; // Stopping VM

	struct urb *				Tx4Urb;
	struct urb *				Tx2Urb;

	int		EP2VM_status;
	int		EP4VM_status;

	u32	TxFillCount; // 20060928
	u32	TxTimer; // 20060928 Add if sending packet not great than 13

} WB35TX, *PWB35TX;

#endif
