Writing Device Drivers

Opening and Closing Target Devices

This section describes the LDI kernel interfaces for opening and closing target devices. The open interfaces take a pointer to a layered driver handle. The open interfaces attempt to open the target device specified by the device number, device ID, or path name. If the open operation is successful, the open interfaces allocate and return a layered driver handle that can be used to access the target device. The close interface closes the target device associated with the specified layered driver handle and then frees the layered driver handle.

ldi_handle_t

Layered driver handle for target device access. An opaque data structure that is returned when a device is successfully opened.

ldi_open_by_dev(9F)

Open the device specified by the dev_t device number parameter.

ldi_open_by_devid(9F)

Open the device specified by the ddi_devid_t device ID parameter. You also must specify the minor node name to open.

ldi_open_by_name(9F)

Open a device by path name. The path name is a null-terminated string in the kernel address space. The path name must be an absolute path, beginning with a forward slash character (/).

ldi_close(9F)

Close a device that was opened with ldi_open_by_dev(9F), ldi_open_by_devid(9F), or ldi_open_by_name(9F). After ldi_close(9F) returns, the layered driver handle of the device that was closed is no longer valid.