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 #ifndef _INCLUDE_PICO_DEVICE
daniele 2:540f6e142d59 7 #define _INCLUDE_PICO_DEVICE
daniele 2:540f6e142d59 8 #include "pico_queue.h"
daniele 2:540f6e142d59 9 #include "pico_frame.h"
daniele 2:540f6e142d59 10 #include "pico_addressing.h"
daniele 2:540f6e142d59 11 #include "pico_tree.h"
daniele 2:540f6e142d59 12 #define MAX_DEVICE_NAME 16
daniele 2:540f6e142d59 13
daniele 2:540f6e142d59 14
daniele 2:540f6e142d59 15 struct pico_ethdev {
daniele 2:540f6e142d59 16 struct pico_eth mac;
daniele 2:540f6e142d59 17 };
daniele 2:540f6e142d59 18
daniele 2:540f6e142d59 19 struct pico_device {
daniele 2:540f6e142d59 20 char name[MAX_DEVICE_NAME];
daniele 2:540f6e142d59 21 uint32_t hash;
daniele 2:540f6e142d59 22 uint32_t overhead;
daniele 2:540f6e142d59 23 struct pico_ethdev *eth; /* Null if non-ethernet */
daniele 2:540f6e142d59 24 struct pico_queue *q_in;
daniele 2:540f6e142d59 25 struct pico_queue *q_out;
daniele 2:540f6e142d59 26 int (*send)(struct pico_device *self, void *buf, int len); /* Send function. Return 0 if busy */
daniele 2:540f6e142d59 27 int (*poll)(struct pico_device *self, int loop_score);
daniele 2:540f6e142d59 28 void(*destroy)(struct pico_device *self);
daniele 2:540f6e142d59 29 int (*dsr)(struct pico_device *self, int loop_score);
daniele 2:540f6e142d59 30 int __serving_interrupt;
daniele 2:540f6e142d59 31 };
daniele 2:540f6e142d59 32
daniele 2:540f6e142d59 33 int pico_device_init(struct pico_device *dev, char *name, uint8_t *mac);
daniele 2:540f6e142d59 34 void pico_device_destroy(struct pico_device *dev);
daniele 2:540f6e142d59 35 int pico_devices_loop(int loop_score, int direction);
daniele 2:540f6e142d59 36 struct pico_device* pico_get_device(char* name);
daniele 2:540f6e142d59 37 int pico_device_broadcast(struct pico_frame * f);
daniele 2:540f6e142d59 38
daniele 2:540f6e142d59 39 #endif