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/TcpDxe/Socket.h

    r85718 r99404  
    2525#include <Library/DpcLib.h>
    2626
    27 #define SOCK_SND_BUF        0
    28 #define SOCK_RCV_BUF        1
    29 
    30 #define SOCK_BUFF_LOW_WATER (2 * 1024)
    31 #define SOCK_RCV_BUFF_SIZE  (8 * 1024)
    32 #define SOCK_SND_BUFF_SIZE  (8 * 1024)
    33 #define SOCK_BACKLOG        5
     27#define SOCK_SND_BUF  0
     28#define SOCK_RCV_BUF  1
     29
     30#define SOCK_BUFF_LOW_WATER  (2 * 1024)
     31#define SOCK_RCV_BUFF_SIZE   (8 * 1024)
     32#define SOCK_SND_BUFF_SIZE   (8 * 1024)
     33#define SOCK_BACKLOG         5
    3434
    3535#define PROTO_RESERVED_LEN  20
    3636
    37 #define SO_NO_MORE_DATA     0x0001
     37#define SO_NO_MORE_DATA  0x0001
    3838
    3939//
     
    6262/// Socket state
    6363///
    64 #define SO_CLOSED        0
    65 #define SO_LISTENING     1
    66 #define SO_CONNECTING    2
    67 #define SO_CONNECTED     3
    68 #define SO_DISCONNECTING 4
     64#define SO_CLOSED         0
     65#define SO_LISTENING      1
     66#define SO_CONNECTING     2
     67#define SO_CONNECTED      3
     68#define SO_DISCONNECTING  4
    6969
    7070///
     
    101101
    102102**/
    103 #define SOCK_NO_MORE_DATA(Sock)     ((Sock)->Flag |= SO_NO_MORE_DATA)
     103#define SOCK_NO_MORE_DATA(Sock)  ((Sock)->Flag |= SO_NO_MORE_DATA)
    104104
    105105/**
     
    136136
    137137**/
    138 #define SOCK_IS_CONFIGURED_ACTIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE)
     138#define SOCK_IS_CONFIGURED_ACTIVE(Sock)  ((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE)
    139139
    140140/**
     
    147147
    148148**/
    149 #define SOCK_IS_CONNECTED_PASSIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE)
     149#define SOCK_IS_CONNECTED_PASSIVE(Sock)  ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE)
    150150
    151151/**
     
    169169
    170170**/
    171 #define SOCK_IS_CLOSED(Sock)          ((Sock)->State == SO_CLOSED)
     171#define SOCK_IS_CLOSED(Sock)  ((Sock)->State == SO_CLOSED)
    172172
    173173/**
     
    180180
    181181**/
    182 #define SOCK_IS_LISTENING(Sock)       ((Sock)->State == SO_LISTENING)
     182#define SOCK_IS_LISTENING(Sock)  ((Sock)->State == SO_LISTENING)
    183183
    184184/**
     
    191191
    192192**/
    193 #define SOCK_IS_CONNECTING(Sock)      ((Sock)->State == SO_CONNECTING)
     193#define SOCK_IS_CONNECTING(Sock)  ((Sock)->State == SO_CONNECTING)
    194194
    195195/**
     
    202202
    203203**/
    204 #define SOCK_IS_CONNECTED(Sock)       ((Sock)->State == SO_CONNECTED)
     204#define SOCK_IS_CONNECTED(Sock)  ((Sock)->State == SO_CONNECTED)
    205205
    206206/**
     
    213213
    214214**/
    215 #define SOCK_IS_DISCONNECTING(Sock)   ((Sock)->State == SO_DISCONNECTING)
     215#define SOCK_IS_DISCONNECTING(Sock)  ((Sock)->State == SO_DISCONNECTING)
    216216
    217217/**
     
    224224
    225225**/
    226 #define SOCK_IS_NO_MORE_DATA(Sock)    (0 != ((Sock)->Flag & SO_NO_MORE_DATA))
     226#define SOCK_IS_NO_MORE_DATA(Sock)  (0 != ((Sock)->Flag & SO_NO_MORE_DATA))
    227227
    228228/**
     
    243243
    244244**/
    245 #define GET_RCV_BUFFSIZE(Sock)        ((Sock)->RcvBuffer.HighWater)
     245#define GET_RCV_BUFFSIZE(Sock)  ((Sock)->RcvBuffer.HighWater)
    246246
    247247/**
     
    253253
    254254**/
    255 #define GET_RCV_DATASIZE(Sock)        (((Sock)->RcvBuffer.DataQueue)->BufSize)
     255#define GET_RCV_DATASIZE(Sock)  (((Sock)->RcvBuffer.DataQueue)->BufSize)
    256256
    257257/**
     
    272272
    273273**/
    274 #define GET_SND_BUFFSIZE(Sock)        ((Sock)->SndBuffer.HighWater)
     274#define GET_SND_BUFFSIZE(Sock)  ((Sock)->SndBuffer.HighWater)
    275275
    276276/**
     
    282282
    283283**/
    284 #define GET_SND_DATASIZE(Sock)        (((Sock)->SndBuffer.DataQueue)->BufSize)
     284#define GET_SND_DATASIZE(Sock)  (((Sock)->SndBuffer.DataQueue)->BufSize)
    285285
    286286/**
     
    291291
    292292**/
    293 #define SET_BACKLOG(Sock, Value)      ((Sock)->BackLog = (Value))
     293#define SET_BACKLOG(Sock, Value)  ((Sock)->BackLog = (Value))
    294294
    295295/**
     
    301301
    302302**/
    303 #define GET_BACKLOG(Sock)             ((Sock)->BackLog)
     303#define GET_BACKLOG(Sock)  ((Sock)->BackLog)
    304304
    305305/**
     
    310310
    311311**/
    312 #define SOCK_ERROR(Sock, Error)       ((Sock)->SockError = (Error))
    313 
    314 #define SOCK_SIGNATURE                SIGNATURE_32 ('S', 'O', 'C', 'K')
    315 
    316 #define SOCK_FROM_THIS(a)             CR ((a), SOCKET, NetProtocol, SOCK_SIGNATURE)
    317 
    318 #define SOCK_FROM_TOKEN(Token)        (((SOCK_TOKEN *) (Token))->Sock)
     312#define SOCK_ERROR(Sock, Error)  ((Sock)->SockError = (Error))
     313
     314#define SOCK_SIGNATURE  SIGNATURE_32 ('S', 'O', 'C', 'K')
     315
     316#define SOCK_FROM_THIS(a)  CR ((a), SOCKET, NetProtocol, SOCK_SIGNATURE)
     317
     318#define SOCK_FROM_TOKEN(Token)  (((SOCK_TOKEN *) (Token))->Sock)
    319319
    320320#define PROTO_TOKEN_FORM_SOCK(SockToken, Type)  ((Type *) (((SOCK_TOKEN *) (SockToken))->Token))
     
    326326///
    327327typedef struct _SOCK_COMPLETION_TOKEN {
    328   EFI_EVENT   Event;            ///< The event to be issued
    329   EFI_STATUS  Status;           ///< The status to be issued
     328  EFI_EVENT     Event;          ///< The event to be issued
     329  EFI_STATUS    Status;         ///< The status to be issued
    330330} SOCK_COMPLETION_TOKEN;
    331331
    332332typedef union {
    333   VOID  *RxData;
    334   VOID  *TxData;
     333  VOID    *RxData;
     334  VOID    *TxData;
    335335} SOCK_IO_DATA;
    336336
     
    339339///
    340340typedef struct _SOCK_IO_TOKEN {
    341   SOCK_COMPLETION_TOKEN Token;
    342   SOCK_IO_DATA          Packet;
     341  SOCK_COMPLETION_TOKEN    Token;
     342  SOCK_IO_DATA             Packet;
    343343} SOCK_IO_TOKEN;
    344344
     
    355355///
    356356typedef struct _SOCK_BUFFER {
    357   UINT32        HighWater;  ///< The buffersize upper limit of sock_buffer
    358   UINT32        LowWater;   ///< The low water mark of sock_buffer
    359   NET_BUF_QUEUE *DataQueue; ///< The queue to buffer data
     357  UINT32           HighWater;  ///< The buffersize upper limit of sock_buffer
     358  UINT32           LowWater;   ///< The low water mark of sock_buffer
     359  NET_BUF_QUEUE    *DataQueue; ///< The queue to buffer data
    360360} SOCK_BUFFER;
    361361
     
    375375EFI_STATUS
    376376(*SOCK_PROTO_HANDLER) (
    377   IN SOCKET       *Socket,
    378   IN UINT8        Request,
    379   IN VOID         *RequestData
     377  IN SOCKET  *Socket,
     378  IN UINT8   Request,
     379  IN VOID    *RequestData
    380380  );
    381381
     
    415415///
    416416typedef struct _SOCK_INIT_DATA {
    417   SOCK_TYPE              Type;
    418   UINT8                  State;
    419 
    420   SOCKET                 *Parent;        ///< The parent of this socket
    421   UINT32                 BackLog;        ///< The connection limit for listening socket
    422   UINT32                 SndBufferSize; ///< The high water mark of send buffer
    423   UINT32                 RcvBufferSize; ///< The high water mark of receive buffer
    424   UINT8                  IpVersion;
    425   VOID                   *Protocol;      ///< The pointer to protocol function template
     417  SOCK_TYPE                Type;
     418  UINT8                    State;
     419
     420  SOCKET                   *Parent;       ///< The parent of this socket
     421  UINT32                   BackLog;       ///< The connection limit for listening socket
     422  UINT32                   SndBufferSize; ///< The high water mark of send buffer
     423  UINT32                   RcvBufferSize; ///< The high water mark of receive buffer
     424  UINT8                    IpVersion;
     425  VOID                     *Protocol;    ///< The pointer to protocol function template
    426426                                         ///< wanted to install on socket
    427427
     
    429429  // Callbacks after socket is created and before socket is to be destroyed.
    430430  //
    431   SOCK_CREATE_CALLBACK   CreateCallback;  ///< Callback after created
    432   SOCK_DESTROY_CALLBACK  DestroyCallback; ///< Callback before destroyed
    433   VOID                   *Context;        ///< The context of the callback
     431  SOCK_CREATE_CALLBACK     CreateCallback;  ///< Callback after created
     432  SOCK_DESTROY_CALLBACK    DestroyCallback; ///< Callback before destroyed
     433  VOID                     *Context;        ///< The context of the callback
    434434
    435435  //
    436436  // Opaque protocol data.
    437437  //
    438   VOID                   *ProtoData;
    439   UINT32                 DataSize;
    440 
    441   SOCK_PROTO_HANDLER     ProtoHandler;    ///< The handler of protocol for socket request
    442 
    443   EFI_HANDLE             DriverBinding;  ///< The driver binding handle
     438  VOID                     *ProtoData;
     439  UINT32                   DataSize;
     440
     441  SOCK_PROTO_HANDLER       ProtoHandler;  ///< The handler of protocol for socket request
     442
     443  EFI_HANDLE               DriverBinding; ///< The driver binding handle
    444444} SOCK_INIT_DATA;
    445445
     
    448448///
    449449typedef union _NET_PROTOCOL {
    450   EFI_TCP4_PROTOCOL      Tcp4Protocol;    ///< Tcp4 protocol
    451   EFI_TCP6_PROTOCOL      Tcp6Protocol;    ///< Tcp6 protocol
     450  EFI_TCP4_PROTOCOL    Tcp4Protocol;      ///< Tcp4 protocol
     451  EFI_TCP6_PROTOCOL    Tcp6Protocol;      ///< Tcp6 protocol
    452452} NET_PROTOCOL;
    453453///
     
    458458  // Socket description information
    459459  //
    460   UINT32                    Signature;      ///< Signature of the socket
    461   EFI_HANDLE                SockHandle;     ///< The virtual handle of the socket
    462   EFI_HANDLE                DriverBinding; ///< Socket's driver binding protocol
    463   EFI_DEVICE_PATH_PROTOCOL  *ParentDevicePath;
    464   EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
    465   LIST_ENTRY                Link;
    466   UINT8                     ConfigureState;
    467   SOCK_TYPE                 Type;
    468   UINT8                     State;
    469   UINT16                    Flag;
    470   EFI_LOCK                  Lock;           ///< The lock of socket
    471   SOCK_BUFFER               SndBuffer;      ///< Send buffer of application's data
    472   SOCK_BUFFER               RcvBuffer;      ///< Receive buffer of received data
    473   EFI_STATUS                SockError;      ///< The error returned by low layer protocol
    474   BOOLEAN                   InDestroy;
     460  UINT32                      Signature;     ///< Signature of the socket
     461  EFI_HANDLE                  SockHandle;    ///< The virtual handle of the socket
     462  EFI_HANDLE                  DriverBinding; ///< Socket's driver binding protocol
     463  EFI_DEVICE_PATH_PROTOCOL    *ParentDevicePath;
     464  EFI_DEVICE_PATH_PROTOCOL    *DevicePath;
     465  LIST_ENTRY                  Link;
     466  UINT8                       ConfigureState;
     467  SOCK_TYPE                   Type;
     468  UINT8                       State;
     469  UINT16                      Flag;
     470  EFI_LOCK                    Lock;         ///< The lock of socket
     471  SOCK_BUFFER                 SndBuffer;    ///< Send buffer of application's data
     472  SOCK_BUFFER                 RcvBuffer;    ///< Receive buffer of received data
     473  EFI_STATUS                  SockError;    ///< The error returned by low layer protocol
     474  BOOLEAN                     InDestroy;
    475475
    476476  //
    477477  // Fields used to manage the connection request
    478478  //
    479   UINT32                    BackLog;        ///< the limit of connection to this socket
    480   UINT32                    ConnCnt;        ///< the current count of connections to it
    481   SOCKET                    *Parent;        ///< listening parent that accept the connection
    482   LIST_ENTRY                ConnectionList; ///< the connections maintained by this socket
     479  UINT32                      BackLog;        ///< the limit of connection to this socket
     480  UINT32                      ConnCnt;        ///< the current count of connections to it
     481  SOCKET                      *Parent;        ///< listening parent that accept the connection
     482  LIST_ENTRY                  ConnectionList; ///< the connections maintained by this socket
    483483  //
    484484  // The queue to buffer application's asynchronous token
    485485  //
    486   LIST_ENTRY                ListenTokenList;
    487   LIST_ENTRY                RcvTokenList;
    488   LIST_ENTRY                SndTokenList;
    489   LIST_ENTRY                ProcessingSndTokenList;
    490 
    491   SOCK_COMPLETION_TOKEN     *ConnectionToken; ///< app's token to signal if connected
    492   SOCK_COMPLETION_TOKEN     *CloseToken;      ///< app's token to signal if closed
     486  LIST_ENTRY                  ListenTokenList;
     487  LIST_ENTRY                  RcvTokenList;
     488  LIST_ENTRY                  SndTokenList;
     489  LIST_ENTRY                  ProcessingSndTokenList;
     490
     491  SOCK_COMPLETION_TOKEN       *ConnectionToken; ///< app's token to signal if connected
     492  SOCK_COMPLETION_TOKEN       *CloseToken;      ///< app's token to signal if closed
    493493  //
    494494  // Interface for low level protocol
    495495  //
    496   SOCK_PROTO_HANDLER        ProtoHandler;     ///< The request handler of protocol
    497   UINT8                     ProtoReserved[PROTO_RESERVED_LEN]; ///< Data fields reserved for protocol
    498   UINT8                     IpVersion;
    499   NET_PROTOCOL              NetProtocol;                        ///< TCP4 or TCP6 protocol socket used
     496  SOCK_PROTO_HANDLER          ProtoHandler;                      ///< The request handler of protocol
     497  UINT8                       ProtoReserved[PROTO_RESERVED_LEN]; ///< Data fields reserved for protocol
     498  UINT8                       IpVersion;
     499  NET_PROTOCOL                NetProtocol;                      ///< TCP4 or TCP6 protocol socket used
    500500  //
    501501  // Callbacks after socket is created and before socket is to be destroyed.
    502502  //
    503   SOCK_CREATE_CALLBACK      CreateCallback;   ///< Callback after created
    504   SOCK_DESTROY_CALLBACK     DestroyCallback; ///< Callback before destroyed
    505   VOID                      *Context;         ///< The context of the callback
     503  SOCK_CREATE_CALLBACK        CreateCallback;  ///< Callback after created
     504  SOCK_DESTROY_CALLBACK       DestroyCallback; ///< Callback before destroyed
     505  VOID                        *Context;        ///< The context of the callback
    506506};
    507507
     
    510510///
    511511typedef struct _SOCK_TOKEN {
    512   LIST_ENTRY            TokenList;      ///< The entry to add in the token list
    513   SOCK_COMPLETION_TOKEN *Token;         ///< The application's token
    514   UINT32                RemainDataLen; ///< Unprocessed data length
    515   SOCKET                *Sock;          ///< The pointer to the socket this token
    516                                         ///< belongs to
     512  LIST_ENTRY               TokenList;     ///< The entry to add in the token list
     513  SOCK_COMPLETION_TOKEN    *Token;        ///< The application's token
     514  UINT32                   RemainDataLen; ///< Unprocessed data length
     515  SOCKET                   *Sock;         ///< The pointer to the socket this token
     516                                          ///< belongs to
    517517} SOCK_TOKEN;
    518518
     
    521521///
    522522typedef struct _TCP_RSV_DATA {
    523   UINT32 UrgLen;
     523  UINT32    UrgLen;
    524524} TCP_RSV_DATA;
    525525
     
    537537VOID
    538538SockSetState (
    539   IN OUT SOCKET     *Sock,
    540   IN     UINT8      State
     539  IN OUT SOCKET  *Sock,
     540  IN     UINT8   State
    541541  );
    542542
     
    551551SOCKET *
    552552SockClone (
    553   IN SOCKET *Sock
     553  IN SOCKET  *Sock
    554554  );
    555555
     
    567567VOID
    568568SockConnEstablished (
    569   IN OUT SOCKET *Sock
     569  IN OUT SOCKET  *Sock
    570570  );
    571571
     
    582582VOID
    583583SockConnClosed (
    584   IN OUT SOCKET *Sock
     584  IN OUT SOCKET  *Sock
    585585  );
    586586
     
    597597VOID
    598598SockDataSent (
    599   IN OUT SOCKET     *Sock,
    600   IN     UINT32     Count
     599  IN OUT SOCKET  *Sock,
     600  IN     UINT32  Count
    601601  );
    602602
     
    616616UINT32
    617617SockGetDataToSend (
    618   IN  SOCKET      *Sock,
    619   IN  UINT32      Offset,
    620   IN  UINT32      Len,
    621   OUT UINT8       *Dest
     618  IN  SOCKET  *Sock,
     619  IN  UINT32  Offset,
     620  IN  UINT32  Len,
     621  OUT UINT8   *Dest
    622622  );
    623623
     
    635635VOID
    636636SockDataRcvd (
    637   IN OUT SOCKET    *Sock,
    638   IN OUT NET_BUF   *NetBuffer,
    639   IN     UINT32    UrgLen
     637  IN OUT SOCKET   *Sock,
     638  IN OUT NET_BUF  *NetBuffer,
     639  IN     UINT32   UrgLen
    640640  );
    641641
     
    668668VOID
    669669SockNoMoreData (
    670   IN OUT SOCKET *Sock
     670  IN OUT SOCKET  *Sock
    671671  );
    672672
     
    687687SOCKET *
    688688SockCreateChild (
    689   IN SOCK_INIT_DATA *SockInitData
     689  IN SOCK_INIT_DATA  *SockInitData
    690690  );
    691691
     
    701701EFI_STATUS
    702702SockDestroyChild (
    703   IN OUT SOCKET *Sock
     703  IN OUT SOCKET  *Sock
    704704  );
    705705
     
    717717EFI_STATUS
    718718SockConfigure (
    719   IN SOCKET *Sock,
    720   IN VOID   *ConfigData
     719  IN SOCKET  *Sock,
     720  IN VOID    *ConfigData
    721721  );
    722722
     
    741741EFI_STATUS
    742742SockConnect (
    743   IN SOCKET *Sock,
    744   IN VOID   *Token
     743  IN SOCKET  *Sock,
     744  IN VOID    *Token
    745745  );
    746746
     
    766766EFI_STATUS
    767767SockAccept (
    768   IN SOCKET *Sock,
    769   IN VOID   *Token
     768  IN SOCKET  *Sock,
     769  IN VOID    *Token
    770770  );
    771771
     
    790790EFI_STATUS
    791791SockSend (
    792   IN SOCKET *Sock,
    793   IN VOID   *Token
     792  IN SOCKET  *Sock,
     793  IN VOID    *Token
    794794  );
    795795
     
    815815EFI_STATUS
    816816SockRcv (
    817   IN SOCKET *Sock,
    818   IN VOID   *Token
     817  IN SOCKET  *Sock,
     818  IN VOID    *Token
    819819  );
    820820
     
    830830EFI_STATUS
    831831SockFlush (
    832   IN OUT SOCKET *Sock
     832  IN OUT SOCKET  *Sock
    833833  );
    834834
     
    854854EFI_STATUS
    855855SockClose (
    856   IN OUT SOCKET  *Sock,
    857   IN     VOID    *Token,
    858   IN     BOOLEAN OnAbort
     856  IN OUT SOCKET   *Sock,
     857  IN     VOID     *Token,
     858  IN     BOOLEAN  OnAbort
    859859  );
    860860
     
    890890EFI_STATUS
    891891SockGetMode (
    892   IN     SOCKET *Sock,
    893   IN OUT VOID   *Mode
     892  IN     SOCKET  *Sock,
     893  IN OUT VOID    *Mode
    894894  );
    895895
     
    911911EFI_STATUS
    912912SockRoute (
    913   IN SOCKET    *Sock,
    914   IN VOID      *RouteInfo
     913  IN SOCKET  *Sock,
     914  IN VOID    *RouteInfo
    915915  );
    916916
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