Changeset 8b5690f in mainline for uspace/lib/c/include/ipc/net.h


Ignore:
Timestamp:
2011-02-03T05:11:01Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ba38f72c
Parents:
22027b6e (diff), 86d7bfa (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 mainline changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/ipc/net.h

    r22027b6e r8b5690f  
    3838#define LIBC_NET_MESSAGES_H_
    3939
    40 #include <ipc/ipc.h>
    4140#include <ipc/services.h>
    42 
    4341#include <net/device.h>
    4442#include <net/packet.h>
    4543
    46 /** Returns a value indicating whether the value is in the interval.
    47  * @param[in] item      The value to be checked.
    48  * @param[in] first_inclusive The first value in the interval inclusive.
    49  * @param[in] last_exclusive The first value after the interval.
     44/** Return a value indicating whether the value is in the interval.
     45 *
     46 * @param[in] item            Value to be checked.
     47 * @param[in] first_inclusive First value in the interval inclusive.
     48 * @param[in] last_exclusive  First value after the interval.
     49 *
    5050 */
    5151#define IS_IN_INTERVAL(item, first_inclusive, last_exclusive) \
     
    5555/*@{*/
    5656
    57 /** The number of ARP messages. */
    58 #define NET_ARP_COUNT           5
    59 
    60 /** The number of Ethernet messages. */
    61 #define NET_ETH_COUNT           0
    62 
    63 /** The number of ICMP messages. */
    64 #define NET_ICMP_COUNT          6
    65 
    66 /** The number of inter-network messages. */
    67 #define NET_IL_COUNT            6
    68 
    69 /** The number of IP messages. */
    70 #define NET_IP_COUNT            4
    71 
    72 /** The number of general networking messages. */
    73 #define NET_NET_COUNT           3
    74 
    75 /** The number of network interface driver messages. */
    76 #define NET_NETIF_COUNT         6
    77 
    78 /** The number of network interface layer messages. */
    79 #define NET_NIL_COUNT           7
    80 
    81 /** The number of packet management system messages. */
    82 #define NET_PACKET_COUNT        5
    83 
    84 /** The number of socket messages. */
    85 #define NET_SOCKET_COUNT        14
    86 
    87 /** The number of TCP messages. */
    88 #define NET_TCP_COUNT           0
    89 
    90 /** The number of transport layer messages. */
    91 #define NET_TL_COUNT            1
    92 
    93 /** The number of UDP messages. */
    94 #define NET_UDP_COUNT           0
     57#define NET_ARP_COUNT     5   /**< Number of ARP messages. */
     58#define NET_ETH_COUNT     0   /**< Number of Ethernet messages. */
     59#define NET_ICMP_COUNT    6   /**< Number of ICMP messages. */
     60#define NET_IL_COUNT      6   /**< Number of inter-network messages. */
     61#define NET_IP_COUNT      4   /**< Number of IP messages. */
     62#define NET_NET_COUNT     3   /**< Number of general networking messages. */
     63#define NET_NETIF_COUNT   6   /**< Number of network interface driver messages. */
     64#define NET_NIL_COUNT     7   /**< Number of network interface layer messages. */
     65#define NET_PACKET_COUNT  5   /**< Number of packet management system messages. */
     66#define NET_SOCKET_COUNT  14  /**< Number of socket messages. */
     67#define NET_TCP_COUNT     0   /**< Number of TCP messages. */
     68#define NET_TL_COUNT      1   /**< Number of transport layer messages. */
     69#define NET_UDP_COUNT     0   /**< Number of UDP messages. */
    9570
    9671/*@}*/
     
    10075/*@{*/
    10176
    102 /** The first networking message. */
    103 #define NET_FIRST               2000
    104 
    105 /** The first network interface layer message. */
    106 #define NET_NETIF_FIRST         NET_FIRST
    107 
    108 /** The last network interface layer message. */
    109 #define NET_NETIF_LAST          (NET_NETIF_FIRST + NET_NETIF_COUNT)
    110 
    111 /** The first general networking message. */
    112 #define NET_NET_FIRST           (NET_NETIF_LAST + 0)
    113 
    114 /** The last general networking message. */
    115 #define NET_NET_LAST            (NET_NET_FIRST + NET_NET_COUNT)
    116 
    117 /** The first network interface layer message. */
    118 #define NET_NIL_FIRST           (NET_NET_LAST + 0)
    119 
    120 /** The last network interface layer message. */
    121 #define NET_NIL_LAST            (NET_NIL_FIRST + NET_NIL_COUNT)
    122 
    123 /** The first Ethernet message. */
    124 #define NET_ETH_FIRST           (NET_NIL_LAST + 0)
    125 
    126 /** The last Ethernet message. */
    127 #define NET_ETH_LAST            (NET_ETH_FIRST + NET_ETH_COUNT)
    128 
    129 /** The first inter-network message. */
    130 #define NET_IL_FIRST            (NET_ETH_LAST + 0)
    131 
    132 /** The last inter-network message. */
    133 #define NET_IL_LAST             (NET_IL_FIRST + NET_IL_COUNT)
    134 
    135 /** The first IP message. */
    136 #define NET_IP_FIRST            (NET_IL_LAST + 0)
    137 
    138 /** The last IP message. */
    139 #define NET_IP_LAST             (NET_IP_FIRST + NET_IP_COUNT)
    140 
    141 /** The first ARP message. */
    142 #define NET_ARP_FIRST           (NET_IP_LAST + 0)
    143 
    144 /** The last ARP message. */
    145 #define NET_ARP_LAST            (NET_ARP_FIRST + NET_ARP_COUNT)
    146 
    147 /** The first ICMP message. */
    148 #define NET_ICMP_FIRST          (NET_ARP_LAST + 0)
    149 
    150 /** The last ICMP message. */
    151 #define NET_ICMP_LAST           (NET_ICMP_FIRST + NET_ICMP_COUNT)
    152 
    153 /** The first ICMP message. */
    154 #define NET_TL_FIRST            (NET_ICMP_LAST + 0)
    155 
    156 /** The last ICMP message. */
    157 #define NET_TL_LAST             (NET_TL_FIRST + NET_TL_COUNT)
    158 
    159 /** The first UDP message. */
    160 #define NET_UDP_FIRST           (NET_TL_LAST + 0)
    161 
    162 /** The last UDP message. */
    163 #define NET_UDP_LAST            (NET_UDP_FIRST + NET_UDP_COUNT)
    164 
    165 /** The first TCP message. */
    166 #define NET_TCP_FIRST           (NET_UDP_LAST + 0)
    167 
    168 /** The last TCP message. */
    169 #define NET_TCP_LAST            (NET_TCP_FIRST + NET_TCP_COUNT)
    170 
    171 /** The first socket message. */
    172 #define NET_SOCKET_FIRST        (NET_TCP_LAST + 0)
    173 
    174 /** The last socket message. */
    175 #define NET_SOCKET_LAST         (NET_SOCKET_FIRST + NET_SOCKET_COUNT)
    176 
    177 /** The first packet management system message. */
    178 #define NET_PACKET_FIRST        (NET_SOCKET_LAST + 0)
    179 
    180 /** The last packet management system message. */
    181 #define NET_PACKET_LAST         (NET_PACKET_FIRST + NET_PACKET_COUNT)
    182 
    183 /** The last networking message. */
    184 #define NET_LAST                NET_PACKET_LAST
    185 
    186 /** The number of networking messages. */
    187 #define NET_COUNT               (NET_LAST - NET_FIRST)
    188 
    189 /** Returns a value indicating whether the IPC call is a generic networking
    190  * message.
    191  * @param[in] call The IPC call to be checked.
     77
     78/** First networking message. */
     79#define NET_FIRST  2000
     80
     81/** First network interface layer message. */
     82#define NET_NETIF_FIRST  NET_FIRST
     83
     84/** Last network interface layer message. */
     85#define NET_NETIF_LAST  (NET_NETIF_FIRST + NET_NETIF_COUNT)
     86
     87/** First general networking message. */
     88#define NET_NET_FIRST  (NET_NETIF_LAST + 0)
     89
     90/** Last general networking message. */
     91#define NET_NET_LAST  (NET_NET_FIRST + NET_NET_COUNT)
     92
     93/** First network interface layer message. */
     94#define NET_NIL_FIRST  (NET_NET_LAST + 0)
     95
     96/** Last network interface layer message. */
     97#define NET_NIL_LAST  (NET_NIL_FIRST + NET_NIL_COUNT)
     98
     99/** First Ethernet message. */
     100#define NET_ETH_FIRST  (NET_NIL_LAST + 0)
     101
     102/** Last Ethernet message. */
     103#define NET_ETH_LAST  (NET_ETH_FIRST + NET_ETH_COUNT)
     104
     105/** First inter-network message. */
     106#define NET_IL_FIRST  (NET_ETH_LAST + 0)
     107
     108/** Last inter-network message. */
     109#define NET_IL_LAST  (NET_IL_FIRST + NET_IL_COUNT)
     110
     111/** First IP message. */
     112#define NET_IP_FIRST  (NET_IL_LAST + 0)
     113
     114/** Last IP message. */
     115#define NET_IP_LAST  (NET_IP_FIRST + NET_IP_COUNT)
     116
     117/** First ARP message. */
     118#define NET_ARP_FIRST  (NET_IP_LAST + 0)
     119
     120/** Last ARP message. */
     121#define NET_ARP_LAST  (NET_ARP_FIRST + NET_ARP_COUNT)
     122
     123/** First ICMP message. */
     124#define NET_ICMP_FIRST  (NET_ARP_LAST + 0)
     125
     126/** Last ICMP message. */
     127#define NET_ICMP_LAST  (NET_ICMP_FIRST + NET_ICMP_COUNT)
     128
     129/** First ICMP message. */
     130#define NET_TL_FIRST  (NET_ICMP_LAST + 0)
     131
     132/** Last ICMP message. */
     133#define NET_TL_LAST  (NET_TL_FIRST + NET_TL_COUNT)
     134
     135/** First UDP message. */
     136#define NET_UDP_FIRST  (NET_TL_LAST + 0)
     137
     138/** Last UDP message. */
     139#define NET_UDP_LAST  (NET_UDP_FIRST + NET_UDP_COUNT)
     140
     141/** First TCP message. */
     142#define NET_TCP_FIRST  (NET_UDP_LAST + 0)
     143
     144/** Last TCP message. */
     145#define NET_TCP_LAST  (NET_TCP_FIRST + NET_TCP_COUNT)
     146
     147/** First socket message. */
     148#define NET_SOCKET_FIRST  (NET_TCP_LAST + 0)
     149
     150/** Last socket message. */
     151#define NET_SOCKET_LAST  (NET_SOCKET_FIRST + NET_SOCKET_COUNT)
     152
     153/** First packet management system message. */
     154#define NET_PACKET_FIRST  (NET_SOCKET_LAST + 0)
     155
     156/** Last packet management system message. */
     157#define NET_PACKET_LAST  (NET_PACKET_FIRST + NET_PACKET_COUNT)
     158
     159/** Last networking message. */
     160#define NET_LAST  NET_PACKET_LAST
     161
     162/** Number of networking messages. */
     163#define NET_COUNT  (NET_LAST - NET_FIRST)
     164
     165/** Check if the IPC call is a generic networking message.
     166 *
     167 * @param[in] call IPC call to be checked.
     168 *
    192169 */
    193170#define IS_NET_MESSAGE(call) \
    194         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_FIRST, NET_LAST)
    195 
    196 /** Returns a value indicating whether the IPC call is an ARP message.
    197  * @param[in] call The IPC call to be checked.
     171        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_FIRST, NET_LAST)
     172
     173/** Check if the IPC call is an ARP message.
     174 *
     175 * @param[in] call IPC call to be checked.
     176 *
    198177 */
    199178#define IS_NET_ARP_MESSAGE(call) \
    200         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_ARP_FIRST, NET_ARP_LAST)
    201 
    202 /** Returns a value indicating whether the IPC call is an Ethernet message.
    203  * @param[in] call The IPC call to be checked.
     179        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_ARP_FIRST, NET_ARP_LAST)
     180
     181/** Check if the IPC call is an Ethernet message.
     182 *
     183 * @param[in] call IPC call to be checked.
     184 *
    204185 */
    205186#define IS_NET_ETH_MESSAGE(call) \
    206         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_ETH_FIRST, NET_ETH_LAST)
    207 
    208 /** Returns a value indicating whether the IPC call is an ICMP message.
    209  * @param[in] call The IPC call to be checked.
     187        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_ETH_FIRST, NET_ETH_LAST)
     188
     189/** Check if the IPC call is an ICMP message.
     190 *
     191 * @param[in] call IPC call to be checked.
     192 *
    210193 */
    211194#define IS_NET_ICMP_MESSAGE(call) \
    212         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_ICMP_FIRST, NET_ICMP_LAST)
    213 
    214 /** Returns a value indicating whether the IPC call is an inter-network layer
    215  * message.
    216  * @param[in] call The IPC call to be checked.
     195        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_ICMP_FIRST, NET_ICMP_LAST)
     196
     197/** Check if the IPC call is an inter-network layer message.
     198 *
     199 * @param[in] call IPC call to be checked.
     200 *
    217201 */
    218202#define IS_NET_IL_MESSAGE(call) \
    219         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_IL_FIRST, NET_IL_LAST)
    220 
    221 /** Returns a value indicating whether the IPC call is an IP message.
    222  * @param[in] call The IPC call to be checked.
     203        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_IL_FIRST, NET_IL_LAST)
     204
     205/** Check if the IPC call is an IP message.
     206 *
     207 * @param[in] call IPC call to be checked.
     208 *
    223209 */
    224210#define IS_NET_IP_MESSAGE(call) \
    225         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_IP_FIRST, NET_IP_LAST)
    226 
    227 /** Returns a value indicating whether the IPC call is a generic networking
    228  * message.
    229  * @param[in] call The IPC call to be checked.
     211        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_IP_FIRST, NET_IP_LAST)
     212
     213/** Check if the IPC call is a generic networking message.
     214 *
     215 * @param[in] call IPC call to be checked.
     216 *
    230217 */
    231218#define IS_NET_NET_MESSAGE(call) \
    232         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_NET_FIRST, NET_NET_LAST)
    233 
    234 /** Returns a value indicating whether the IPC call is a network interface layer
    235  * message.
    236  * @param[in] call The IPC call to be checked.
     219        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_NET_FIRST, NET_NET_LAST)
     220
     221/** Check if the IPC call is a network interface layer message.
     222 *
     223 * @param[in] call IPC call to be checked.
     224 *
    237225 */
    238226#define IS_NET_NIL_MESSAGE(call) \
    239         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_NIL_FIRST, NET_NIL_LAST)
    240 
    241 /** Returns a value indicating whether the IPC call is a packet manaagement
    242  * system message.
    243  * @param[in] call The IPC call to be checked.
     227        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_NIL_FIRST, NET_NIL_LAST)
     228
     229/** Check if the IPC call is a packet manaagement system message.
     230 *
     231 * @param[in] call IPC call to be checked.
     232 *
    244233 */
    245234#define IS_NET_PACKET_MESSAGE(call) \
    246         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_PACKET_FIRST, NET_PACKET_LAST)
    247 
    248 /** Returns a value indicating whether the IPC call is a socket message.
    249  * @param[in] call The IPC call to be checked.
     235        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_PACKET_FIRST, NET_PACKET_LAST)
     236
     237/** Check if the IPC call is a socket message.
     238 *
     239 * @param[in] call IPC call to be checked.
     240 *
    250241 */
    251242#define IS_NET_SOCKET_MESSAGE(call) \
    252         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_SOCKET_FIRST, NET_SOCKET_LAST)
    253 
    254 /** Returns a value indicating whether the IPC call is a TCP message.
    255  * @param[in] call The IPC call to be checked.
     243        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_SOCKET_FIRST, NET_SOCKET_LAST)
     244
     245/** Check if the IPC call is a TCP message.
     246 *
     247 * @param[in] call IPC call to be checked.
     248 *
    256249 */
    257250#define IS_NET_TCP_MESSAGE(call) \
    258         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_TCP_FIRST, NET_TCP_LAST)
    259 
    260 /** Returns a value indicating whether the IPC call is a transport layer message.
    261  * @param[in] call The IPC call to be checked.
     251        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_TCP_FIRST, NET_TCP_LAST)
     252
     253/** Check if the IPC call is a transport layer message.
     254 *
     255 * @param[in] call IPC call to be checked.
     256 *
    262257 */
    263258#define IS_NET_TL_MESSAGE(call) \
    264         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_TL_FIRST, NET_TL_LAST)
    265 
    266 /** Returns a value indicating whether the IPC call is a UDP message.
    267  * @param[in] call The IPC call to be checked.
     259        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_TL_FIRST, NET_TL_LAST)
     260
     261/** Check if the IPC call is a UDP message.
     262 *
     263 * @param[in] call IPC call to be checked.
     264 *
    268265 */
    269266#define IS_NET_UDP_MESSAGE(call) \
    270         IS_IN_INTERVAL(IPC_GET_IMETHOD(*call), NET_UDP_FIRST, NET_UDP_LAST)
     267        IS_IN_INTERVAL(IPC_GET_IMETHOD(call), NET_UDP_FIRST, NET_UDP_LAST)
    271268
    272269/*@}*/
     
    275272/*@{*/
    276273
    277 /** Returns the device identifier message argument.
    278  * @param[in] call The message call structure.
    279  */
    280 #define IPC_GET_DEVICE(call) \
    281         ({ \
    282                 device_id_t device_id = (device_id_t) IPC_GET_ARG1(*call); \
    283                 device_id; \
    284         })
    285 
    286 /** Returns the packet identifier message argument.
    287  * @param[in] call The message call structure.
    288  */
    289 #define IPC_GET_PACKET(call) \
    290         ({ \
    291                 packet_id_t packet_id = (packet_id_t) IPC_GET_ARG2(*call); \
    292                 packet_id; \
    293         })
    294 
    295 /** Returns the count message argument.
    296  * @param[in] call The message call structure.
    297  */
    298 #define IPC_GET_COUNT(call) \
    299         ({ \
    300                 size_t size = (size_t) IPC_GET_ARG2(*call); \
    301                 size; \
    302         })
    303 
    304 /** Returns the device state message argument.
    305  * @param[in] call The message call structure.
    306  */
    307 #define IPC_GET_STATE(call) \
    308         ({ \
    309                 device_state_t state = (device_state_t) IPC_GET_ARG2(*call); \
    310                 state; \
    311         })
    312 
    313 /** Returns the maximum transmission unit message argument.
    314  * @param[in] call The message call structure.
    315  */
    316 #define IPC_GET_MTU(call) \
    317         ({ \
    318                 size_t size = (size_t) IPC_GET_ARG2(*call); \
    319                 size; \
    320         })
    321 
    322 /** Returns the device driver service message argument.
    323  * @param[in] call The message call structure.
    324  */
    325 #define IPC_GET_SERVICE(call) \
    326         ({ \
    327                 services_t service = (services_t) IPC_GET_ARG3(*call); \
    328                 service; \
    329         })
    330 
    331 /** Returns the target service message argument.
    332  * @param[in] call The message call structure.
    333  */
    334 #define IPC_GET_TARGET(call) \
    335         ({ \
    336                 services_t service = (services_t) IPC_GET_ARG3(*call); \
    337                 service; \
    338         })
    339 
    340 /** Returns the sender service message argument.
    341  * @param[in] call The message call structure.
    342  */
    343 #define IPC_GET_SENDER(call) \
    344         ({ \
    345                 services_t service = (services_t) IPC_GET_ARG3(*call); \
    346                 service; \
    347         })
    348 
    349 /** Returns the error service message argument.
    350  * @param[in] call The message call structure.
    351  */
    352 #define IPC_GET_ERROR(call) \
    353         ({ \
    354                 services_t service = (services_t) IPC_GET_ARG4(*call); \
    355                 service; \
    356         })
    357 
    358 /** Returns the phone message argument.
    359  * @param[in] call The message call structure.
    360  */
    361 #define IPC_GET_PHONE(call) \
    362         ({ \
    363                 int phone = (int) IPC_GET_ARG5(*call); \
    364                 phone; \
    365         })
    366 
    367 /** Sets the device identifier in the message answer.
    368  * @param[out] answer The message answer structure.
    369  */
    370 #define IPC_SET_DEVICE(answer, value) \
    371         do { \
    372                 sysarg_t argument = (sysarg_t) (value); \
    373                 IPC_SET_ARG1(*answer, argument); \
    374         } while (0)
    375 
    376 /** Sets the minimum address length in the message answer.
    377  * @param[out] answer The message answer structure.
    378  */
    379 #define IPC_SET_ADDR(answer, value) \
    380         do { \
    381                 sysarg_t argument = (sysarg_t) (value); \
    382                 IPC_SET_ARG1(*answer, argument); \
    383         } while (0)
    384 
    385 /** Sets the minimum prefix size in the message answer.
    386  * @param[out] answer The message answer structure.
    387  */
    388 #define IPC_SET_PREFIX(answer, value) \
    389         do { \
    390                 sysarg_t argument = (sysarg_t) (value); \
    391                 IPC_SET_ARG2(*answer, argument); \
    392         } while (0)
    393 
    394 /** Sets the maximum content size in the message answer.
    395  * @param[out] answer The message answer structure.
    396  */
    397 #define IPC_SET_CONTENT(answer, value) \
    398         do { \
    399                 sysarg_t argument = (sysarg_t) (value); \
    400                 IPC_SET_ARG3(*answer, argument); \
    401         } while (0)
    402 
    403 /** Sets the minimum suffix size in the message answer.
    404  * @param[out] answer The message answer structure.
    405  */
    406 #define IPC_SET_SUFFIX(answer, value) \
    407         do { \
    408                 sysarg_t argument = (sysarg_t) (value); \
    409                 IPC_SET_ARG4(*answer, argument); \
    410         } while (0)
     274/** Return the device identifier message argument.
     275 *
     276 * @param[in] call Message call structure.
     277 *
     278 */
     279#define IPC_GET_DEVICE(call)  ((device_id_t) IPC_GET_ARG1(call))
     280
     281/** Return the packet identifier message argument.
     282 *
     283 * @param[in] call Message call structure.
     284 *
     285 */
     286#define IPC_GET_PACKET(call)  ((packet_id_t) IPC_GET_ARG2(call))
     287
     288/** Return the count message argument.
     289 *
     290 * @param[in] call Message call structure.
     291 *
     292 */
     293#define IPC_GET_COUNT(call)  ((size_t) IPC_GET_ARG2(call))
     294
     295/** Return the device state message argument.
     296 *
     297 * @param[in] call Message call structure.
     298 *
     299 */
     300#define IPC_GET_STATE(call)  ((device_state_t) IPC_GET_ARG2(call))
     301
     302/** Return the maximum transmission unit message argument.
     303 *
     304 * @param[in] call Message call structure.
     305 *
     306 */
     307#define IPC_GET_MTU(call)  ((size_t) IPC_GET_ARG2(call))
     308
     309/** Return the device driver service message argument.
     310 *
     311 * @param[in] call Message call structure.
     312 *
     313 */
     314#define IPC_GET_SERVICE(call)  ((services_t) IPC_GET_ARG3(call))
     315
     316/** Return the target service message argument.
     317 *
     318 * @param[in] call Message call structure.
     319 *
     320 */
     321#define IPC_GET_TARGET(call)  ((services_t) IPC_GET_ARG3(call))
     322
     323/** Return the sender service message argument.
     324 *
     325 * @param[in] call Message call structure.
     326 *
     327 */
     328#define IPC_GET_SENDER(call)  ((services_t) IPC_GET_ARG3(call))
     329
     330/** Return the error service message argument.
     331 &
     332 * @param[in] call Message call structure.
     333 *
     334 */
     335#define IPC_GET_ERROR(call)  ((services_t) IPC_GET_ARG4(call))
     336
     337/** Return the phone message argument.
     338 *
     339 * @param[in] call Message call structure.
     340 *
     341 */
     342#define IPC_GET_PHONE(call)  ((int) IPC_GET_ARG5(call))
     343
     344/** Set the device identifier in the message answer.
     345 *
     346 * @param[out] answer Message answer structure.
     347 * @param[in]  value  Value to set.
     348 *
     349 */
     350#define IPC_SET_DEVICE(answer, value)  IPC_SET_ARG1(answer, (sysarg_t) (value))
     351
     352/** Set the minimum address length in the message answer.
     353 *
     354 * @param[out] answer Message answer structure.
     355 * @param[in]  value  Value to set.
     356 *
     357 */
     358#define IPC_SET_ADDR(answer, value)  IPC_SET_ARG1(answer, (sysarg_t) (value))
     359
     360/** Set the minimum prefix size in the message answer.
     361 *
     362 * @param[out] answer Message answer structure.
     363 * @param[in]  value  Value to set.
     364 *
     365 */
     366#define IPC_SET_PREFIX(answer, value)  IPC_SET_ARG2(answer, (sysarg_t) (value))
     367
     368/** Set the maximum content size in the message answer.
     369 *
     370 * @param[out] answer Message answer structure.
     371 * @param[in]  value  Value to set.
     372 *
     373 */
     374#define IPC_SET_CONTENT(answer, value)  IPC_SET_ARG3(answer, (sysarg_t) (value))
     375
     376/** Set the minimum suffix size in the message answer.
     377 *
     378 * @param[out] answer Message answer structure.
     379 * @param[in]  value  Value to set.
     380 *
     381 */
     382#define IPC_SET_SUFFIX(answer, value)  IPC_SET_ARG4(answer, (sysarg_t) (value))
    411383
    412384/*@}*/
Note: See TracChangeset for help on using the changeset viewer.