kernel/poll: add k_poll_signal_init() runtime init

Change-Id: Id5a27f7d25e26a1a71ef87000d35a18777210c19
Signed-off-by: Benjamin Walsh <walsh.benj@gmail.com>
This commit is contained in:
Benjamin Walsh 2017-02-02 16:46:09 -05:00 committed by Anas Nashif
commit a304f16773
2 changed files with 19 additions and 0 deletions

View file

@ -3337,6 +3337,18 @@ extern void k_poll_event_init(struct k_poll_event *event, uint32_t type,
extern int k_poll(struct k_poll_event *events, int num_events,
int32_t timeout);
/**
* @brief Initialize a poll signal object.
*
* Ready a poll signal object to be signaled via k_poll_signal().
*
* @param signal A poll signal.
*
* @return N/A
*/
extern void k_poll_signal_init(struct k_poll_signal *signal);
/**
* @brief Signal a poll signal object.
*

View file

@ -317,6 +317,13 @@ int _handle_obj_poll_event(struct k_poll_event **obj_poll_event, uint32_t state)
return must_reschedule;
}
void k_poll_signal_init(struct k_poll_signal *signal)
{
signal->poll_event = NULL;
signal->signaled = 0;
/* signal->result is left unitialized */
}
int k_poll_signal(struct k_poll_signal *signal, int result)
{
unsigned int key = irq_lock();