funct(3rtapi)
π funct(3rtapi) π
okay bestie, so this is a page from the RTAPI manual (section 3rtapi), and it's all about rtapi_list.h β the RTAPI wrappers for linux kernel functionality. yes, that kind of list. linked-list kinda list. sit down, hydrate, let's go π«Ά
β¨ NAME β¨
rtapi_list.h β RTAPI wrappers for linux kernel functionality
β¨ SYNTAX β¨
here's the whole shape of it, no cap:
#include <rtapi_list.h>
struct rtapi_list_head;
void rtapi_list_add(struct rtapi_list_head *new_, struct rtapi_list_head
*head);
void rtapi_list_add_tail(struct rtapi_list_head *new_, struct
rtapi_list_head *head);
void rtapi_list_del(struct rtapi_list_head *entry);
void RTAPI_INIT_LIST_HEAD(struct rtapi_list_head *entry);
rtapi_list_for_each(pos, head) { ... }
rtapi_list_entry(ptr, type, member)
so we got an opaque-ish struct rtapi_list_head, two adders (front and tail, obviously), a deleter, an INIT macro, a for_each loop, and rtapi_list_entry for getting back to the thing you actually wrapped. iconic lineup honestly πΈ
β¨ DESCRIPTION β¨
so here's the tea β β in kernel space, every single rtapi_xxx or RTAPI_XXX identifier gets mapped to the underlying kernel functionality, if available. if it's not available? then it's justβ¦ not. that's the deal.
in userspace, or in kernels where the kernel doesn't provide that underlying functionality, generally another implementation is provided instead β possibly with reduced functionality. like, it might not do everything the real one does, and that's a whole thing. for example: the userspace implementation for rtapi_device_register always succeeds. always. every time. no failures, bestie π
β¨ REALTIME CONSIDERATIONS β¨
β° call these from init/cleanup code and from realtime tasks. that's the vibe.
and now the scary part π β these functions will cause illegal instruction exceptions in non-realtime components, and in uspace rtapi_app when it is not setuid root. not a drill. do not pass go. do not collect $200. respect the realtime boundary fr fr π
β¨ RETURN VALUE β¨
as in Linux. that's it, that's the whole answer π
β¨ SEE ALSO β¨
literally nothing listed here bestie, the section is empty β it's giving minimalism, it's giving "go read the Linux docs" π
and that's the page!! this came out of the LinuxCNC Documentation, dated 2014-06-28, and it lives at funct(3rtapi). slay, go forth, link those lists πβ¨π¦
π¦ where this page comes from
- debian trixie: linuxcnc-uspace-dev 1:2.9.4-2+deb13u1 Β· GFDL-1.1-or-later
- ubuntu questing: linuxcnc-uspace-dev 1:2.9.4-2ubuntu2
- ubuntu resolute: linuxcnc-uspace-dev 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- ubuntu stonking: linuxcnc-uspace-dev 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- Copyright (c) 2014 Jeff Epler
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms