Lines Matching full:table
47 STATIC INLINE VOID SetAddPollWaitFlag(struct PollTable *table, BOOL addQueueFlag) in SetAddPollWaitFlag() argument
49 table->addQueueFlag = addQueueFlag; in SetAddPollWaitFlag()
52 STATIC VOID DestroyPollWait(struct PollTable *table) in DestroyPollWait() argument
55 struct PollWaitNode *waitNode = table->node; in DestroyPollWait()
62 if (LOS_SemDelete(table->sem) != LOS_OK) { in DestroyPollWait()
67 STATIC VOID AddPollWaitQueue(struct PollWaitQueue *waitQueue, struct PollTable *table) in AddPollWaitQueue() argument
76 waitNode->table = table; in AddPollWaitQueue()
78 table->node = waitNode; in AddPollWaitQueue()
82 STATIC INT32 WaitSemTime(struct PollTable *table, UINT32 timeout) in WaitSemTime() argument
85 return LOS_SemPend(table->sem, LOS_MS2Tick(timeout)); in WaitSemTime()
87 return LOS_SemPend(table->sem, LOS_WAIT_FOREVER); in WaitSemTime()
91 STATIC INT32 QueryFds(struct pollfd *fds, nfds_t nfds, struct PollTable *table) in QueryFds() argument
97 if (((nfds != 0) && (fds == NULL)) || (table == NULL)) { in QueryFds()
108 table->event = tmpFds->events | POLLERR | POLLHUP; in QueryFds()
110 ret = PollQueryFd(tmpFds->fd, table); in QueryFds()
119 SetAddPollWaitFlag(table, FALSE); in QueryFds()
137 if (!event || (event & waitNode->table->event)) { in PollNotify()
138 if (LOS_SemPost(waitNode->table->sem) != LOS_OK) { in PollNotify()
146 VOID PollWait(struct PollWaitQueue *waitQueue, struct PollTable *table) in PollWait() argument
148 if ((waitQueue == NULL) || (table == NULL)) { in PollWait()
152 if (table->addQueueFlag == TRUE) { in PollWait()
153 AddPollWaitQueue(waitQueue, table); in PollWait()
157 STATIC INLINE INT32 PollTimedWait(struct pollfd *fds, nfds_t nfds, struct PollTable *table, INT32 t… in PollTimedWait() argument
172 ret = WaitSemTime(table, 0); in PollTimedWait()
188 ret = WaitSemTime(table, left); in PollTimedWait()
194 count = QueryFds(fds, nfds, table); in PollTimedWait()
202 struct PollTable table = {0}; in poll() local
205 if (LOS_SemCreate(0, &table.sem) != LOS_OK) { in poll()
210 SetAddPollWaitFlag(&table, ((timeout == 0) ? FALSE : TRUE)); in poll()
212 count = QueryFds(fds, nfds, &table); in poll()
221 SetAddPollWaitFlag(&table, FALSE); in poll()
223 count = PollTimedWait(fds, nfds, &table, timeout); in poll()
226 DestroyPollWait(&table); in poll()