aboutsummaryrefslogblamecommitdiffstats
path: root/litmus/litmus_pai_softirq.c
blob: 300571a81bbd7115350a3bf9e577bb328070dd90 (plain) (tree)































































                                                                                   
#include <linux/interrupt.h>
#include <linux/percpu.h>
#include <linux/cpu.h>
#include <linux/kthread.h>
#include <linux/ftrace.h>
#include <linux/smp.h>
#include <linux/slab.h>
#include <linux/mutex.h>

#include <linux/sched.h>
#include <linux/cpuset.h>

#include <litmus/litmus.h>
#include <litmus/sched_trace.h>
#include <litmus/jobs.h>
#include <litmus/sched_plugin.h>
#include <litmus/litmus_softirq.h>



int __litmus_tasklet_schedule(struct tasklet_struct *t, unsigned int k_id)
{
	int ret = 0; /* assume failure */
    if(unlikely((t->owner == NULL) || !is_realtime(t->owner)))
    {
        TRACE("%s: No owner associated with this tasklet!\n", __FUNCTION__);
        BUG();
    }

    ret = litmus->enqueue_pai_tasklet(t);

	return(ret);
}

EXPORT_SYMBOL(__litmus_tasklet_schedule);



// failure causes default Linux handling.
int __litmus_tasklet_hi_schedule(struct tasklet_struct *t, unsigned int k_id)
{
	int ret = 0; /* assume failure */
	return(ret);
}
EXPORT_SYMBOL(__litmus_tasklet_hi_schedule);


// failure causes default Linux handling.
int __litmus_tasklet_hi_schedule_first(struct tasklet_struct *t, unsigned int k_id)
{
	int ret = 0; /* assume failure */
	return(ret);
}
EXPORT_SYMBOL(__litmus_tasklet_hi_schedule_first);


// failure causes default Linux handling.
int __litmus_schedule_work(struct work_struct *w, unsigned int k_id)
{
	int ret = 0; /* assume failure */
	return(ret);
}
EXPORT_SYMBOL(__litmus_schedule_work);