#ifndef __LIBCFS_PRIM_H__
#define __LIBCFS_PRIM_H__
+#ifndef CFS_EXPORT_SYMBOL
+# define CFS_EXPORT_SYMBOL(s)
+#endif
+
/*
* Schedule
*/
-void cfs_schedule_timeout(cfs_task_state_t state, int64_t timeout);
+void cfs_schedule_timeout_and_set_state(cfs_task_state_t state,
+ int64_t timeout);
+void cfs_schedule_timeout(int64_t timeout);
void cfs_schedule(void);
void cfs_pause(cfs_duration_t ticks);
+int cfs_need_resched(void);
+void cfs_cond_resched(void);
/*
* Wait Queues
void cfs_waitq_init(cfs_waitq_t *waitq);
void cfs_waitlink_init(cfs_waitlink_t *link);
void cfs_waitq_add(cfs_waitq_t *waitq, cfs_waitlink_t *link);
-void cfs_waitq_add_exclusive(cfs_waitq_t *waitq,
+void cfs_waitq_add_exclusive(cfs_waitq_t *waitq,
cfs_waitlink_t *link);
void cfs_waitq_del(cfs_waitq_t *waitq, cfs_waitlink_t *link);
int cfs_waitq_active(cfs_waitq_t *waitq);
/*
* Timer
*/
-typedef void (cfs_timer_func_t)(unsigned long);
+typedef void (cfs_timer_func_t)(ulong_ptr_t);
void cfs_init_timer(cfs_timer_t *t);
void cfs_timer_init(cfs_timer_t *t, cfs_timer_func_t *func, void *arg);