Home | History | Annotate | Download | only in RawIp4Rx
      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