Ignore:
File:
1 edited

Legend:

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

    r2aa15d4 r14f1db0  
    3939
    4040#include <async.h>
     41
    4142#include <ipc/ipc.h>
    4243#include <ipc/services.h>
     
    4546#include <adt/measured_strings.h>
    4647#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/*@}*/
    47313
    48314/** @name Networking specific message arguments definitions
Note: See TracChangeset for help on using the changeset viewer.