Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
modules/pico_udp.h@3:b4047e8a0123, 2013-05-24 (annotated)
- Committer:
- daniele
- Date:
- Fri May 24 15:25:25 2013 +0000
- Revision:
- 3:b4047e8a0123
Updated from main repo + fixed Mutexes;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daniele | 3:b4047e8a0123 | 1 | /********************************************************************* |
daniele | 3:b4047e8a0123 | 2 | PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. |
daniele | 3:b4047e8a0123 | 3 | See LICENSE and COPYING for usage. |
daniele | 3:b4047e8a0123 | 4 | |
daniele | 3:b4047e8a0123 | 5 | . |
daniele | 3:b4047e8a0123 | 6 | |
daniele | 3:b4047e8a0123 | 7 | *********************************************************************/ |
daniele | 3:b4047e8a0123 | 8 | #ifndef _INCLUDE_PICO_UDP |
daniele | 3:b4047e8a0123 | 9 | #define _INCLUDE_PICO_UDP |
daniele | 3:b4047e8a0123 | 10 | #include "pico_addressing.h" |
daniele | 3:b4047e8a0123 | 11 | #include "pico_protocol.h" |
daniele | 3:b4047e8a0123 | 12 | |
daniele | 3:b4047e8a0123 | 13 | extern struct pico_protocol pico_proto_udp; |
daniele | 3:b4047e8a0123 | 14 | |
daniele | 3:b4047e8a0123 | 15 | struct __attribute__((packed)) pico_udp_hdr { |
daniele | 3:b4047e8a0123 | 16 | struct pico_trans trans; |
daniele | 3:b4047e8a0123 | 17 | uint16_t len; |
daniele | 3:b4047e8a0123 | 18 | uint16_t crc; |
daniele | 3:b4047e8a0123 | 19 | }; |
daniele | 3:b4047e8a0123 | 20 | #define PICO_UDPHDR_SIZE 8 |
daniele | 3:b4047e8a0123 | 21 | |
daniele | 3:b4047e8a0123 | 22 | struct pico_socket *pico_udp_open(void); |
daniele | 3:b4047e8a0123 | 23 | int pico_udp_recv(struct pico_socket *s, void *buf, int len, void *src, uint16_t *port); |
daniele | 3:b4047e8a0123 | 24 | uint16_t pico_udp_checksum_ipv4(struct pico_frame *f); |
daniele | 3:b4047e8a0123 | 25 | |
daniele | 3:b4047e8a0123 | 26 | #ifdef PICO_SUPPORT_MCAST |
daniele | 3:b4047e8a0123 | 27 | int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl); |
daniele | 3:b4047e8a0123 | 28 | int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl); |
daniele | 3:b4047e8a0123 | 29 | #else |
daniele | 3:b4047e8a0123 | 30 | static inline int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl) |
daniele | 3:b4047e8a0123 | 31 | { |
daniele | 3:b4047e8a0123 | 32 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 3:b4047e8a0123 | 33 | return -1; |
daniele | 3:b4047e8a0123 | 34 | } |
daniele | 3:b4047e8a0123 | 35 | static inline int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl) |
daniele | 3:b4047e8a0123 | 36 | { |
daniele | 3:b4047e8a0123 | 37 | pico_err = PICO_ERR_EPROTONOSUPPORT; |
daniele | 3:b4047e8a0123 | 38 | return -1; |
daniele | 3:b4047e8a0123 | 39 | } |
daniele | 3:b4047e8a0123 | 40 | #endif /* PICO_SUPPORT_MCAST */ |
daniele | 3:b4047e8a0123 | 41 | |
daniele | 3:b4047e8a0123 | 42 | #endif |