1 /** @file 2 Implement the poll API. 3 4 Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials are licensed and made available under 6 the terms and conditions of the BSD License that accompanies this distribution. 7 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 #include <SocketInternals.h> 14 15 16 /** Poll the socket for activity 17 18 @param [in] pDescriptor Descriptor address for the file 19 @param [in] Events Mask of events to detect 20 21 @return Detected events for the socket 22 **/ 23 short 24 EFIAPI BslSocketPoll(IN struct __filedes * pDescriptor,IN short Events)25BslSocketPoll ( 26 IN struct __filedes * pDescriptor, 27 IN short Events 28 ) 29 { 30 short DetectedEvents; 31 EFI_SOCKET_PROTOCOL * pSocketProtocol; 32 33 // Locate the socket protocol 34 DetectedEvents = 0; 35 pSocketProtocol = BslValidateSocketFd ( pDescriptor, &errno ); 36 if ( NULL != pSocketProtocol ) { 37 // Poll the socket 38 (void) pSocketProtocol->pfnPoll ( pSocketProtocol, 39 Events, 40 &DetectedEvents, 41 &errno ); 42 } 43 // Return the detected events 44 return DetectedEvents; 45 } 46