zoukankan      html  css  js  c++  java
  • linux内核initcall

    include/linux/init.h

    #define pure_initcall(fn)        __define_initcall(fn, 0)
    
    #define core_initcall(fn)        __define_initcall(fn, 1)
    #define core_initcall_sync(fn)        __define_initcall(fn, 1s)
    #define postcore_initcall(fn)        __define_initcall(fn, 2)
    #define postcore_initcall_sync(fn)    __define_initcall(fn, 2s)
    #define arch_initcall(fn)        __define_initcall(fn, 3)
    #define arch_initcall_sync(fn)        __define_initcall(fn, 3s)
    #define subsys_initcall(fn)        __define_initcall(fn, 4)
    #define subsys_initcall_sync(fn)    __define_initcall(fn, 4s)
    #define fs_initcall(fn)            __define_initcall(fn, 5)
    #define fs_initcall_sync(fn)        __define_initcall(fn, 5s)
    #define rootfs_initcall(fn)        __define_initcall(fn, rootfs)
    #define device_initcall(fn)        __define_initcall(fn, 6)
    #define device_initcall_sync(fn)    __define_initcall(fn, 6s)
    #define late_initcall(fn)        __define_initcall(fn, 7)
    #define late_initcall_sync(fn)        __define_initcall(fn, 7s)
    #define __define_initcall(fn, id) 
        static initcall_t __initcall_##fn##id __used 
        __attribute__((__section__(".initcall" #id ".init"))) = fn

    /arch/arm/kernel/vmlinux.lds

    .init.data : {
       *(.init.data) *(.meminit.data) *(.init.rodata) . = ALIGN(8); __start_ftrace_events = .; *(_ftrace_events) __stop_ftrace_events = .; *(.meminit.    rodata) . = ALIGN(8); __clk_of_table = .; *(__clk_of_table) *(__clk_of_table_end) . = ALIGN(8); __clksrc_of_table = .; *(__clksrc_of_table) *(__c    lksrc_of_table_end) . = ALIGN(32); __dtb_start = .; *(.dtb.init.rodata) __dtb_end = .; . = ALIGN(8); __irqchip_begin = .; *(__irqchip_of_table) *    (__irqchip_of_end)
       . = ALIGN(16); __setup_start = .; *(.init.setup) __setup_end = .;
       __initcall_start = .; *(.initcallearly.init) __initcall0_start = .; *(.initcall0.init) *(.initcall0s.init) __initcall1_start = .; *(.initcall1.    init) *(.initcall1s.init) __initcall2_start = .; *(.initcall2.init) *(.initcall2s.init) __initcall3_start = .; *(.initcall3.init) *(.initcall3s.i    nit) __initcall4_start = .; *(.initcall4.init) *(.initcall4s.init) __initcall5_start = .; *(.initcall5.init) *(.initcall5s.init) __initcallrootfs    _start = .; *(.initcallrootfs.init) *(.initcallrootfss.init) __initcall6_start = .; *(.initcall6.init) *(.initcall6s.init) __initcall7_start = .;     *(.initcall7.init) *(.initcall7s.init) __initcall_end = .;
       __con_initcall_start = .; *(.con_initcall.init) __con_initcall_end = .;
       __security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .;
       . = ALIGN(4); __initramfs_start = .; *(.init.ramfs) . = ALIGN(8); *(.init.ramfs.info)
    }
  • 相关阅读:
    MSCRM2011 在Form里创建一个密码栏
    MSCRM 2011 可视化Ribbon编辑工具,超级强大!
    C# List去重
    理解Dynamic CRM2011 Ribbon里Sequence 和TemplateAlias意思
    SQL 语法大全
    SQL语句case关键字的用法
    ASP.NET 导出Excel时,某单元格内一部分文字加粗加下划线
    ASP.NET 导出Excel时,出现CLSID {0002450000000000C000000000000046} ,拒绝访问。
    通过DOM节点操作来获取表单信息
    嗨,博客园
  • 原文地址:https://www.cnblogs.com/debruyne/p/9288748.html
Copyright © 2011-2022 走看看