--- libaitsched/inc/hooks.h 2011/12/08 08:02:23 1.2 +++ libaitsched/inc/hooks.h 2013/08/15 19:10:48 1.9 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: hooks.h,v 1.2 2011/12/08 08:02:23 misho Exp $ +* $Id: hooks.h,v 1.9 2013/08/15 19:10:48 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 +Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -47,21 +47,13 @@ SUCH DAMAGE. #define __HOOKS_H -struct sched_IO { - fd_set rfd; - fd_set wfd; - fd_set xfd; - struct timeval timeout; -}; - - /* * sched_hook_init() - Default INIT hook * @root = root task - * @data = optional data if !=NULL + * @arg = unused * return: <0 errors and 0 ok */ -void *sched_hook_init(void *root, void *data); +void *sched_hook_init(void *root, void *arg __unused); /* * sched_hook_fini() - Default FINI hook @@ -88,6 +80,15 @@ void *sched_hook_fetch(void *root, void *arg __unused) void *sched_hook_cancel(void *task, void *arg __unused); /* + * sched_hook_thread() - Default THREAD hook + * + * @task = current task + * @arg = pthread attributes + * return: <0 errors and 0 ok + */ +void *sched_hook_thread(void *task, void *arg); + +/* * sched_hook_read() - Default READ hook * @task = current task * @arg = unused @@ -104,12 +105,79 @@ void *sched_hook_read(void *task, void *arg __unused); void *sched_hook_write(void *task, void *arg __unused); /* + * sched_hook_alarm() - Default ALARM hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +void *sched_hook_alarm(void *task, void *arg __unused); + +/* + * sched_hook_node() - Default NODE hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +void *sched_hook_node(void *task, void *arg __unused); + +/* + * sched_hook_proc() - Default PROC hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +void *sched_hook_proc(void *task, void *arg __unused); + +/* + * sched_hook_signal() - Default SIGNAL hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +void *sched_hook_signal(void *task, void *arg __unused); + +/* + * sched_hook_user() - Default USER hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +#ifdef EVFILT_USER +void *sched_hook_user(void *task, void *arg __unused); +#endif + +/* * sched_hook_exception() - Default EXCEPTION hook * @root = root task * @arg = custom handling: if arg == EV_EOF or other value; default: arg == NULL log errno * return: <0 errors and 0 ok */ void *sched_hook_exception(void *root, void *arg); + +/* + * sched_hook_condition() - Default CONDITION hook + * + * @root = root task + * @arg = killState from schedRun() + * return: NULL kill scheduler loop or !=NULL ok + */ +void *sched_hook_condition(void *root, void *arg); + +/* + * sched_hook_rtc() - Default RTC hook + * + * @task = current task + * @arg = unused + * return: <0 errors and 0 ok + */ +#if defined(HAVE_TIMER_CREATE) && defined(HAVE_TIMER_SETTIME) +void *sched_hook_rtc(void *task, void *arg __unused); +#endif #endif