FITkit
Fakulta informačních technologií

Dokumentace souboru enc28j60_icmp.c

#include "enc28j60_spi.h"
#include "enc28j60_ip.h"
#include "enc28j60_icmp.h"

Zobrazit zdrojový text tohoto souboru.

Funkce

void icmp_recv (struct ip_h *ip_header)
char icmp_send (unsigned long ip, unsigned char type, unsigned char code, unsigned int id, unsigned int sequence)
 Odešle ICMP datagram s daty uloženými v tx bufferu.
void icmp_bind (void *handler)
 Přepne automatickou odpověď na ICMP zprávy na manuální. ICMP komunikace bude zcela v režii programátora.
void icmp_unbind ()
 Přepne manuální odpověď na ICMP zprávy zpět na automatickou.

Proměnné

ICMP_APP_HANDLER * icmp_handler_
unsigned int icmp_seq_num = 1
unsigned char handler_set = 0


Dokumentace funkcí

void icmp_bind ( void *  handler  ) 

Přepne automatickou odpověď na ICMP zprávy na manuální. ICMP komunikace bude zcela v režii programátora.

Parametry:
handler - Callback handler, funkce bude volána při příchodu ICMP datagramu.

Definice je uvedena na řádku 121 v souboru enc28j60_icmp.c.

Odkazuje se na handler_set a icmp_handler_.

void icmp_recv ( struct ip_h ip_header  ) 

char icmp_send ( unsigned long  ip,
unsigned char  type,
unsigned char  code,
unsigned int  id,
unsigned int  sequence 
)

Odešle ICMP datagram s daty uloženými v tx bufferu.

Parametry:
ip - cílová IP adresa
type - Typ ICMP zprávy
code - Kód (podle typu zprávy)
id - Identifikátor ICMP datagramu
sequence - Sekvenční číslo datagramu
Vracené hodnoty:
0 - datagram odeslán
-1 - chyba při odesílání
-2 - ARP protokol nezjistil MAC adresu cíle, neodesláno

Definice je uvedena na řádku 93 v souboru enc28j60_icmp.c.

Odkazuje se na icmp_h::checksum, icmp_h::code, HTONS, icmp_h::id, ip_send(), icmp_h::seq, tx_checksum(), tx_seek(), tx_write() a icmp_h::type.

Používá se v icmp_recv().

void icmp_unbind (  ) 

Přepne manuální odpověď na ICMP zprávy zpět na automatickou.

Definice je uvedena na řádku 127 v souboru enc28j60_icmp.c.

Odkazuje se na handler_set.


Dokumentace proměnných

unsigned char handler_set = 0

Definice je uvedena na řádku 51 v souboru enc28j60_icmp.c.

Používá se v icmp_bind(), icmp_recv() a icmp_unbind().

ICMP_APP_HANDLER* icmp_handler_

Definice je uvedena na řádku 48 v souboru enc28j60_icmp.c.

Používá se v icmp_bind() a icmp_recv().

unsigned int icmp_seq_num = 1

Definice je uvedena na řádku 50 v souboru enc28j60_icmp.c.