25 #include "default_c99_handler.h"
26 #include "default_posix1_handler.h"
27 #include "default_libea_handler.h"
29 #define HANDLER_IDX(x) (x & 0xff)
34 static void *handlers[256] = {
35 [
HANDLER_IDX(SPE_C99_CLASS)] = _base_spe_default_c99_handler,
36 [
HANDLER_IDX(SPE_POSIX1_CLASS)] = _base_spe_default_posix1_handler,
37 [
HANDLER_IDX(SPE_LIBEA_CLASS)] = _base_spe_default_libea_handler
55 if (handlers[callnum] != NULL) {
59 handlers[callnum] = handler;
63 if (handlers[callnum] == NULL) {
67 handlers[callnum] = handler;
89 if (handlers[callnum] == NULL) {
94 handlers[callnum] = NULL;
106 if (handlers[callnum] == NULL) {
110 return handlers[callnum];
116 int (*handler)(
void *,
unsigned int);
120 if (!handlers[callnum]) {
121 DEBUG_PRINTF (
"No SPE library handler registered for this call.\n");
126 handler=handlers[callnum];
int _base_spe_handle_library_callback(struct spe_context *spe, int callnum, unsigned int npc)
void * _base_spe_callback_handler_query(unsigned int callnum)
#define DEBUG_PRINTF(fmt, args...)
int _base_spe_callback_handler_deregister(unsigned int callnum)
int _base_spe_callback_handler_register(void *handler, unsigned int callnum, unsigned int mode)
#define SPE_CALLBACK_UPDATE
#define SPE_EMULATE_PARAM_BUFFER
struct spe_context_base_priv * base_private
#define SPE_ISOLATE_EMULATE