source: mainline/uspace/lib/c/include/ipc/ip.h@ ef7f043

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since ef7f043 was 797b704, checked in by Martin Decky <martin@…>, 15 years ago

streamline internetworking layer

  • IPC method renaming

NET_IL_DEVICE → NET_IP_DEVICE
NET_IL_PACKET_SPACE → NET_IP_PACKET_SPACE
NET_IL_SEND → NET_IP_SEND

The original methods were actually not generic methods of the IL layer (used by the lower layers), but specific methods of the IP module
and used by the higher layers. The original naming was rather confusing.

  • implelement common IL module skeleton
  • small improvements in the comments of the NETIF and NIL skeletons
  • IL modules now use a separate receiver function for the NET_IL_* calls
  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*
2 * Copyright (c) 2009 Lukas Mejdrech
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29/** @addtogroup libc
30 * @{
31 */
32
33/** @file
34 * IP module messages.
35 * @see ip_interface.h
36 */
37
38#ifndef LIBC_IP_MESSAGES_H_
39#define LIBC_IP_MESSAGES_H_
40
41#include <ipc/ipc.h>
42#include <ipc/net.h>
43
44#include <net/in.h>
45#include <net/ip_codes.h>
46
47/** IP module messages. */
48typedef enum {
49 /** New device message.
50 * @see ip_device_req()
51 */
52 NET_IP_DEVICE = NET_IP_FIRST,
53
54 /** Adds the routing entry.
55 * @see ip_add_route()
56 */
57 NET_IP_ADD_ROUTE,
58
59 /** Gets the actual route information.
60 * @see ip_get_route()
61 */
62 NET_IP_GET_ROUTE,
63
64 /** Processes the received error notification.
65 * @see ip_received_error_msg()
66 */
67 NET_IP_RECEIVED_ERROR,
68
69 /** Sets the default gateway.
70 * @see ip_set_default_gateway()
71 */
72 NET_IP_SET_GATEWAY,
73
74 /** Packet size message.
75 * @see ip_packet_size_req()
76 */
77 NET_IP_PACKET_SPACE,
78
79 /** Packet send message.
80 * @see ip_send_msg()
81 */
82 NET_IP_SEND
83} ip_messages;
84
85/** @name IP specific message parameters definitions */
86/*@{*/
87
88/** Return the address message parameter.
89 *
90 * @param[in] call Message call structure.
91 *
92 */
93#define IP_GET_ADDRESS(call) \
94 ({ \
95 in_addr_t addr; \
96 addr.s_addr = IPC_GET_ARG3(call); \
97 addr; \
98 })
99
100/** Return the gateway message parameter.
101 *
102 * @param[in] call Message call structure.
103 *
104 */
105#define IP_GET_GATEWAY(call) \
106 ({ \
107 in_addr_t addr; \
108 addr.s_addr = IPC_GET_ARG2(call); \
109 addr; \
110 })
111
112/** Set the header length in the message answer.
113 *
114 * @param[out] answer Message answer structure.
115 *
116 */
117#define IP_SET_HEADERLEN(answer, value) IPC_SET_ARG2(answer, (sysarg_t) (value))
118
119/** Return the network mask message parameter.
120 *
121 * @param[in] call Message call structure.
122 *
123 */
124#define IP_GET_NETMASK(call) \
125 ({ \
126 in_addr_t addr; \
127 addr.s_addr = IPC_GET_ARG4(call); \
128 addr; \
129 })
130
131/** Return the protocol message parameter.
132 *
133 * @param[in] call Message call structure.
134 *
135 */
136#define IP_GET_PROTOCOL(call) ((ip_protocol_t) IPC_GET_ARG1(call))
137
138/*@}*/
139
140#endif
141
142/** @}
143 */
Note: See TracBrowser for help on using the repository browser.