File: /Users/paulross/dev/linux/linux-3.13/include/asm-generic/sections.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: #ifndef _ASM_GENERIC_SECTIONS_H_
       2: #define _ASM_GENERIC_SECTIONS_H_
       3: 
       4: /* References to section boundaries */
       5: 
       6: /*
       7:  * Usage guidelines:
       8:  * _text, _data: architecture specific, don't use them in arch-independent code
       9:  * [_stext, _etext]: contains .text.* sections, may also contain .rodata.*
      10:  *                   and/or .init.* sections
      11:  * [_sdata, _edata]: contains .data.* sections, may also contain .rodata.*
      12:  *                   and/or .init.* sections.
      13:  * [__start_rodata, __end_rodata]: contains .rodata.* sections
      14:  * [__init_begin, __init_end]: contains .init.* sections, but .init.text.*
      15:  *                   may be out of this range on some architectures.
      16:  * [_sinittext, _einittext]: contains .init.text.* sections
      17:  * [__bss_start, __bss_stop]: contains BSS sections
      18:  *
      19:  * Following global variables are optional and may be unavailable on some
      20:  * architectures and/or kernel configurations.
      21:  *    _text, _data
      22:  *    __kprobes_text_start, __kprobes_text_end
      23:  *    __entry_text_start, __entry_text_end
      24:  *    __ctors_start, __ctors_end
      25:  */
      26: extern char _text[], _stext[], _etext[];
      27: extern char _data[], _sdata[], _edata[];
      28: extern char __bss_start[], __bss_stop[];
      29: extern char __init_begin[], __init_end[];
      30: extern char _sinittext[], _einittext[];
      31: extern char _end[];
      32: extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
      33: extern char __kprobes_text_start[], __kprobes_text_end[];
      34: extern char __entry_text_start[], __entry_text_end[];
      35: extern char __start_rodata[], __end_rodata[];
      36: 
      37: /* Start and end of .ctors section - used for constructor calls. */
      38: extern char __ctors_start[], __ctors_end[];
      39: 
      40: /* function descriptor handling (if any).  Override
      41:  * in asm/sections.h */
      42: #ifndef dereference_function_descriptor
      43: #define dereference_function_descriptor(p) (p)
      44: #endif
      45: 
      46: /* random extra sections (if any).  Override
      47:  * in asm/sections.h */
      48: #ifndef arch_is_kernel_text
      49: static inline int arch_is_kernel_text(unsigned long addr)
      50: {
      51:     return 0;
      52: }
      53: #endif
      54: 
      55: #ifndef arch_is_kernel_data
      56: static inline int arch_is_kernel_data(unsigned long addr)
      57: {
      58:     return 0;
      59: }
      60: #endif
      61: 
      62: #endif /* _ASM_GENERIC_SECTIONS_H_ */
      63: