Free (GPLv2) TCP/IP stack developed by TASS Belgium

Fork of PicoTCP by Daniele Lacamera

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?

UserRevisionLine numberNew 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