zoukankan      html  css  js  c++  java
  • DECLARE_GLOBAL_DATA_PTR

    DECLARE_GLOBAL_DATA_PTR在arch/arm/include/asm/global_data.h中定义

    #include <asm-generic/global_data.h>

    #ifdef CONFIG_ARM64
    #define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("x18")
    #else
    #define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r9")
    #endif

    这个宏定义了一个gd_t全局数据结构的指针gd,这个指针存放在指定的寄存器中。

    声明一个寄存器变量 gd占用r9。这个宏在所有需要引用全局数据指针gd_t *gd的源码中都有申明。
    这个申明也避免编译器把r9分配给其它的变量。所以gd就是r9,用r9来保存内存地址,达到全局使用目的,这个指针变量不占用内存。

    总结:gd指向一个数据结构,用于保存参数。

  • 相关阅读:
    华硕B360主板装机找不到固态硬盘启动
    Maxwell平滑升级流程
    快速导入Excel数据到mysql
    Docker
    Rest之路
    Rest之路
    Docker -- resolve "join node timeout" error
    (转) Docker
    Docker
    Docker
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/11639646.html
Copyright © 2011-2022 走看看