美文网首页
[读书笔记]内核的数据类型(第十一章)

[读书笔记]内核的数据类型(第十一章)

作者: c枫_撸码的日子 | 来源:发表于2018-10-29 21:20 被阅读0次

    综述

    读到这里,基本的知识都差不多了,后面就是了解一些具体的设备驱动程序,例如PCI,USB等,这些章节就不在写笔记。
    本章知识主要涉及可移植性问题的探讨。
    1.确定的数据类型

    #include <linux/types.h>
    typedef u8;
    typedef u16;
    typedef u32;
    typedef u64;
    确保8、16、32/64位无符号的整数值类型。
    对应的有符号的类型同样存在,在用户空间,读者可使用_ _u8,_ _u16等
    

    2.页大小

    #include <asm/page.h>
    PAGE_SIZE;
    PAGE_SHIFT;
    定义当前体系架构每页字节数和页偏移位数(4KB为12,8KB为13)的符号
    

    3.字节序

    #include <asm/byteorder.h>
    _ _LITTLE_ENDIAN
    _ _BIG_ENDIAN
    这2个符号只有一个被定义 取决于体系架构
    u32 _ _cpu_to_le32(u32);
    u32 _ _le32_to_cpu(u32);
    在已知字节序和处理器字节序之间进行转换的函数。
    

    4.数字对齐

    #include <asm/unaligned.h>
    get_unaligned(ptr);
    put_unaligned(val,ptr);
    某些体系结构需要使用这些宏来保护对未对齐的数据。
    对应允许访问未对齐的数据的体系架构,这些宏扩展为普通的指针
    

    相关文章

      网友评论

          本文标题:[读书笔记]内核的数据类型(第十一章)

          本文链接:https://www.haomeiwen.com/subject/weuitqtx.html