Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
include/pico_constants.h@1:cfe8984a32b4, 2013-05-17 (annotated)
- Committer:
- tass
- Date:
- Fri May 17 12:09:59 2013 +0000
- Revision:
- 1:cfe8984a32b4
- Parent:
- libraries/picotcp/include/pico_constants.h@0:d7f2341ab245
Update for smaller SOCKETQ
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daniele | 0:d7f2341ab245 | 1 | /********************************************************************* |
daniele | 0:d7f2341ab245 | 2 | PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. |
daniele | 0:d7f2341ab245 | 3 | See LICENSE and COPYING for usage. |
daniele | 0:d7f2341ab245 | 4 | |
daniele | 0:d7f2341ab245 | 5 | *********************************************************************/ |
daniele | 0:d7f2341ab245 | 6 | #ifndef _INCLUDE_PICO_CONST |
daniele | 0:d7f2341ab245 | 7 | #define _INCLUDE_PICO_CONST |
daniele | 0:d7f2341ab245 | 8 | /* Included from pico_config.h */ |
daniele | 0:d7f2341ab245 | 9 | /** Endian-dependant constants **/ |
daniele | 0:d7f2341ab245 | 10 | |
daniele | 0:d7f2341ab245 | 11 | extern volatile unsigned long pico_tick; |
daniele | 0:d7f2341ab245 | 12 | |
daniele | 0:d7f2341ab245 | 13 | #ifdef PICO_BIGENDIAN |
daniele | 0:d7f2341ab245 | 14 | |
daniele | 0:d7f2341ab245 | 15 | # define PICO_IDETH_IPV4 0x0800 |
daniele | 0:d7f2341ab245 | 16 | # define PICO_IDETH_ARP 0x0806 |
daniele | 0:d7f2341ab245 | 17 | # define PICO_IDETH_IPV6 0x86DD |
daniele | 0:d7f2341ab245 | 18 | |
daniele | 0:d7f2341ab245 | 19 | # define PICO_ARP_REQUEST 0x0001 |
daniele | 0:d7f2341ab245 | 20 | # define PICO_ARP_REPLY 0x0002 |
daniele | 0:d7f2341ab245 | 21 | # define PICO_ARP_HTYPE_ETH 0x0001 |
daniele | 0:d7f2341ab245 | 22 | |
daniele | 0:d7f2341ab245 | 23 | #define short_be(x) (x) |
daniele | 0:d7f2341ab245 | 24 | #define long_be(x) (x) |
daniele | 0:d7f2341ab245 | 25 | |
daniele | 0:d7f2341ab245 | 26 | #else |
daniele | 0:d7f2341ab245 | 27 | |
daniele | 0:d7f2341ab245 | 28 | # define PICO_IDETH_IPV4 0x0008 |
daniele | 0:d7f2341ab245 | 29 | # define PICO_IDETH_ARP 0x0608 |
daniele | 0:d7f2341ab245 | 30 | # define PICO_IDETH_IPV6 0xDD86 |
daniele | 0:d7f2341ab245 | 31 | |
daniele | 0:d7f2341ab245 | 32 | # define PICO_ARP_REQUEST 0x0100 |
daniele | 0:d7f2341ab245 | 33 | # define PICO_ARP_REPLY 0x0200 |
daniele | 0:d7f2341ab245 | 34 | # define PICO_ARP_HTYPE_ETH 0x0100 |
daniele | 0:d7f2341ab245 | 35 | |
daniele | 0:d7f2341ab245 | 36 | static inline uint16_t short_be(uint16_t le) |
daniele | 0:d7f2341ab245 | 37 | { |
daniele | 0:d7f2341ab245 | 38 | return ((le & 0xFF) << 8) | ((le >> 8) & 0xFF); |
daniele | 0:d7f2341ab245 | 39 | } |
daniele | 0:d7f2341ab245 | 40 | |
daniele | 0:d7f2341ab245 | 41 | static inline uint32_t long_be(uint32_t le) |
daniele | 0:d7f2341ab245 | 42 | { |
daniele | 0:d7f2341ab245 | 43 | uint8_t *b = (uint8_t *)≤ |
daniele | 0:d7f2341ab245 | 44 | uint32_t be = 0; |
daniele | 0:d7f2341ab245 | 45 | uint32_t b0, b1, b2; |
daniele | 0:d7f2341ab245 | 46 | b0 = b[0]; |
daniele | 0:d7f2341ab245 | 47 | b1 = b[1]; |
daniele | 0:d7f2341ab245 | 48 | b2 = b[2]; |
daniele | 0:d7f2341ab245 | 49 | be = b[3] + (b2 << 8) + (b1 << 16) + (b0 << 24); |
daniele | 0:d7f2341ab245 | 50 | return be; |
daniele | 0:d7f2341ab245 | 51 | } |
daniele | 0:d7f2341ab245 | 52 | #endif |
daniele | 0:d7f2341ab245 | 53 | |
daniele | 0:d7f2341ab245 | 54 | |
daniele | 0:d7f2341ab245 | 55 | /* Add well-known host numbers here. (bigendian constants only beyond this point) */ |
daniele | 0:d7f2341ab245 | 56 | #define PICO_IP4_ANY (0x00000000U) |
daniele | 0:d7f2341ab245 | 57 | #define PICO_IP4_BCAST (0xffffffffU) |
daniele | 0:d7f2341ab245 | 58 | |
daniele | 0:d7f2341ab245 | 59 | /* defined in modules/pico_ipv6.c */ |
daniele | 0:d7f2341ab245 | 60 | #ifdef PICO_SUPPORT_IPV6 |
daniele | 0:d7f2341ab245 | 61 | extern const uint8_t PICO_IPV6_ANY[PICO_SIZE_IP6]; |
daniele | 0:d7f2341ab245 | 62 | #endif |
daniele | 0:d7f2341ab245 | 63 | |
daniele | 0:d7f2341ab245 | 64 | static inline uint32_t pico_hash(char *name) |
daniele | 0:d7f2341ab245 | 65 | { |
daniele | 0:d7f2341ab245 | 66 | unsigned long hash = 5381; |
daniele | 0:d7f2341ab245 | 67 | int c; |
daniele | 0:d7f2341ab245 | 68 | while ((c = *name++)) |
daniele | 0:d7f2341ab245 | 69 | hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ |
daniele | 0:d7f2341ab245 | 70 | return hash; |
daniele | 0:d7f2341ab245 | 71 | } |
daniele | 0:d7f2341ab245 | 72 | |
daniele | 0:d7f2341ab245 | 73 | /* Debug */ |
daniele | 0:d7f2341ab245 | 74 | //#define PICO_SUPPORT_DEBUG_MEMORY |
daniele | 0:d7f2341ab245 | 75 | //#define PICO_SUPPORT_DEBUG_TOOLS |
daniele | 0:d7f2341ab245 | 76 | #endif |