日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

注册oracle驱动,注册设备 ID - 编写适用于 Oracle® Solaris 11.2 的设备驱动程序

發布時間:2025/3/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注册oracle驱动,注册设备 ID - 编写适用于 Oracle® Solaris 11.2 的设备驱动程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注冊設備 ID

通常,驅動程序在其 attach(9E) 處理程序中初始化和注冊設備 ID。如上所述,驅動程序負責注冊永久設備 ID。同時,驅動程序可能需要處理可直接提供唯一 ID (WWN) 的設備和向穩定存儲器寫入及從穩定存儲器讀取虛構 ID 的設備。

注冊設備提供的 ID

如果設備可以為驅動程序提供唯一的標識符,則驅動程序可以直接使用此標識符初始化設備 ID 并使用 Oracle Solaris DDI 注冊此 ID。/*

* The device provides a guaranteed unique identifier,

* in this case a SCSI3-WWN. The WWN for the device has been

* stored in the device's soft state.

*/

if (ddi_devid_init(dip, DEVID_SCSI3_WWN, un->un_wwn_len, un->un_wwn,

&un->un_devid) != DDI_SUCCESS)

return (DDI_FAILURE);

(void) ddi_devid_register(dip, un->un_devid);

注冊虛構 ID

驅動程序還可能為不直接提供唯一 ID 的設備注冊設備 ID。注冊這些 ID 需要設備能夠存儲并檢索保留區中的少量數據。隨后,驅動程序可創建虛構設備 ID 并將其寫入保留區中。/*

* the device doesn't supply a unique ID, attempt to read

* a fabricated ID from the device's reserved data.

*/

if (xxx_read_deviceid(un, &devid_buf) == XXX_OK) {

if (ddi_devid_valid(devid_buf) == DDI_SUCCESS) {

devid_sz = ddi_devi_sizeof(devid_buf);

un->un_devid = kmem_alloc(devid_sz, KM_SLEEP);

bcopy(devid_buf, un->un_devid, devid_sz);

ddi_devid_register(dip, un->un_devid);

return (XXX_OK);

}

}

/*

* we failed to read a valid device ID from the device

* fabricate an ID, store it on the device, and register

* it with the DDI

*/

if (ddi_devid_init(dip, DEVID_FAB, 0, NULL, &un->un_devid)

== DDI_FAILURE) {

return (XXX_FAILURE);

}

if (xxx_write_deviceid(un) != XXX_OK) {

ddi_devid_free(un->un_devid);

un->un_devid = NULL;

return (XXX_FAILURE);

}

ddi_devid_register(dip, un->un_devid);

return (XXX_OK);

總結

以上是生活随笔為你收集整理的注册oracle驱动,注册设备 ID - 编写适用于 Oracle® Solaris 11.2 的设备驱动程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。