📄 sdma_dy4.h
字号:
/* sdma_dy4.h - Header File for SDMA facility on GT-64x60 *//************************************************************************** * * Copyright (c) 2005 Curtiss-Wright Controls, Inc. All rights * reserved. This Source Code is the Property of Curtiss-Wright * Controls, Inc. and can only be used in accordance with Source * Code License Agreement(s) of Curtiss-Wright Controls, Inc. or any * of its subsidiaries. * **************************************************************************//******************************************************************************** (c), Copyright 2001, Marvell International Ltd. ** THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL SEMICONDUCTOR, INC. ** NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT ** OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE ** DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL. ** THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESS, IMPLIED ** OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE. *********************************************************************************//*modification history--------------------01g,06dec05,tis add support for SCP-12401f,28sep05,asu add support for CCA-14901e,01may05,tis add support for CCA_14601d,22nov04,tis add include boardName.h01c,01nov04,tis add support for CCA_14501b,07may02,aak integrate into VME-181 BSP rel 1.001a,26sep01,marvell EV-64260A-BP BSP Version 2.2/1*/#ifndef _SDMA_OS_H #define _SDMA_OS_H/* includes */#include "vxWorks.h"#include "h/drv/dy4/boardName.h"#ifdef VME_182#include "dy4182.h"#endif#ifdef CCA_145#include "cca145.h"#endif#ifdef CCA_146#include "cca146.h"#endif#ifdef CCA_149#include "cca149.h"#endif#ifdef VME_183#include "cwv183.h"#endif#ifdef SCP_124#include "cwcp124.h"#endif#include "sdmaLow_dy4.h"#include "mpscLow_dy4.h"/* defines */#define MAX_DESC_FOR_ONE_PACKET 0x10/* typedefs */typedef struct AllocationStruct{ UINT32 mpscRxAllocNumber[NUMBER_OF_MPSC_PORTS]; UINT32 mpscTxAllocNumber[NUMBER_OF_MPSC_PORTS]; UINT32 ethernetRxAllocNumber [NUMBER_OF_ETHERNET_PORTS][NUMBER_OF_ETHERNET_RX_PRIO]; UINT32 ethernetTxAllocNumber [NUMBER_OF_ETHERNET_PORTS][NUMBER_OF_ETHERNET_TX_PRIO];} ALLOCATION_STRUCT; typedef struct PortAllocStruct{ UINT32 portNumber :4; /* the number of the port */ UINT32 protocolType :3; /* ETHERNET_PROTOCOL or MPSC_PROTOCOL */ UINT32 priority :2; /* the queue priority PRIO0-PRIO3 */ UINT32 numberOfDescriptors ; /* how many descriptors to allocate */ UINT32 bufferSize ; /* the size of the buffer to alocate */ /* allocation for RX_DESCRIPTOR or TX_DESCRIPTOR */ UINT32 rxOrTx :1; } PORT_ALLOCATION_STRUCT;typedef struct TX_PACKET{ UINT32 portNumber :4; /* the number of the port */ UINT32 packetSize :12; /* the size of the packets */ UINT32 appendCrc :1; UINT32 priority :1; UINT32 destHigh :16; UINT32 destLow ; UINT32 srcHigh :16; UINT32 srcLow ; UINT32 pattern ;} TX_PACKET;/* sdma.h API list */STATUS sdmaAllocateDescriptors (ALLOCATION_STRUCT* AllocationStruct);STATUS sdmaAllocateDescriptorsForOnePort ( PORT_ALLOCATION_STRUCT* PortAllocationStruct);STATUS sdmaSendPackets (UINT32 protocolType,UINT32 priority, UINT32 portNumber,UINT32* cmdAddress);STATUS sdmaReleaseRxDesc (RX_DESC* RxDescStruct);void raiseCmdStatus(UINT32* address);void raiseRxCmdStatus(UINT32* address);int sdmaAllocBuffersTxDescriptors(UINT32 portNumber, UINT32 numberOfDescriptors, UINT32 bufferSize);STATUS sdmaTransmitPackets(TX_PACKET packetsDetails, int numberOfPackets);void setTxCommandStatus(UINT32* address,UINT32 value);void changeDefaultRxCmdStatus(UINT32 cmdStatus);#endif /* _SDMA_OS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -