Changes in uspace/lib/net/include/protocol_map.h [849ed54:465c935] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/net/include/protocol_map.h
r849ed54 r465c935 27 27 */ 28 28 29 /** @addtogroup net_nil30 * 29 /** @addtogroup libnet 30 * @{ 31 31 */ 32 32 33 33 /** @file 34 * Internetwork layer services - network interface layer service type translation. 34 * Internetwork layer services - network interface layer service type 35 * translation. 35 36 */ 36 37 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_ 41 40 42 41 #include <ethernet_lsap.h> … … 44 43 #include <net_hardware.h> 45 44 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> 68 46 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 } 47 eth_type_t protocol_map(services_t, services_t); 48 services_t protocol_unmap(services_t, int); 49 eth_type_t lsap_map(eth_lsap_t); 50 eth_lsap_t lsap_unmap(eth_type_t); 51 hw_type_t hardware_map(services_t); 138 52 139 53 #endif
Note:
See TracChangeset
for help on using the changeset viewer.