X-Git-Url: https://git.llucax.com/z.facultad/66.09/etherled.git/blobdiff_plain/cbf2122a2f610a2b92f1dfcb0f554b4bf7c4757e..f5186e12ed5aedf98d0fa0d8299a73c830046c75:/src/netdev.h diff --git a/src/netdev.h b/src/netdev.h index 635432b..27bbb3b 100644 --- a/src/netdev.h +++ b/src/netdev.h @@ -5,51 +5,82 @@ #include "types.h" +/** Tamaño del frame */ +extern byte netdev_len; + /** Inicializa dispositivo de red * @return true si se inicializó correctamente, false si no */ bool netdev_init(); -/** Comienza el envío de un nuevo frame - * @param len Tamaño del frame a enviar - */ +/** Comienza el envío de un nuevo frame */ void netdev_send_start(); -/** Escribe un byte al buffer de la placa de red para ser enviado +/** Finaliza el envío del frame * @precond netdev_send_start() debe haber sido ejecutada + * @precond se copiaron datos al dispositivo para enviar + * @param len Cantidad de bytes a transmitir + */ +void netdev_send_end(byte len); + +/** Comienza una escritura a los buffers del dispositivo de red + * @param len Cantidad de bytes a escribir + */ +void netdev_write_start(byte len); + +/** Comienza una escritura a los buffers del dispositivo de red a partir de un + * offset dado. + * @param offset Offset en donde comenzar a escribir + * @param len Cantidad de bytes a escribir + */ +void netdev_write_start_at(byte offset, byte len); + +/** Escribe un byte al buffer de la placa de red para ser enviado + * @precond netdev_write_start() debe haber sido ejecutada * @param b Byte a enviar */ -void netdev_send_byte(byte b); +void netdev_write_byte(byte b); /** Escribe un word al buffer de la placa de red para ser enviado - * @precond netdev_send_start() debe haber sido ejecutada + * @precond netdev_write_start() debe haber sido ejecutada * @param w Word a enviar */ -void netdev_send_word(uint16 w); +void netdev_write_word(uint16 w); -/** Finaliza el envío del frame - * @precond netdev_send_start() debe haber sido ejecutada +/** Finaliza una transferencia al dispositivo de red + * @precond netdev_write_start() fue llamada y se ecribió la cantidad de bytes + * en ella especificada */ -void netdev_send_end(); +void netdev_write_end(); -/** Comienza la lectura de un nuevo frame - * @return Cantidad de bytes del frame leído +/** Comienza la recepción de un nuevo frame + * @return Cantidad de bytes a recibir */ byte netdev_recv_start(); +/** Finaliza la lectura del frame + * @precond netdev_recv_start() debe haber sido ejecutada + */ +void netdev_recv_end(); + +/** Comienza a leer bytes del dispositivo de red + * @param len Cantidad de bytes a leer + */ +void netdev_read_start(byte len); + /** Lee un byte del buffer de la placa de red * @precond netdev_recv_start() debe haber sido ejecutada */ -byte netdev_recv_byte(); +byte netdev_read_byte(); /** Lee un word del buffer de la placa de red * @precond netdev_recv_start() debe haber sido ejecutada */ -uint16 netdev_recv_word(); +uint16 netdev_read_word(); /** Finaliza la lectura del frame * @precond netdev_recv_start() debe haber sido ejecutada */ -void netdev_recv_end(); +void netdev_read_end(); #endif // _NETDEV_H_