ОПИС
RTAPI — це бібліотека, що забезпечує єдиний API для кількох операційних систем реального часу. Починаючи з LinuxCNC 2.7, підтримуються потоки POSIX та RTAI.
ЗАГОЛОВОЧНІ ФАЙЛИ
rtapi.h
Файл rtapi.h визначає RTAPI як для коду реального часу, так і для коду нереального часу. Це зміна порівняно з Rev 2, де API нереального часу було визначено в ulapi.h і використовувалися інші імена функцій. Символи RTAPI та ULAPI використовуються для визначення режиму компіляції: RTAPI для реального часу та ULAPI для нереального часу.
rtapi_math.h
Файл rtapi_math.h визначає функції та константи з плаваючою комою. Його слід використовувати замість <math.h> у компонентах реального часу rtapi.
rtapi_string.h
Файл rtapi_string.h визначає функції, пов’язані з рядками. Його слід використовувати замість <string.h> у компонентах реального часу rtapi.
rtapi_byteorder.h
Цей файл визначає макроси препроцесора RTAPI_BIG_ENDIAN, RTAPI_LITTLE_ENDIAN та RTAPI_FLOAT_BIG_ENDIAN як істинні або хибні залежно від характеристик цільової системи. Його слід використовувати замість <endian.h> (простір користувача) або <linux/byteorder.h> (простір ядра).
rtapi_limits.h
Цей файл визначає мінімальне та максимальне значення деяких основних цілих типів, таких як INT_MIN та INT_MAX. Його слід використовувати замість <limits.h>, оскільки цей заголовок файлу недоступний для модулів ядра.
МІРКУВАННЯ В РЕАЛЬНОМУ ЧАСІ
Код не в реальному часі
Деякі функції недоступні в коді, що не працює в реальному часі. Це включає функції, які здійснюють прямий доступ до пристроїв, такі як rtapi_inb(3).
Код ініціалізації/очищення
Деякі функції можна викликати лише з коду ініціалізації/очищення в реальному часі. Це включає функції, що виконують розподіл пам’яті, такі як rtapi_shmem_new(3).
Код реального часу
З коду реального часу можна викликати лише кілька функцій. Сюди входять функції, що виконують прямий доступ до пристроїв, такі як rtapi_inb(3). Сюди не входять більшість API ядра Linux, таких як do_gettimeofday(3) та багато API rtapi, таких як rtapi_shmem_new(3).
Симулятор
Щоб модуль RTAPI можна було скомпілювати в середовищі «sim» (імітована система реального часу без спеціальних привілеїв), він не повинен використовувати жодних API ядра Linux і не повинен використовувати API RTAPI для прямого доступу до пристроїв, таких як rtapi_inb(3). Це автоматично включає будь-які драйвери апаратних пристроїв, а також пристрої, які використовують API ядра Linux для таких операцій, як створення спеціальних пристроїв або записів у файловій системі /proc.
КОДИ СТАНУ RTAPI
За винятком випадків, зазначених на окремих сторінках довідки, RTAPI повертає від’ємні значення errno для помилок та невід’ємні значення для успішних виконань.