typedef void (*ActionHandler)(void *data1, void *data2);

/* returns an event handler for a given event name */
int mod_event_handle(char *name);

/* register an event name (for event generators) */
int mod_register_event(char *name);

/* unregister an event */
int mod_unregister_event(int evhandle);

/*  do event (call event actions for event handle) */
int mod_do_event(int evhandle, void *data1, void *data2);

/* adds an action associated with an event */
int mod_add_event_action(int evhandle, ActionHandler action);

/* dels an action associated with an event */
int mod_del_event_action(int evhandle, ActionHandler action);

/* cheks if a given module owns any events */
int mod_check_events(SVS_Module *module, char** evname, char** modname);

/* dels an action associated with an event */
void mod_del_all_mod_events(SVS_Module *module);

/* aborts the current event beeing "done" */
void mod_abort_event(void);

struct event_entry_s
{
  ActionHandler action;
  struct event_entry_s *next;
  SVS_Module *owner;
};

typedef struct event_entry_s event_entry;

struct event_table_entry_s
{
  char *name;
  int	ac_count;
  event_entry *ac_list;  
  void *owner;
};
typedef struct event_table_entry_s event_table_entry;


syntax highlighted by Code2HTML, v. 0.9.1