Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/include/arp_interface.h

    raf7638e r514ee46  
    2727 */
    2828
    29 /** @addtogroup libnet
    30  * @{
     29/** @addtogroup arp
     30 *  @{
    3131 */
    3232
    33 #ifndef LIBNET_ARP_INTERFACE_H_
    34 #define LIBNET_ARP_INTERFACE_H_
     33#ifndef __NET_ARP_INTERFACE_H__
     34#define __NET_ARP_INTERFACE_H__
    3535
    3636#include <adt/measured_strings.h>
     
    4343
    4444/** @name ARP module interface
    45  * This interface is used by other modules.
     45 *  This interface is used by other modules.
    4646 */
    4747/*@{*/
    4848
    49 extern int arp_device_req(int, device_id_t, services_t, services_t,
    50     measured_string_ref);
    51 extern int arp_translate_req(int, device_id_t, services_t, measured_string_ref,
    52     measured_string_ref *, char **);
    53 extern int arp_clear_device_req(int, device_id_t);
    54 extern int arp_clear_address_req(int, device_id_t, services_t,
    55     measured_string_ref);
    56 extern int arp_clean_cache_req(int);
    57 extern int arp_connect_module(services_t);
     49/** Registers the new device and the requesting protocol service.
     50 *  Connects to the network interface layer service.
     51 *  Determines the device broadcast address, its address lengths and packet size.
     52 *  @param[in] arp_phone The ARP module phone used for (semi)remote calls.
     53 *  @param[in] device_id The new device identifier.
     54 *  @param[in] protocol The requesting protocol service.
     55 *  @param[in] netif The underlying device network interface layer service.
     56 *  @param[in] address The local requesting protocol address of the device.
     57 *  @returns EOK on success.
     58 *  @returns EEXIST if the device is already used.
     59 *  @returns ENOMEM if there is not enough memory left.
     60 *  @returns ENOENT if the network interface service is not known.
     61 *  @returns EREFUSED if the network interface service is not responding.
     62 *  @returns Other error codes as defined for the nil_packet_get_size() function.
     63 *  @returns Other error codes as defined for the nil_get_addr() function.
     64 *  @returns Other error codes as defined for the nil_get_broadcast_addr() function.
     65 */
     66extern int arp_device_req(int arp_phone, device_id_t device_id, services_t protocol, services_t netif, measured_string_ref address);
     67
     68/** Translates the given protocol address to the network interface address.
     69 *  Broadcasts the ARP request if the mapping is not found.
     70 *  Allocates and returns the needed memory block as the data parameter.
     71 *  @param[in] arp_phone The ARP module phone used for (semi)remote calls.
     72 *  @param[in] device_id The device identifier.
     73 *  @param[in] protocol The requesting protocol service.
     74 *  @param[in] address The local requesting protocol address.
     75 *  @param[out] translation The translation of the local protocol address.
     76 *  @param[out] data The allocated raw translation data container.
     77 *  @returns EOK on success.
     78 *  @returns EINVAL if the address parameter is NULL.
     79 *  @returns EBADMEM if the translation or the data parameters are NULL.
     80 *  @returns ENOENT if the mapping is not found.
     81 */
     82extern int arp_translate_req(int arp_phone, device_id_t device_id, services_t protocol, measured_string_ref address, measured_string_ref * translation, char ** data);
     83
     84/** Clears the device cache.
     85 *  @param[in] arp_phone The ARP module phone used for (semi)remote calls.
     86 *  @param[in] device_id The device identifier.
     87 *  @returns EOK on success.
     88 *  @returns ENOENT if the device is not found.
     89 */
     90extern int arp_clear_device_req(int arp_phone, device_id_t device_id);
     91
     92/** Clears the given protocol address from the cache.
     93 *  @param[in] arp_phone The ARP module phone used for (semi)remote calls.
     94 *  @param[in] device_id The device identifier.
     95 *  @param[in] protocol The requesting protocol service.
     96 *  @param[in] address The protocol address to be cleared.
     97 *  @returns EOK on success.
     98 *  @returns ENOENT if the mapping is not found.
     99 */
     100extern int arp_clear_address_req(int arp_phone, device_id_t device_id, services_t protocol, measured_string_ref address);
     101
     102/** Cleans the cache.
     103 *  @param[in] arp_phone The ARP module phone used for (semi)remote calls.
     104 *  @returns EOK on success.
     105 */
     106extern int arp_clean_cache_req(int arp_phone);
     107
     108/** Connects to the ARP module.
     109 *  @param service The ARP module service. Ignored parameter.
     110 *  @returns The ARP module phone on success.
     111 */
     112extern int arp_connect_module(services_t service);
     113
     114/** Returns the ARP task identifier.
     115 *  @returns 0 if called by the remote module.
     116 */
     117extern task_id_t arp_task_get_id(void);
    58118
    59119/*@}*/
Note: See TracChangeset for help on using the changeset viewer.