]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LPC1768_GCC_Rowley/webserver/EthDev.h
Update header files to include CMSIS files.
[freertos] / Demo / CORTEX_LPC1768_GCC_Rowley / webserver / EthDev.h
1 /*\r
2  * @file:    EthDev.h\r
3  * @purpose: Ethernet Device Definitions\r
4  * @version: V1.10\r
5  * @date:    24. Feb. 2009\r
6  *----------------------------------------------------------------------------\r
7  *\r
8  * Copyright (C) 2009 ARM Limited. All rights reserved.\r
9  *\r
10  * ARM Limited (ARM) is supplying this software for use with Cortex-M3\r
11  * processor based microcontrollers.  This file can be freely distributed\r
12  * within development tools that are supporting such ARM based processors.\r
13  *\r
14  * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
15  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
16  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
17  * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
18  * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
19  *\r
20  */\r
21 \r
22 #ifndef _ETHDEV__H\r
23 #define _ETHDEV__H\r
24 \r
25 #ifndef NULL\r
26  #define NULL   0\r
27 #endif\r
28 \r
29 /*----------------------------------------------------------------------------\r
30   Ethernet Device Defines\r
31  *----------------------------------------------------------------------------*/\r
32 #define EthDev_ADDR_SIZE        6                      /*!< Ethernet Address size in bytes */\r
33 #define EthDev_MTU_SIZE         1514                   /*!< Maximum Transmission Unit      */\r
34 \r
35 \r
36 /*----------------------------------------------------------------------------\r
37   Ethernet Device Configuration and Control Command Defines\r
38  *----------------------------------------------------------------------------*/\r
39 typedef enum {\r
40   EthDev_LINK_DOWN              = 0,                   /*!< Ethernet link not established */\r
41   EthDev_LINK_UP                = 1,                   /*!< Ethernet link established */\r
42 } EthDev_LINK;\r
43 \r
44 typedef enum {\r
45   EthDev_SPEED_10M              = 0,                   /*!< 10.0 Mbps link speed  */\r
46   EthDev_SPEED_100M             = 1,                   /*!< 100.0 Mbps link speed */\r
47   EthDev_SPEED_1000M            = 2,                   /*!< 1.0 Gbps link speed   */\r
48 } EthDev_SPEED;\r
49 \r
50 typedef enum {\r
51   EthDev_DUPLEX_HALF            = 0,                   /*!< Link half duplex */\r
52   EthDev_DUPLEX_FULL            = 1,                   /*!< Link full duplex */\r
53 } EthDev_DUPLEX;\r
54 \r
55 typedef enum {\r
56   EthDev_MODE_AUTO              = 0,\r
57   EthDev_MODE_10M_FULL          = 1,\r
58   EthDev_MODE_10M_HALF          = 2,\r
59   EthDev_MODE_100M_FULL         = 3,\r
60   EthDev_MODE_100M_HALF         = 4,\r
61   EthDev_MODE_1000M_FULL        = 5,\r
62   EthDev_MODE_1000M_HALF        = 6,\r
63 } EthDev_MODE;\r
64 \r
65 typedef struct {\r
66   EthDev_LINK   Link   : 1;\r
67   EthDev_DUPLEX Duplex : 1;\r
68   EthDev_SPEED  Speed  : 2;\r
69 } EthDev_STATUS;\r
70 \r
71 \r
72 /*----------------------------------------------------------------------------\r
73   Ethernet Device IO Block Structure\r
74  *----------------------------------------------------------------------------*/\r
75 typedef struct {\r
76 \r
77    /* Initialized by the user application before call to Init. */\r
78    EthDev_MODE   Mode;\r
79    unsigned char HwAddr[EthDev_ADDR_SIZE];\r
80    void         *(*RxFrame)      (int size);\r
81    void          (*RxFrameReady) (int size);\r
82 \r
83    /* Initialized by Ethernet driver. */\r
84    int           (*Init)       (void);\r
85    int           (*UnInit)     (void);\r
86    int           (*SetMCFilter)(int NumHwAddr, unsigned char *pHwAddr);\r
87    int           (*TxFrame)    (void *pData, int size);\r
88    void          (*Lock)       (void);\r
89    void          (*UnLock)     (void);\r
90    EthDev_STATUS (*LinkChk)    (void);\r
91 } EthDev_IOB;\r
92 \r
93 // prototypes\r
94 portBASE_TYPE   Init_EMAC(void);\r
95 unsigned short  ReadFrameBE_EMAC(void);\r
96 void            CopyToFrame_EMAC(void *Source, unsigned int Size);\r
97 void            CopyFromFrame_EMAC(void *Dest, unsigned short Size);\r
98 void            DummyReadFrame_EMAC(unsigned short Size);\r
99 unsigned short  StartReadFrame(void);\r
100 void            EndReadFrame(void);\r
101 unsigned int    CheckFrameReceived(void);\r
102 void            RequestSend(void);\r
103 unsigned int    Rdy4Tx(void);\r
104 void            DoSend_EMAC(unsigned short FrameSize);\r
105 void                    vEMACWaitForInput( void );\r
106 unsigned int    uiGetEMACRxData( unsigned char *ucBuffer );\r
107 \r
108 \r
109 #endif\r