| /** @file | |
| Implement the poll API. | |
| Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> | |
| This program and the accompanying materials are licensed and made available under | |
| the terms and conditions of the BSD License that accompanies this distribution. | |
| The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php. | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #include <SocketInternals.h> | |
| /** Poll the socket for activity | |
| @param [in] pDescriptor Descriptor address for the file | |
| @param [in] Events Mask of events to detect | |
| @return Detected events for the socket | |
| **/ | |
| short | |
| EFIAPI | |
| BslSocketPoll ( | |
| IN struct __filedes * pDescriptor, | |
| IN short Events | |
| ) | |
| { | |
| short DetectedEvents; | |
| EFI_SOCKET_PROTOCOL * pSocketProtocol; | |
| // Locate the socket protocol | |
| DetectedEvents = 0; | |
| pSocketProtocol = BslValidateSocketFd ( pDescriptor, &errno ); | |
| if ( NULL != pSocketProtocol ) { | |
| // Poll the socket | |
| (void) pSocketProtocol->pfnPoll ( pSocketProtocol, | |
| Events, | |
| &DetectedEvents, | |
| &errno ); | |
| } | |
| // Return the detected events | |
| return DetectedEvents; | |
| } |