Ignore:
Timestamp:
2010-10-06T22:58:18Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ae972834
Parents:
49d871ea (diff), d9e2e0e (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.

This merge continues with the overhaul of the networking subsystem and procedes
towards the ultimate goal of getting rid of the current lib socket. The current
lib socket mixes code which should either belong to libc, libnet or directly to
the packet server. By moving generic non-networking and client networking code
out of the current lib socket, I am preparing to merge the rest of it to lib net
and the packet server and fix ticket #257 for the modular builds. When this is
done, we can talk of moving some of the networking client code back to a
dedicated client library, but we can just as well keep it in lib C, similar to
how we have file system client code there.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/socket/include/net_messages.h

    r49d871ea rc0e74b1  
    3939
    4040#include <async.h>
    41 
    4241#include <ipc/ipc.h>
    4342#include <ipc/services.h>
     
    4645#include <adt/measured_strings.h>
    4746#include <packet/packet.h>
    48 
    49 /** Returns a value indicating whether the value is in the interval.
    50  *  @param[in] item The value to be checked.
    51  *  @param[in] first_inclusive The first value in the interval inclusive.
    52  *  @param[in] last_exclusive The first value after the interval.
    53  */
    54 #define IS_IN_INTERVAL(item, first_inclusive, last_exclusive)   (((item) >= (first_inclusive)) && ((item) < (last_exclusive)))
    55 
    56 /** @name Networking message counts
    57  */
    58 /*@{*/
    59 
    60 /** The number of ARP messages.
    61  */
    62 #define NET_ARP_COUNT           5
    63 
    64 /** The number of Ethernet messages.
    65  */
    66 #define NET_ETH_COUNT           0
    67 
    68 /** The number of ICMP messages.
    69  */
    70 #define NET_ICMP_COUNT          6
    71 
    72 /** The number of inter-network messages.
    73  */
    74 #define NET_IL_COUNT            6
    75 
    76 /** The number of IP messages.
    77  */
    78 #define NET_IP_COUNT            4
    79 
    80 /** The number of general networking messages.
    81  */
    82 #define NET_NET_COUNT           3
    83 
    84 /** The number of network interface driver messages.
    85  */
    86 #define NET_NETIF_COUNT         6
    87 
    88 /** The number of network interface layer messages.
    89  */
    90 #define NET_NIL_COUNT           7
    91 
    92 /** The number of packet management system messages.
    93  */
    94 #define NET_PACKET_COUNT        5
    95 
    96 /** The number of socket messages.
    97  */
    98 #define NET_SOCKET_COUNT        14
    99 
    100 /** The number of TCP messages.
    101  */
    102 #define NET_TCP_COUNT           0
    103 
    104 /** The number of transport layer messages.
    105  */
    106 #define NET_TL_COUNT            1
    107 
    108 /** The number of UDP messages.
    109  */
    110 #define NET_UDP_COUNT           0
    111 
    112 /*@}*/
    113 
    114 /** @name Networking message intervals
    115  */
    116 /*@{*/
    117 
    118 /** The first networking message.
    119  */
    120 #define NET_FIRST                       2000
    121 
    122 /** The first network interface layer message.
    123  */
    124 #define NET_NETIF_FIRST         NET_FIRST
    125 
    126 /** The last network interface layer message.
    127  */
    128 #define NET_NETIF_LAST          (NET_NETIF_FIRST + NET_NETIF_COUNT)
    129 
    130 /** The first general networking message.
    131  */
    132 #define NET_NET_FIRST           (NET_NETIF_LAST + 0)
    133 
    134 /** The last general networking message.
    135  */
    136 #define NET_NET_LAST            (NET_NET_FIRST + NET_NET_COUNT)
    137 
    138 /** The first network interface layer message.
    139  */
    140 #define NET_NIL_FIRST           (NET_NET_LAST + 0)
    141 
    142 /** The last network interface layer message.
    143  */
    144 #define NET_NIL_LAST            (NET_NIL_FIRST + NET_NIL_COUNT)
    145 
    146 /** The first Ethernet message.
    147  */
    148 #define NET_ETH_FIRST           (NET_NIL_LAST + 0)
    149 
    150 /** The last Ethernet message.
    151  */
    152 #define NET_ETH_LAST            (NET_ETH_FIRST + NET_ETH_COUNT)
    153 
    154 /** The first inter-network message.
    155  */
    156 #define NET_IL_FIRST            (NET_ETH_LAST + 0)
    157 
    158 /** The last inter-network message.
    159  */
    160 #define NET_IL_LAST                     (NET_IL_FIRST + NET_IL_COUNT)
    161 
    162 /** The first IP message.
    163  */
    164 #define NET_IP_FIRST            (NET_IL_LAST + 0)
    165 
    166 /** The last IP message.
    167  */
    168 #define NET_IP_LAST                     (NET_IP_FIRST + NET_IP_COUNT)
    169 
    170 /** The first ARP message.
    171  */
    172 #define NET_ARP_FIRST           (NET_IP_LAST + 0)
    173 
    174 /** The last ARP message.
    175  */
    176 #define NET_ARP_LAST            (NET_ARP_FIRST + NET_ARP_COUNT)
    177 
    178 /** The first ICMP message.
    179  */
    180 #define NET_ICMP_FIRST          (NET_ARP_LAST + 0)
    181 
    182 /** The last ICMP message.
    183  */
    184 #define NET_ICMP_LAST           (NET_ICMP_FIRST + NET_ICMP_COUNT)
    185 
    186 /** The first ICMP message.
    187  */
    188 #define NET_TL_FIRST            (NET_ICMP_LAST + 0)
    189 
    190 /** The last ICMP message.
    191  */
    192 #define NET_TL_LAST                     (NET_TL_FIRST + NET_TL_COUNT)
    193 
    194 /** The first UDP message.
    195  */
    196 #define NET_UDP_FIRST           (NET_TL_LAST + 0)
    197 
    198 /** The last UDP message.
    199  */
    200 #define NET_UDP_LAST            (NET_UDP_FIRST + NET_UDP_COUNT)
    201 
    202 /** The first TCP message.
    203  */
    204 #define NET_TCP_FIRST           (NET_UDP_LAST + 0)
    205 
    206 /** The last TCP message.
    207  */
    208 #define NET_TCP_LAST            (NET_TCP_FIRST + NET_TCP_COUNT)
    209 
    210 /** The first socket message.
    211  */
    212 #define NET_SOCKET_FIRST        (NET_TCP_LAST + 0)
    213 
    214 /** The last socket message.
    215  */
    216 #define NET_SOCKET_LAST         (NET_SOCKET_FIRST + NET_SOCKET_COUNT)
    217 
    218 /** The first packet management system message.
    219  */
    220 #define NET_PACKET_FIRST        (NET_SOCKET_LAST + 0)
    221 
    222 /** The last packet management system message.
    223  */
    224 #define NET_PACKET_LAST         (NET_PACKET_FIRST + NET_PACKET_COUNT)
    225 
    226 /** The last networking message.
    227  */
    228 #define NET_LAST                        NET_PACKET_LAST
    229 
    230 /** The number of networking messages.
    231  */
    232 #define NET_COUNT                       (NET_LAST - NET_FIRST)
    233 
    234 /** Returns a value indicating whether the IPC call is a generic networking message.
    235  *  @param[in] call The IPC call to be checked.
    236  */
    237 #define IS_NET_MESSAGE(call) \
    238         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_FIRST, NET_LAST)
    239 
    240 /** Returns a value indicating whether the IPC call is an ARP message.
    241  *  @param[in] call The IPC call to be checked.
    242  */
    243 #define IS_NET_ARP_MESSAGE(call) \
    244         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ARP_FIRST, NET_ARP_LAST)
    245 
    246 /** Returns a value indicating whether the IPC call is an Ethernet message.
    247  *  @param[in] call The IPC call to be checked.
    248  */
    249 #define IS_NET_ETH_MESSAGE(call) \
    250         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ETH_FIRST, NET_ETH_LAST)
    251 
    252 /** Returns a value indicating whether the IPC call is an ICMP message.
    253  *  @param[in] call The IPC call to be checked.
    254  */
    255 #define IS_NET_ICMP_MESSAGE(call) \
    256         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_ICMP_FIRST, NET_ICMP_LAST)
    257 
    258 /** Returns a value indicating whether the IPC call is an inter-network layer message.
    259  *  @param[in] call The IPC call to be checked.
    260  */
    261 #define IS_NET_IL_MESSAGE(call) \
    262         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_IL_FIRST, NET_IL_LAST)
    263 
    264 /** Returns a value indicating whether the IPC call is an IP message.
    265  *  @param[in] call The IPC call to be checked.
    266  */
    267 #define IS_NET_IP_MESSAGE(call) \
    268         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_IP_FIRST, NET_IP_LAST)
    269 
    270 /** Returns a value indicating whether the IPC call is a generic networking message.
    271  *  @param[in] call The IPC call to be checked.
    272  */
    273 #define IS_NET_NET_MESSAGE(call) \
    274         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NET_FIRST, NET_NET_LAST)
    275 
    276 /** Returns a value indicating whether the IPC call is a network interface layer message.
    277  *  @param[in] call The IPC call to be checked.
    278  */
    279 #define IS_NET_NIL_MESSAGE(call) \
    280         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_NIL_FIRST, NET_NIL_LAST)
    281 
    282 /** Returns a value indicating whether the IPC call is a packet manaagement system message.
    283  *  @param[in] call The IPC call to be checked.
    284  */
    285 #define IS_NET_PACKET_MESSAGE(call) \
    286         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_PACKET_FIRST, NET_PACKET_LAST)
    287 
    288 /** Returns a value indicating whether the IPC call is a socket message.
    289  *  @param[in] call The IPC call to be checked.
    290  */
    291 #define IS_NET_SOCKET_MESSAGE(call) \
    292         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_SOCKET_FIRST, NET_SOCKET_LAST)
    293 
    294 /** Returns a value indicating whether the IPC call is a TCP message.
    295  *  @param[in] call The IPC call to be checked.
    296  */
    297 #define IS_NET_TCP_MESSAGE(call) \
    298         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_TCP_FIRST, NET_TCP_LAST)
    299 
    300 /** Returns a value indicating whether the IPC call is a transport layer message.
    301  *  @param[in] call The IPC call to be checked.
    302  */
    303 #define IS_NET_TL_MESSAGE(call) \
    304         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_TL_FIRST, NET_TL_LAST)
    305 
    306 /** Returns a value indicating whether the IPC call is a UDP message.
    307  *  @param[in] call The IPC call to be checked.
    308  */
    309 #define IS_NET_UDP_MESSAGE(call) \
    310         IS_IN_INTERVAL(IPC_GET_METHOD(*call), NET_UDP_FIRST, NET_UDP_LAST)
    311 
    312 /*@}*/
    31347
    31448/** @name Networking specific message arguments definitions
Note: See TracChangeset for help on using the changeset viewer.