注册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 的设备驱动程序相关推荐
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 问题:引入依赖之后会报错.在maven中央库中查找ojdbc, ...
- android推送设备id,技术解读:极光推送的设备唯一性标识 RegistrationID
对于 App 云平台系统,如何唯一地识别移动设备是非常重要的.否则每次用户在设备上卸载掉应用再重新安装,后端系统只能把这个用户当作一个全新的用户了.使用极光推送的开发者常常有这样一个问题:极光推送是如 ...
- 编译qt的oracle驱动,怎样编译Qt下的Oracle驱动
Windows下编译Oracle驱动 打开工程: C:\Qt\4.8.1\src\plugins\sqldrivers\oci 修改oci.pro: TARGET = qsqloci SOURCES ...
- oracle中根据会话id查sql_id,Oracle 根据SQL_ID查询并杀会话,清空执行计划缓冲池
1. 查询最近五分钟内最高频次SQL,查看event select t.SQL_OPNAME,t.SQL_ID,count(*) from v$active_session_history t whe ...
- linux spi主机控制器pl022驱动注册以及匹配设备过程
最近看海思的spi比较多,海思3519的spi ip使用的时ARM提供的pl022,这里对pl022驱动注册和匹配设备树中的设备这个过程捋一下. pl022是ARM提供的片内外设,很多厂商都用了这个i ...
- 嵌入式学习笔记(五)- 驱动注册
驱动注册 关键点 驱动注册结构体platform_driver 在 include/linux/platform_device.h中 驱动注册platform_driver_register,驱动卸载 ...
- Linux上面查看虚拟机的ID,Linux虚拟机的设备id与盘符不相符怎么办?
一般情况下Linux虚拟机中,设备id都是映射磁盘的盘符,所以设备id和盘符是相一致的.但是用户在查看Linux设备id的时候却发现Linux虚拟机中设备id与盘符不相符,这个时候该怎么办呢? 当用户 ...
- Android - 获取移动端设备ID标识,分情况
目前需求:未登录的用户(游客)需要与客服实时通讯,要怎么区分用户消息? 思路:获取游客的设备ID,以此为标识传给服务器来查询/发送信息,一设备为一用户. 那设备ID是什么?怎么获取呢? 设备ID,就是 ...
- 安装两个虚拟机只为验证一个猜测,结果不出所料(Unity | deviceUniqueIdentifier | 设备ID相同)
文章目录 一.前言 二.Unity获取设备ID 三.安装虚拟机 四.虚拟机中测试deviceUniqueIdentifier 五.结束语 一.前言 嗨,大家好,我是新发. 项目发布了Windows平台 ...
最新文章
- Luogu P1082 同余方程(NOIP 2012) 题解报告
- java流程控制图_Java流程控制
- emWin GUIBuilder V5.40a 无法保存文件问题解决方案
- failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
- 基于最优化方法的超宽带通信信号设计
- 版本管理器命令行总结
- 利用python同步windows和linux文件
- 在phpmyadmin后台获取webshell方法汇总整理
- vba php,VBA
- 后续的C++测试并不一定会成功
- perl cgi session php,如何使用Perl中的CGI :: Session处理Web会话?
- 【java笔记】常用函数式接口(1):Supplier接口
- 如何对国内股票的名称进行脱敏(待续)
- AliDDNS 阿里云动态域名服务 实用工具
- 仿支付宝输入密码界面
- 运动式蓝牙耳机什么牌子好、运动式蓝牙耳机推荐
- 交换机入门小知识2(MAC地址、交换机如何处理数据帧)
- (按色谱固定相基质分)液相色谱柱的分类
- 博弈论——序论(读书笔记)
- 云效x钉钉:让研发工作更简单
热门文章
- 永洪科技斩获2019年度大数据分析创新产品和优秀方案2项殊荣
- 进军B2B乏力?转转为何一直在原地打转?
- 安卓存储性能测试软件,安卓版PCMark存储性能测试:魅族Pro 5/Pro 6都逆袭S7 edge了...
- mysql数据库怎么安装建表_mysql数据库安装及建表注意事项
- python爬虫代码模板_Python:学习Python爬虫的第一天
- 分布式从mysql查数据_技术分享 | 从库数据的查找和参数 slave_rows_search_algorithms...
- java对密码进行加密的方法_如何在JAVA中使用MD5加密对密码进行加密
- apt和apt-get的区别?为什么推荐使用apt?RedHat系列(rpm包、包管理工具yum)和Debian系列(deb包、包管理工具apt-get)区别?
- C语言函数指针(结构体函数指针)
- windows10如何删除文件时提示?(回收站--右键属性--显示删除确认对话框)