Ignore:
Timestamp:
2010-11-22T15:39:53Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0eddb76, aae339e9
Parents:
9a1d8ab (diff), 8cd1aa5e (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 development/ changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/include/protocol_map.h

    r9a1d8ab r0b749a3  
    2727 */
    2828
    29 /** @addtogroup net_nil
    30  *  @{
     29/** @addtogroup libnet
     30 * @{
    3131 */
    3232
    3333/** @file
    34  *  Internetwork layer services - network interface layer service type translation.
     34 * Internetwork layer services - network interface layer service type
     35 * translation.
    3536 */
    3637
    37 #ifndef __NET_PROTOCOL_MAP_H__
    38 #define __NET_PROTOCOL_MAP_H__
    39 
    40 #include <ipc/services.h>
     38#ifndef LIBNET_PROTOCOL_MAP_H_
     39#define LIBNET_PROTOCOL_MAP_H_
    4140
    4241#include <ethernet_lsap.h>
     
    4443#include <net_hardware.h>
    4544
    46 /** Maps the internetwork layer service to the network interface layer type.
    47  *  @param[in] nil Network interface layer service.
    48  *  @param[in] il Internetwork layer service.
    49  *  @returns Network interface layer type of the internetworking layer service.
    50  *  @returns 0 if mapping is not found.
    51  */
    52 static inline eth_type_t protocol_map(services_t nil, services_t il){
    53         switch(nil){
    54                 case SERVICE_ETHERNET:
    55                 case SERVICE_DP8390:
    56                         switch(il){
    57                                 case SERVICE_IP:
    58                                         return ETH_P_IP;
    59                                 case SERVICE_ARP:
    60                                         return ETH_P_ARP;
    61                                 default:
    62                                         return 0;
    63                         }
    64                 default:
    65                         return 0;
    66         }
    67 }
     45#include <ipc/services.h>
    6846
    69 /** Maps the network interface layer type to the internetwork layer service.
    70  *  @param[in] nil Network interface layer service.
    71  *  @param[in] protocol Network interface layer type.
    72  *  @returns Internetwork layer service of the network interface layer type.
    73  *  @returns 0 if mapping is not found.
    74  */
    75 static inline services_t protocol_unmap(services_t nil, int protocol){
    76         switch(nil){
    77                 case SERVICE_ETHERNET:
    78                 case SERVICE_DP8390:
    79                         switch(protocol){
    80                                 case ETH_P_IP:
    81                                         return SERVICE_IP;
    82                                 case ETH_P_ARP:
    83                                         return SERVICE_ARP;
    84                                 default:
    85                                         return 0;
    86                         }
    87                 default:
    88                         return 0;
    89         }
    90 }
    91 
    92 /** Maps the link service access point identifier to the Ethernet protocol identifier.
    93  *  @param[in] lsap Link service access point identifier.
    94  *  @returns Ethernet protocol identifier of the link service access point identifier.
    95  *  @returns ETH_LSAP_NULL if mapping is not found.
    96  */
    97 static inline eth_type_t lsap_map(eth_lsap_t lsap){
    98         switch(lsap){
    99                 case ETH_LSAP_IP:
    100                         return ETH_P_IP;
    101                 case ETH_LSAP_ARP:
    102                         return ETH_P_ARP;
    103                 default:
    104                         return ETH_LSAP_NULL;
    105         }
    106 }
    107 
    108 /** Maps the Ethernet protocol identifier to the link service access point identifier.
    109  *  @param[in] ethertype Ethernet protocol identifier.
    110  *  @returns Link service access point identifier.
    111  *  @returns 0 if mapping is not found.
    112  */
    113 static inline eth_lsap_t lsap_unmap(eth_type_t ethertype){
    114         switch(ethertype){
    115                 case ETH_P_IP:
    116                         return ETH_LSAP_IP;
    117                 case ETH_P_ARP:
    118                         return ETH_LSAP_ARP;
    119                 default:
    120                         return 0;
    121         }
    122 }
    123 
    124 /** Maps the network interface layer services to the hardware types.
    125  *  @param[in] nil The network interface service.
    126  *  @returns The hardware type of the network interface service.
    127  *  @returns 0 if mapping is not found.
    128  */
    129 static inline hw_type_t hardware_map(services_t nil){
    130         switch(nil){
    131                 case SERVICE_ETHERNET:
    132                 case SERVICE_DP8390:
    133                         return HW_ETHER;
    134                 default:
    135                         return 0;
    136         }
    137 }
     47extern eth_type_t protocol_map(services_t, services_t);
     48extern services_t protocol_unmap(services_t, int);
     49extern eth_type_t lsap_map(eth_lsap_t);
     50extern eth_lsap_t lsap_unmap(eth_type_t);
     51extern hw_type_t hardware_map(services_t);
    13852
    13953#endif
Note: See TracChangeset for help on using the changeset viewer.