libspe2
0.9a
|
#include <stdlib.h>
#include "speevent.h"
#include <errno.h>
#include <unistd.h>
#include <sys/epoll.h>
#include <poll.h>
#include <fcntl.h>
Go to the source code of this file.
Macros | |
#define | __SPE_EVENT_ALL |
#define | __SPE_EPOLL_SIZE 10 |
#define | __SPE_EPOLL_FD_GET(handler) (*(int*)(handler)) |
#define | __SPE_EPOLL_FD_SET(handler, fd) (*(int*)(handler) = (fd)) |
#define | __SPE_EVENT_CONTEXT_PRIV_GET(spe) ( (spe_context_event_priv_ptr_t)(spe)->event_private) |
#define | __SPE_EVENT_CONTEXT_PRIV_SET(spe, evctx) ( (spe)->event_private = (evctx) ) |
#define | __SPE_EVENTS_ENABLED(spe) ((spe)->base_private->flags & SPE_EVENTS_ENABLE) |
Functions | |
void | _event_spe_context_lock (spe_context_ptr_t spe) |
void | _event_spe_context_unlock (spe_context_ptr_t spe) |
int | _event_spe_stop_info_read (spe_context_ptr_t spe, spe_stop_info_t *stopinfo) |
spe_event_handler_ptr_t | _event_spe_event_handler_create (void) |
int | _event_spe_event_handler_destroy (spe_event_handler_ptr_t evhandler) |
int | _event_spe_event_handler_register (spe_event_handler_ptr_t evhandler, spe_event_unit_t *event) |
int | _event_spe_event_handler_deregister (spe_event_handler_ptr_t evhandler, spe_event_unit_t *event) |
int | _event_spe_event_wait (spe_event_handler_ptr_t evhandler, spe_event_unit_t *events, int max_events, int timeout) |
int | _event_spe_context_finalize (spe_context_ptr_t spe) |
struct spe_context_event_priv * | _event_spe_context_initialize (spe_context_ptr_t spe) |
int | _event_spe_context_run (spe_context_ptr_t spe, unsigned int *entry, unsigned int runflags, void *argp, void *envp, spe_stop_info_t *stopinfo) |
#define __SPE_EPOLL_FD_GET | ( | handler) | (*(int*)(handler)) |
Definition at line 37 of file spe_event.c.
Referenced by _event_spe_event_handler_deregister(), _event_spe_event_handler_destroy(), _event_spe_event_handler_register(), and _event_spe_event_wait().
#define __SPE_EPOLL_FD_SET | ( | handler, | |
fd | |||
) | (*(int*)(handler) = (fd)) |
Definition at line 38 of file spe_event.c.
Referenced by _event_spe_event_handler_create().
#define __SPE_EPOLL_SIZE 10 |
Definition at line 35 of file spe_event.c.
Referenced by _event_spe_event_handler_create().
#define __SPE_EVENT_ALL |
Definition at line 31 of file spe_event.c.
Referenced by _event_spe_event_handler_deregister(), and _event_spe_event_handler_register().
#define __SPE_EVENT_CONTEXT_PRIV_GET | ( | spe) | ( (spe_context_event_priv_ptr_t)(spe)->event_private) |
Definition at line 40 of file spe_event.c.
Referenced by _event_spe_context_finalize(), _event_spe_context_lock(), _event_spe_context_run(), _event_spe_context_unlock(), _event_spe_event_handler_deregister(), _event_spe_event_handler_register(), and _event_spe_stop_info_read().
#define __SPE_EVENT_CONTEXT_PRIV_SET | ( | spe, | |
evctx | |||
) | ( (spe)->event_private = (evctx) ) |
Definition at line 42 of file spe_event.c.
Referenced by _event_spe_context_finalize().
#define __SPE_EVENTS_ENABLED | ( | spe) | ((spe)->base_private->flags & SPE_EVENTS_ENABLE) |
Definition at line 45 of file spe_event.c.
Referenced by _event_spe_event_handler_deregister(), and _event_spe_event_handler_register().
int _event_spe_context_finalize | ( | spe_context_ptr_t | spe) |
Definition at line 416 of file spe_event.c.
References __SPE_EVENT_CONTEXT_PRIV_GET, __SPE_EVENT_CONTEXT_PRIV_SET, spe_context_event_priv::lock, spe_context_event_priv::stop_event_pipe, and spe_context_event_priv::stop_event_read_lock.
struct spe_context_event_priv* _event_spe_context_initialize | ( | spe_context_ptr_t | spe) |
Definition at line 439 of file spe_event.c.
References spe_context_event_priv::events, spe_context_event_priv::lock, spe_event_unit::spe, spe_context_event_priv::stop_event_pipe, and spe_context_event_priv::stop_event_read_lock.
void _event_spe_context_lock | ( | spe_context_ptr_t | spe) |
Definition at line 49 of file spe_event.c.
References __SPE_EVENT_CONTEXT_PRIV_GET.
Referenced by _event_spe_event_handler_deregister(), _event_spe_event_handler_register(), and _event_spe_event_wait().
int _event_spe_context_run | ( | spe_context_ptr_t | spe, |
unsigned int * | entry, | ||
unsigned int | runflags, | ||
void * | argp, | ||
void * | envp, | ||
spe_stop_info_t * | stopinfo | ||
) |
Definition at line 477 of file spe_event.c.
References __SPE_EVENT_CONTEXT_PRIV_GET, _base_spe_context_run(), and spe_context_event_priv::stop_event_pipe.
void _event_spe_context_unlock | ( | spe_context_ptr_t | spe) |
Definition at line 54 of file spe_event.c.
References __SPE_EVENT_CONTEXT_PRIV_GET.
Referenced by _event_spe_event_handler_deregister(), _event_spe_event_handler_register(), and _event_spe_event_wait().
spe_event_handler_ptr_t _event_spe_event_handler_create | ( | void | ) |
int _event_spe_event_handler_deregister | ( | spe_event_handler_ptr_t | evhandler, |
spe_event_unit_t * | event | ||
) |
Definition at line 273 of file spe_event.c.
References __base_spe_event_source_acquire(), __SPE_EPOLL_FD_GET, __SPE_EVENT_ALL, __SPE_EVENT_CONTEXT_PRIV_GET, __SPE_EVENT_IN_MBOX, __SPE_EVENT_OUT_INTR_MBOX, __SPE_EVENT_SPE_STOPPED, __SPE_EVENT_TAG_GROUP, __SPE_EVENTS_ENABLED, _event_spe_context_lock(), _event_spe_context_unlock(), spe_context_event_priv::events, spe_event_unit::events, FD_IBOX, FD_MFC, FD_WBOX, spe_event_unit::spe, SPE_EVENT_IN_MBOX, SPE_EVENT_OUT_INTR_MBOX, SPE_EVENT_SPE_STOPPED, SPE_EVENT_TAG_GROUP, and spe_context_event_priv::stop_event_pipe.
int _event_spe_event_handler_destroy | ( | spe_event_handler_ptr_t | evhandler) |
int _event_spe_event_handler_register | ( | spe_event_handler_ptr_t | evhandler, |
spe_event_unit_t * | event | ||
) |
Definition at line 155 of file spe_event.c.
References __base_spe_event_source_acquire(), __SPE_EPOLL_FD_GET, __SPE_EVENT_ALL, __SPE_EVENT_CONTEXT_PRIV_GET, __SPE_EVENT_IN_MBOX, __SPE_EVENT_OUT_INTR_MBOX, __SPE_EVENT_SPE_STOPPED, __SPE_EVENT_TAG_GROUP, __SPE_EVENTS_ENABLED, _event_spe_context_lock(), _event_spe_context_unlock(), spe_context::base_private, spe_event_unit::data, spe_context_event_priv::events, spe_event_unit::events, FD_IBOX, FD_MFC, FD_WBOX, spe_context_base_priv::flags, spe_event_data::ptr, spe_event_unit::spe, SPE_EVENT_IN_MBOX, SPE_EVENT_OUT_INTR_MBOX, SPE_EVENT_SPE_STOPPED, SPE_EVENT_TAG_GROUP, SPE_MAP_PS, and spe_context_event_priv::stop_event_pipe.
int _event_spe_event_wait | ( | spe_event_handler_ptr_t | evhandler, |
spe_event_unit_t * | events, | ||
int | max_events, | ||
int | timeout | ||
) |
Definition at line 360 of file spe_event.c.
References __SPE_EPOLL_FD_GET, _event_spe_context_lock(), _event_spe_context_unlock(), and spe_event_unit::spe.
int _event_spe_stop_info_read | ( | spe_context_ptr_t | spe, |
spe_stop_info_t * | stopinfo | ||
) |
Definition at line 59 of file spe_event.c.
References __SPE_EVENT_CONTEXT_PRIV_GET, spe_context_event_priv::stop_event_pipe, and spe_context_event_priv::stop_event_read_lock.