Ryo Iizuka / libMiMic

Dependents:   MbedFileServer_1768MiniDK2 RedWireBridge IssueDebug_gcc MiMicRemoteMCU-for-Mbed ... more

Committer:
nyatla
Date:
Wed Jan 30 03:46:05 2013 +0000
Revision:
0:142ee8b12fef
ported core classes

Who changed what in which revision?

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