uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(38):未命名union的问题
来源:互联网 发布:c语言入门到精通淘宝 编辑:程序博客网 时间:2024/04/29 03:12
快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
优视BF561EVB开发板
uclinux-2008r1.5-rc3(smp patch)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
在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_union;
…
};
其实就是随便给这个union定义一个变量。
1 参考资料
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(32):start_kernel(2009-1-15)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(33):.l1.text(2009-01-16)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(34):.init.text(2009-01-16)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(35):.init.data(2009-01-16)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(36):.data.init_task(2009-01-16)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(37):segment(2009-01-16)
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(38):未命名union的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(45):未命名union的后遗症
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(13):未命名union的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(5):'bf561.h'的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(46):fls_long的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(47):per_cpu的奇怪问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(70):保留VDSP的heap
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(71):l1_data_sram_init的疑惑
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(72):中断时SP的保存
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(1):前言
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(2):代码注释
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(3):vdsp项目创建
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(4):目录差异
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(6):CONFIG_BFIN_KERNEL_CLOCK
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(7):CONFIG_MEM_MT48LC16M16A2TG_75
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(8):CONFIG_CLKIN_HZ
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(9):CONFIG_MEM_SIZE
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(10):CONFIG_FLASH_SPEED_BTT
- 程序中的艺术观
- 文件下载
- SLB: 让我怎么说你?
- ExtJS 学习笔记
- apxs - Apache 扩展工具
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(38):未命名union的问题
- 设计模式
- 自动保存程序的设计与实现
- 再次做广告
- 开心博客开通了
- Excel操作
- 设计
- SCRIPT鼠标放在图片上才显示色彩 平时是灰色的图片
- 【转】从追MM谈Java的23种设计模式 - 太经典了