发新话题
打印

数组blkdevs的访问

数组blkdevs的访问

想在模块中访问设备数组blkdevs[],但是包含了fs.h和blk.h后还是出现数组未定义的情况,怎么办?      

TOP

要看整个的代码,但从一句话看不出问题。      
1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。

TOP

回复 #2 zltjiangshi 的帖子

在src的/fs/Block_dev.c中有这么一段定义
static struct {
        const char *name;
        struct block_device_operations *bdops;
} blkdevs[MAX_BLKDEV];
用来描述块设备的数组

int register_blkdev(unsigned int major, const char * name, struct block_device_operations *bdops)
{
        if (major == 0) {
                for (major = MAX_BLKDEV-1; major > 0; major--) {
                        if (blkdevs[major].bdops == NULL) {
                                blkdevs[major].name = name;
                                blkdevs[major].bdops = bdops;
                                return major;
                        }
                }
                return -EBUSY;
        }
        if (major >= MAX_BLKDEV)
                return -EINVAL;
        if (blkdevs[major].bdops && blkdevs[major].bdops != bdops)
                return -EBUSY;
        blkdevs[major].name = name;
        blkdevs[major].bdops = bdops;
        return 0;
}
中会有对他的访问,现在我想自己对该数组访问来判断对应的设备是否存在。      

TOP

static的含义就是将这个变量局限于文件以内,所以你不能访问了。      
1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。

TOP

回复 #4 zltjiangshi 的帖子

晕那,真的假的?不是静态全局结构?能不能EXPORT_SYMBOL符号导出      

TOP

。。。。。static的含义就是这样,还值得怀疑么?先回去看看c语言基础教程吧。      
1,本人乃Linux伊甸园“Linux内核学习”,“红旗等发行版”版主,请大家捧场。
2,红旗Linux在设备驱动,系统设置,中文美化,易用性方面做得非常好,建议大家使用。
3,本人是红旗Linux的粉丝,不是枪手。

TOP

回复 #6 zltjiangshi 的帖子

弄错了。谢过了。      

TOP

发新话题