]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - src/netdev.h
Arregla macros para que no hagan lío evaluando cosas más de una vez.
[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 /** Inicializa dispositivo de red
9  * @return true si se inicializó correctamente, false si no
10  */
11 bool netdev_init();
12
13 /** Comienza el envío de un nuevo frame
14  * @param len Tamaño del frame a enviar
15  */
16 void netdev_send_start();
17
18 /** Escribe un byte al buffer de la placa de red para ser enviado
19  * @precond netdev_send_start() debe haber sido ejecutada
20  * @param b Byte a enviar
21  */
22 void netdev_send_byte(byte b);
23
24 /** Escribe un word al buffer de la placa de red para ser enviado
25  * @precond netdev_send_start() debe haber sido ejecutada
26  * @param w Word a enviar
27  */
28 void netdev_send_word(uint16 w);
29
30 /** Finaliza el envío del frame
31  * @precond netdev_send_start() debe haber sido ejecutada
32  */
33 void netdev_send_end();
34
35 /** Comienza la lectura de un nuevo frame
36  * @return Cantidad de bytes del frame leído
37  */
38 byte netdev_recv_start();
39
40 /** Lee un byte del buffer de la placa de red
41  * @precond netdev_recv_start() debe haber sido ejecutada
42  */
43 byte netdev_recv_byte();
44
45 /** Lee un word del buffer de la placa de red
46  * @precond netdev_recv_start() debe haber sido ejecutada
47  */
48 uint16 netdev_recv_word();
49
50 /** Finaliza la lectura del frame
51  * @precond netdev_recv_start() debe haber sido ejecutada
52  */
53 void netdev_recv_end();
54
55 #endif // _NETDEV_H_