# hal.c File Reference

## Detailed Description

ARTI -- RTAI-compatible Adeos-based Real-Time Interface.

Based on the original RTAI layer for x86.

Original RTAI/x86 layer implementation:
Copyright © 2000 Paolo Mantegazza,
Copyright © 2000 Steve Papacharalambous,
Copyright © 2000 Stuart Hughes,
and others.

RTAI/x86 rewrite over Adeos:
Copyright &copy 2002 Philippe Gerum.

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.

Include dependency graph for hal.c:

## Functions

unsigned | rt_startup_irq (unsigned irq)
| start and initialize the PIC to accept interrupt request irq.
void | rt_shutdown_irq (unsigned irq)
| Shut down an IRQ source.
void | rt_enable_irq (unsigned irq)
| Enable an IRQ source.
void | rt_disable_irq (unsigned irq)
| Disable an IRQ source.
void | rt_mask_and_ack_irq (unsigned irq)
| Mask and acknowledge and IRQ source.
void | rt_unmask_irq (unsigned irq)
| Unmask and IRQ source.
void | rt_ack_irq (unsigned irq)
| Acknowledge an IRQ source.
int | rt_request_linux_irq (unsigned irq, irqreturn_t(*handler)(int irq, void *dev_id, struct pt_regs *regs), char *name, void *dev_id)
| Install shared Linux interrupt handler.
int | rt_free_linux_irq (unsigned irq, void *dev_id)
| Uninstall shared Linux interrupt handler.
void | rt_pend_linux_irq (unsigned irq)
| Pend an IRQ to Linux.
int | rt_request_srq (unsigned label, void(*k_handler)(void), long long(*u_handler)(unsigned))
| Install a system request handler.
int | rt_free_srq (unsigned srq)
| Uninstall a system request handler.
void | rt_pend_linux_srq (unsigned srq)
| Append a Linux IRQ.
int | rt_request_timer (void(*handler)(void), unsigned tick, int use_apic)
| Install a timer interrupt handler.
void | rt_free_timer (void)
| Uninstall a timer interrupt handler.

## Variables

int unsigned long | used_apic
| Install a timer interrupt handler.