Include dependency graph for sys.c:
Go to the source code of this file.
Defines | |
#define | MAX_FUN_EXT 16 |
#define | USRLAND_MAX_MSG_SIZE 128 |
#define | lxrt_sem_delete(sem) GENERIC_DELETE(SEM_DELETE, sem) |
#define | lxrt_named_sem_delete(sem) GENERIC_DELETE(NAMED_SEM_DELETE, sem) |
#define | lxrt_rwl_delete(rwl) GENERIC_DELETE(RWL_DELETE, rwl) |
#define | lxrt_named_rwl_delete(rwl) GENERIC_DELETE(NAMED_RWL_DELETE, rwl) |
#define | lxrt_spl_delete(spl) GENERIC_DELETE(SPL_DELETE, spl) |
#define | lxrt_named_spl_delete(spl) GENERIC_DELETE(NAMED_SPL_DELETE, spl) |
#define | lxrt_mbx_delete(mbx) GENERIC_DELETE(MBX_DELETE, mbx) |
#define | lxrt_named_mbx_delete(mbx) GENERIC_DELETE(NAMED_MBX_DELETE, mbx) |
#define | SYSW_DIAG_MSG(x) |
#define | larg ((struct arg *)arg) |
Functions | |
int | get_min_tasks_cpuid (void) |
int | set_rtext (RT_TASK *task, int priority, int uses_fpu, void(*signal)(void), unsigned int cpuid, struct task_struct *relink) |
int | clr_rtext (RT_TASK *task) |
void | steal_from_linux (RT_TASK *task) |
void | give_back_to_linux (RT_TASK *task, int) |
void | rt_schedule_soft (RT_TASK *task) |
void * | rt_get_lxrt_fun_entry (int index) |
static void | lxrt_typed_sem_init (SEM *sem, int count, int type) |
static int | lxrt_typed_mbx_init (MBX *mbx, int bufsize, int type) |
static int | lxrt_typed_rwl_init (RWL *rwl, int type) |
static int | lxrt_spl_init (SPL *spl) |
static int | lxrt_Proxy_detach (pid_t pid) |
static int | GENERIC_DELETE (int index, void *object) |
void | rt_schedule_soft_tail (RT_TASK *, int) |
static void | lxrt_fun_call (RT_TASK *task, void *fun, int narg, long *arg) |
static void | lxrt_fun_call_wbuf (RT_TASK *rt_task, void *fun, int narg, long *arg, unsigned long type) |
void | put_current_on_cpu (int cpuid) |
static RT_TASK * | __task_init (unsigned long name, int prio, int stack_size, int max_msg_size, int cpus_allowed) |
static int | __task_delete (RT_TASK *rt_task) |
static void | set_lxrt_perm (int perm) |
void | rt_make_hard_real_time (RT_TASK *task) |
void | rt_make_soft_real_time (RT_TASK *task) |
static long long | handle_lxrt_request (unsigned int lxsrq, long *arg, RT_TASK *task) |
static void | check_to_soften_harden (RT_TASK *task) |
long long | rtai_lxrt_invoke (unsigned int lxsrq, void *arg) |
int | set_rt_fun_ext_index (struct rt_fun_entry *fun, int idx) |
void | reset_rt_fun_ext_index (struct rt_fun_entry *fun, int idx) |
void | linux_process_termination (void) |
void | init_fun_ext (void) |
EXPORT_SYMBOL (rt_make_hard_real_time) | |
EXPORT_SYMBOL (rt_make_soft_real_time) | |
Variables | |
static struct rt_fun_entry * | rt_fun_ext [MAX_FUN_EXT] |
#define larg ((struct arg *)arg) |
Referenced by handle_lxrt_request().
#define lxrt_mbx_delete | ( | mbx | ) | GENERIC_DELETE(MBX_DELETE, mbx) |
Definition at line 115 of file sys.c.
Referenced by handle_lxrt_request(), and linux_process_termination().
#define lxrt_named_mbx_delete | ( | mbx | ) | GENERIC_DELETE(NAMED_MBX_DELETE, mbx) |
#define lxrt_named_rwl_delete | ( | rwl | ) | GENERIC_DELETE(NAMED_RWL_DELETE, rwl) |
#define lxrt_named_sem_delete | ( | sem | ) | GENERIC_DELETE(NAMED_SEM_DELETE, sem) |
#define lxrt_named_spl_delete | ( | spl | ) | GENERIC_DELETE(NAMED_SPL_DELETE, spl) |
#define lxrt_rwl_delete | ( | rwl | ) | GENERIC_DELETE(RWL_DELETE, rwl) |
Definition at line 111 of file sys.c.
Referenced by handle_lxrt_request(), and linux_process_termination().
#define lxrt_sem_delete | ( | sem | ) | GENERIC_DELETE(SEM_DELETE, sem) |
Definition at line 109 of file sys.c.
Referenced by handle_lxrt_request(), and linux_process_termination().
#define lxrt_spl_delete | ( | spl | ) | GENERIC_DELETE(SPL_DELETE, spl) |
Definition at line 113 of file sys.c.
Referenced by handle_lxrt_request(), and linux_process_termination().
#define MAX_FUN_EXT 16 |
Definition at line 52 of file sys.c.
Referenced by reset_rt_fun_ext_index(), and set_rt_fun_ext_index().
#define USRLAND_MAX_MSG_SIZE 128 |
static int __task_delete | ( | RT_TASK * | rt_task | ) | [static] |
Definition at line 272 of file sys.c.
References clr_rtext(), current, give_back_to_linux(), rt_drg_on_adr(), rt_free(), RT_SCHED_READY, rt_task_masked_unblock(), RTE_HIGERR, TSKEXT0, and TSKEXT1.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static RT_TASK* __task_init | ( | unsigned long | name, | |
int | prio, | |||
int | stack_size, | |||
int | max_msg_size, | |||
int | cpus_allowed | |||
) | [inline, static] |
Definition at line 203 of file sys.c.
References clr_rtext(), current, ffnz(), menu::flags, get_min_tasks_cpuid(), IS_TASK, put_current_on_cpu(), rt_free(), rt_get_adr(), rt_malloc(), rt_register(), RT_SCHED_LOWEST_PRIORITY, set_rtext(), TSKEXT0, and USRLAND_MAX_MSG_SIZE.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static void check_to_soften_harden | ( | RT_TASK * | task | ) | [inline, static] |
Definition at line 654 of file sys.c.
References current, FORCE_SOFT, give_back_to_linux(), rt_printk(), steal_from_linux(), SYSW_DIAG_MSG, task, and unlikely.
Referenced by rtai_lxrt_invoke().
Here is the call graph for this function:
int clr_rtext | ( | RT_TASK * | task | ) |
Definition at line 1158 of file sched.c.
References frstk_srq, MAX_FRESTK_SRQ, rt_pend_linux_srq(), RT_SCHED_DELAYED, RT_SCHED_LINUX_PRIORITY, RT_SCHED_MBXSUSP, RT_SCHED_READY, RT_SCHED_RETURN, RT_SCHED_RPC, RT_SCHED_SEMAPHORE, RT_SCHED_SEND, rt_schedule(), rt_smp_fpu_task, rt_smp_linux_task, RTP_OBJREM, sched_sem_signal(), and task.
Here is the call graph for this function:
EXPORT_SYMBOL | ( | rt_make_soft_real_time | ) |
EXPORT_SYMBOL | ( | rt_make_hard_real_time | ) |
static int GENERIC_DELETE | ( | int | index, | |
void * | object | |||
) | [inline, static] |
Definition at line 104 of file sys.c.
References rt_get_lxrt_fun_entry(), and RTAI_SYSCALL_MODE.
Here is the call graph for this function:
void give_back_to_linux | ( | RT_TASK * | task, | |
int | ||||
) |
Definition at line 2246 of file sched.c.
References hal_schedule_back_root, pend_wake_up_hts, rt_schedule(), and rtai_set_linux_task_priority().
Referenced by __task_delete(), check_to_soften_harden(), handle_lxrt_request(), kthread_fun(), lxrt_handle_trap(), lxrt_intercept_exit(), lxrt_intercept_syscall_prologue(), and rt_make_soft_real_time().
Here is the call graph for this function:
static long long handle_lxrt_request | ( | unsigned int | lxsrq, | |
long * | arg, | |||
RT_TASK * | task | |||
) | [inline, static] |
Definition at line 352 of file sys.c.
References __task_delete(), __task_init(), clear_lnxtsk_uses_fpu, current, flags, FORCE_SOFT, FORCE_TASK_SOFT, GET_EXECTIME, GET_TIMEORIG, GET_USP_FLAGS, GET_USP_FLG_MSK, give_back_to_linux(), HRT_USE_FPU, INDX, init_fpu, IS_HARD, IS_MBX, IS_SEM, larg, likely, LINUX_SERVER_INIT, lxrt_fun_call(), lxrt_fun_call_wbuf(), LXRT_GET_ADR, LXRT_GET_NAME, lxrt_mbx_delete, LXRT_MBX_DELETE, LXRT_MBX_INIT, lxrt_rwl_delete, LXRT_RWL_DELETE, LXRT_RWL_INIT, lxrt_sem_delete, LXRT_SEM_DELETE, LXRT_SEM_INIT, lxrt_spl_delete, LXRT_SPL_DELETE, lxrt_spl_init(), LXRT_SPL_INIT, LXRT_TASK_DELETE, LXRT_TASK_INIT, lxrt_typed_mbx_init(), lxrt_typed_rwl_init(), lxrt_typed_sem_init(), MAKE_HARD_RT, MAKE_SOFT_RT, MAX_LXRT_FUN, NARG, NONROOT_HRT, PRINT_TO_SCREEN, PRINTK, rdtsc, RT_BUDDY, rt_do_force_soft(), rt_drg_on_adr(), rt_free(), rt_fun_ext, rt_get_adr(), rt_get_name(), rt_gettimeorig(), rt_make_hard_real_time(), rt_make_soft_real_time(), rt_malloc(), rt_printk(), rt_register(), rtai_print_to_screen(), rtai_set_linux_task_priority(), RTAI_SYSCALL_MODE, set_lxrt_perm(), SET_USP_FLAGS, SET_USP_FLG_MSK, SRQ, srq, steal_from_linux(), task, TSKEXT0, TSKEXT1, and unlikely.
Referenced by rtai_lxrt_invoke().
Here is the call graph for this function:
void init_fun_ext | ( | void | ) |
Definition at line 772 of file sys.c.
References rt_fun_ext, and rt_fun_lxrt.
Referenced by lxrt_init().
void linux_process_termination | ( | void | ) |
Definition at line 707 of file sys.c.
References rt_registry_entry::adr, current, IS_MBX, is_process_registered(), IS_PRX, IS_RWL, IS_SEM, IS_SPL, IS_TASK, lxrt_mbx_delete, lxrt_Proxy_detach(), lxrt_rwl_delete, lxrt_sem_delete, lxrt_spl_delete, max_slots, rt_registry_entry::name, rt_drg_on_name_cnt(), rt_free(), rt_get_registry_slot(), rt_printk(), rt_registry_entry::tsk, and rt_registry_entry::type.
Referenced by lxrt_intercept_exit().
Here is the call graph for this function:
static void lxrt_fun_call | ( | RT_TASK * | task, | |
void * | fun, | |||
int | narg, | |||
long * | arg | |||
) | [inline, static] |
Definition at line 119 of file sys.c.
References likely, rt_schedule_soft(), rt_schedule_soft_tail(), RTAI_SYSCALL_MODE, task, and unlikely.
Referenced by handle_lxrt_request(), and lxrt_fun_call_wbuf().
Here is the call graph for this function:
static void lxrt_fun_call_wbuf | ( | RT_TASK * | rt_task, | |
void * | fun, | |||
int | narg, | |||
long * | arg, | |||
unsigned long | type | |||
) | [inline, static] |
Definition at line 134 of file sys.c.
References lxrt_fun_call(), rt_free(), and rt_malloc().
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static int lxrt_Proxy_detach | ( | pid_t | pid | ) | [inline, static] |
Definition at line 99 of file sys.c.
References PROXY_DETACH, rt_get_lxrt_fun_entry(), and RTAI_SYSCALL_MODE.
Referenced by linux_process_termination().
Here is the call graph for this function:
static int lxrt_spl_init | ( | SPL * | spl | ) | [inline, static] |
Definition at line 94 of file sys.c.
References rt_get_lxrt_fun_entry(), RTAI_SYSCALL_MODE, and SPL_INIT.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static int lxrt_typed_mbx_init | ( | MBX * | mbx, | |
int | bufsize, | |||
int | type | |||
) | [inline, static] |
Definition at line 84 of file sys.c.
References rt_get_lxrt_fun_entry(), RTAI_SYSCALL_MODE, and TYPED_MBX_INIT.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static int lxrt_typed_rwl_init | ( | RWL * | rwl, | |
int | type | |||
) | [inline, static] |
Definition at line 89 of file sys.c.
References rt_get_lxrt_fun_entry(), RTAI_SYSCALL_MODE, and RWL_INIT.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
static void lxrt_typed_sem_init | ( | SEM * | sem, | |
int | count, | |||
int | type | |||
) | [inline, static] |
Definition at line 79 of file sys.c.
References rt_get_lxrt_fun_entry(), RTAI_SYSCALL_MODE, and TYPED_SEM_INIT.
Referenced by handle_lxrt_request().
Here is the call graph for this function:
void put_current_on_cpu | ( | int | cpuid | ) |
Definition at line 226 of file sched.c.
References current, task, and TSKEXT0.
Referenced by __task_init(), kthread_fun(), kthread_m(), and set_rtext().
void reset_rt_fun_ext_index | ( | struct rt_fun_entry * | fun, | |
int | idx | |||
) |
Definition at line 700 of file sys.c.
References MAX_FUN_EXT, and rt_fun_ext.
Referenced by __rtai_tasklets_exit(), __rtai_wd_exit(), and unregister_lxrt_fifos_support().
void* rt_get_lxrt_fun_entry | ( | int | index | ) |
void rt_make_hard_real_time | ( | RT_TASK * | task | ) |
Definition at line 334 of file sys.c.
References steal_from_linux(), and task.
Here is the call graph for this function:
void rt_make_soft_real_time | ( | RT_TASK * | task | ) |
Definition at line 341 of file sys.c.
References give_back_to_linux(), and task.
Here is the call graph for this function:
void rt_schedule_soft | ( | RT_TASK * | task | ) |
Definition at line 1955 of file sched.c.
References _rt_schedule_soft_tail(), current, enq_soft_ready_task, LOCK_LINUX, RT_SCHED_READY, and rt_smp_current.
Here is the call graph for this function:
void rt_schedule_soft_tail | ( | RT_TASK * | , | |
int | ||||
) |
Definition at line 1978 of file sched.c.
References _rt_schedule_soft_tail().
Referenced by lxrt_fun_call().
Here is the call graph for this function:
long long rtai_lxrt_invoke | ( | unsigned int | lxsrq, | |
void * | arg | |||
) |
Definition at line 676 of file sys.c.
References check_to_soften_harden(), current, handle_lxrt_request(), likely, linux_syscalls_list::retval, task, and TSKEXT0.
Here is the call graph for this function:
static void set_lxrt_perm | ( | int | perm | ) | [inline, static] |
int set_rt_fun_ext_index | ( | struct rt_fun_entry * | fun, | |
int | idx | |||
) |
Definition at line 691 of file sys.c.
References MAX_FUN_EXT, and rt_fun_ext.
Referenced by __rtai_tasklets_init(), __rtai_wd_init(), and register_lxrt_fifos_support().
int set_rtext | ( | RT_TASK * | task, | |
int | priority, | |||
int | uses_fpu, | |||
void(*)(void) | signal, | |||
unsigned int | cpuid, | |||
struct task_struct * | relink | |||
) |
Definition at line 244 of file sched.c.
References atomic_inc, current, flags, lxrt_wdog_task, NR_RT_CPUS, put_current_on_cpu(), rt_printk(), RT_SCHED_HIGHEST_PRIORITY, RT_SCHED_READY, RT_SCHED_SUSPENDED, RT_TIME_END, RTAI_NR_TRAPS, task, TSKEXT0, and TSKEXT1.
Here is the call graph for this function:
void steal_from_linux | ( | RT_TASK * | task | ) |
Definition at line 2205 of file sched.c.
References lnxtsk_uses_fpu, rdtsc, restore_fpu, RT_SCHED_READY, rtai_cli, rtai_sti, and wake_up_sth.
Referenced by check_to_soften_harden(), handle_lxrt_request(), kthread_fun(), lxrt_intercept_syscall_epilogue(), lxrt_intercept_syscall_prologue(), and rt_make_hard_real_time().
struct rt_fun_entry* rt_fun_ext[MAX_FUN_EXT] [static] |
Definition at line 53 of file sys.c.
Referenced by handle_lxrt_request(), init_fun_ext(), reset_rt_fun_ext_index(), and set_rt_fun_ext_index().