网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  uclinux-2008R1-RC8(bf561)到VDSP5的移植(13):未命名union的问题           ★★★ 【字体:
uclinux-2008R1-RC8(bf561)到VDSP5的移植(13):未命名union的问题
作者:快乐虾    文章来源:http://blog.csdn.net/lights_joy    点击数:    更新时间:2008-5-6    
在include/linux/shed.h中定义了一个结构体:
 
/*
 * NOTE! "signal_struct" does not have it's own
 * locking, because a shared signal_struct always
 * implies a shared sighand_struct, so locking
 * sighand_struct is always a proper superset of
 * the locking of signal_struct.
 */
struct signal_struct {
     /* job control IDs */
     pid_t pgrp;
     struct pid *tty_old_pgrp;
 
     union {
         pid_t session __deprecated;
         pid_t __session;
     };
};
在include/linux/init_task.h中定义了一个宏来对这个结构体进行初始化:
 
#define INIT_SIGNALS(sig) {                        \
     .count        = ATOMIC_INIT(1),                \
     .wait_chldexit     = __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
     .shared_pending    = {                         \
         .list = LIST_HEAD_INIT(sig.shared_pending.list),   \
         .signal = {{0}}},                   \
     .posix_timers = LIST_HEAD_INIT(sig.posix_timers),      \
     .cpu_timers   = INIT_CPU_TIMERS(sig.cpu_timers),        \
     .rlim         = INIT_RLIMITS,                      \
     .pgrp         = 0,                        \
     .tty_old_pgrp   = NULL,                        \
     { .__session      = 0},                        \
}
在这里
     { .__session      = 0},                        \
会引发一个错误:
"..\..\arch\blackfin\kernel\init_task.c", line 38: cc0136: error: union
          "<unnamed>" has no field "__session"
 static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
怎么看都有__session这个成员啊,实际引发这个错误的原因是在结构体中使用了未命名的union。因此必须做如下修改:
struct signal_struct {
     /* job control IDs */
     pid_t pgrp;
     struct pid *tty_old_pgrp;
 
     union {
         pid_t session __deprecated;
         pid_t __session;
     }signal_struct_session;
};
其实就是随便给这个union定义一个变量。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    对比ADI两代TD-SCDMA射频IC得
    [结尾篇]ADSP-TS20XS系列DSP
    一种基于DDS的幅值可调信号发
    基于ADSP2181的CAN总线通讯设
    一种采用单片机控制AD9854为
    在vs2008下使用ffmpeg(5):
    在vs2008下使用ffmpeg(4):
    在vs2008下使用ffmpeg(3):
    ADI AD8275电平转换16位ADC驱
    Boot在ADSP-BF533上的移植
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号