00001 #ifndef __QMGR_UTIL_H__
00002 #define __QMGR_UTIL_H__
00003
00004 #include <linux/aquosa/qmgr_config.h>
00005 #include <linux/aquosa/qos_debug.h>
00006
00007 #include <time.h>
00008
00047 qos_rv qmgr_start_periodic_task(long period_usec, int (*job_function)(void *appl_data), void *appl_data);
00048
00060 qos_rv qmgr_start_periodic_alarm(long period_usec);
00061
00070 qos_rv qmgr_wait_periodic_alarm(void);
00071
00078 qos_rv qmgr_stop_periodic_alarm(void);
00079
00082 typedef struct {
00083 struct timespec deadline_ts;
00084 struct timespec period_ts;
00085 int job_id;
00086 } qmgr_period_spec_t;
00087
00095 qos_rv qmgr_periodic_start(qmgr_period_spec_t *p_ps, struct timespec *p_ts);
00096
00105 qos_rv qmgr_periodic_wait(qmgr_period_spec_t *p_ps);
00106
00109 void qmgr_periodic_get_deadline(qmgr_period_spec_t *p_ps, struct timespec *p_deadline_ts);
00110
00112 void qmgr_periodic_set_deadline(qmgr_period_spec_t *p_ps, const struct timespec *p_deadline_ts);
00113
00121 qos_rv qmgr_periodic_stop(qmgr_period_spec_t *p_ps);
00122
00124
00125
00126
00127
00128 #endif