Xenomai
3.0.5
|
Data Structures | |
struct | udd_reserved |
Reserved to the UDD core. More... | |
Data Fields | |
const char * | device_name |
Name of the device managed by the mini-driver, appears automatically in the /dev/rtdm namespace upon creation. | |
int | device_flags |
Additional device flags (e.g. More... | |
int | device_subclass |
Subclass code of the device managed by the mini-driver (see RTDM_SUBCLASS_xxx definition in the Device Profiles). More... | |
int | irq |
IRQ number. More... | |
struct udd_memregion | mem_regions [UDD_NR_MAPS] |
Array of memory regions defined by the device. More... | |
int(* | open )(struct rtdm_fd *fd, int oflags) |
Ancillary open() handler, optional. More... | |
void(* | close )(struct rtdm_fd *fd) |
Ancillary close() handler, optional. More... | |
int(* | ioctl )(struct rtdm_fd *fd, unsigned int request, void *arg) |
Ancillary ioctl() handler, optional. More... | |
int(* | mmap )(struct rtdm_fd *fd, struct vm_area_struct *vma) |
Ancillary mmap() handler for the mapper device, optional. More... | |
int(* | interrupt )(struct udd_device *udd) |
This descriptor defines the characteristics of a UDD-based mini-driver when registering via a call to udd_register_device().
void(* udd_device::close) (struct rtdm_fd *fd) |
Ancillary close() handler, optional.
See rtdm_close_handler().
int udd_device::device_flags |
Additional device flags (e.g.
RTDM_EXCLUSIVE) RTDM_NAMED_DEVICE may be omitted).
Referenced by udd_register_device().
int udd_device::device_subclass |
Subclass code of the device managed by the mini-driver (see RTDM_SUBCLASS_xxx definition in the Device Profiles).
The main class code is pre-set to RTDM_CLASS_UDD.
int(* udd_device::interrupt) (struct udd_device *udd) |
Ancillary handler for receiving interrupts. This handler must be provided if the mini-driver hands over IRQ handling to the UDD core, by setting the irq field to a valid value, different from UDD_IRQ_CUSTOM and UDD_IRQ_NONE.
The ->interrupt() handler shall return one of the following status codes:
Once the ->interrupt() handler has returned, the UDD core notifies user-space Cobalt threads waiting for IRQ events (if any).
Referenced by udd_register_device().
int(* udd_device::ioctl) (struct rtdm_fd *fd, unsigned int request, void *arg) |
Ancillary ioctl() handler, optional.
See rtdm_ioctl_handler().
If this routine returns -ENOSYS, the default action implemented by the UDD core for the corresponding request will be applied, as if no ioctl handler had been defined.
int udd_device::irq |
IRQ number.
If valid, the UDD core manages the corresponding interrupt line, installing a base handler. Otherwise, a special value can be passed for declaring unmanaged IRQs.
Referenced by udd_disable_irq(), udd_enable_irq(), udd_register_device(), and udd_unregister_device().
struct udd_memregion udd_device::mem_regions[UDD_NR_MAPS] |
Array of memory regions defined by the device.
The array can be sparse, with some entries bearing the UDD_MEM_NONE type interleaved with valid ones. See the discussion about UDD memory regions.
int(* udd_device::mmap) (struct rtdm_fd *fd, struct vm_area_struct *vma) |
Ancillary mmap() handler for the mapper device, optional.
See rtdm_mmap_handler(). The mapper device operates on a valid region defined in the mem_regions[] array. A pointer to the region can be obtained by a call to udd_get_region().
If this handler is NULL, the UDD core establishes the mapping automatically, depending on the memory type defined for the region.
int(* udd_device::open) (struct rtdm_fd *fd, int oflags) |
Ancillary open() handler, optional.
See rtdm_open_handler().