免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 975 | 回复: 2

[其他] 请教:关于内核中一种 bit field 的定义方式 [复制链接]

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2016-06-23 15:26 |显示全部楼层
最近接触到一种看似很奇怪的 bit filed 定义:

208 struct mlx5_ifc_flow_table_fields_supported_bits {
209     u8         outer_dmac[0x1];
210     u8         outer_smac[0x1];
211     u8         outer_ether_type[0x1];
212     u8         reserved_at_3[0x1];
213     u8         outer_first_prio[0x1];
214     u8         outer_first_cfi[0x1];
215     u8         outer_first_vid[0x1];
216     u8         reserved_at_7[0x1];
217     u8         outer_second_prio[0x1];
218     u8         outer_second_cfi[0x1];
219     u8         outer_second_vid[0x1];
220     u8         reserved_at_b[0x1];
221     u8         outer_sip[0x1];
222     u8         outer_dip[0x1];
223     u8         outer_frag[0x1];
224     u8         outer_ip_protocol[0x1];
225     u8         outer_ip_ecn[0x1];
...


如果结合协议文档看,字段是对应协议中的定义的,但是如果按照 u8 顺序排列,有的对应不上,还不知道如何对应到实际的 bits
跟传统的  bitfield 感觉差距好大

搜了一下也不知道用什么关键字,gcc 也没有看到相关的扩展
不知道这种语法定义是如何解析的?有没有相关的说明?

先谢谢~

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2016-06-28 18:24 |显示全部楼层
难道不是数组么?

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
发表于 2016-06-30 09:40 |显示全部楼层
回复 2# nswcfd


    是数组

    但是看对应的协议中的字段只是对应某几个 bits,这样定义后赋值没法区分到底哪几个 bits 设置了 1 or 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP