]> git.sur5r.net Git - freertos/blob - Demo/Common/ethernet/lwIP_130/contrib/port/FreeRTOS/ColdFire/fecbd.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / Common / ethernet / lwIP_130 / contrib / port / FreeRTOS / ColdFire / fecbd.h
1 /*\r
2  * File:    fecbd.h\r
3  * Purpose:     \r
4  *\r
5  * Purpose: Provide a simple buffer management driver\r
6  */\r
7 \r
8 #ifndef _FECBD_H_\r
9 #define _FECBD_H_\r
10 \r
11 /********************************************************************/\r
12 \r
13 #define Rx  1\r
14 #define Tx  0\r
15 \r
16 /*\r
17  * Buffer sizes in bytes \r
18  */\r
19 #ifndef RX_BUF_SZ\r
20 #define RX_BUF_SZ  1520 //2048 \r
21 #endif\r
22 #ifndef TX_BUF_SZ\r
23 #define TX_BUF_SZ  1520\r
24 #endif\r
25 \r
26 /* \r
27  * Buffer Descriptor Format \r
28  */\r
29 #pragma options align= packed\r
30 typedef struct\r
31 {\r
32     uint16 status;  /* control and status */\r
33     uint16 length;  /* transfer length */\r
34     uint8  *data;   /* buffer address */\r
35 } FECBD;\r
36 \r
37 /*\r
38  * Bit level definitions for status field of buffer descriptors\r
39  */\r
40 #define TX_BD_R         0x8000\r
41 #define TX_BD_TO1       0x4000\r
42 #define TX_BD_W         0x2000\r
43 #define TX_BD_TO2       0x1000\r
44 #define TX_BD_INTERRUPT 0x1000  /* MCF547x/8x Only */\r
45 #define TX_BD_L         0x0800\r
46 #define TX_BD_TC        0x0400\r
47 #define TX_BD_DEF       0x0200  /* MCF5272 Only */\r
48 #define TX_BD_ABC       0x0200\r
49 #define TX_BD_HB        0x0100  /* MCF5272 Only */\r
50 #define TX_BD_LC        0x0080  /* MCF5272 Only */\r
51 #define TX_BD_RL        0x0040  /* MCF5272 Only */\r
52 #define TX_BD_UN        0x0002  /* MCF5272 Only */\r
53 #define TX_BD_CSL       0x0001  /* MCF5272 Only */\r
54 \r
55 #define RX_BD_E         0x8000\r
56 #define RX_BD_R01       0x4000\r
57 #define RX_BD_W         0x2000\r
58 #define RX_BD_R02       0x1000\r
59 #define RX_BD_INTERRUPT 0x1000  /* MCF547x/8x Only */\r
60 #define RX_BD_L         0x0800\r
61 #define RX_BD_M         0x0100\r
62 #define RX_BD_BC        0x0080\r
63 #define RX_BD_MC        0x0040\r
64 #define RX_BD_LG        0x0020\r
65 #define RX_BD_NO        0x0010\r
66 #define RX_BD_CR        0x0004\r
67 #define RX_BD_OV        0x0002\r
68 #define RX_BD_TR        0x0001\r
69 #define RX_BD_ERROR     (RX_BD_NO | RX_BD_CR | RX_BD_OV | RX_BD_TR)\r
70 \r
71 /*\r
72  * The following defines are provided by the MCF547x/8x \r
73  * DMA API.  These are shown here to show their correlation\r
74  * to the other FEC buffer descriptor status bits\r
75  * \r
76  * #define MCD_FEC_BUF_READY   0x8000\r
77  * #define MCD_FEC_WRAP        0x2000\r
78  * #define MCD_FEC_INTERRUPT   0x1000\r
79  * #define MCD_FEC_END_FRAME   0x0800\r
80  */\r
81 \r
82 /* \r
83  * Functions provided in fec_bd.c \r
84  */\r
85 int     fecbd_init(int, int, int);\r
86 void    fecbd_flush(int);\r
87 void    fecbd_dump( void );\r
88 uint32  fecbd_get_start(int, int);\r
89 FECBD*  fecbd_rx_alloc(int);\r
90 FECBD*  fecbd_tx_alloc(int);\r
91 FECBD*  fecbd_tx_free(int);\r
92 \r
93 /*\r
94  * Error codes\r
95  */\r
96 #define ERR_MALLOC      (-1)\r
97 #define ERR_NBUFALLOC   (-2)\r
98 \r
99 /*******************************************************************/\r
100 \r
101 #endif /* _FECBD_H_ */\r