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

📄 readme.txt

📁 基于pxa270的linux下smsc9118的网卡驱动源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
	DWORD dwOffset, the byte offset into the Lan address space

			where the register of interest is located.

			dwOffset should be DWORD aligned.

	DWORD dwVal, the value to write to the register of interest

DESCRIPTION:

	This function is used to provide a platform independent

		method of register access. It allows platform code 

		for big endian systems to do byte swapping, if necessary.

	Because this function is very simple, it is recommended that

		it should be implemented as inline or as a macro.

RETURN VALUE: void

************************************************************/

inline void Platform_SetRegDW(

	DWORD dwLanBase,

	DWORD dwOffset,

	DWORD dwVal);

	

/************************************************************

FUNCTION: Platform_GetRegDW

PARAMETERS:

	DWORD dwLanBase, the virtual base address returned by

			Platform_Initialize

	DWORD dwOffset, the byte offset into the Lan address space

			where the register of interest is located.

			dwOffset should be DWORD aligned.

DESCRIPTION:

	This function is used to provide a platform independent

		method of register access. It allows platform code 

		for big endian systems to do byte swapping if necessary.

	Because this function is very simple, it is recommended that

		it should be implemented as inline or as a macro.

RETURN VALUE:

	The DWORD value read from the register of interest;

************************************************************/

inline DWORD Platform_GetRegDW(

	DWORD dwLanBase,

	DWORD dwOffset);

	

/***********************************************************

FUNCTION: Platform_Is16BitMode

PARAMETER:

	platformData, pointer to platform specific data structure

RETURN VALUE:

	TRUE if the platform is configured for 16 bit mode

	FALSE if the platform is configured for 32 bit mode

NOTE: this function is not currently used. 

***********************************************************/

BOOLEAN Platform_Is16BitMode(

	PPLATFORM_DATA platformData);



/************************************************************

FUNCTION: Platform_RequestIRQ

DESCRIPTION:

    Used to request and set up the ISR

PARAMETERS:

	platformData, pointer to platform specific data structure

	dwIrq, 

	  = 0xFFFFFFFF, let this function decide what IRQ to use

	  = any other value is the IRQ requested by the user

	pIsr, pointer to the ISR, to be registered.

	dev_id, pointer to the driver specific structure

	   used when registering the ISR with Linux

RETURN VALUE:

    TRUE if successful

	FALSE is unsuccessful

************************************************************/

BOOLEAN Platform_RequestIRQ(



	PPLATFORM_DATA platformData,

	DWORD dwIrq,

	void (*pIsr)(int irq,void *dev_id,struct pt_regs *regs),

	void *dev_id);



/***********************************************************

FUNCTION: Platform_CurrentIRQ

PARAMETERS:

    platformData, pointer to platform specific data structure

RETURN VALUE:

	The IRQ number actually used by Platform_RequestIRQ

	  This may be different than the requested IRQ

***********************************************************/

DWORD Platform_CurrentIRQ(

	PPLATFORM_DATA platformData);



/**********************************************************

FUNCTION: Platform_FreeIRQ

PARAMETERS:

    platformData, pointer to platform specific data structure

DESCRIPTION:

    uninstalls the ISR installed from Platform_RequestIRQ

**********************************************************/

void Platform_FreeIRQ(

	PPLATFORM_DATA platformData);



/*********************************************************

FUNCTION: Platform_IsValidDmaChannel

PARAMETERS:

	dwDmaCh, the dma channel number to test for validity

DESCRIPTION:

    This function is used to test the validity of the 

    channels request with parameters rx_dma, and tx_dma

RETURN VALUE:

	TRUE if the dma channel may be used

	FALSE if the dma channel may not be used

NOTE: this function does not use PLATFORM_DATA because

    it is called before the driver allocates memory for

    PLATFORM_DATA

*********************************************************/

BOOLEAN Platform_IsValidDmaChannel(DWORD dwDmaCh);



/********************************************************

FUNCTION: Platform_DmaInitialize

PARAMETERS:

    platformData, pointer to the platform specific data structure

	dwDmaCh, the Dma channel to initialize

RETURN VALUE:

	TRUE, on Success

	FALSE, on Failure

********************************************************/

BOOLEAN Platform_DmaInitialize(

	PPLATFORM_DATA platformData,

	DWORD dwDmaCh);



/********************************************************

FUNCTION: Platform_DmaDisable

PARAMETERS:

	platformData, pointer to the platform specific data structure

	dwDmaCh, the Dma channel to disable

RETURN VALUE:

	TRUE on success

	FALSE on failure

********************************************************/

BOOLEAN Platform_DmaDisable(

	PPLATFORM_DATA platformData,

	const DWORD dwDmaCh);



/*******************************************************

FUNCTION: Platform_CacheInvalidate

PARAMETERS:

	platformData, pointer to the platform specific data structure

	pStartAddress, the starting virtual address of the region

	dwLengthInBytes, the length in bytes of the region to invalidate

DESCRIPTION:

	Invalidates a specified memory region if it exists in cache.

	  Does not necessarily write the data back to memory.

*******************************************************/

void Platform_CacheInvalidate(

	PPLATFORM_DATA platformData,

	const void * const pStartAddress,

	const DWORD dwLengthInBytes);



/*******************************************************

FUNCTION: Platform_CachePurge

PARAMETERS:

    platformData, pointer to the platform specific data structure

	pStartAddress, the starting virtual address of the region

	dwLengthInBytes, the length in bytes of the region to purge

DESCRIPTION:

    Writes back data to a specified memory region if it 

      exists in cache.

*******************************************************/

void Platform_CachePurge(

	PPLATFORM_DATA platformData,

	const void * const pStartAddress,

	const DWORD dwLengthInBytes);



/******************************************************

FUNCTION: Platform_RequestDmaChannel

PARAMETERS:

	platformData, pointer to the platform specific data structure

DESCRIPTION:

	If the OS supports Dma Channel allocation then this function

	  will use that support to reserve a dma channel.

	If the OS does not support Dma Channel allocation, or a

	  channel can not be reserved then this function 

	  will return TRANSFER_PIO

RETURN VALUE:

	returns the DMA channel number that has been reserved

	if a channel can not be reserved then return TRANSFER_PIO

******************************************************/

DWORD Platform_RequestDmaChannel(

	PPLATFORM_DATA platformData);



/*****************************************************

FUNCTION: Platform_ReleaseDmaChannel

PARAMETERS:

	platformData, pointer to the platform specific data structure

	dwDmaChannel, the Dma channel number to be released

DESCRIPTION:

	Releases the DMA channel specified by dwDmaChannel,

	  which was previously returned by Platform_RequestDmaChannel

    If the OS supports it this function will notify the OS

	  that the dma channel is free to be used by other devices

******************************************************/

void Platform_ReleaseDmaChannel(

	PPLATFORM_DATA platformData,

	DWORD dwDmaChannel);



/*****************************************************

FUNCTION: Platform_DmaStartXfer

PARAMETERS:

    platformData, pointer to the platform specific data structure

    pDmaXfer, pointer to DMA_XFER structure

	    which describes the requested transfer

DESCRIPTION:

    Begins a new dma transfer,

	Should not be called if another transfer is in progress

RETURN VALUE:

    TRUE if dma has begun the transfer

	FALSE for any error

******************************************************/

BOOLEAN Platform_DmaStartXfer(

	PPLATFORM_DATA platformData,

	const DMA_XFER * const pDmaXfer);



/*******************************************************

FUNCTION: Platform_DmaGetDwCnt

PARAMETERS:

    platformData, pointer to the platform specific data structure

	dwDmaCh, Dma channel number

RETURN VALUE:

    0, if the DMA channel is ready to handle another 

	   request from Platform_DmaStartXfer

   non zero, is the number of DWORDS left for the 

       dma channel to transfer

*******************************************************/

DWORD Platform_DmaGetDwCnt(

	PPLATFORM_DATA platformData,

	const DWORD dwDmaCh);



/******************************************************

FUNCTION: Platform_DmaComplete

PARAMETERS:

    platformData, pointer to platform specific data structure

	dwDmaCh, dma channel number

DESCRIPTION:

	Waits for the specified dma channel to finish 

	transfering data. Upon return the dma channel should

	be ready to handle another request from 

	Platform_DmaStartXfer

	This function should be the same as waiting for 

	Platform_DmaGetDwCnt to return 0

******************************************************/

void Platform_DmaComplete(

	PPLATFORM_DATA platformData,

	const DWORD dwDmaCh);



/*****************************************************

FUNCTION: Platform_GetFlowControlParameters

PARAMETERS:

	platformData, pointer to platform specific data structure

	flowControlParameters, pointer to structure which receives 

	     the flow control parameters.

    useDma, flag which specifies whether to get flow control

         parameters for PIO(FALSE) or DMA(TRUE). 

DESCRIPTION:

	fills the structure pointed to by flowControlParameters,

	with the appropriate flow control parameters for the 

	current combination of ((118/117/112) or (116/115)), 

	(16 or 32 bit mode), and (PIO or DMA).

******************************************************/

void Platform_GetFlowControlParameters(

	PPLATFORM_DATA platformData,

	PFLOW_CONTROL_PARAMETERS flowControlParameters,

	BOOLEAN useDma);

	

/******************************************************

FUNCTION: Platform_WriteFifo

PARAMETERS:

	DWORD dwLanBase, the lan base address

	DWORD * pdwBuf, a pointer to and array of DWORDs to 

		be written to the TX_DATA_FIFO

	DWORD dwDwordCount, the number of DWORDs in the dword

		array pointed to by pdwBuf

DESCRIPTION:

	This function is during PIO transfers to write packet

	data to the TX_DATA_FIFO. This function was made

	platform dependent to allow platforms to perform

	byte swapping on big endian systems, if necessary.

******************************************************/

void Platform_WriteFifo(

	DWORD dwLanBase,

	DWORD * pdwBuf,

	DWORD dwDwordCount);



/******************************************************

FUNCTION: Platform_ReadFifo

PARAMETERS:

	DWORD dwLanBase, the lan base address

	DWORD * pdwBuf, a pointer to and array of DWORDs which 

		will be read from the RX_DATA_FIFO

	DWORD dwDwordCount, the number of DWORDs in the dword

		array pointed to by pdwBuf

DESCRIPTION:

	This function is during PIO transfers to read packet

	data from the RX_DATA_FIFO. This function was made

	platform dependent to allow platforms to perform

	byte swapping on big endian systems, if necessary.

******************************************************/

void Platform_ReadFifo(

	DWORD dwLanBase,

	DWORD * pdwBuf,

	DWORD dwDwordCount);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -