int core_kernel_text(unsigned long addr) { if (addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) return 1; if (system_state == SYSTEM_BOOTING && init_kernel_text(addr)) return 1; return 0; }
int __kernel_text_address(unsigned long addr) { if (core_kernel_text(addr)) return 1; if (is_module_text_address(addr)) return 1; /* * There might be init symbols in saved stacktraces. * Give those symbols a chance to be printed in * backtraces (such as lockdep traces). * * Since we are after the module-symbols check, there's * no danger of address overlap: */ if (init_kernel_text(addr)) return 1; return 0; }
int __kernel_text_address(unsigned long addr) { if (core_kernel_text(addr)) return 1; if (is_module_text_address(addr)) return 1; /* */ if (init_kernel_text(addr)) return 1; return 0; }
int core_kernel_text(unsigned long addr) { /* IAMROOT-12AB: * ------------- * 커널 코드가 있는 위치를 core 커널 text 영역으로 인식한다. */ if (addr >= (unsigned long)_stext && addr < (unsigned long)_etext) return 1; /* IAMROOT-12AB: * ------------- * 부팅 중에는 init 영역에 있는 코드도 core 커널 text 영역으로 인식한다. */ if (system_state == SYSTEM_BOOTING && init_kernel_text(addr)) return 1; return 0; }