struct ev_prg_s { struct ev_prg_s *next; udata *prog; }; #define EVENT(event) \ struct ev_prg_s *evp_##event=NULL; \ void evadd_##event(udata * p) \ { event_add(&evp_##event,p); } \ void evdo_##event( struct med_s *med ) \ { event_execute(evp_##event,med); } #define DEVENT(event) \ void evadd_##event(udata * p); \ void evdo_##event( struct med_s *med ); DEVENT(init) /* proc. actions */ DEVENT(fork) DEVENT(exec) DEVENT(sexec) DEVENT(exit) DEVENT(setuid) DEVENT(kill) /*DEVENT(socket) */ /*DEVENT(perm) */ /*DEVENT(change) */ DEVENT(fsact) DEVENT(capable) DEVENT(ptrace) /* DEVENT(module) */ #ifdef CONFIG_MEDUSA_SYSCALL /* syscalls */ DEVENT(syscall) #endif