ISIX-RTOS - small operating system for ARM microcontrollers 1.2
Data Structures | Defines | Typedefs | Functions | Variables

scheduler.h File Reference

#include <prv/list.h>
#include <isix/config.h>
#include <isix/semaphore.h>
#include <isix/scheduler.h>
#include <isix/types.h>
Include dependency graph for prv/scheduler.h:

Go to the source code of this file.

Data Structures

struct  task_ready_struct
struct  task_struct

Defines

#define TASK_READY   (1<<0)
#define TASK_SLEEPING   (1<<1)
#define TASK_WAITING   (1<<2)
#define TASK_RUNNING   (1<<3)
#define TASK_DEAD   (1<<4)
#define TASK_SEM_WKUP   (1<<5)
#define TASK_WAITING_MULTIPLE   (1<<6)
#define TASK_MULTIPLE_WKUP   (1<<7)

Typedefs

typedef struct task_ready_struct task_ready_t

Functions

void isixp_schedule (void)
void isixp_schedule_time (void)
void isixp_enter_critical (void)
void isixp_exit_critical (void)
void isixp_add_task_to_waiting_list (struct task_struct *task, tick_t timeout)
int isixp_add_task_to_ready_list (struct task_struct *task)
void isixp_add_task_to_sem_list (list_entry_t *sem_list, struct task_struct *task)
void isixp_delete_task_from_ready_list (struct task_struct *task)
void isixp_add_task_to_delete_list (struct task_struct *task)
unsigned long * isixp_task_init_stack (unsigned long *sp, task_func_ptr_t pfun, void *param)

Variables

struct task_struct *volatile isix_current_task
volatile bool isix_scheduler_running

Define Documentation

#define TASK_DEAD   (1<<4)

Definition at line 24 of file prv/scheduler.h.

Referenced by isix_task_delete().

#define TASK_MULTIPLE_WKUP   (1<<7)
#define TASK_READY   (1<<0)
#define TASK_RUNNING   (1<<3)
#define TASK_SEM_WKUP   (1<<5)

Definition at line 25 of file prv/scheduler.h.

Referenced by isix_sem_wait(), isixp_schedule_time(), and isixp_sem_signal().

#define TASK_SLEEPING   (1<<1)
#define TASK_WAITING   (1<<2)
#define TASK_WAITING_MULTIPLE   (1<<6)

Typedef Documentation


Function Documentation

void isixp_add_task_to_delete_list ( struct task_struct task)

Referenced by isix_task_delete().

int isixp_add_task_to_ready_list ( struct task_struct task)
void isixp_add_task_to_sem_list ( list_entry_t sem_list,
struct task_struct task 
)
void isixp_add_task_to_waiting_list ( struct task_struct task,
tick_t  timeout 
)
void isixp_delete_task_from_ready_list ( struct task_struct task)
void isixp_enter_critical ( void  )
void isixp_exit_critical ( void  )
void isixp_schedule ( void  )
void isixp_schedule_time ( void  )
unsigned long* isixp_task_init_stack ( unsigned long *  sp,
task_func_ptr_t  pfun,
void *  param 
)

Definition at line 84 of file arm-cm3/port_scheduler.c.

References INITIAL_XPSR, NULL, and STACK_SIZE.

Referenced by isix_task_create().


Variable Documentation

struct task_struct* volatile isix_current_task
volatile bool isix_scheduler_running
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines