]> git.sur5r.net Git - freertos/blob - Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/fecbd.h
f985782363c4af2d656b4b82086eaa44d2655aaf
[freertos] / Demo / ColdFire_MCF52233_Eclipse / RTOSDemo / webserver / 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 typedef struct\r
30 {\r
31     uint16 status;  /* control and status */\r
32     uint16 length;  /* transfer length */\r
33     uint8  *data;   /* buffer address */\r
34 } FECBD;\r
35 \r
36 /*\r
37  * Bit level definitions for status field of buffer descriptors\r
38  */\r
39 #define TX_BD_R         0x8000\r
40 #define TX_BD_TO1       0x4000\r
41 #define TX_BD_W         0x2000\r
42 #define TX_BD_TO2       0x1000\r
43 #define TX_BD_INTERRUPT 0x1000  /* MCF547x/8x Only */\r
44 #define TX_BD_L         0x0800\r
45 #define TX_BD_TC        0x0400\r
46 #define TX_BD_DEF       0x0200  /* MCF5272 Only */\r
47 #define TX_BD_ABC       0x0200\r
48 #define TX_BD_HB        0x0100  /* MCF5272 Only */\r
49 #define TX_BD_LC        0x0080  /* MCF5272 Only */\r
50 #define TX_BD_RL        0x0040  /* MCF5272 Only */\r
51 #define TX_BD_UN        0x0002  /* MCF5272 Only */\r
52 #define TX_BD_CSL       0x0001  /* MCF5272 Only */\r
53 \r
54 #define RX_BD_E         0x8000\r
55 #define RX_BD_R01       0x4000\r
56 #define RX_BD_W         0x2000\r
57 #define RX_BD_R02       0x1000\r
58 #define RX_BD_INTERRUPT 0x1000  /* MCF547x/8x Only */\r
59 #define RX_BD_L         0x0800\r
60 #define RX_BD_M         0x0100\r
61 #define RX_BD_BC        0x0080\r
62 #define RX_BD_MC        0x0040\r
63 #define RX_BD_LG        0x0020\r
64 #define RX_BD_NO        0x0010\r
65 #define RX_BD_CR        0x0004\r
66 #define RX_BD_OV        0x0002\r
67 #define RX_BD_TR        0x0001\r
68 #define RX_BD_ERROR     (RX_BD_NO | RX_BD_CR | RX_BD_OV | RX_BD_TR)\r
69 \r
70 /*\r
71  * The following defines are provided by the MCF547x/8x\r
72  * DMA API.  These are shown here to show their correlation\r
73  * to the other FEC buffer descriptor status bits\r
74  *\r
75  * #define MCD_FEC_BUF_READY   0x8000\r
76  * #define MCD_FEC_WRAP        0x2000\r
77  * #define MCD_FEC_INTERRUPT   0x1000\r
78  * #define MCD_FEC_END_FRAME   0x0800\r
79  */\r
80 \r
81 /*\r
82  * Functions provided in fec_bd.c\r
83  */\r
84 int     fecbd_init(int, int, int);\r
85 void    fecbd_flush(int);\r
86 void    fecbd_dump( void );\r
87 uint32  fecbd_get_start(int, int);\r
88 FECBD*  fecbd_rx_alloc(int);\r
89 FECBD*  fecbd_tx_alloc(int);\r
90 FECBD*  fecbd_tx_free(int);\r
91 \r
92 /*\r
93  * Error codes\r
94  */\r
95 #define ERR_MALLOC      (-1)\r
96 #define ERR_NBUFALLOC   (-2)\r
97 \r
98 /*******************************************************************/\r
99 \r
100 #endif /* _FECBD_H_ */\r