ISIX-RTOS - small operating system for ARM microcontrollers 1.2
|
#include <isix/config.h>
#include <isix/printk.h>
#include <isix/types.h>
#include <prv/scheduler.h>
#include <ucontext.h>
#include <sys/types.h>
#include <sys/time.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
Go to the source code of this file.
Defines | |
#define | STACK_SIZE (256*1024) |
Functions | |
unsigned long * | isixp_task_init_stack (unsigned long *sp, task_func_ptr_t pfun, void *param) |
static void | unused_func (void) |
void | isix_systime_handler (void) |
void | port_set_interrupt_mask (void) |
void | port_clear_interrupt_mask (void) |
void | port_yield (void) |
static void | timer_interrupt (int j, siginfo_t *si, void *old_context) |
static void | setup_signals (void) |
void | port_start_first_task (void) |
void | port_cleanup_task (void *sp) |
Variables | |
static ucontext_t | signal_context |
static void * | signal_stack |
static sigset_t | sigblock_mask |
#define STACK_SIZE (256*1024) |
Definition at line 16 of file simunix-x86/port_scheduler.c.
Referenced by isixp_task_init_stack(), port_start_first_task(), and timer_interrupt().
void isix_systime_handler | ( | void | ) |
Definition at line 52 of file simunix-x86/port_scheduler.c.
References isix_systime_handler(), isixp_enter_critical(), isixp_exit_critical(), isixp_schedule_time(), and isix::port_yield().
unsigned long* isixp_task_init_stack | ( | unsigned long * | sp, |
task_func_ptr_t | pfun, | ||
void * | param | ||
) |
Definition at line 24 of file simunix-x86/port_scheduler.c.
References INITIAL_XPSR, NULL, and STACK_SIZE.
void port_cleanup_task | ( | void * | sp | ) |
Definition at line 173 of file simunix-x86/port_scheduler.c.
References free, and signal_context.
Referenced by cleanup_tasks().
void port_clear_interrupt_mask | ( | void | ) |
Definition at line 82 of file simunix-x86/port_scheduler.c.
References NULL, and sigblock_mask.
Referenced by isixp_exit_critical().
void port_set_interrupt_mask | ( | void | ) |
Definition at line 72 of file simunix-x86/port_scheduler.c.
References NULL, and sigblock_mask.
Referenced by isixp_enter_critical().
void port_start_first_task | ( | void | ) |
Definition at line 143 of file simunix-x86/port_scheduler.c.
References isix_current_task, isixp_schedule(), NULL, setup_signals(), sigblock_mask, signal_stack, STACK_SIZE, and task_struct::top_stack.
Referenced by isix_start_scheduler().
void port_yield | ( | void | ) |
Definition at line 92 of file simunix-x86/port_scheduler.c.
References isix_current_task, isixp_schedule(), and task_struct::top_stack.
Referenced by isix_systime_handler(), and isix::isix_yield().
static void setup_signals | ( | void | ) | [static] |
Definition at line 129 of file simunix-x86/port_scheduler.c.
References NULL, and timer_interrupt().
Referenced by port_start_first_task().
static void timer_interrupt | ( | int | j, |
siginfo_t * | si, | ||
void * | old_context | ||
) | [static] |
Definition at line 106 of file simunix-x86/port_scheduler.c.
References isix_current_task, isix_scheduler_running, signal_context, signal_stack, STACK_SIZE, and task_struct::top_stack.
Referenced by setup_signals().
static void unused_func | ( | void | ) | [static] |
Definition at line 51 of file simunix-x86/port_scheduler.c.
sigset_t sigblock_mask [static] |
Definition at line 21 of file simunix-x86/port_scheduler.c.
Referenced by port_clear_interrupt_mask(), port_set_interrupt_mask(), and port_start_first_task().
ucontext_t signal_context [static] |
Definition at line 19 of file simunix-x86/port_scheduler.c.
Referenced by port_cleanup_task(), and timer_interrupt().
void* signal_stack [static] |
Definition at line 20 of file simunix-x86/port_scheduler.c.
Referenced by port_start_first_task(), and timer_interrupt().