CDC/ECM driver for mbed, based on USBDevice by mbed-official. Uses PicoTCP to access Ethernet USB device. License: GPLv2

Dependents:   USBEthernet_TEST

Fork of USB_Ethernet by Daniele Lacamera

Committer:
daniele
Date:
Sat Aug 03 13:16:14 2013 +0000
Revision:
2:540f6e142d59
Moved to single package

Who changed what in which revision?

UserRevisionLine numberNew contents of line
daniele 2:540f6e142d59 1 /*********************************************************************
daniele 2:540f6e142d59 2 PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved.
daniele 2:540f6e142d59 3 See LICENSE and COPYING for usage.
daniele 2:540f6e142d59 4
daniele 2:540f6e142d59 5 .
daniele 2:540f6e142d59 6
daniele 2:540f6e142d59 7 *********************************************************************/
daniele 2:540f6e142d59 8 #ifndef _INCLUDE_PICO_UDP
daniele 2:540f6e142d59 9 #define _INCLUDE_PICO_UDP
daniele 2:540f6e142d59 10 #include "pico_addressing.h"
daniele 2:540f6e142d59 11 #include "pico_protocol.h"
daniele 2:540f6e142d59 12
daniele 2:540f6e142d59 13 extern struct pico_protocol pico_proto_udp;
daniele 2:540f6e142d59 14
daniele 2:540f6e142d59 15 struct __attribute__((packed)) pico_udp_hdr {
daniele 2:540f6e142d59 16 struct pico_trans trans;
daniele 2:540f6e142d59 17 uint16_t len;
daniele 2:540f6e142d59 18 uint16_t crc;
daniele 2:540f6e142d59 19 };
daniele 2:540f6e142d59 20 #define PICO_UDPHDR_SIZE 8
daniele 2:540f6e142d59 21
daniele 2:540f6e142d59 22 struct pico_socket *pico_udp_open(void);
daniele 2:540f6e142d59 23 int pico_udp_recv(struct pico_socket *s, void *buf, int len, void *src, uint16_t *port);
daniele 2:540f6e142d59 24 uint16_t pico_udp_checksum_ipv4(struct pico_frame *f);
daniele 2:540f6e142d59 25
daniele 2:540f6e142d59 26 #ifdef PICO_SUPPORT_MCAST
daniele 2:540f6e142d59 27 int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl);
daniele 2:540f6e142d59 28 int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl);
daniele 2:540f6e142d59 29 #else
daniele 2:540f6e142d59 30 static inline int pico_udp_set_mc_ttl(struct pico_socket *s, uint8_t ttl)
daniele 2:540f6e142d59 31 {
daniele 2:540f6e142d59 32 pico_err = PICO_ERR_EPROTONOSUPPORT;
daniele 2:540f6e142d59 33 return -1;
daniele 2:540f6e142d59 34 }
daniele 2:540f6e142d59 35 static inline int pico_udp_get_mc_ttl(struct pico_socket *s, uint8_t *ttl)
daniele 2:540f6e142d59 36 {
daniele 2:540f6e142d59 37 pico_err = PICO_ERR_EPROTONOSUPPORT;
daniele 2:540f6e142d59 38 return -1;
daniele 2:540f6e142d59 39 }
daniele 2:540f6e142d59 40 #endif /* PICO_SUPPORT_MCAST */
daniele 2:540f6e142d59 41
daniele 2:540f6e142d59 42 #endif