nil_interface.h File Reference

Network interface layer module interface. More...

#include <async.h>
#include <errno.h>
#include <ipc/ipc.h>
#include "../messages.h"
#include "../structures/measured_strings.h"
#include "../structures/packet/packet.h"
#include "../nil/nil_messages.h"
#include "device.h"
Include dependency graph for nil_interface.h:

Network interface layer module interface

This interface is used by other modules.



#define nil_get_addr_req(nil_phone, device_id, address, data)   generic_get_addr_req(nil_phone, NET_NIL_ADDR, device_id, address, data)
 Returns the device local hardware address.
#define nil_get_broadcast_addr_req(nil_phone, device_id, address, data)   generic_get_addr_req(nil_phone, NET_NIL_BROADCAST_ADDR, device_id, address, data)
 Returns the device broadcast hardware address.
#define nil_send_msg(nil_phone, device_id, packet, sender)   generic_send_msg(nil_phone, NET_NIL_SEND, device_id, packet_get_id(packet), sender, 0)
 Sends the packet queue.
#define nil_packet_size_req(nil_phone, device_id, packet_dimension)   generic_packet_size_req(nil_phone, NET_NIL_PACKET_SPACE, device_id, packet_dimension)
 Returns the device packet dimension for sending.
#define nil_device_req(nil_phone, device_id, mtu, netif_service)   generic_device_req(nil_phone, NET_NIL_DEVICE, device_id, mtu, netif_service)
 Registers new device or updates the MTU of an existing one.
#define nil_bind_service(service, device_id, me, receiver)   bind_service(service, device_id, me, 0, receiver);
 Creates bidirectional connection with the network interface layer module and registers the message receiver.
int nil_device_state_msg (int nil_phone, device_id_t device_id, int state)
 Notifies the network interface layer about the device state change.
int nil_received_msg (int nil_phone, device_id_t device_id, packet_t packet, services_t target)
 Passes the packet queue to the network interface layer.

Detailed Description

Network interface layer module interface.

The same interface is used for standalone remote device modules as well as for bundle device modules. The standalone remote device modules have to be compiled with the nil_remote.c source file. The bundle device modules with the appropriate network interface layer source file (eth.c etc.). The upper layers cannot be bundled with the network interface layer.


Generated on Thu Mar 11 20:46:04 2010 for Networking and TCP/IP stack for HelenOS system by  doxygen 1.6.1