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