aix设备驱动程序运行失败

whoisthisman 2014-07-08 05:21:08
如题,在aix上面,编译从http://www.ibm.com/developerworks上面找的代码,能正常通过,但运行时候报错,错误也查找不到资料,没法上google,请求大神帮助:
int main()
{
struct cfg_load ext_load; /* to load kernel extension */
struct cfg_dd ddcfg; /* to invoke driver config() */
char c, str[80];
int rc;
int major, minor = 0;
dev_t devno;

if((rc = odm_initialize()) == -1)
{
printf("odm_initialize error\n");
exit(1);
}
printf("\n Enter choice, (l)oad, (u)nload \n");
while((c = getchar()) < 'a' && c > 'z');

switch(c) {
case 'l':
ext_load.path = "sample_driver";
ext_load.libpath = NULL;
ext_load.kmid = 0;

if(sysconfig(SYS_KLOAD,
&ext_load, sizeof(struct cfg_load))) {
printf("Error in loading extension\n");
exit (1);
}
else
printf("Extension Successfully loaded, kmid is %d\n", ext_load.kmid);

major = genmajor("sample_driver");
printf("Major number: %d\n", major);
devno = makedev64(major, minor);
ddcfg.kmid = ext_load.kmid;
ddcfg.devno = devno;
ddcfg.cmd = CFG_INIT;
ddcfg.ddsptr = NULL;
ddcfg.ddslen = 0;

if (rc = sysconfig(SYS_CFGDD,
&ddcfg, sizeof(ddcfg))) {
printf("Error in configuring device %d %d\n", rc, errno);
exit (1);
}



其中
          major = genmajor("sample_driver");
printf("Major number: %d\n", major);
这地方返回-1。

错误运行结果如下:

# ./config_mgr sample_driver

Enter choice, (l)oad, (u)nload
l
Extension Successfully loaded, kmid is 1354129408
Major number: -1
Error in configuring device -1 1073741823


谁能帮忙看看,非常感谢!
...全文
548 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,194

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • IBM AIX社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧