1 /** @file 2 Definitions for the raw IP4 receive application 3 4 Copyright (c) 2011-2012, Intel Corporation 5 All rights reserved. This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _RAW_IP4_RX_H_ 16 #define _RAW_IP4_RX_H_ 17 18 //------------------------------------------------------------------------------ 19 // Include Files 20 //------------------------------------------------------------------------------ 21 22 #ifdef BUILD_FOR_WINDOWS 23 // 24 // Build for Windows environment 25 // 26 27 #include <winsock2.h> 28 29 #define CLOSE_SOCKET closesocket 30 #define SIN_ADDR(port) port.sin_addr.S_un.S_addr 31 #define SIN_FAMILY(port) port.sin_family 32 #define SIN_LEN(port) port.sin_family 33 #define SIN_PORT(port) port.sin_port 34 #define GET_ERRNO WSAGetLastError ( ) 35 36 #define ssize_t int 37 #define socklen_t int 38 39 #else // BUILD_FOR_WINDOWS 40 // 41 // Build for EFI environment 42 // 43 44 #include <Uefi.h> 45 #include <errno.h> 46 #include <stdlib.h> 47 #include <string.h> 48 49 #include <netinet/in.h> 50 51 #include <sys/EfiSysCall.h> 52 #include <sys/endian.h> 53 #include <sys/socket.h> 54 #include <sys/time.h> 55 56 #define CLOSE_SOCKET close 57 #define SIN_ADDR(port) port.sin_addr.s_addr 58 #define SIN_FAMILY(port) port.sin_family 59 #define SIN_LEN(port) port.sin_len 60 #define SIN_PORT(port) port.sin_port 61 #define SOCKET int 62 #define GET_ERRNO errno 63 64 #endif // BUILD_FOR_WINDOWS 65 66 #include <stdio.h> 67 68 //------------------------------------------------------------------------------ 69 // Constants 70 //------------------------------------------------------------------------------ 71 72 // 73 // See http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml 74 // and http://tools.ietf.org/html/rfc3692 75 // 76 #define RAW_PROTOCOL 253 77 78 //------------------------------------------------------------------------------ 79 // API 80 //------------------------------------------------------------------------------ 81 82 /** 83 Run the raw IP4 receive application 84 85 @param [in] ArgC Argument count 86 @param [in] ArgV Argument value array 87 88 @retval 0 Successfully operation 89 **/ 90 91 int 92 RawIp4Rx ( 93 IN int ArgC, 94 IN char **ArgV 95 ); 96 97 //------------------------------------------------------------------------------ 98 99 #endif // _RAW_IP4_RX_H_ 100