File: kpatch.lds.S

package info (click to toggle)
kpatch 0.9.10-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,716 kB
  • sloc: ansic: 9,716; sh: 2,592; makefile: 260; asm: 35
file content (50 lines) | stat: -rw-r--r-- 1,553 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
__kpatch_funcs = ADDR(.kpatch.funcs);
__kpatch_funcs_end = ADDR(.kpatch.funcs) + SIZEOF(.kpatch.funcs);

#ifdef __KPATCH_MODULE__
__kpatch_dynrelas = ADDR(.kpatch.dynrelas);
__kpatch_dynrelas_end = ADDR(.kpatch.dynrelas) + SIZEOF(.kpatch.dynrelas);
__kpatch_checksum = ADDR(.kpatch.checksum);
#endif

SECTIONS
{
  .kpatch.callbacks.pre_patch : {
    __kpatch_callbacks_pre_patch = . ;
    *(.kpatch.callbacks.pre_patch)
    __kpatch_callbacks_pre_patch_end = . ;
    /*
     * Pad the end of the section with zeros in case the section is empty.
     * This prevents the kernel from discarding the section at module
     * load time. __kpatch_callbacks_pre_patch_end will still point to the
     * end of the section before the padding.  If the
     * .kpatch.callbacks.pre_patch section is empty,
     * __kpatch_callbacks_pre_patch equals __kpatch_callbacks_pre_patch_end.
     */
    QUAD(0);
  }
  .kpatch.callbacks.post_patch : {
    __kpatch_callbacks_post_patch = . ;
    *(.kpatch.callbacks.post_patch)
    __kpatch_callbacks_post_patch_end = . ;
    QUAD(0);
  }
  .kpatch.callbacks.pre_unpatch : {
    __kpatch_callbacks_pre_unpatch = . ;
    *(.kpatch.callbacks.pre_unpatch)
    __kpatch_callbacks_pre_unpatch_end = . ;
    QUAD(0);
  }
  .kpatch.callbacks.post_unpatch : {
    __kpatch_callbacks_post_unpatch = . ;
    *(.kpatch.callbacks.post_unpatch)
    __kpatch_callbacks_post_unpatch_end = . ;
    QUAD(0);
  }
  .kpatch.force : {
    __kpatch_force_funcs = . ;
    *(.kpatch.force)
    __kpatch_force_funcs_end = . ;
    QUAD(0);
  }
}