zoukankan      html  css  js  c++  java
  • sort_main_extable

    参考:Linux异常表

    1.函数调用关系

    asmlinkage void __init start_kernel(void)
        -->sort_main_extable();
            -->sort_extable(__start___ex_table, __stop___ex_table);
                -->sort(start, finish - start, sizeof(struct exception_table_entry),cmp_ex, NULL);

    2.结构体说明

    /*
     * The exception table consists of pairs of addresses: the first is the
     * address of an instruction that is allowed to fault, and the second is
     * the address at which the program should continue.  No registers are
     * modified, so it is entirely up to the continuation code to figure out
     * what to do.
     *
     * All the routines below use bits of fixup code that are out of line
     * with the main instruction path.  This means when everything is well,
     * we don't even have to jump over them.  Further, they do not intrude
     * on our cache or tlb entries.
     */
    
    struct exception_table_entry
    {
        unsigned long insn, fixup;
    };

    3.存储段,vmlinux.lds中

             * The exception fixup table (might need resorting at runtime)
             */
            . = ALIGN(32);
            __start___ex_table = .;
    #ifdef CONFIG_MMU
            *(__ex_table)
    #endif
            __stop___ex_table = .;
  • 相关阅读:
    day04用户交互和运算符
    day04垃圾回收机制
    day4
    B2. K for the Price of One (Hard Version)
    C. New Year and Permutation
    Rational Ratio
    C. Two Arrays
    D. MEX maximizing
    B. Infinite Prefixes
    C. Obtain The String
  • 原文地址:https://www.cnblogs.com/yangjiguang/p/8298808.html
Copyright © 2011-2022 走看看