| 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().
 1.7.3
 1.7.3