]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - src/netdev.h
Implementa el protocolo ELP sobre UDP. Tiene problemas cuando los leds estan
[z.facultad/66.09/etherled.git] / src / netdev.h
1 // vim: set et sw=4 sts=4 :     
2
3 #ifndef _NETDEV_H_
4 #define _NETDEV_H_
5
6 #include "types.h"
7
8 /** Tamaño del frame */
9 extern byte netdev_len;
10
11 /** Inicializa dispositivo de red
12  * @return true si se inicializó correctamente, false si no
13  */
14 bool netdev_init();
15
16 /** Comienza el envío de un nuevo frame */
17 void netdev_send_start();
18
19 /** Finaliza el envío del frame
20  * @precond netdev_send_start() debe haber sido ejecutada
21  * @precond se copiaron datos al dispositivo para enviar
22  * @param len Cantidad de bytes a transmitir
23  */
24 void netdev_send_end(byte len);
25
26 /** Comienza una escritura a los buffers del dispositivo de red
27  * @param len Cantidad de bytes a escribir
28  */
29 void netdev_write_start(byte len);
30
31 /** Comienza una escritura a los buffers del dispositivo de red a partir de un
32  * offset dado. 
33  * @param offset Offset en donde comenzar a escribir
34  * @param len Cantidad de bytes a escribir
35  */
36 void netdev_write_start_at(byte offset, byte len);
37
38 /** Escribe un byte al buffer de la placa de red para ser enviado
39  * @precond netdev_write_start() debe haber sido ejecutada
40  * @param b Byte a enviar
41  */
42 void netdev_write_byte(byte b);
43
44 /** Escribe un word al buffer de la placa de red para ser enviado
45  * @precond netdev_write_start() debe haber sido ejecutada
46  * @param w Word a enviar
47  */
48 void netdev_write_word(uint16 w);
49
50 /** Finaliza una transferencia al dispositivo de red
51  * @precond netdev_write_start() fue llamada y se ecribió la cantidad de bytes
52  *          en ella especificada
53  */
54 void netdev_write_end();
55
56 /** Comienza la recepción de un nuevo frame
57  * @return Cantidad de bytes a recibir
58  */
59 byte netdev_recv_start();
60
61 /** Finaliza la lectura del frame
62  * @precond netdev_recv_start() debe haber sido ejecutada
63  */
64 void netdev_recv_end();
65
66 /** Comienza a leer bytes del dispositivo de red
67  * @param len Cantidad de bytes a leer
68  */
69 void netdev_read_start(byte len);
70
71 /** Lee un byte del buffer de la placa de red
72  * @precond netdev_recv_start() debe haber sido ejecutada
73  */
74 byte netdev_read_byte();
75
76 /** Lee un word del buffer de la placa de red
77  * @precond netdev_recv_start() debe haber sido ejecutada
78  */
79 uint16 netdev_read_word();
80
81 /** Finaliza la lectura del frame
82  * @precond netdev_recv_start() debe haber sido ejecutada
83  */
84 void netdev_read_end();
85
86 #endif // _NETDEV_H_