Based on the original RTAI layer for PPC and the RTAI/x86 rewrite over ADEOS.
Original RTAI/PPC layer implementation:
Copyright © 2000-2007 Paolo Mantegazza,
Copyright © 2001 David Schleef,
Copyright © 2001 Lineo, Inc,
Copyright © 2002 Wolfgang Grandegger.
RTAI/PPC rewrite over hal-linux patches:
Copyright © 2006 Antonio Barbalace.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, USA; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Definition in file hal.c.
Include dependency graph for hal.c:
Go to the source code of this file.
Data Structures | |
struct | intercept_entry |
Defines | |
#define | __RTAI_HAL__ |
#define | INTR_VECTOR 5 |
#define | DECR_VECTOR 9 |
#define | RTAI_NR_IRQS IPIPE_NR_XIRQS |
#define | RTAI_SCHED_ISR_LOCK() |
#define | RTAI_SCHED_ISR_UNLOCK() |
#define | HAL_TICK_REGS hal_tick_regs[cpuid] |
#define | HAL_LOCK_LINUX() do { sflags = rt_save_switch_to_real_time(cpuid = rtai_cpuid()); } while (0) |
#define | HAL_UNLOCK_LINUX() do { rtai_cli(); rt_restore_switch_to_linux(sflags, cpuid); } while (0) |
#define | RTAI_IRQ_ACK(irq) |
#define | CHECK_KERCTX() |
#define | rtai_irq_desc(irq) (&hal_std_irq_dtype[irq]) |
#define | BEGIN_PIC() |
#define | END_PIC() |
#define | NR_EXCEPT 48 |
#define | LINE_LENGTH 200 |
Functions | |
MODULE_LICENSE ("GPL") | |
RTAI_MODULE_PARM (rtai_cpufreq_arg, ulong) | |
RTAI_MODULE_PARM (PrintFpuTrap, int) | |
RTAI_MODULE_PARM (PrintFpuInit, int) | |
RTAI_MODULE_PARM (IsolCpusMask, ulong) | |
unsigned long | rtai_critical_enter (void(*synch)(void)) |
void | rtai_critical_exit (unsigned long flags) |
int | rt_request_irq (unsigned irq, int(*handler)(unsigned irq, void *cookie), void *cookie, int retmode) |
int | rt_release_irq (unsigned irq) |
int | rt_set_irq_ack (unsigned irq, int(*irq_ack)(unsigned int)) |
void | rt_set_irq_cookie (unsigned irq, void *cookie) |
void | rt_set_irq_retmode (unsigned irq, int retmode) |
unsigned | rt_startup_irq (unsigned irq) |
void | rt_shutdown_irq (unsigned irq) |
static void | _rt_enable_irq (unsigned irq) |
void | rt_disable_irq (unsigned irq) |
static void | _rt_end_irq (unsigned irq) |
void | rt_mask_and_ack_irq (unsigned irq) |
void | rt_enable_irq (unsigned irq) |
void | rt_unmask_irq (unsigned irq) |
void | rt_ack_irq (unsigned irq) |
void | rt_end_irq (unsigned irq) |
int | rt_request_linux_irq (unsigned irq, void *handler, char *name, void *dev_id) |
int | rt_free_linux_irq (unsigned irq, void *dev_id) |
void | rt_pend_linux_irq (unsigned irq) |
RTAI_SYSCALL_MODE void | usr_rt_pend_linux_irq (unsigned irq) |
int | rt_request_srq (unsigned label, void(*k_handler)(void), long long(*u_handler)(unsigned long)) |
int | rt_free_srq (unsigned srq) |
void | rt_pend_linux_srq (unsigned srq) |
intercept_entry | rtai_set_gate_vector (unsigned vector, void *handler, void *rethandler) |
void | rtai_reset_gate_vector (unsigned vector, unsigned long handler, unsigned long rethandler) |
int | rtai_decr_timer_handler (struct pt_regs *regs) |
void | rt_request_apic_timers (void(*handler)(void), struct apic_timer_setup_data *tmdata) |
void | rt_free_apic_timers (void) |
int | rt_assign_irq_to_cpu (int irq, unsigned long cpus_mask) |
int | rt_reset_irq_to_sym_mode (int irq) |
static int | rtai_request_tickdev (void) |
static void | rtai_release_tickdev (void) |
int | rt_request_timer (void(*handler)(void), unsigned tick, int use_apic) |
void | rt_free_timer (void) |
void | rt_request_rtc (long rtc_freq, void *handler) |
void | rt_release_rtc (void) |
static int | rtai_hirq_dispatcher (struct pt_regs *regs) |
RT_TRAP_HANDLER | rt_set_trap_handler (RT_TRAP_HANDLER handler) |
static int | rtai_trap_fault (unsigned event, void *evdata) |
static void | rtai_lsrq_dispatcher (unsigned virq) |
static long long | rtai_usrq_dispatcher (unsigned long srq, unsigned long label) |
static int | intercept_syscall_prologue (unsigned long event, struct pt_regs *regs) |
asmlinkage int | rtai_syscall_dispatcher (struct pt_regs *regs) |
static void | rtai_install_archdep (void) |
static void | rtai_uninstall_archdep (void) |
void(*)(int) | rt_set_ihook (void(*hookfn)(int)) |
void | rtai_set_linux_task_priority (struct task_struct *task, int policy, int prio) |
static void | rtai_domain_entry (int iflag) |
long | rtai_catch_event (struct hal_domain_struct *from, unsigned long event, int(*handler)(unsigned long, void *)) |
int | __rtai_hal_init (void) |
void | __rtai_hal_exit (void) |
module_init (__rtai_hal_init) | |
module_exit (__rtai_hal_exit) | |
asmlinkage int | rt_printk (const char *fmt,...) |
asmlinkage int | rt_sync_printk (const char *fmt,...) |
void * | ll2a (long long ll, char *s) |
EXPORT_SYMBOL (rtai_realtime_irq) | |
EXPORT_SYMBOL (rt_request_irq) | |
EXPORT_SYMBOL (rt_release_irq) | |
EXPORT_SYMBOL (rt_set_irq_cookie) | |
EXPORT_SYMBOL (rt_set_irq_retmode) | |
EXPORT_SYMBOL (rt_set_irq_ack) | |
EXPORT_SYMBOL (rt_startup_irq) | |
EXPORT_SYMBOL (rt_shutdown_irq) | |
EXPORT_SYMBOL (rt_enable_irq) | |
EXPORT_SYMBOL (rt_disable_irq) | |
EXPORT_SYMBOL (rt_mask_and_ack_irq) | |
EXPORT_SYMBOL (rt_unmask_irq) | |
EXPORT_SYMBOL (rt_ack_irq) | |
EXPORT_SYMBOL (rt_request_linux_irq) | |
EXPORT_SYMBOL (rt_free_linux_irq) | |
EXPORT_SYMBOL (rt_pend_linux_irq) | |
EXPORT_SYMBOL (usr_rt_pend_linux_irq) | |
EXPORT_SYMBOL (rt_request_srq) | |
EXPORT_SYMBOL (rt_free_srq) | |
EXPORT_SYMBOL (rt_pend_linux_srq) | |
EXPORT_SYMBOL (rt_assign_irq_to_cpu) | |
EXPORT_SYMBOL (rt_reset_irq_to_sym_mode) | |
EXPORT_SYMBOL (rt_request_apic_timers) | |
EXPORT_SYMBOL (rt_free_apic_timers) | |
EXPORT_SYMBOL (rt_request_timer) | |
EXPORT_SYMBOL (rt_free_timer) | |
EXPORT_SYMBOL (rt_request_rtc) | |
EXPORT_SYMBOL (rt_release_rtc) | |
EXPORT_SYMBOL (rt_set_trap_handler) | |
EXPORT_SYMBOL (rt_set_ihook) | |
EXPORT_SYMBOL (rtai_critical_enter) | |
EXPORT_SYMBOL (rtai_critical_exit) | |
EXPORT_SYMBOL (rtai_set_linux_task_priority) | |
EXPORT_SYMBOL (rtai_linux_context) | |
EXPORT_SYMBOL (rtai_domain) | |
EXPORT_SYMBOL (rtai_proc_root) | |
EXPORT_SYMBOL (rtai_tunables) | |
EXPORT_SYMBOL (rtai_cpu_lock) | |
EXPORT_SYMBOL (rtai_cpu_realtime) | |
EXPORT_SYMBOL (rt_times) | |
EXPORT_SYMBOL (rt_smp_times) | |
EXPORT_SYMBOL (rt_printk) | |
EXPORT_SYMBOL (rt_sync_printk) | |
EXPORT_SYMBOL (ll2a) | |
EXPORT_SYMBOL (rtai_set_gate_vector) | |
EXPORT_SYMBOL (rtai_reset_gate_vector) | |
EXPORT_SYMBOL (rtai_catch_event) | |
EXPORT_SYMBOL (rtai_lxrt_dispatcher) | |
EXPORT_SYMBOL (rt_scheduling) | |
void | up_task_sw (void *, void *) |
EXPORT_SYMBOL (up_task_sw) | |
void | __save_fpenv (void *fpenv) |
EXPORT_SYMBOL (__save_fpenv) | |
void | __restore_fpenv (void *fpenv) |
EXPORT_SYMBOL (__restore_fpenv) | |
EXPORT_SYMBOL (IsolCpusMask) | |
EXPORT_SYMBOL (rt_linux_hrt_set_mode) | |
EXPORT_SYMBOL (rt_linux_hrt_next_shot) | |
Variables | |
static unsigned long | rtai_cpufreq_arg = RTAI_CALIBRATED_CPU_FREQ |
static int | PrintFpuTrap = 0 |
static int | PrintFpuInit = 0 |
unsigned long | IsolCpusMask = 0 |
struct { | |
volatile int locked | |
volatile int rqsted | |
} | rt_scheduling [RTAI_NR_CPUS] |
static void(*) | rtai_isr_hook (int cpuid) |
hw_interrupt_type | hal_std_irq_dtype [] |
static atomic_t | rtai_sync_count = ATOMIC_INIT(1) |
static volatile int | rtai_sync_level |
static unsigned | rtai_sysreq_virq |
rtai_realtime_irq_s | rtai_realtime_irq [RTAI_NR_IRQS] |
calibration_data | rtai_tunables |
void * | hal_syscall_handler |
static RT_TRAP_HANDLER | rtai_trap_handler |
machdep_calls | ppc_md |
static unsigned | rtai_sysreq_virq |
static unsigned long | rtai_sysreq_map = 1 |
static unsigned long | rtai_sysreq_pending |
static unsigned long | rtai_sysreq_running |
static spinlock_t | rtai_lsrq_lock = SPIN_LOCK_UNLOCKED |
struct { | |
unsigned long flags | |
int count | |
} | rtai_linux_irq [RTAI_NR_IRQS] |
struct { | |
void(* k_handler )(void) | |
long long(* u_handler )(unsigned long) | |
unsigned long label | |
} | rtai_sysreq_table [RTAI_NR_SRQS] |
volatile unsigned long | rtai_cpu_lock [2] |
hal_domain_struct | rtai_domain |
volatile unsigned long | rtai_cpu_realtime |
rt_times | rt_times |
rtai_switch_data | rtai_linux_context [RTAI_NR_CPUS] |
rt_times | rt_smp_times [RTAI_NR_CPUS] |
intercept_entry * | intercept_table [] |
static struct intercept_entry | old_intercept_table [NR_EXCEPT] |
static void(*) | decr_timer_handler (void) |
static int | spurious_interrupts |
long long(*) | rtai_lxrt_dispatcher (unsigned long, unsigned long, void *) |
static int(*) | sched_intercept_syscall_prologue (struct pt_regs *) |
int | ipipe_events_diverted |
void(*) | rt_linux_hrt_set_mode (int clock_event_mode, void *) |
int(*) | rt_linux_hrt_next_shot (unsigned long, void *) |
#define BEGIN_PIC | ( | ) |
Value:
do { \ unsigned long flags, pflags, cpuid; \ rtai_save_flags_and_cli(flags); \ cpuid = rtai_cpuid(); \ pflags = xchg((unsigned long *)ROOT_STATUS_ADR(cpuid), 1 << IPIPE_STALL_FLAG); \ rtai_save_and_lock_preempt_count()
#define DECR_VECTOR 9 |
#define END_PIC | ( | ) |
Value:
rtai_restore_preempt_count(); \ ROOT_STATUS_VAL(cpuid) = pflags; \ rtai_restore_flags(flags); \ } while (0)
#define HAL_LOCK_LINUX | ( | ) | do { sflags = rt_save_switch_to_real_time(cpuid = rtai_cpuid()); } while (0) |
#define HAL_UNLOCK_LINUX | ( | ) | do { rtai_cli(); rt_restore_switch_to_linux(sflags, cpuid); } while (0) |
#define INTR_VECTOR 5 |
#define LINE_LENGTH 200 |
#define RTAI_IRQ_ACK | ( | irq | ) |
Value:
do { \ ((void (*)(unsigned int))rtai_realtime_irq[irq].irq_ack)(irq); \ } while (0)
Definition at line 135 of file hal.c.
Referenced by rtai_hirq_dispatcher().
#define rtai_irq_desc | ( | irq | ) | (&hal_std_irq_dtype[irq]) |
#define RTAI_SCHED_ISR_LOCK | ( | ) |
Value:
do { \ if (!rt_scheduling[cpuid].locked++) { \ rt_scheduling[cpuid].rqsted = 0; \ } \ } while (0)
#define RTAI_SCHED_ISR_UNLOCK | ( | ) |
Value:
do { \ if (rt_scheduling[cpuid].locked && !(--rt_scheduling[cpuid].locked)) { \ if (rt_scheduling[cpuid].rqsted > 0 && rtai_isr_hook) { \ rtai_isr_hook(cpuid); \ } \ } \ } while (0)
void __restore_fpenv | ( | void * | fpenv | ) |
void __rtai_hal_exit | ( | void | ) |
Definition at line 1230 of file hal.c.
References flags, hal_catch_event, hal_free_irq, HAL_NR_FAULTS, hal_root_domain, hal_unregister_domain, hal_virtualize_irq, INTR_VECTOR, printk(), rtai_domain, rtai_reset_gate_vector(), rtai_restore_flags, rtai_save_flags_and_cli, rtai_sysreq_virq, and rtai_uninstall_archdep().
Here is the call graph for this function:
int __rtai_hal_init | ( | void | ) |
Definition at line 1150 of file hal.c.
References hal_alloc_irq, hal_attr_struct, hal_catch_event, hal_domain_struct, hal_init_attr, HAL_NR_EVENTS, HAL_NR_FAULTS, hal_register_domain, hal_root_domain, HAL_TYPE, hal_virtualize_irq, INTR_VECTOR, ipipe_root_status, printk(), rtai_domain, rtai_domain_entry(), rtai_hirq_dispatcher(), rtai_install_archdep(), rtai_lsrq_dispatcher(), RTAI_NR_CPUS, rtai_realtime_irq, rtai_set_gate_vector(), rtai_sysreq_virq, and rtai_trap_fault().
Here is the call graph for this function:
void __save_fpenv | ( | void * | fpenv | ) |
static void _rt_enable_irq | ( | unsigned | irq | ) | [inline, static] |
Definition at line 377 of file hal.c.
References BEGIN_PIC, END_PIC, hal_root_domain, hal_unlock_irq, and rtai_irq_desc.
static void _rt_end_irq | ( | unsigned | irq | ) | [inline, static] |
Definition at line 403 of file hal.c.
References BEGIN_PIC, END_PIC, hal_root_domain, hal_unlock_irq, and rtai_irq_desc.
EXPORT_SYMBOL | ( | rt_linux_hrt_next_shot | ) |
EXPORT_SYMBOL | ( | rt_linux_hrt_set_mode | ) |
EXPORT_SYMBOL | ( | IsolCpusMask | ) |
EXPORT_SYMBOL | ( | __restore_fpenv | ) |
EXPORT_SYMBOL | ( | __save_fpenv | ) |
EXPORT_SYMBOL | ( | up_task_sw | ) |
EXPORT_SYMBOL | ( | rt_scheduling | ) |
EXPORT_SYMBOL | ( | rtai_lxrt_dispatcher | ) |
EXPORT_SYMBOL | ( | rtai_catch_event | ) |
EXPORT_SYMBOL | ( | rtai_reset_gate_vector | ) |
EXPORT_SYMBOL | ( | rtai_set_gate_vector | ) |
EXPORT_SYMBOL | ( | ll2a | ) |
EXPORT_SYMBOL | ( | rt_sync_printk | ) |
EXPORT_SYMBOL | ( | rt_printk | ) |
EXPORT_SYMBOL | ( | rt_smp_times | ) |
EXPORT_SYMBOL | ( | rt_times | ) |
EXPORT_SYMBOL | ( | rtai_cpu_realtime | ) |
EXPORT_SYMBOL | ( | rtai_cpu_lock | ) |
EXPORT_SYMBOL | ( | rtai_tunables | ) |
EXPORT_SYMBOL | ( | rtai_proc_root | ) |
EXPORT_SYMBOL | ( | rtai_domain | ) |
EXPORT_SYMBOL | ( | rtai_linux_context | ) |
EXPORT_SYMBOL | ( | rtai_set_linux_task_priority | ) |
EXPORT_SYMBOL | ( | rtai_critical_exit | ) |
EXPORT_SYMBOL | ( | rtai_critical_enter | ) |
EXPORT_SYMBOL | ( | rt_set_ihook | ) |
EXPORT_SYMBOL | ( | rt_set_trap_handler | ) |
EXPORT_SYMBOL | ( | rt_release_rtc | ) |
EXPORT_SYMBOL | ( | rt_request_rtc | ) |
EXPORT_SYMBOL | ( | rt_free_timer | ) |
EXPORT_SYMBOL | ( | rt_request_timer | ) |
EXPORT_SYMBOL | ( | rt_free_apic_timers | ) |
EXPORT_SYMBOL | ( | rt_request_apic_timers | ) |
EXPORT_SYMBOL | ( | rt_reset_irq_to_sym_mode | ) |
EXPORT_SYMBOL | ( | rt_assign_irq_to_cpu | ) |
EXPORT_SYMBOL | ( | rt_pend_linux_srq | ) |
EXPORT_SYMBOL | ( | rt_free_srq | ) |
EXPORT_SYMBOL | ( | rt_request_srq | ) |
EXPORT_SYMBOL | ( | usr_rt_pend_linux_irq | ) |
EXPORT_SYMBOL | ( | rt_pend_linux_irq | ) |
EXPORT_SYMBOL | ( | rt_free_linux_irq | ) |
EXPORT_SYMBOL | ( | rt_request_linux_irq | ) |
EXPORT_SYMBOL | ( | rt_ack_irq | ) |
EXPORT_SYMBOL | ( | rt_unmask_irq | ) |
EXPORT_SYMBOL | ( | rt_mask_and_ack_irq | ) |
EXPORT_SYMBOL | ( | rt_disable_irq | ) |
EXPORT_SYMBOL | ( | rt_enable_irq | ) |
EXPORT_SYMBOL | ( | rt_shutdown_irq | ) |
EXPORT_SYMBOL | ( | rt_startup_irq | ) |
EXPORT_SYMBOL | ( | rt_set_irq_ack | ) |
EXPORT_SYMBOL | ( | rt_set_irq_retmode | ) |
EXPORT_SYMBOL | ( | rt_set_irq_cookie | ) |
EXPORT_SYMBOL | ( | rt_release_irq | ) |
EXPORT_SYMBOL | ( | rt_request_irq | ) |
EXPORT_SYMBOL | ( | rtai_realtime_irq | ) |
static int intercept_syscall_prologue | ( | unsigned long | event, | |
struct pt_regs * | regs | |||
) | [static] |
Definition at line 925 of file hal.c.
References likely, rtai_lxrt_dispatcher, RTAI_SYSCALL_NR, rtai_usrq_dispatcher(), sched_intercept_syscall_prologue, and srq.
Here is the call graph for this function:
void* ll2a | ( | long long | ll, | |
char * | s | |||
) |
module_exit | ( | __rtai_hal_exit | ) |
module_init | ( | __rtai_hal_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
void rt_ack_irq | ( | unsigned | irq | ) |
Definition at line 421 of file hal.c.
References _rt_enable_irq().
Here is the call graph for this function:
void rt_disable_irq | ( | unsigned | irq | ) |
Definition at line 390 of file hal.c.
References BEGIN_PIC, cpuid, END_PIC, hal_lock_irq, hal_root_domain, and rtai_irq_desc.
void rt_enable_irq | ( | unsigned | irq | ) |
Definition at line 417 of file hal.c.
References _rt_enable_irq().
Here is the call graph for this function:
void rt_end_irq | ( | unsigned | irq | ) |
Definition at line 423 of file hal.c.
References _rt_end_irq().
Here is the call graph for this function:
void rt_free_apic_timers | ( | void | ) |
Definition at line 624 of file hal.c.
References rt_free_timer().
Here is the call graph for this function:
int rt_free_linux_irq | ( | unsigned | irq, | |
void * | dev_id | |||
) |
Definition at line 458 of file hal.c.
References count, flags, rtai_linux_irq, RTAI_NR_IRQS, rtai_restore_flags, and rtai_save_flags_and_cli.
int rt_free_srq | ( | unsigned | srq | ) |
void rt_free_timer | ( | void | ) |
Definition at line 691 of file hal.c.
References DECR_VECTOR, flags, rtai_release_tickdev(), rtai_reset_gate_vector(), rtai_restore_flags, and rtai_save_flags_and_cli.
Here is the call graph for this function:
void rt_mask_and_ack_irq | ( | unsigned | irq | ) |
void rt_pend_linux_irq | ( | unsigned | irq | ) |
Definition at line 485 of file hal.c.
References flags, rtai_restore_flags, and rtai_save_flags_and_cli.
void rt_pend_linux_srq | ( | unsigned | srq | ) |
Definition at line 550 of file hal.c.
References flags, rtai_restore_flags, rtai_save_flags_and_cli, rtai_sysreq_pending, and rtai_sysreq_virq.
asmlinkage int rt_printk | ( | const char * | fmt, | |
... | ||||
) |
int rt_release_irq | ( | unsigned | irq | ) |
Definition at line 285 of file hal.c.
References flags, hal_root_domain, IsolCpusMask, rt_assign_irq_to_cpu(), rtai_critical_enter(), rtai_critical_exit(), RTAI_NR_IRQS, and rtai_realtime_irq.
Here is the call graph for this function:
void rt_release_rtc | ( | void | ) |
Definition at line 713 of file hal.c.
References rt_printk().
Here is the call graph for this function:
void rt_request_apic_timers | ( | void(*)(void) | handler, | |
struct apic_timer_setup_data * | tmdata | |||
) |
int rt_request_irq | ( | unsigned | irq, | |
int(*)(unsigned irq, void *cookie) | handler, | |||
void * | cookie, | |||
int | retmode | |||
) |
Definition at line 255 of file hal.c.
References flags, hal_root_domain, IsolCpusMask, rt_assign_irq_to_cpu(), rtai_critical_enter(), rtai_critical_exit(), RTAI_NR_IRQS, and rtai_realtime_irq.
Here is the call graph for this function:
int rt_request_linux_irq | ( | unsigned | irq, | |
void * | handler, | |||
char * | name, | |||
void * | dev_id | |||
) |
Definition at line 430 of file hal.c.
References count, flags, rtai_linux_irq, RTAI_NR_IRQS, rtai_restore_flags, and rtai_save_flags_and_cli.
void rt_request_rtc | ( | long | rtc_freq, | |
void * | handler | |||
) |
Definition at line 708 of file hal.c.
References rt_printk().
Here is the call graph for this function:
int rt_request_srq | ( | unsigned | label, | |
void(*)(void) | k_handler, | |||
long long(*)(unsigned long) | u_handler | |||
) |
Definition at line 511 of file hal.c.
References flags, rtai_restore_flags, rtai_save_flags_and_cli, rtai_sysreq_map, rtai_sysreq_table, and srq.
int rt_request_timer | ( | void(*)(void) | handler, | |
unsigned | tick, | |||
int | use_apic | |||
) |
Definition at line 637 of file hal.c.
References decr_timer_handler, DECR_VECTOR, flags, rt_release_irq(), rt_set_timer_delay, rt_times, rtai_decr_timer_handler(), rtai_rdtsc, rtai_request_tickdev(), rtai_restore_flags, rtai_save_flags_and_cli, and rtai_set_gate_vector().
Here is the call graph for this function:
void(*)(int) rt_set_ihook | ( | ) |
int rt_set_irq_ack | ( | unsigned | irq, | |
int(*)(unsigned int) | irq_ack | |||
) |
Definition at line 309 of file hal.c.
References hal_root_domain, RTAI_NR_IRQS, and rtai_realtime_irq.
void rt_set_irq_cookie | ( | unsigned | irq, | |
void * | cookie | |||
) |
void rt_set_irq_retmode | ( | unsigned | irq, | |
int | retmode | |||
) |
RT_TRAP_HANDLER rt_set_trap_handler | ( | RT_TRAP_HANDLER | handler | ) |
void rt_shutdown_irq | ( | unsigned | irq | ) |
Definition at line 363 of file hal.c.
References BEGIN_PIC, END_PIC, hal_clear_irq, hal_root_domain, and rtai_irq_desc.
unsigned rt_startup_irq | ( | unsigned | irq | ) |
Definition at line 347 of file hal.c.
References BEGIN_PIC, END_PIC, hal_root_domain, hal_unlock_irq, and rtai_irq_desc.
asmlinkage int rt_sync_printk | ( | const char * | fmt, | |
... | ||||
) |
Definition at line 1293 of file hal.c.
References args, hal_set_printk_async, hal_set_printk_sync, line, LINE_LENGTH, printk(), and rtai_domain.
Here is the call graph for this function:
void rt_unmask_irq | ( | unsigned | irq | ) |
Definition at line 419 of file hal.c.
References _rt_end_irq().
Here is the call graph for this function:
long rtai_catch_event | ( | struct hal_domain_struct * | from, | |
unsigned long | event, | |||
int(*)(unsigned long, void *) | handler | |||
) |
Definition at line 1135 of file hal.c.
References hal_catch_event, HAL_SYSCALL_PROLOGUE, and sched_intercept_syscall_prologue.
unsigned long rtai_critical_enter | ( | void(*)(void) | synch | ) |
Definition at line 226 of file hal.c.
References atomic_dec_and_test, flags, hal_critical_enter, printk(), rtai_sync_count, and rtai_sync_level.
Here is the call graph for this function:
void rtai_critical_exit | ( | unsigned long | flags | ) |
Definition at line 244 of file hal.c.
References atomic_inc, hal_critical_exit, and rtai_sync_count.
int rtai_decr_timer_handler | ( | struct pt_regs * | regs | ) |
Definition at line 600 of file hal.c.
References cpuid, decr_timer_handler, HAL_LOCK_LINUX, HAL_UNLOCK_LINUX, RTAI_SCHED_ISR_LOCK, RTAI_SCHED_ISR_UNLOCK, and rtai_sti.
Referenced by rt_request_timer().
static void rtai_domain_entry | ( | int | iflag | ) | [static] |
Definition at line 1121 of file hal.c.
References hal_suspend_domain, HAL_TYPE, HAL_VERSION_STRING, and rt_printk().
Here is the call graph for this function:
static int rtai_hirq_dispatcher | ( | struct pt_regs * | regs | ) | [static] |
Definition at line 725 of file hal.c.
References cpuid, HAL_LOCK_LINUX, HAL_UNLOCK_LINUX, ppc_md, RTAI_IRQ_ACK, RTAI_NR_IRQS, rtai_realtime_irq, RTAI_SCHED_ISR_LOCK, RTAI_SCHED_ISR_UNLOCK, and rtai_sti.
static void rtai_install_archdep | ( | void | ) | [static] |
Definition at line 959 of file hal.c.
References hal_catch_event, hal_get_sysinfo, hal_root_domain, HAL_SYSCALL_PROLOGUE, hal_sysinfo_struct, intercept_syscall_prologue(), printk(), rtai_cpufreq_arg, and rtai_tunables.
Here is the call graph for this function:
static void rtai_lsrq_dispatcher | ( | unsigned | virq | ) | [static] |
Definition at line 862 of file hal.c.
References ffnz(), rtai_lsrq_lock, rtai_sysreq_map, rtai_sysreq_pending, rtai_sysreq_running, rtai_sysreq_table, and srq.
Here is the call graph for this function:
RTAI_MODULE_PARM | ( | IsolCpusMask | , | |
ulong | ||||
) |
RTAI_MODULE_PARM | ( | PrintFpuInit | , | |
int | ||||
) |
RTAI_MODULE_PARM | ( | PrintFpuTrap | , | |
int | ||||
) |
RTAI_MODULE_PARM | ( | rtai_cpufreq_arg | , | |
ulong | ||||
) |
static void rtai_release_tickdev | ( | void | ) | [static] |
static int rtai_request_tickdev | ( | void | ) | [static] |
void rtai_reset_gate_vector | ( | unsigned | vector, | |
unsigned long | handler, | |||
unsigned long | rethandler | |||
) |
Definition at line 588 of file hal.c.
References intercept_entry::handler, old_intercept_table, and intercept_entry::rethandler.
struct intercept_entry rtai_set_gate_vector | ( | unsigned | vector, | |
void * | handler, | |||
void * | rethandler | |||
) |
Definition at line 571 of file hal.c.
References intercept_entry::handler, old_intercept_table, and intercept_entry::rethandler.
void rtai_set_linux_task_priority | ( | struct task_struct * | task, | |
int | policy, | |||
int | prio | |||
) |
Definition at line 1011 of file hal.c.
References hal_set_linux_task_priority, and printk().
Here is the call graph for this function:
asmlinkage int rtai_syscall_dispatcher | ( | struct pt_regs * | regs | ) |
Definition at line 940 of file hal.c.
References rtai_lxrt_dispatcher, rtai_usrq_dispatcher(), and srq.
Here is the call graph for this function:
static int rtai_trap_fault | ( | unsigned | event, | |
void * | evdata | |||
) | [static] |
Definition at line 784 of file hal.c.
References flags, HINT_DIAG_MSG, rt_printk(), rtai_save_flags_and_cli, rtai_trap_handler, TRACE_RTAI_TRAP_ENTRY, and TRACE_RTAI_TRAP_EXIT.
Here is the call graph for this function:
static void rtai_uninstall_archdep | ( | void | ) | [static] |
Definition at line 986 of file hal.c.
References hal_catch_event, hal_root_domain, and HAL_SYSCALL_PROLOGUE.
static long long rtai_usrq_dispatcher | ( | unsigned long | srq, | |
unsigned long | label | |||
) | [inline, static] |
Definition at line 887 of file hal.c.
References rtai_sysreq_map, rtai_sysreq_table, TRACE_RTAI_SRQ_ENTRY, and TRACE_RTAI_SRQ_EXIT.
void up_task_sw | ( | void * | , | |
void * | ||||
) |
RTAI_SYSCALL_MODE void usr_rt_pend_linux_irq | ( | unsigned | irq | ) |
Definition at line 498 of file hal.c.
References flags, rtai_restore_flags, and rtai_save_flags_and_cli.
void(*) decr_timer_handler(void) [static] |
Definition at line 597 of file hal.c.
Referenced by rt_request_timer(), and rtai_decr_timer_handler().
struct hw_interrupt_type hal_std_irq_dtype[] |
void* hal_syscall_handler |
struct intercept_entry* intercept_table[] |
unsigned long IsolCpusMask = 0 |
void(* k_handler)(void) |
struct intercept_entry old_intercept_table[NR_EXCEPT] [static] |
Definition at line 565 of file hal.c.
Referenced by rtai_reset_gate_vector(), and rtai_set_gate_vector().
struct machdep_calls ppc_md |
Referenced by rtai_hirq_dispatcher().
int PrintFpuInit = 0 [static] |
int PrintFpuTrap = 0 [static] |
int(*) rt_linux_hrt_next_shot(unsigned long, void *) |
void(*) rt_linux_hrt_set_mode(int clock_event_mode, void *) |
struct { ... } rt_scheduling[RTAI_NR_CPUS] |
struct rt_times rt_smp_times[RTAI_NR_CPUS] |
volatile unsigned long rtai_cpu_lock[2] |
volatile unsigned long rtai_cpu_realtime |
unsigned long rtai_cpufreq_arg = RTAI_CALIBRATED_CPU_FREQ [static] |
struct hal_domain_struct rtai_domain |
void(*) rtai_isr_hook(int cpuid) [static] |
struct rtai_switch_data rtai_linux_context[RTAI_NR_CPUS] |
struct { ... } rtai_linux_irq[RTAI_NR_IRQS] [static] |
spinlock_t rtai_lsrq_lock = SPIN_LOCK_UNLOCKED [static] |
struct rtai_realtime_irq_s rtai_realtime_irq[RTAI_NR_IRQS] |
atomic_t rtai_sync_count = ATOMIC_INIT(1) [static] |
volatile int rtai_sync_level [static] |
unsigned long rtai_sysreq_map = 1 [static] |
unsigned long rtai_sysreq_pending [static] |
unsigned long rtai_sysreq_running [static] |
struct { ... } rtai_sysreq_table[RTAI_NR_SRQS] [static] |
unsigned rtai_sysreq_virq [static] |
unsigned rtai_sysreq_virq [static] |
RT_TRAP_HANDLER rtai_trap_handler [static] |
int(*) sched_intercept_syscall_prologue(struct pt_regs *) [static] |
int spurious_interrupts [static] |
long long(* u_handler)(unsigned long) |