Function report |
Source Code:fs\eventpoll.c |
Create Date:2022-07-28 20:19:08 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:p_poll - Retrieves ready events, and delivers them to the caller supplied* event buffer.*@ep: Pointer to the eventpoll context.*@events: Pointer to the userspace buffer where the ready events should be* stored.
Proto:static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events, int maxevents, long timeout)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct eventpoll * | ep | |
| struct epoll_event __user * | events | |
| int | maxevents | |
| long | timeout |
| 1808 | slack = 0 |
| 1809 | bool waiter = false |
| 1813 | lockdep_assert_irqs_enabled() |
| 1815 | If timeout > 0 Then |
| 1816 | end_time = ep_set_mstimeout(timeout) |
| 1818 | slack = select_estimate_accuracy( & end_time) |
| 1821 | Else if timeout == 0 Then |
| 1829 | timed_out = 1 |
| 1835 | Go to send_events |
| 1838 | fetch_events : |
| 1844 | If eavail Then Go to send_events |
| 1852 | ep_reset_busy_poll_napi_id(ep) |
| 1859 | If Not waiter Then |
| 1860 | waiter = true |
| 1861 | init_waitqueue_entry( & wait, current process) |
| 1863 | spin_lock_irq( & lock) |
| 1865 | spin_unlock_irq( & lock) |
| 1868 | cycle |
| 1881 | If fatal_signal_pending(current process) Then |
| 1887 | If eavail Then Break |
| 1889 | If signal_pending(current process) Then |
| 1895 | timed_out = 1 |
| 1896 | Break |
| 1902 | send_events : |
| 1908 | If Not res && eavail && Not (res = ep_send_events(ep, events, maxevents)) && Not timed_out Then Go to fetch_events |
| 1912 | If waiter Then |
| 1913 | spin_lock_irq( & lock) |
| 1914 | __remove_wait_queue( & Wait queue used by sys_epoll_wait() , & wait) |
| 1915 | spin_unlock_irq( & lock) |
| 1918 | Return res |
| Name | Describe |
|---|---|
| do_epoll_wait | Implement the event wait interface for the eventpoll file. It is the kernel* part of the user space epoll_wait(2). |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |