Subversion Repositories HelenOS

Compare Revisions

No changes between revisions

Ignore whitespace Rev 4742 → Rev 4743

/branches/network/uspace/srv/net/include/crc.h
File deleted
Property changes:
Deleted: svn:eol-style
-native
\ No newline at end of property
/branches/network/uspace/srv/net/include/protocol_map.h
105,6 → 105,22
}
}
 
/** Maps the Ethernet protocol identifier to the link service access point identifier.
* @param ethertype Ethernet protocol identifier. Input parameter.
* @returns Link service access point identifier.
* @returns 0 if mapping is not found.
*/
static inline eth_lsap_t lsap_unmap( eth_type_t ethertype ){
switch( ethertype ){
case ETH_P_IP:
return ETH_LSAP_IP;
case ETH_P_ARP:
return ETH_LSAP_ARP;
default:
return 0;
}
}
 
/** Maps the network interface layer services to the hardware types.
* @param nil The network interface service. Input parameter.
* @returns The hardware type of the network interface service.
/branches/network/uspace/srv/net/include/checksum.h
0,0 → 1,108
/*
* Copyright (c) 2009 Lukas Mejdrech
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
/** @addtogroup net
* @{
*/
 
/** @file
* General CRC and checksum computation.
*/
 
#ifndef __NET_CHECKSUM_H__
#define __NET_CHECKSUM_H__
 
#include <byteorder.h>
 
#include <sys/types.h>
 
/** Computes CRC32 value.
* @param seed Initial value. Often used as 0 or ~0. Input parameter.
* @param data Pointer to the beginning of data to process. Input parameter.
* @param length Length of the data in bits. Input parameter.
* @returns The computed CRC32 of the length bits of the data.
*/
#ifdef ARCH_IS_BIG_ENDIAN
#define compute_crc32( seed, data, length ) compute_crc32_be( seed, ( uint8_t * ) data, length )
#else
#define compute_crc32( seed, data, length ) compute_crc32_le( seed, ( uint8_t * ) data, length )
#endif
 
/** Computes CRC32 value in the little-endian environment.
* @param seed Initial value. Often used as 0 or ~0. Input parameter.
* @param data Pointer to the beginning of data to process. Input parameter.
* @param length Length of the data in bits. Input parameter.
* @returns The computed CRC32 of the length bits of the data.
*/
uint32_t compute_crc32_le( uint32_t seed, uint8_t * data, size_t length );
 
/** Computes CRC32 value in the big-endian environment.
* @param seed Initial value. Often used as 0 or ~0. Input parameter.
* @param data Pointer to the beginning of data to process. Input parameter.
* @param length Length of the data in bits. Input parameter.
* @returns The computed CRC32 of the length bits of the data.
*/
uint32_t compute_crc32_be( uint32_t seed, uint8_t * data, size_t length );
 
/** Computes sum of the 2 byte fields.
* Padds one zero (0) byte if odd.
* @param seed Initial value. Often used as 0 or ~0. Input parameter.
* @param data Pointer to the beginning of data to process. Input parameter.
* @param length Length of the data in bytes. Input parameter.
* @returns The computed checksum of the length bytes of the data.
*/
uint32_t compute_checksum( uint32_t seed, uint8_t * data, size_t length );
 
/** Compacts the computed checksum to the 16 bit number adding the carries.
* @param sum Computed checksum. Input parameter.
* @returns Compacted computed checksum to the 16 bits.
*/
uint16_t compact_checksum( uint32_t sum );
 
/** Returns or flips the checksum if zero.
* @param checksum The computed checksum. Input parameter.
* @returns The internet protocol header checksum.
* @returns 0xFFFF if the computed checksum is zero.
*/
uint16_t flip_checksum( uint16_t checksum );
 
/** Computes the ip header checksum.
* To compute the checksum of a new packet, the checksum header field must be zero.
* To check the checksum of a received packet, the checksum may be left set.
* The zero (0) value will be returned in this case if valid.
* @param data The header data. Input parameter.
* @param length The header length in bytes. Input parameter.
* @returns The internet protocol header checksum.
* @returns 0xFFFF if the computed checksum is zero.
*/
uint16_t ip_checksum( uint8_t * data, size_t length );
 
#endif
 
/** @}
*/
Property changes:
Added: svn:eol-style
+native
\ No newline at end of property
/branches/network/uspace/srv/net/include/nil_interface.h
68,10 → 68,10
* @returns EOK on success.
* @returns EBADMEM if the address parameter is NULL.
* @returns ENOENT if there no such device.
* @returns Other error codes as defined for the generic_get_addr() function.
* @returns Other error codes as defined for the generic_get_addr_req() function.
*/
#define nil_get_addr( nil_phone, device_id, address, data ) \
generic_get_addr( nil_phone, NET_NIL_ADDR, device_id, address, data )
#define nil_get_addr_req( nil_phone, device_id, address, data ) \
generic_get_addr_req( nil_phone, NET_NIL_ADDR, device_id, address, data )
 
/** Returns the device broadcast hardware address.
* @param nil_phone The network interface layer phone. Input parameter.
81,10 → 81,10
* @returns EOK on success.
* @returns EBADMEM if the address parameter is NULL.
* @returns ENOENT if there no such device.
* @returns Other error codes as defined for the generic_get_addr() function.
* @returns Other error codes as defined for the generic_get_addr_req() function.
*/
#define nil_get_broadcast_addr( nil_phone, device_id, address, data ) \
generic_get_addr( nil_phone, NET_NIL_BROADCAST_ADDR, device_id, address, data )
#define nil_get_broadcast_addr_req( nil_phone, device_id, address, data ) \
generic_get_addr_req( nil_phone, NET_NIL_BROADCAST_ADDR, device_id, address, data )
 
/** Sends the packet queue.
* @param nil_phone The network interface layer phone. Input parameter.
145,6 → 145,17
*/
int nil_received_msg( int nil_phone, device_id_t device_id, packet_t packet, services_t target );
 
/** Creates bidirectional connection with the network interface layer module and registers the message receiver.
* @param service The network interface layer module service. Input parameter.
* @param device_id The device identifier. Input parameter.
* @param me The requesting module service. Input parameter.
* @param receiver The message receiver. Input parameter.
* @returns The phone of the needed service.
* @returns EOK on success.
* @returns Other error codes as defined for the bind_service() function.
*/
#define nil_bind_service( service, device_id, me, receiver ) \
bind_service( service, device_id, me, 0, receiver );
/*@}*/
 
#endif
/branches/network/uspace/srv/net/include/netif_interface.h
62,9 → 62,9
* @returns EOK on success.
* @returns EBADMEM if the address parameter is NULL.
* @returns ENOENT if there no such device.
* @returns Other error codes as defined for the netif_get_addr() function.
* @returns Other error codes as defined for the netif_get_addr_message() function.
*/
int netif_get_addr( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data );
int netif_get_addr_req( int netif_phone, device_id_t device_id, measured_string_ref * address, char ** data );
 
/** Probes the existence of the device.
* @param netif_phone The network interface phone. Input parameter.
112,7 → 112,7
*/
int netif_stats_req( int netif_phone, device_id_t device_id, device_stats_ref stats );
 
/** Creates bidirectional connection with the network interface module service and registers the message receiver.
/** Creates bidirectional connection with the network interface module and registers the message receiver.
* @param service The network interface module service. Input parameter.
* @param device_id The device identifier. Input parameter.
* @param me The requesting module service. Input parameter.