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) |
1.4.7