Home | History | Annotate | Download | only in Arp
      1 /*++
      2 
      3 Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 Module Name:
     13 
     14   Arp.h
     15 
     16 Abstract:
     17 
     18   UEFI Arp protocol definition.
     19 
     20 --*/
     21 
     22 #ifndef _ARP_H_
     23 #define _ARP_H_
     24 
     25 #include EFI_PROTOCOL_DEFINITION (ServiceBinding)
     26 
     27 #define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID \
     28   { 0xf44c00ee, 0x1f2c, 0x4a00, {0xaa, 0x9, 0x1c, 0x9f, 0x3e, 0x8, 0x0, 0xa3} }
     29 
     30 #define EFI_ARP_PROTOCOL_GUID \
     31   { 0xf4b427bb, 0xba21, 0x4f16, {0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c} }
     32 
     33 EFI_FORWARD_DECLARATION (EFI_ARP_PROTOCOL);
     34 
     35 typedef struct _EFI_ARP_FIND_DATA {
     36 UINT32               Size;
     37 BOOLEAN              DenyFlag;
     38 BOOLEAN              StaticFlag;
     39 UINT16               HwAddressType;
     40 UINT16               SwAddressType;
     41 UINT8                HwAddressLength;
     42 UINT8                SwAddressLength;
     43 } EFI_ARP_FIND_DATA;
     44 
     45 
     46 //****************************************************
     47 // EFI_ARP_CONFIG_DATA
     48 //****************************************************
     49 typedef struct EFI_ARP_CONFIG_DATA {
     50   UINT16                    SwAddressType;      // Host byte order
     51   UINT8                     SwAddressLength;
     52   VOID                      *StationAddress;    // Network byte order
     53   UINT32                    EntryTimeOut;
     54   UINT32                    RetryCount;
     55   UINT32                    RetryTimeOut;
     56 } EFI_ARP_CONFIG_DATA;
     57 
     58 
     59 typedef
     60 EFI_STATUS
     61 (EFIAPI *EFI_ARP_CONFIGURE) (
     62   IN EFI_ARP_PROTOCOL          *This,
     63   IN EFI_ARP_CONFIG_DATA       *ConfigData   OPTIONAL
     64   );
     65 
     66 
     67 typedef
     68 EFI_STATUS
     69 (EFIAPI *EFI_ARP_ADD) (
     70   IN EFI_ARP_PROTOCOL  *This,
     71   IN BOOLEAN           DenyFlag,
     72   IN VOID              *TargetSwAddress  OPTIONAL,
     73   IN VOID              *TargetHwAddress  OPTIONAL,
     74   IN UINT32            TimeoutValue,
     75   IN BOOLEAN           Overwrite
     76   );
     77 
     78 typedef
     79 EFI_STATUS
     80 (EFIAPI *EFI_ARP_FIND) (
     81   IN EFI_ARP_PROTOCOL     *This,
     82   IN BOOLEAN              BySwAddress,
     83   IN VOID                 *AddressBuffer    OPTIONAL,
     84   OUT UINT32              *EntryLength      OPTIONAL,
     85   OUT UINT32              *EntryCount       OPTIONAL,
     86   OUT EFI_ARP_FIND_DATA   **Entries         OPTIONAL,
     87   IN BOOLEAN              Refresh
     88 );
     89 
     90 
     91 typedef
     92 EFI_STATUS
     93 (EFIAPI *EFI_ARP_DELETE) (
     94   IN EFI_ARP_PROTOCOL      *This,
     95   IN BOOLEAN               BySwAddress,
     96   IN VOID                  *AddressBuffer   OPTIONAL
     97   );
     98 
     99 typedef
    100 EFI_STATUS
    101 (EFIAPI *EFI_ARP_FLUSH) (
    102   IN EFI_ARP_PROTOCOL  *This
    103   );
    104 
    105 typedef
    106 EFI_STATUS
    107 (EFIAPI *EFI_ARP_REQUEST) (
    108   IN EFI_ARP_PROTOCOL  *This,
    109   IN VOID              *TargetSwAddress  OPTIONAL,
    110   IN EFI_EVENT         ResolvedEvent     OPTIONAL,
    111   OUT VOID             *TargetHwAddress
    112   );
    113 
    114 typedef
    115 EFI_STATUS
    116 (EFIAPI *EFI_ARP_CANCEL) (
    117 IN EFI_ARP_PROTOCOL  *This,
    118 IN VOID              *TargetSwAddress  OPTIONAL,
    119 IN EFI_EVENT         ResolvedEvent     OPTIONAL
    120 );
    121 
    122 struct _EFI_ARP_PROTOCOL {
    123   EFI_ARP_CONFIGURE         Configure;
    124   EFI_ARP_ADD               Add;
    125   EFI_ARP_FIND              Find;
    126   EFI_ARP_DELETE            Delete;
    127   EFI_ARP_FLUSH             Flush;
    128   EFI_ARP_REQUEST           Request;
    129   EFI_ARP_CANCEL            Cancel;
    130 };
    131 
    132 
    133 extern EFI_GUID gEfiArpServiceBindingProtocolGuid;
    134 extern EFI_GUID gEfiArpProtocolGuid;
    135 
    136 #endif
    137