当前位置:  技术问答>linux和unix

内核数据初始化

    来源: 互联网  发布时间:2015-10-25

    本文导语:  我写了个设备的驱动,定义了一个数据结构 但是在使用前没有对该结构的各个成员赋值,尽是使用时根据状态直接赋值。结构如下: static struct buffer_struct{ int busy_flag; int cflags[MAX_ITEM_COUNT];// 0:free 1:occupy 2:busy/pen...

我写了个设备的驱动,定义了一个数据结构
但是在使用前没有对该结构的各个成员赋值,尽是使用时根据状态直接赋值。结构如下:
static struct buffer_struct{
int busy_flag;
int cflags[MAX_ITEM_COUNT];// 0:free 1:occupy 2:busy/pending 3:finished
unsigned char in_buffer[MAX_ITEM_COUNT][IN_ITEM_LENGTH];
unsigned char out_buffer[MAX_ITEM_COUNT][OUT_ITEM_LENGTH];
} xbuffer;

这样影响大么(现在还没出现大问题),如果要初始化赋值,内核不能用memset这样的函数吧,有别的函数可用么?

|
memset函数多数用于对某段内存空间赋值,而且是在这段内存空间赋相同的值。
格式如下:
memset(begin_addr,value,size)
begin_addr:是这段内存空间的起始地址。
value:是要赋的值。
size:是这段空间的大小。

对于你以上说的情况来分析的话,我觉得不适合用memset,因为只能对这段空间赋相同的值。

我建议:
你使用kmalloc来分配你的结构体空间以后,对相关变量直接赋初始值。即:
void * buffer;
buffer=(xbuffer *)kmalloc(sizeof(xbuffer),GFP_KERNEL);
buffer->busy_flag=1;
.......


|
内核里可以直接用memset 函数的

    
 
 

您可能感兴趣的文章:

  • 关于2.4.23内核启动对于usb初始化的问题
  • 关于Linux内核墙上时钟初始化代码的疑问
  • 300分求内核初始化及启动中出现的问题,
  • 请教,linux内核协议栈中,从内核往驱动发送的报文(注意是下行,不是上行),如何从sk_buff判断是组播数据报文还是组播协议报文????
  • 内核里面的数据压缩
  • 用户态程序如何和多个内核模块进行同时数据交互??
  • 用户层的数据怎么传输到内核层呢?谢谢!
  • 讨论:内核,驱动,用户空间大批量数据交换的最佳方式
  • 如何确定数据已经从内核缓冲区写入磁盘了?
  • 请问哪里有比较全的Linux内核编程API和数据结构的文档?
  • 如何修改linux内核来捕获入侵检测的数据,各位大虾多多赐教。
  • 在内核中检测USB正在传输数据的方法?
  • 进程复制数据到系统的内核地址出错,这时会出现什么问题?
  • 我想让内核向网卡发送数据时,不是立即发送,而是等我允许时再发送
  • linux用户空间到内核空间数据传递
  • 请问如何给内核模块传递大量的数据?
  • 求教,Linux下键盘输入的所有数据都会经过Linux内核吗???
  • 如何将数据包sk_buff从内核空间提交给用户空间呢?
  • 急急急,libpcap库是从内核中的哪里接收数据报文的?
  • 请问发送数据成功后返回的ack是在内核的什么地方处理的?
  • linux内核转发包的数据流向
  • Linux内核中影响tcp三次握手的一些协议配置 iis7站长之家
  • 在内核模块中想使用一个超过3M的大全局数据,可以吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 进程内核栈和操作系统内核栈的关系
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • Linux中内核线程不访问内核态地址空间?
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 不重新编译内核能修改内核函数吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3