Data Structures | |
struct | rtdm_operations |
Device operations. More... | |
struct | rtdm_dev_context |
Device context. More... | |
struct | rtdm_device |
RTDM device. More... | |
Device Flags | |
Static flags describing a RTDM device | |
#define | RTDM_EXCLUSIVE 0x0001 |
If set, only a single instance of the device can be requested by an application. | |
#define | RTDM_NAMED_DEVICE 0x0010 |
If set, the device is addressed via a clear-text name. | |
#define | RTDM_PROTOCOL_DEVICE 0x0020 |
If set, the device is addressed via a combination of protocol ID and socket type. | |
#define | RTDM_DEVICE_TYPE_MASK 0x00F0 |
Mask selecting the device type. | |
Context Flags | |
Dynamic flags describing the state of an open RTDM device (bit numbers) | |
#define | RTDM_CREATED_IN_NRT 0 |
Set by RTDM if the device instance was created in non-real-time context. | |
#define | RTDM_CLOSING 1 |
Set by RTDM when the device is being closed. | |
#define | RTDM_FORCED_CLOSING 2 |
Set by RTDM if the device has to be closed regardless of possible pending locks held by other users. | |
#define | RTDM_USER_CONTEXT_FLAG 8 |
Lowest bit number the driver developer can use freely. | |
Driver Versioning | |
Current revisions of RTDM structures, encoding of driver versions. See API Versioning for the interface revision. | |
#define | RTDM_DEVICE_STRUCT_VER 3 |
Version of struct rtdm_device. | |
#define | RTDM_CONTEXT_STRUCT_VER 3 |
Version of struct rtdm_dev_context. | |
#define | RTDM_SECURE_DEVICE 0x80000000 |
Flag indicating a secure variant of RTDM (not supported here). | |
#define | RTDM_DRIVER_VER(major, minor, patch) (((major & 0xFF) << 16) | ((minor & 0xFF) << 8) | (patch & 0xFF)) |
Version code constructor for driver revisions. | |
#define | RTDM_DRIVER_MAJOR_VER(ver) (((ver) >> 16) & 0xFF) |
Get major version number from driver revision code. | |
#define | RTDM_DRIVER_MINOR_VER(ver) (((ver) >> 8) & 0xFF) |
Get minor version number from driver revision code. | |
#define | RTDM_DRIVER_PATCH_VER(ver) ((ver) & 0xFF) |
Get patch version number from driver revision code. | |
Operation Handler Prototypes | |
typedef int(* | rtdm_open_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, int oflag) |
Named device open handler. | |
typedef int(* | rtdm_socket_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, int protocol) |
Socket creation handler for protocol devices. | |
typedef int(* | rtdm_close_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info) |
Close handler. | |
typedef int(* | rtdm_ioctl_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, int request, void *arg) |
IOCTL handler. | |
typedef ssize_t(* | rtdm_read_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, void *buf, size_t nbyte) |
Read handler. | |
typedef ssize_t(* | rtdm_write_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, const void *buf, size_t nbyte) |
Write handler. | |
typedef ssize_t(* | rtdm_recvmsg_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, struct msghdr *msg, int flags) |
Receive message handler. | |
typedef ssize_t(* | rtdm_sendmsg_handler_t )(struct rtdm_dev_context *context, rtdm_user_info_t *user_info, const struct msghdr *msg, int flags) |
Transmit message handler. | |
Functions | |
int | rtdm_dev_register (struct rtdm_device *device) |
Register a RTDM device. | |
int | rtdm_dev_unregister (struct rtdm_device *device, unsigned int poll_delay) |
Unregisters a RTDM device. |
|
Close handler.
|
|
IOCTL handler.
|
|
Named device open handler.
|
|
Read handler.
|
|
Receive message handler.
|
|
Transmit message handler.
|
|
Socket creation handler for protocol devices.
|
|
Write handler.
|
|
Register a RTDM device.
Environments: This service can be called from:
Rescheduling: never. |
|
Unregisters a RTDM device.
Environments: This service can be called from:
Rescheduling: never. |