Free (GPLv2) TCP/IP stack developed by TASS Belgium
Fork of PicoTCP by
include/pico_device.h@51:18637a3d071f, 2013-08-03 (annotated)
- Committer:
- daniele
- Date:
- Sat Aug 03 08:50:27 2013 +0000
- Revision:
- 51:18637a3d071f
- Parent:
- 10:dd7111d4279f
Branch for CDC-ECM: Work in progress
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
daniele | 10:dd7111d4279f | 1 | /********************************************************************* |
daniele | 10:dd7111d4279f | 2 | PicoTCP. Copyright (c) 2012 TASS Belgium NV. Some rights reserved. |
daniele | 10:dd7111d4279f | 3 | See LICENSE and COPYING for usage. |
daniele | 10:dd7111d4279f | 4 | |
daniele | 10:dd7111d4279f | 5 | *********************************************************************/ |
daniele | 10:dd7111d4279f | 6 | #ifndef _INCLUDE_PICO_DEVICE |
daniele | 10:dd7111d4279f | 7 | #define _INCLUDE_PICO_DEVICE |
daniele | 10:dd7111d4279f | 8 | #include "pico_queue.h" |
daniele | 10:dd7111d4279f | 9 | #include "pico_frame.h" |
daniele | 10:dd7111d4279f | 10 | #include "pico_addressing.h" |
daniele | 10:dd7111d4279f | 11 | #include "pico_tree.h" |
daniele | 10:dd7111d4279f | 12 | #define MAX_DEVICE_NAME 16 |
daniele | 10:dd7111d4279f | 13 | |
daniele | 10:dd7111d4279f | 14 | |
daniele | 10:dd7111d4279f | 15 | struct pico_ethdev { |
daniele | 10:dd7111d4279f | 16 | struct pico_eth mac; |
daniele | 10:dd7111d4279f | 17 | }; |
daniele | 10:dd7111d4279f | 18 | |
daniele | 10:dd7111d4279f | 19 | struct pico_device { |
daniele | 10:dd7111d4279f | 20 | char name[MAX_DEVICE_NAME]; |
daniele | 10:dd7111d4279f | 21 | uint32_t hash; |
daniele | 10:dd7111d4279f | 22 | uint32_t overhead; |
daniele | 10:dd7111d4279f | 23 | struct pico_ethdev *eth; /* Null if non-ethernet */ |
daniele | 10:dd7111d4279f | 24 | struct pico_queue *q_in; |
daniele | 10:dd7111d4279f | 25 | struct pico_queue *q_out; |
daniele | 10:dd7111d4279f | 26 | int (*send)(struct pico_device *self, void *buf, int len); /* Send function. Return 0 if busy */ |
daniele | 10:dd7111d4279f | 27 | int (*poll)(struct pico_device *self, int loop_score); |
daniele | 10:dd7111d4279f | 28 | void(*destroy)(struct pico_device *self); |
daniele | 10:dd7111d4279f | 29 | int (*dsr)(struct pico_device *self, int loop_score); |
daniele | 10:dd7111d4279f | 30 | int __serving_interrupt; |
daniele | 10:dd7111d4279f | 31 | }; |
daniele | 10:dd7111d4279f | 32 | |
daniele | 10:dd7111d4279f | 33 | int pico_device_init(struct pico_device *dev, char *name, uint8_t *mac); |
daniele | 10:dd7111d4279f | 34 | void pico_device_destroy(struct pico_device *dev); |
daniele | 10:dd7111d4279f | 35 | int pico_devices_loop(int loop_score, int direction); |
daniele | 10:dd7111d4279f | 36 | struct pico_device* pico_get_device(char* name); |
daniele | 10:dd7111d4279f | 37 | int pico_device_broadcast(struct pico_frame * f); |
daniele | 10:dd7111d4279f | 38 | |
daniele | 10:dd7111d4279f | 39 | #endif |