Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of USB_Ethernet by
include/pico_device.h@2:540f6e142d59, 2013-08-03 (annotated)
- Committer:
- daniele
- Date:
- Sat Aug 03 13:16:14 2013 +0000
- Revision:
- 2:540f6e142d59
Moved to single package
Who changed what in which revision?
| User | Revision | Line number | New 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 | 
