Rewrite from scratch a TCP/IP stack for mbed. So far the following parts are usable: Drivers: - EMAC driver (from CMSIS 2.0) Protocols: - Ethernet protocol - ARP over ethernet for IPv4 - IPv4 over Ethernet - ICMPv4 over IPv4 - UDPv4 over IPv4 APIs: - Sockets for UDPv4 The structure of this stack is designed to be very modular. Each protocol can register one or more protocol to handle its payload, and in each protocol, an API can be hooked (like Sockets for example). This is an early release.

Committer:
Benoit
Date:
Sun Jun 26 09:56:31 2011 +0000
Revision:
7:8e12f7357b9f
Parent:
5:3cd83fcb1467
Added IPv4 global broadcast address to processed frames inside IPv4 layer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Benoit 5:3cd83fcb1467 1 /*
Benoit 5:3cd83fcb1467 2 * $Id: Queue.h 26 2011-06-09 10:24:02Z benoit $
Benoit 5:3cd83fcb1467 3 * $Author: benoit $
Benoit 5:3cd83fcb1467 4 * $Date: 2011-06-09 12:24:02 +0200 (jeu., 09 juin 2011) $
Benoit 5:3cd83fcb1467 5 * $Rev: 26 $
Benoit 5:3cd83fcb1467 6 *
Benoit 5:3cd83fcb1467 7 *
Benoit 5:3cd83fcb1467 8 *
Benoit 5:3cd83fcb1467 9 *
Benoit 5:3cd83fcb1467 10 *
Benoit 5:3cd83fcb1467 11 */
Benoit 5:3cd83fcb1467 12
Benoit 5:3cd83fcb1467 13 #ifndef __CQUEUE_H__
Benoit 5:3cd83fcb1467 14 #define __CQUEUE_H__
Benoit 5:3cd83fcb1467 15
Benoit 5:3cd83fcb1467 16
Benoit 5:3cd83fcb1467 17 #include <stdint.h>
Benoit 5:3cd83fcb1467 18 #include "mbedNet.h"
Benoit 5:3cd83fcb1467 19
Benoit 5:3cd83fcb1467 20 struct CQueue
Benoit 5:3cd83fcb1467 21 {
Benoit 5:3cd83fcb1467 22 uint8_t pushIndex,
Benoit 5:3cd83fcb1467 23 popIndex;
Benoit 5:3cd83fcb1467 24 void *entries[QUEUE_MAX_ENTRY_COUNT + 1];
Benoit 5:3cd83fcb1467 25 int16_t size;
Benoit 5:3cd83fcb1467 26 };
Benoit 5:3cd83fcb1467 27 typedef struct CQueue CQueue_t;
Benoit 5:3cd83fcb1467 28
Benoit 5:3cd83fcb1467 29
Benoit 5:3cd83fcb1467 30 CQueue_t *CQueue_Alloc(int16_t size);
Benoit 5:3cd83fcb1467 31 int32_t CQueue_Push(CQueue_t *queue, void *entry);
Benoit 5:3cd83fcb1467 32 int32_t CQueue_Pop(CQueue_t *queue, void **entry);
Benoit 5:3cd83fcb1467 33 int32_t CQueue_Peek(CQueue_t *queue, void **entry);
Benoit 5:3cd83fcb1467 34 int32_t CQueue_Free(CQueue_t *queue);
Benoit 5:3cd83fcb1467 35 Bool_t CQueue_IsEmpty(const CQueue_t *queue);
Benoit 5:3cd83fcb1467 36 Bool_t CQueue_IsFull(const CQueue_t *queue);
Benoit 5:3cd83fcb1467 37
Benoit 5:3cd83fcb1467 38
Benoit 5:3cd83fcb1467 39 #endif /* __QUEUE_H__ */
Benoit 5:3cd83fcb1467 40