diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-05-13 15:33:52 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-05-13 15:33:52 +0000 |
commit | 95bcaa245004d2556b4b2b4a9327653b17812acb (patch) | |
tree | 3ced050d4c5017ae44bc6657a7f4784c8e1b8f7a /ports/ARM7-AT91SAM7X/sam7x_emac.h | |
parent | 6320aaba73a6a167226135802404e53c39a2ac85 (diff) | |
download | ChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.tar.gz ChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.tar.bz2 ChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@289 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'ports/ARM7-AT91SAM7X/sam7x_emac.h')
-rw-r--r-- | ports/ARM7-AT91SAM7X/sam7x_emac.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ports/ARM7-AT91SAM7X/sam7x_emac.h b/ports/ARM7-AT91SAM7X/sam7x_emac.h index aff071ff6..a6f43a2c8 100644 --- a/ports/ARM7-AT91SAM7X/sam7x_emac.h +++ b/ports/ARM7-AT91SAM7X/sam7x_emac.h @@ -47,8 +47,11 @@ typedef struct { #define W2_R_MULTICAST_MATCH 0x40000000
#define W2_R_BROADCAST_DETECTED 0x80000000
+#define W1_T_BUFFER_MASK 0xFFFFFFFC
+
#define W2_T_LENGTH_MASK 0x000007FF
-#define W2_T_RFU1 0x00003800
+#define W2_T_LOCKED 0x00000800 /* Not an EMAC flag, used by the driver */
+#define W2_T_RFU1 0x00003000
#define W2_T_LAST_BUFFER 0x00004000
#define W2_T_NO_CRC 0x00008000
#define W2_T_RFU2 0x07FF0000
@@ -58,12 +61,19 @@ typedef struct { #define W2_T_WRAP 0x40000000
#define W2_T_USED 0x80000000
+struct MACHeader {
+ uint8_t destination[6];
+ uint8_t source[6];
+ uint8_t ethertype[2];
+};
+
#ifdef __cplusplus
extern "C" {
#endif
void InitEMAC(int prio);
void EMACSetAddress(uint8_t *eaddr);
- bool_t EMACTransmit(uint8_t *hdr, uint8_t *data, size_t size);
+ bool_t EMACTransmit(struct MACHeader *hdr, uint8_t *data, size_t size);
+ bool_t EMACReceive(uint8_t *buf, size_t *sizep);
#ifdef __cplusplus
}
#endif
|