Skip to content
  • Philippe Gerum's avatar
    cobalt/rtdm, lib/cobalt: unify file descriptor management · 90f104d2
    Philippe Gerum authored
    Use regular kernel file descriptors for all kinds of connection
    handles, referring to regular file objects:
    
    - connection to devnode => filp on chrdev inode
    - socket => filp on anon inode
    
    User and kernel-originated connection handles are no more
    differenciated.
    
    The former procfs interface for RTDM is now entirely gone, as all file
    descriptors are now visible from /proc/<pid>/fd.
    
    Obtaining the list of all named devices can be done this way:
    
    $ grep named /sys/class/rtdm/*/flags
    
    Similarly, the list of all protocol devices can be obtained this way:
    
    $ grep protocol /sys/class/rtdm/*/flags
    
    Force closing a stuck file descriptor (formerly done by writing to
    rtdm/open_fildes) makes no sense anymore. Either the owner is a
    userland process and all file handles it holds will be automatically
    dropped at exit, or it is a kernel driver, in which case the driver
    direly needs fixing.
    90f104d2