VirtualBox

Ignore:
Timestamp:
Apr 14, 2023 3:17:44 PM (22 months ago)
Author:
vboxsync
Message:

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/Include/Library/IpIoLib.h

    r85718 r99404  
    2020// from IP
    2121//
    22 #define ICMP_TYPE_UNREACH              3
    23 #define ICMP_TYPE_TIMXCEED             11
    24 #define ICMP_TYPE_PARAMPROB            12
    25 #define ICMP_TYPE_SOURCEQUENCH         4
    26 
    27 #define ICMP_CODE_UNREACH_NET          0
    28 #define ICMP_CODE_UNREACH_HOST         1
    29 #define ICMP_CODE_UNREACH_PROTOCOL     2
    30 #define ICMP_CODE_UNREACH_PORT         3
    31 #define ICMP_CODE_UNREACH_NEEDFRAG     4
    32 #define ICMP_CODE_UNREACH_SRCFAIL      5
    33 #define ICMP_CODE_UNREACH_NET_UNKNOWN  6
    34 #define ICMP_CODE_UNREACH_HOST_UNKNOWN 7
    35 #define ICMP_CODE_UNREACH_ISOLATED     8
    36 #define ICMP_CODE_UNREACH_NET_PROHIB   9
    37 #define ICMP_CODE_UNREACH_HOST_PROHIB  10
    38 #define ICMP_CODE_UNREACH_TOSNET       11
    39 #define ICMP_CODE_UNREACH_TOSHOST      12
     22#define ICMP_TYPE_UNREACH       3
     23#define ICMP_TYPE_TIMXCEED      11
     24#define ICMP_TYPE_PARAMPROB     12
     25#define ICMP_TYPE_SOURCEQUENCH  4
     26
     27#define ICMP_CODE_UNREACH_NET           0
     28#define ICMP_CODE_UNREACH_HOST          1
     29#define ICMP_CODE_UNREACH_PROTOCOL      2
     30#define ICMP_CODE_UNREACH_PORT          3
     31#define ICMP_CODE_UNREACH_NEEDFRAG      4
     32#define ICMP_CODE_UNREACH_SRCFAIL       5
     33#define ICMP_CODE_UNREACH_NET_UNKNOWN   6
     34#define ICMP_CODE_UNREACH_HOST_UNKNOWN  7
     35#define ICMP_CODE_UNREACH_ISOLATED      8
     36#define ICMP_CODE_UNREACH_NET_PROHIB    9
     37#define ICMP_CODE_UNREACH_HOST_PROHIB   10
     38#define ICMP_CODE_UNREACH_TOSNET        11
     39#define ICMP_CODE_UNREACH_TOSHOST       12
    4040
    4141/**
     
    4848  @return The IP header length.
    4949**/
    50 #define EFI_IP4_HEADER_LEN(HdrPtr) ((HdrPtr)->HeaderLength << 2)
     50#define EFI_IP4_HEADER_LEN(HdrPtr)  ((HdrPtr)->HeaderLength << 2)
    5151
    5252/**
     
    7272#define NET_PROTO_HDR(Buf, Type)  ((Type *) ((Buf)->BlockOp[0].Head))
    7373
    74 
    7574extern EFI_IP4_CONFIG_DATA  mIp4IoDefaultIpConfigData;
    7675extern EFI_IP6_CONFIG_DATA  mIp6IoDefaultIpConfigData;
    77 
    7876
    7977///
     
    8381///
    8482
    85 #define  ICMP_ERR_UNREACH_NET           0
    86 #define  ICMP_ERR_UNREACH_HOST          1
    87 #define  ICMP_ERR_UNREACH_PROTOCOL      2
    88 #define  ICMP_ERR_UNREACH_PORT          3
    89 #define  ICMP_ERR_MSGSIZE               4
    90 #define  ICMP_ERR_UNREACH_SRCFAIL       5
    91 #define  ICMP_ERR_TIMXCEED_INTRANS      6
    92 #define  ICMP_ERR_TIMXCEED_REASS        7
    93 #define  ICMP_ERR_QUENCH                8
    94 #define  ICMP_ERR_PARAMPROB             9
    95 
    96 #define  ICMP6_ERR_UNREACH_NET          0
    97 #define  ICMP6_ERR_UNREACH_HOST         1
    98 #define  ICMP6_ERR_UNREACH_PROTOCOL     2
    99 #define  ICMP6_ERR_UNREACH_PORT         3
    100 #define  ICMP6_ERR_PACKAGE_TOOBIG       4
    101 #define  ICMP6_ERR_TIMXCEED_HOPLIMIT    5
    102 #define  ICMP6_ERR_TIMXCEED_REASS       6
    103 #define  ICMP6_ERR_PARAMPROB_HEADER     7
    104 #define  ICMP6_ERR_PARAMPROB_NEXHEADER  8
    105 #define  ICMP6_ERR_PARAMPROB_IPV6OPTION 9
     83#define  ICMP_ERR_UNREACH_NET       0
     84#define  ICMP_ERR_UNREACH_HOST      1
     85#define  ICMP_ERR_UNREACH_PROTOCOL  2
     86#define  ICMP_ERR_UNREACH_PORT      3
     87#define  ICMP_ERR_MSGSIZE           4
     88#define  ICMP_ERR_UNREACH_SRCFAIL   5
     89#define  ICMP_ERR_TIMXCEED_INTRANS  6
     90#define  ICMP_ERR_TIMXCEED_REASS    7
     91#define  ICMP_ERR_QUENCH            8
     92#define  ICMP_ERR_PARAMPROB         9
     93
     94#define  ICMP6_ERR_UNREACH_NET           0
     95#define  ICMP6_ERR_UNREACH_HOST          1
     96#define  ICMP6_ERR_UNREACH_PROTOCOL      2
     97#define  ICMP6_ERR_UNREACH_PORT          3
     98#define  ICMP6_ERR_PACKAGE_TOOBIG        4
     99#define  ICMP6_ERR_TIMXCEED_HOPLIMIT     5
     100#define  ICMP6_ERR_TIMXCEED_REASS        6
     101#define  ICMP6_ERR_PARAMPROB_HEADER      7
     102#define  ICMP6_ERR_PARAMPROB_NEXHEADER   8
     103#define  ICMP6_ERR_PARAMPROB_IPV6OPTION  9
    106104
    107105///
     
    109107///
    110108typedef struct {
    111   BOOLEAN                   IsHard;
    112   BOOLEAN                   Notify;
     109  BOOLEAN    IsHard;
     110  BOOLEAN    Notify;
    113111} ICMP_ERROR_INFO;
    114112
    115113typedef union {
    116   EFI_IP4_COMPLETION_TOKEN  Ip4Token;
    117   EFI_IP6_COMPLETION_TOKEN  Ip6Token;
     114  EFI_IP4_COMPLETION_TOKEN    Ip4Token;
     115  EFI_IP6_COMPLETION_TOKEN    Ip6Token;
    118116} IP_IO_IP_COMPLETION_TOKEN;
    119117
    120118typedef union {
    121   EFI_IP4_TRANSMIT_DATA     Ip4TxData;
    122   EFI_IP6_TRANSMIT_DATA     Ip6TxData;
     119  EFI_IP4_TRANSMIT_DATA    Ip4TxData;
     120  EFI_IP6_TRANSMIT_DATA    Ip6TxData;
    123121} IP_IO_IP_TX_DATA;
    124122
    125123typedef union {
    126   EFI_IP4_RECEIVE_DATA      Ip4RxData;
    127   EFI_IP6_RECEIVE_DATA      Ip6RxData;
     124  EFI_IP4_RECEIVE_DATA    Ip4RxData;
     125  EFI_IP6_RECEIVE_DATA    Ip6RxData;
    128126} IP_IO_IP_RX_DATA;
    129127
    130128typedef union {
    131   EFI_IP4_OVERRIDE_DATA     Ip4OverrideData;
    132   EFI_IP6_OVERRIDE_DATA     Ip6OverrideData;
     129  EFI_IP4_OVERRIDE_DATA    Ip4OverrideData;
     130  EFI_IP6_OVERRIDE_DATA    Ip6OverrideData;
    133131} IP_IO_OVERRIDE;
    134132
    135133typedef union {
    136   EFI_IP4_CONFIG_DATA       Ip4CfgData;
    137   EFI_IP6_CONFIG_DATA       Ip6CfgData;
     134  EFI_IP4_CONFIG_DATA    Ip4CfgData;
     135  EFI_IP6_CONFIG_DATA    Ip6CfgData;
    138136} IP_IO_IP_CONFIG_DATA;
    139137
    140138typedef union {
    141   EFI_IP4_HEADER            *Ip4Hdr;
    142   EFI_IP6_HEADER            *Ip6Hdr;
     139  EFI_IP4_HEADER    *Ip4Hdr;
     140  EFI_IP6_HEADER    *Ip6Hdr;
    143141} IP_IO_IP_HEADER;
    144142
    145143typedef union {
    146   IP4_ADDR                  SubnetMask;
    147   UINT8                     PrefixLength;
     144  IP4_ADDR    SubnetMask;
     145  UINT8       PrefixLength;
    148146} IP_IO_IP_MASK;
    149147
    150148typedef union {
    151   EFI_IP4_PROTOCOL  *Ip4;
    152   EFI_IP6_PROTOCOL  *Ip6;
     149  EFI_IP4_PROTOCOL    *Ip4;
     150  EFI_IP6_PROTOCOL    *Ip6;
    153151} IP_IO_IP_PROTOCOL;
    154152
     
    157155///
    158156typedef struct _EFI_NET_SESSION_DATA {
    159   EFI_IP_ADDRESS        Source;     ///< Source IP of the received packet.
    160   EFI_IP_ADDRESS        Dest;       ///< Destination IP of the received packet.
    161   IP_IO_IP_HEADER       IpHdr;      ///< IP header of the received packet.
    162   UINT32                IpHdrLen;   ///< IP header length of the received packet.
     157  EFI_IP_ADDRESS     Source;        ///< Source IP of the received packet.
     158  EFI_IP_ADDRESS     Dest;          ///< Destination IP of the received packet.
     159  IP_IO_IP_HEADER    IpHdr;         ///< IP header of the received packet.
     160  UINT32             IpHdrLen;      ///< IP header length of the received packet.
    163161                                    ///< For IPv6, it includes the IP6 header
    164162                                    ///< length and extension header length. For
    165163                                    ///< IPv4, it includes the IP4 header length
    166164                                    ///< and options length.
    167   UINT8                 IpVersion;  ///< The IP version of the received packet.
     165  UINT8              IpVersion;     ///< The IP version of the received packet.
    168166} EFI_NET_SESSION_DATA;
    169167
     
    181179typedef
    182180VOID
    183 (EFIAPI *PKT_RCVD_NOTIFY) (
     181(EFIAPI *PKT_RCVD_NOTIFY)(
    184182  IN EFI_STATUS           Status,
    185183  IN UINT8                IcmpErr,
     
    202200typedef
    203201VOID
    204 (EFIAPI *PKT_SENT_NOTIFY) (
     202(EFIAPI *PKT_SENT_NOTIFY)(
    205203  IN EFI_STATUS        Status,
    206204  IN VOID              *Context,
     
    217215  /// The node used to link this IpIo to the active IpIo list.
    218216  ///
    219   LIST_ENTRY                    Entry;
     217  LIST_ENTRY                   Entry;
    220218
    221219  ///
    222220  /// The list used to maintain the IP instance for different sending purpose.
    223221  ///
    224   LIST_ENTRY                    IpList;
    225 
    226   EFI_HANDLE                    Controller;
    227   EFI_HANDLE                    Image;
    228   EFI_HANDLE                    ChildHandle;
     222  LIST_ENTRY                   IpList;
     223
     224  EFI_HANDLE                   Controller;
     225  EFI_HANDLE                   Image;
     226  EFI_HANDLE                   ChildHandle;
    229227  //
    230228  // The IP instance consumed by this IP_IO
    231229  //
    232   IP_IO_IP_PROTOCOL             Ip;
    233   BOOLEAN                       IsConfigured;
     230  IP_IO_IP_PROTOCOL            Ip;
     231  BOOLEAN                      IsConfigured;
    234232
    235233  ///
    236234  /// Some ip configuration data can be changed.
    237235  ///
    238   UINT8                         Protocol;
     236  UINT8                        Protocol;
    239237
    240238  ///
    241239  /// Token and event used to get data from IP.
    242240  ///
    243   IP_IO_IP_COMPLETION_TOKEN     RcvToken;
     241  IP_IO_IP_COMPLETION_TOKEN    RcvToken;
    244242
    245243  ///
    246244  /// List entry used to link the token passed to IP_IO.
    247245  ///
    248   LIST_ENTRY                    PendingSndList;
     246  LIST_ENTRY                   PendingSndList;
    249247
    250248  //
    251249  // User interface used to get notify from IP_IO
    252250  //
    253   VOID                          *RcvdContext;    ///< See IP_IO_OPEN_DATA::RcvdContext.
    254   VOID                          *SndContext;     ///< See IP_IO_OPEN_DATA::SndContext.
    255   PKT_RCVD_NOTIFY               PktRcvdNotify;   ///< See IP_IO_OPEN_DATA::PktRcvdNotify.
    256   PKT_SENT_NOTIFY               PktSentNotify;   ///< See IP_IO_OPEN_DATA::PktSentNotify.
    257   UINT8                         IpVersion;
    258   IP4_ADDR                      StationIp;
    259   IP4_ADDR                      SubnetMask;
     251  VOID                         *RcvdContext;     ///< See IP_IO_OPEN_DATA::RcvdContext.
     252  VOID                         *SndContext;      ///< See IP_IO_OPEN_DATA::SndContext.
     253  PKT_RCVD_NOTIFY              PktRcvdNotify;    ///< See IP_IO_OPEN_DATA::PktRcvdNotify.
     254  PKT_SENT_NOTIFY              PktSentNotify;    ///< See IP_IO_OPEN_DATA::PktSentNotify.
     255  UINT8                        IpVersion;
     256  IP4_ADDR                     StationIp;
     257  IP4_ADDR                     SubnetMask;
    260258} IP_IO;
    261259
     
    265263///
    266264typedef struct _IP_IO_OPEN_DATA {
    267   IP_IO_IP_CONFIG_DATA IpConfigData;    ///< Configuration of the IP instance.
    268   VOID                 *RcvdContext;    ///< Context data used by receive callback.
    269   VOID                 *SndContext;     ///< Context data used by send callback.
    270   PKT_RCVD_NOTIFY      PktRcvdNotify;  ///< Receive callback.
    271   PKT_SENT_NOTIFY      PktSentNotify;  ///< Send callback.
     265  IP_IO_IP_CONFIG_DATA    IpConfigData;  ///< Configuration of the IP instance.
     266  VOID                    *RcvdContext;  ///< Context data used by receive callback.
     267  VOID                    *SndContext;   ///< Context data used by send callback.
     268  PKT_RCVD_NOTIFY         PktRcvdNotify; ///< Receive callback.
     269  PKT_SENT_NOTIFY         PktSentNotify; ///< Send callback.
    272270} IP_IO_OPEN_DATA;
    273271
     
    279277///
    280278typedef struct _IP_IO_SEND_ENTRY {
    281   LIST_ENTRY                Entry;
    282   IP_IO                     *IpIo;
    283   VOID                      *Context;
    284   VOID                      *NotifyData;
    285   IP_IO_IP_PROTOCOL         Ip;
    286   NET_BUF                   *Pkt;
    287   IP_IO_IP_COMPLETION_TOKEN SndToken;
     279  LIST_ENTRY                   Entry;
     280  IP_IO                        *IpIo;
     281  VOID                         *Context;
     282  VOID                         *NotifyData;
     283  IP_IO_IP_PROTOCOL            Ip;
     284  NET_BUF                      *Pkt;
     285  IP_IO_IP_COMPLETION_TOKEN    SndToken;
    288286} IP_IO_SEND_ENTRY;
    289287
     
    293291///
    294292typedef struct _IP_IO_IP_INFO {
    295   EFI_IP_ADDRESS            Addr;
    296   IP_IO_IP_MASK             PreMask;
    297   LIST_ENTRY                Entry;
    298   EFI_HANDLE                ChildHandle;
    299   IP_IO_IP_PROTOCOL         Ip;
    300   IP_IO_IP_COMPLETION_TOKEN DummyRcvToken;
    301   INTN                      RefCnt;
    302   UINT8                     IpVersion;
     293  EFI_IP_ADDRESS               Addr;
     294  IP_IO_IP_MASK                PreMask;
     295  LIST_ENTRY                   Entry;
     296  EFI_HANDLE                   ChildHandle;
     297  IP_IO_IP_PROTOCOL            Ip;
     298  IP_IO_IP_COMPLETION_TOKEN    DummyRcvToken;
     299  INTN                         RefCnt;
     300  UINT8                        IpVersion;
    303301} IP_IO_IP_INFO;
    304302
     
    324322EFIAPI
    325323IpIoCreate (
    326   IN EFI_HANDLE Image,
    327   IN EFI_HANDLE Controller,
    328   IN UINT8      IpVersion
     324  IN EFI_HANDLE  Image,
     325  IN EFI_HANDLE  Controller,
     326  IN UINT8       IpVersion
    329327  );
    330328
     
    345343EFIAPI
    346344IpIoDestroy (
    347   IN OUT IP_IO *IpIo
     345  IN OUT IP_IO  *IpIo
    348346  );
    349347
     
    366364EFIAPI
    367365IpIoStop (
    368   IN OUT IP_IO *IpIo
     366  IN OUT IP_IO  *IpIo
    369367  );
    370368
     
    395393EFIAPI
    396394IpIoOpen (
    397   IN OUT IP_IO           *IpIo,
    398   IN     IP_IO_OPEN_DATA *OpenData
     395  IN OUT IP_IO            *IpIo,
     396  IN     IP_IO_OPEN_DATA  *OpenData
    399397  );
    400398
     
    428426EFIAPI
    429427IpIoSend (
    430   IN OUT IP_IO          *IpIo,
    431   IN OUT NET_BUF        *Pkt,
    432   IN     IP_IO_IP_INFO  *Sender        OPTIONAL,
    433   IN     VOID           *Context       OPTIONAL,
    434   IN     VOID           *NotifyData    OPTIONAL,
    435   IN     EFI_IP_ADDRESS *Dest          OPTIONAL,
    436   IN     IP_IO_OVERRIDE *OverrideData  OPTIONAL
     428  IN OUT IP_IO           *IpIo,
     429  IN OUT NET_BUF         *Pkt,
     430  IN     IP_IO_IP_INFO   *Sender        OPTIONAL,
     431  IN     VOID            *Context       OPTIONAL,
     432  IN     VOID            *NotifyData    OPTIONAL,
     433  IN     EFI_IP_ADDRESS  *Dest          OPTIONAL,
     434  IN     IP_IO_OVERRIDE  *OverrideData  OPTIONAL
    437435  );
    438436
     
    497495EFIAPI
    498496IpIoConfigIp (
    499   IN OUT IP_IO_IP_INFO        *IpInfo,
    500   IN OUT VOID                 *IpConfigData OPTIONAL
     497  IN OUT IP_IO_IP_INFO  *IpInfo,
     498  IN OUT VOID           *IpConfigData OPTIONAL
    501499  );
    502500
     
    518516EFIAPI
    519517IpIoRemoveIp (
    520   IN IP_IO            *IpIo,
    521   IN IP_IO_IP_INFO    *IpInfo
     518  IN IP_IO          *IpIo,
     519  IN IP_IO_IP_INFO  *IpInfo
    522520  );
    523521
     
    565563EFIAPI
    566564IpIoGetIcmpErrStatus (
    567   IN  UINT8       IcmpError,
    568   IN  UINT8       IpVersion,
    569   OUT BOOLEAN     *IsHard  OPTIONAL,
    570   OUT BOOLEAN     *Notify  OPTIONAL
     565  IN  UINT8    IcmpError,
     566  IN  UINT8    IpVersion,
     567  OUT BOOLEAN  *IsHard  OPTIONAL,
     568  OUT BOOLEAN  *Notify  OPTIONAL
    571569  );
    572570
     
    605603
    606604#endif
    607 
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette