#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 */
struct wb35_tx {
	/* 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 is greater than 13 */
};

#endif
