Changeset dfda6a1 in mainline for uspace/lib/net/tl/icmp_remote.c


Ignore:
Timestamp:
2010-10-23T20:28:55Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
cc8d91a
Parents:
33dbbd2 (diff), 018d79b8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~jakub/helenos/net.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/tl/icmp_remote.c

    r33dbbd2 rdfda6a1  
    2727 */
    2828
    29 /** @addtogroup icmp
     29/** @addtogroup libnet
    3030 *  @{
    3131 */
    3232
    3333/** @file
    34  *  ICMP interface implementation for remote modules.
    35  *  @see icmp_interface.h
     34 * ICMP interface implementation for remote modules.
     35 * @see icmp_interface.h
    3636 */
     37
     38#include <icmp_interface.h>
     39#include <net/modules.h>
     40#include <packet_client.h>
    3741
    3842#include <async.h>
     
    4347#include <sys/types.h>
    4448
    45 #include <net/modules.h>
    46 #include <icmp_interface.h>
    47 #include <packet_client.h>
    48 
    49 int icmp_destination_unreachable_msg(int icmp_phone, icmp_code_t code, icmp_param_t mtu, packet_t packet){
    50         async_msg_3(icmp_phone, NET_ICMP_DEST_UNREACH, (ipcarg_t) code, (ipcarg_t) packet_get_id(packet), (ipcarg_t) mtu);
     49/** Sends the Destination Unreachable error notification packet.
     50 *
     51 * Beginning of the packet is sent as the notification packet data.
     52 * The source and the destination addresses should be set in the original
     53 * packet.
     54 *
     55 * @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
     56 * @param[in] code      The error specific code.
     57 * @param[in] mtu       The error MTU value.
     58 * @param[in] packet    The original packet.
     59 * @returns             EOK on success.
     60 * @returns             EPERM if the ICMP error notifications are disabled.
     61 * @returns             ENOMEM if there is not enough memory left.
     62 */
     63int
     64icmp_destination_unreachable_msg(int icmp_phone, icmp_code_t code,
     65    icmp_param_t mtu, packet_t packet)
     66{
     67        async_msg_3(icmp_phone, NET_ICMP_DEST_UNREACH, (ipcarg_t) code,
     68            (ipcarg_t) packet_get_id(packet), (ipcarg_t) mtu);
    5169        return EOK;
    5270}
    5371
    54 int icmp_source_quench_msg(int icmp_phone, packet_t packet){
    55         async_msg_2(icmp_phone, NET_ICMP_SOURCE_QUENCH, 0, (ipcarg_t) packet_get_id(packet));
     72/** Sends the Source Quench error notification packet.
     73 *
     74 * Beginning of the packet is sent as the notification packet data.
     75 * The source and the destination addresses should be set in the original
     76 * packet.
     77 *
     78 * @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
     79 * @param[in] packet    The original packet.
     80 * @returns             EOK on success.
     81 * @returns             EPERM if the ICMP error notifications are disabled.
     82 * @returns             ENOMEM if there is not enough memory left.
     83 */
     84int icmp_source_quench_msg(int icmp_phone, packet_t packet)
     85{
     86        async_msg_2(icmp_phone, NET_ICMP_SOURCE_QUENCH, 0,
     87            (ipcarg_t) packet_get_id(packet));
    5688        return EOK;
    5789}
    5890
    59 int icmp_time_exceeded_msg(int icmp_phone, icmp_code_t code, packet_t packet){
    60         async_msg_2(icmp_phone, NET_ICMP_TIME_EXCEEDED, (ipcarg_t) code, (ipcarg_t) packet_get_id(packet));
     91/** Sends the Time Exceeded error notification packet.
     92 *
     93 * Beginning of the packet is sent as the notification packet data.
     94 * The source and the destination addresses should be set in the original
     95 * packet.
     96 *
     97 * @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
     98 * @param[in] code      The error specific code.
     99 * @param[in] packet    The original packet.
     100 * @returns             EOK on success.
     101 * @returns             EPERM if the ICMP error notifications are disabled.
     102 * @returns             ENOMEM if there is not enough memory left.
     103 */
     104int icmp_time_exceeded_msg(int icmp_phone, icmp_code_t code, packet_t packet)
     105{
     106        async_msg_2(icmp_phone, NET_ICMP_TIME_EXCEEDED, (ipcarg_t) code,
     107            (ipcarg_t) packet_get_id(packet));
    61108        return EOK;
    62109}
    63110
    64 int icmp_parameter_problem_msg(int icmp_phone, icmp_code_t code, icmp_param_t pointer, packet_t packet){
    65         async_msg_3(icmp_phone, NET_ICMP_PARAMETERPROB, (ipcarg_t) code, (ipcarg_t) packet_get_id(packet), (ipcarg_t) pointer);
     111/** Sends the Parameter Problem error notification packet.
     112 *
     113 * Beginning of the packet is sent as the notification packet data.
     114 * The source and the destination addresses should be set in the original
     115 * packet.
     116 *
     117 * @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
     118 * @param[in] code      The error specific code.
     119 * @param[in] pointer   The problematic parameter offset.
     120 * @param[in] packet    The original packet.
     121 * @returns             EOK on success.
     122 * @returns             EPERM if the ICMP error notifications are disabled.
     123 * @returns             ENOMEM if there is not enough memory left.
     124 */
     125int icmp_parameter_problem_msg(int icmp_phone, icmp_code_t code,
     126    icmp_param_t pointer, packet_t packet)
     127{
     128        async_msg_3(icmp_phone, NET_ICMP_PARAMETERPROB, (ipcarg_t) code,
     129            (ipcarg_t) packet_get_id(packet), (ipcarg_t) pointer);
    66130        return EOK;
    67131}
     
    69133/** @}
    70134 */
     135
Note: See TracChangeset for help on using the changeset viewer.