Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/TcpDxe/Socket.h
- Timestamp:
- Apr 14, 2023 3:17:44 PM (22 months ago)
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/TcpDxe/Socket.h
r85718 r99404 25 25 #include <Library/DpcLib.h> 26 26 27 #define SOCK_SND_BUF 28 #define SOCK_RCV_BUF 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 527 #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 34 34 35 35 #define PROTO_RESERVED_LEN 20 36 36 37 #define SO_NO_MORE_DATA 37 #define SO_NO_MORE_DATA 0x0001 38 38 39 39 // … … 62 62 /// Socket state 63 63 /// 64 #define SO_CLOSED 065 #define SO_LISTENING 166 #define SO_CONNECTING 267 #define SO_CONNECTED 368 #define SO_DISCONNECTING 464 #define SO_CLOSED 0 65 #define SO_LISTENING 1 66 #define SO_CONNECTING 2 67 #define SO_CONNECTED 3 68 #define SO_DISCONNECTING 4 69 69 70 70 /// … … 101 101 102 102 **/ 103 #define SOCK_NO_MORE_DATA(Sock) 103 #define SOCK_NO_MORE_DATA(Sock) ((Sock)->Flag |= SO_NO_MORE_DATA) 104 104 105 105 /** … … 136 136 137 137 **/ 138 #define SOCK_IS_CONFIGURED_ACTIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE)138 #define SOCK_IS_CONFIGURED_ACTIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_ACTIVE) 139 139 140 140 /** … … 147 147 148 148 **/ 149 #define SOCK_IS_CONNECTED_PASSIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE)149 #define SOCK_IS_CONNECTED_PASSIVE(Sock) ((Sock)->ConfigureState == SO_CONFIGURED_PASSIVE) 150 150 151 151 /** … … 169 169 170 170 **/ 171 #define SOCK_IS_CLOSED(Sock) 171 #define SOCK_IS_CLOSED(Sock) ((Sock)->State == SO_CLOSED) 172 172 173 173 /** … … 180 180 181 181 **/ 182 #define SOCK_IS_LISTENING(Sock) 182 #define SOCK_IS_LISTENING(Sock) ((Sock)->State == SO_LISTENING) 183 183 184 184 /** … … 191 191 192 192 **/ 193 #define SOCK_IS_CONNECTING(Sock) 193 #define SOCK_IS_CONNECTING(Sock) ((Sock)->State == SO_CONNECTING) 194 194 195 195 /** … … 202 202 203 203 **/ 204 #define SOCK_IS_CONNECTED(Sock) 204 #define SOCK_IS_CONNECTED(Sock) ((Sock)->State == SO_CONNECTED) 205 205 206 206 /** … … 213 213 214 214 **/ 215 #define SOCK_IS_DISCONNECTING(Sock) 215 #define SOCK_IS_DISCONNECTING(Sock) ((Sock)->State == SO_DISCONNECTING) 216 216 217 217 /** … … 224 224 225 225 **/ 226 #define SOCK_IS_NO_MORE_DATA(Sock) 226 #define SOCK_IS_NO_MORE_DATA(Sock) (0 != ((Sock)->Flag & SO_NO_MORE_DATA)) 227 227 228 228 /** … … 243 243 244 244 **/ 245 #define GET_RCV_BUFFSIZE(Sock) 245 #define GET_RCV_BUFFSIZE(Sock) ((Sock)->RcvBuffer.HighWater) 246 246 247 247 /** … … 253 253 254 254 **/ 255 #define GET_RCV_DATASIZE(Sock) 255 #define GET_RCV_DATASIZE(Sock) (((Sock)->RcvBuffer.DataQueue)->BufSize) 256 256 257 257 /** … … 272 272 273 273 **/ 274 #define GET_SND_BUFFSIZE(Sock) 274 #define GET_SND_BUFFSIZE(Sock) ((Sock)->SndBuffer.HighWater) 275 275 276 276 /** … … 282 282 283 283 **/ 284 #define GET_SND_DATASIZE(Sock) 284 #define GET_SND_DATASIZE(Sock) (((Sock)->SndBuffer.DataQueue)->BufSize) 285 285 286 286 /** … … 291 291 292 292 **/ 293 #define SET_BACKLOG(Sock, Value) 293 #define SET_BACKLOG(Sock, Value) ((Sock)->BackLog = (Value)) 294 294 295 295 /** … … 301 301 302 302 **/ 303 #define GET_BACKLOG(Sock) 303 #define GET_BACKLOG(Sock) ((Sock)->BackLog) 304 304 305 305 /** … … 310 310 311 311 **/ 312 #define SOCK_ERROR(Sock, Error) 313 314 #define SOCK_SIGNATURE 315 316 #define SOCK_FROM_THIS(a) 317 318 #define SOCK_FROM_TOKEN(Token) 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) 319 319 320 320 #define PROTO_TOKEN_FORM_SOCK(SockToken, Type) ((Type *) (((SOCK_TOKEN *) (SockToken))->Token)) … … 326 326 /// 327 327 typedef struct _SOCK_COMPLETION_TOKEN { 328 EFI_EVENT Event;///< The event to be issued329 EFI_STATUS Status;///< The status to be issued328 EFI_EVENT Event; ///< The event to be issued 329 EFI_STATUS Status; ///< The status to be issued 330 330 } SOCK_COMPLETION_TOKEN; 331 331 332 332 typedef union { 333 VOID *RxData;334 VOID *TxData;333 VOID *RxData; 334 VOID *TxData; 335 335 } SOCK_IO_DATA; 336 336 … … 339 339 /// 340 340 typedef struct _SOCK_IO_TOKEN { 341 SOCK_COMPLETION_TOKEN Token;342 SOCK_IO_DATA Packet;341 SOCK_COMPLETION_TOKEN Token; 342 SOCK_IO_DATA Packet; 343 343 } SOCK_IO_TOKEN; 344 344 … … 355 355 /// 356 356 typedef struct _SOCK_BUFFER { 357 UINT32 HighWater; ///< The buffersize upper limit of sock_buffer358 UINT32 LowWater; ///< The low water mark of sock_buffer359 NET_BUF_QUEUE *DataQueue; ///< The queue to buffer data357 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 360 360 } SOCK_BUFFER; 361 361 … … 375 375 EFI_STATUS 376 376 (*SOCK_PROTO_HANDLER) ( 377 IN SOCKET 378 IN UINT8 379 IN VOID 377 IN SOCKET *Socket, 378 IN UINT8 Request, 379 IN VOID *RequestData 380 380 ); 381 381 … … 415 415 /// 416 416 typedef struct _SOCK_INIT_DATA { 417 SOCK_TYPE Type;418 UINT8 State;419 420 SOCKET *Parent;///< The parent of this socket421 UINT32 BackLog;///< The connection limit for listening socket422 UINT32 SndBufferSize;///< The high water mark of send buffer423 UINT32 RcvBufferSize;///< The high water mark of receive buffer424 UINT8 IpVersion;425 VOID *Protocol;///< The pointer to protocol function template417 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 426 426 ///< wanted to install on socket 427 427 … … 429 429 // Callbacks after socket is created and before socket is to be destroyed. 430 430 // 431 SOCK_CREATE_CALLBACK CreateCallback; ///< Callback after created432 SOCK_DESTROY_CALLBACK DestroyCallback; ///< Callback before destroyed433 VOID *Context; ///< The context of the callback431 SOCK_CREATE_CALLBACK CreateCallback; ///< Callback after created 432 SOCK_DESTROY_CALLBACK DestroyCallback; ///< Callback before destroyed 433 VOID *Context; ///< The context of the callback 434 434 435 435 // 436 436 // Opaque protocol data. 437 437 // 438 VOID *ProtoData;439 UINT32 DataSize;440 441 SOCK_PROTO_HANDLER ProtoHandler;///< The handler of protocol for socket request442 443 EFI_HANDLE DriverBinding;///< The driver binding handle438 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 444 444 } SOCK_INIT_DATA; 445 445 … … 448 448 /// 449 449 typedef union _NET_PROTOCOL { 450 EFI_TCP4_PROTOCOL Tcp4Protocol;///< Tcp4 protocol451 EFI_TCP6_PROTOCOL Tcp6Protocol;///< Tcp6 protocol450 EFI_TCP4_PROTOCOL Tcp4Protocol; ///< Tcp4 protocol 451 EFI_TCP6_PROTOCOL Tcp6Protocol; ///< Tcp6 protocol 452 452 } NET_PROTOCOL; 453 453 /// … … 458 458 // Socket description information 459 459 // 460 UINT32 Signature;///< Signature of the socket461 EFI_HANDLE SockHandle;///< The virtual handle of the socket462 EFI_HANDLE DriverBinding;///< Socket's driver binding protocol463 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 socket471 SOCK_BUFFER SndBuffer;///< Send buffer of application's data472 SOCK_BUFFER RcvBuffer;///< Receive buffer of received data473 EFI_STATUS SockError;///< The error returned by low layer protocol474 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; 475 475 476 476 // 477 477 // Fields used to manage the connection request 478 478 // 479 UINT32 BackLog; ///< the limit of connection to this socket480 UINT32 ConnCnt; ///< the current count of connections to it481 SOCKET *Parent; ///< listening parent that accept the connection482 LIST_ENTRY ConnectionList; ///< the connections maintained by this socket479 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 483 483 // 484 484 // The queue to buffer application's asynchronous token 485 485 // 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 connected492 SOCK_COMPLETION_TOKEN *CloseToken; ///< app's token to signal if closed486 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 493 493 // 494 494 // Interface for low level protocol 495 495 // 496 SOCK_PROTO_HANDLER ProtoHandler;///< The request handler of protocol497 UINT8 ProtoReserved[PROTO_RESERVED_LEN];///< Data fields reserved for protocol498 UINT8 IpVersion;499 NET_PROTOCOL NetProtocol;///< TCP4 or TCP6 protocol socket used496 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 500 500 // 501 501 // Callbacks after socket is created and before socket is to be destroyed. 502 502 // 503 SOCK_CREATE_CALLBACK CreateCallback;///< Callback after created504 SOCK_DESTROY_CALLBACK DestroyCallback;///< Callback before destroyed505 VOID *Context;///< The context of the callback503 SOCK_CREATE_CALLBACK CreateCallback; ///< Callback after created 504 SOCK_DESTROY_CALLBACK DestroyCallback; ///< Callback before destroyed 505 VOID *Context; ///< The context of the callback 506 506 }; 507 507 … … 510 510 /// 511 511 typedef struct _SOCK_TOKEN { 512 LIST_ENTRY TokenList;///< The entry to add in the token list513 SOCK_COMPLETION_TOKEN *Token;///< The application's token514 UINT32 RemainDataLen;///< Unprocessed data length515 SOCKET *Sock;///< The pointer to the socket this token516 ///< belongs to512 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 517 517 } SOCK_TOKEN; 518 518 … … 521 521 /// 522 522 typedef struct _TCP_RSV_DATA { 523 UINT32 UrgLen;523 UINT32 UrgLen; 524 524 } TCP_RSV_DATA; 525 525 … … 537 537 VOID 538 538 SockSetState ( 539 IN OUT SOCKET 540 IN UINT8 539 IN OUT SOCKET *Sock, 540 IN UINT8 State 541 541 ); 542 542 … … 551 551 SOCKET * 552 552 SockClone ( 553 IN SOCKET *Sock553 IN SOCKET *Sock 554 554 ); 555 555 … … 567 567 VOID 568 568 SockConnEstablished ( 569 IN OUT SOCKET *Sock569 IN OUT SOCKET *Sock 570 570 ); 571 571 … … 582 582 VOID 583 583 SockConnClosed ( 584 IN OUT SOCKET *Sock584 IN OUT SOCKET *Sock 585 585 ); 586 586 … … 597 597 VOID 598 598 SockDataSent ( 599 IN OUT SOCKET 600 IN UINT32 599 IN OUT SOCKET *Sock, 600 IN UINT32 Count 601 601 ); 602 602 … … 616 616 UINT32 617 617 SockGetDataToSend ( 618 IN SOCKET 619 IN UINT32 620 IN UINT32 621 OUT UINT8 618 IN SOCKET *Sock, 619 IN UINT32 Offset, 620 IN UINT32 Len, 621 OUT UINT8 *Dest 622 622 ); 623 623 … … 635 635 VOID 636 636 SockDataRcvd ( 637 IN OUT SOCKET 638 IN OUT NET_BUF 639 IN UINT32 637 IN OUT SOCKET *Sock, 638 IN OUT NET_BUF *NetBuffer, 639 IN UINT32 UrgLen 640 640 ); 641 641 … … 668 668 VOID 669 669 SockNoMoreData ( 670 IN OUT SOCKET *Sock670 IN OUT SOCKET *Sock 671 671 ); 672 672 … … 687 687 SOCKET * 688 688 SockCreateChild ( 689 IN SOCK_INIT_DATA *SockInitData689 IN SOCK_INIT_DATA *SockInitData 690 690 ); 691 691 … … 701 701 EFI_STATUS 702 702 SockDestroyChild ( 703 IN OUT SOCKET *Sock703 IN OUT SOCKET *Sock 704 704 ); 705 705 … … 717 717 EFI_STATUS 718 718 SockConfigure ( 719 IN SOCKET *Sock,720 IN VOID *ConfigData719 IN SOCKET *Sock, 720 IN VOID *ConfigData 721 721 ); 722 722 … … 741 741 EFI_STATUS 742 742 SockConnect ( 743 IN SOCKET *Sock,744 IN VOID *Token743 IN SOCKET *Sock, 744 IN VOID *Token 745 745 ); 746 746 … … 766 766 EFI_STATUS 767 767 SockAccept ( 768 IN SOCKET *Sock,769 IN VOID *Token768 IN SOCKET *Sock, 769 IN VOID *Token 770 770 ); 771 771 … … 790 790 EFI_STATUS 791 791 SockSend ( 792 IN SOCKET *Sock,793 IN VOID *Token792 IN SOCKET *Sock, 793 IN VOID *Token 794 794 ); 795 795 … … 815 815 EFI_STATUS 816 816 SockRcv ( 817 IN SOCKET *Sock,818 IN VOID *Token817 IN SOCKET *Sock, 818 IN VOID *Token 819 819 ); 820 820 … … 830 830 EFI_STATUS 831 831 SockFlush ( 832 IN OUT SOCKET *Sock832 IN OUT SOCKET *Sock 833 833 ); 834 834 … … 854 854 EFI_STATUS 855 855 SockClose ( 856 IN OUT SOCKET *Sock,857 IN VOID *Token,858 IN BOOLEAN OnAbort856 IN OUT SOCKET *Sock, 857 IN VOID *Token, 858 IN BOOLEAN OnAbort 859 859 ); 860 860 … … 890 890 EFI_STATUS 891 891 SockGetMode ( 892 IN SOCKET *Sock,893 IN OUT VOID *Mode892 IN SOCKET *Sock, 893 IN OUT VOID *Mode 894 894 ); 895 895 … … 911 911 EFI_STATUS 912 912 SockRoute ( 913 IN SOCKET 914 IN VOID 913 IN SOCKET *Sock, 914 IN VOID *RouteInfo 915 915 ); 916 916
Note:
See TracChangeset
for help on using the changeset viewer.