rtapi - Introducción a la API RTAPI
RTAPI es una biblioteca que proporciona una API uniforme para varios sistemas operativos en tiempo real. A partir de LinuxCNC 2.7, se soportan hilos POSIX y RTAI.
rtapi.h
El archivo rtapi.h define el codigo RTAPI tanto en
tiempo real como no real. Esto es un cambio desde Rev 2,
donde la API no real (espacio de usuario) se
definió en ulapi.h y utilizó
diferentes nombres de funciones. Los sÃmbolos RTAPI y
ULAPI se utilizan para determinar qué modo se
está compilando; RTAPI para en tiempo real y
ULAPI para no real.
rtapi_math.h
El archivo rtapi_math.h define funciones y constantes de
punto flotante. Debe usarse en lugar de <math.h> en
componentes rtapi en tiempo real.
rtapi_string.h
El archivo rtapi_string.h define funciones relacionadas con
cadenas. Debe usarse en lugar de <string.h> en
componentes rtapi en tiempo real.
rtapi_byteorder.h
Este archivo define las macros de preprocesador
RTAPI_BIG_ENDIAN, RTAPI_LITTLE_ENDIAN y
RTAPI_FLOAT_BIG_ENDIAN como verdadero o falso
según las caracterÃsticas del sistema
objetivo. Debe usarse en lugar de <endian.h>
(espacio de usuario) o <linux/byteorder.h>
(espacio de kernel).
rtapi_limits.h
Este archivo define el valor mÃnimo y
máximo de algunos tipos enteros fundamentales
, como INT_MIN e INT_MAX. Esto debe usarse en lugar de
<limits.h> porque ese archivo de encabezado no
está disponible para los módulos
del kernel.
Código
de espacio de usuario
Ciertas funciones no están disponibles en el
código del espacio de usuario. Esto incluye
funciones que realizan acceso directo a dispositivos, como
rtapi_inb(3).
SS. Código Init/limpieza Ciertas funciones solo se pueden invocar desde el código de inicio/limpieza en tiempo real. Esto incluye funciones que realizan la asignación de memoria, como rtapi_shmem_new(3).
Código
en tiempo real
Solo se pueden invocar algunas funciones desde el
código en tiempo real. Esto incluye funciones
que realizan acceso directo a dispositivos, como
rtapi_inb(3). Excluye la mayorÃa de las API de
kernel de Linux, como do_gettimeofday(3) y muchas API de
rtapi como rtapi_shmem_new(3).
Simulador
Para que un módulo RTAPI se pueda construir en
el entorno "sim" (sistema en tiempo real falso,
sin privilegios especiales), no debe usar ninguna API
del kernel de Linux y no debe usar las API RTAPI para el
acceso directo a dispositivos, como rtapi_inb(3).
Esto incluye automáticamente cualquier
controlador de dispositivo de hardware, y
también dispositivos que usan API de kernel de
Linux para hacer cosas como crear dispositivos o entradas
especiales en el sistema de archivos /proc.
Excepto como se indica en páginas especÃficas del manual, RTAPI devuelve valores errno negativos para errores y valores no negativos para éxito.