linux do_initcalls

linux初始化的时候,会在do_initcalls中做很多初始化的工作。把里面的初始化函数打印出来,大概如下:


 --------------      #define pure_initcall(fn)		__define_initcall(fn, 0)
ipc_ns_init                      
init_mmap_min_addr
net_ns_init

 ---------------------   #define core_initcall(fn)		__define_initcall(fn, 1)
ptrace_break_init             
s3c2410a_core_init
s3c2410_core_init     
s3c2412_core_init
s3c2416_core_init
s3c2442_core_init
s3c2440_core_init      //在sys文件系统下注册s3c2440_core  bus及其属性节点
s3c2443_core_init
wq_sysfs_init   //在sys文件系统下注册workqueue  bus 及其属性节点
ksysfs_init   //在sys文件系统下注册kernel及其属性节点
pm_init  //电源管理相关的初始化
init_jiffies_clocksource  //注册jiffies clocksource
cpu_pm_init
init_zero_pfn
fsnotify_init
filelock_init
init_aout_binfmt       //   将aout的文件格式加入formats链表
init_script_binfmt	//   将script的文件格式加入formats链表
init_elf_binfmt		//   将elf的文件格式加入formats链表
prandom_init
samsung_gpiolib_init  //与在/sys文件系统中建立gpio节点有关
sock_init
net_inuse_init
####################################################################
NET: Registered protocol family 16
####################################################################
netlink_proto_init  //注册netlink协议
---------------------#define postcore_initcall(fn)		__define_initcall(fn, 2)
DMA: preallocated 256 KiB pool for atomic coherent allocations
atomic_pool_init   //分配初始化DMA内存分配pool  
bdi_class_init
kobject_uevent_init
tty_class_init    //在/sys/class下面新建tty目录
vtconsole_class_init
wakeup_sources_debugfs_init
regmap_initcall
spi_init    //注册spi总线
i2c_init     //注册i2c总线
----------------------------------#define arch_initcall(fn)		__define_initcall(fn, 3)
gate_vma_init     
customize_machine   //smdk2440_machine_init  初始化相关device
exceptions_init
s3c2442_pm_drvinit
s3c2440_pm_drvinit
s3c2410a_pm_drvinit
s3c2410_pm_drvinit
s3c2412_pm_init
s3c2416_pm_init
s3c24xx_clk_init
s3c2442_clk_init
s3c2442_clk_init
s3c2440_clk_init
bast_irq_init
pm_simtec_init   //enable电源管理
s3c_arch_init    //s3c2440_init,注册相关device
s3c_wdt_reset_init
pwm_init     //注册pwm driver
--------------------------------#define subsys_initcall(fn)		__define_initcall(fn, 4)
topology_init 
param_sysfs_init
pm_sysrq_init
default_bdi_init
init_bio
fsnotify_notification_init
cryptomgr_init
blk_settings_init
blk_ioc_init
blk_softirq_init   //注册block的BLOCK_SOFTIRQ软中断
blk_iopoll_setup	//注册block的BLOCK_IOPOLL_SOFTIRQ软中断
genhd_device_init  //block device的初始化和/sys文件系统节点注册
fbmem_init     //注册fb字符设备
misc_init     //注册杂项字符设备
pcf50633_init
init_scsi    //scsi相关的初始化
########################################################################
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
########################################################################
usb_init   //usb子系统初始化
serio_init  //注册serio总线
input_init   //input子系统初始化
rtc_init    //rtc驱动的注册
########################################################################
s3c-i2c s3c2440-i2c.0: slave address 0x10
s3c-i2c s3c2440-i2c.0: bus frequency set to 98 KHz
s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
########################################################################
i2c_adap_s3c_init   //i2c驱动的注册
power_supply_class_init
hwmon_init
watchdog_init
mmc_init
leds_init
init_soundcore
########################################################################
Advanced Linux Sound Architecture Driver Initialized.
########################################################################
alsa_sound_init
proto_init
net_dev_init   //网络设备初始化,并注册NET_TX_SOFTIRQ和NET_RX_SOFTIRQ软中断
neigh_init   //neighbor相关的函数初始化
genl_init
-------------------------------#define fs_initcall(fn)			__define_initcall(fn, 5)
proc_cpu_init              
dma_debug_do_init
alignment_init
bast_ide_init
########################################################################
Switching to clocksource samsung_clocksource_timer
########################################################################
clocksource_done_booting   //切换时钟源
init_pipe_fs   //初始化pipefs文件系统
eventpoll_init
anon_inode_init
blk_scsi_ioctl_init
chr_dev_init   //注册/dev/mem设备,估计是用来映射内存的
firmware_class_init
sysctl_core_init
#################################################
NET: Registered protocol family 2
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
#################################################
inet_init  //ipv4协议族注册
ipv4_offload_init
########################################################################
NET: Registered protocol family 1
########################################################################
af_unix_init
ipv6_offload_init
-------------------------#define rootfs_initcall(fn)   __define_initcall(fn, rootfs)
populate_rootfs     
#########################################################################
NetWinder Floating Point Emulator V0.97 (extended precision)
#########################################################################
 -----#define module_init(x)	__initcall(x);
	#define __initcall(fn) device_initcall(fn)
	#define device_initcall(fn)		__define_initcall(fn, 6)
fpe_init                 
sched_clock_syscore_init
adc_init               //注册s3c-adc driver
proc_execdomains_init    //在proc文件系统下面创建execdomains 节点
ioresources_init       //在proc文件系统下面创建ioports和iomem节点
uid_cache_init 
init_posix_timers
init_posix_cpu_timers
init_sched_debug_procfs
----------------#define device_initcall(fn)		__define_initcall(fn, 6)
timekeeping_init_ops
init_clocksource_sysfs
init_timer_list_procfs
alarmtimer_init
futex_init
proc_modules_init
kallsyms_init
pid_namespaces_init
irq_gc_init_ops
irq_pm_init_ops
utsname_sysctl_init
init_per_zone_wmark_min
kswapd_init   //kswapd进程就是专司定期将页面换出的守护神
setup_vmstat
mm_sysfs_init
slab_proc_init
init_reserve_notifier
init_admin_reserve
init_user_reserve
proc_vmalloc_init
procswaps_init
slab_proc_init
cpucache_init
fcntl_init
proc_filesystems_init
dio_init
fsnotify_mark_init
dnotify_init
inotify_user_setup
aio_setup
proc_locks_init
init_mbcache
proc_cmdline_init
proc_consoles_init
proc_cpuinfo_init
proc_devices_init
proc_interrupts_init
proc_loadavg_init
proc_meminfo_init
proc_stat_init
proc_uptime_init
proc_version_init
proc_softirqs_init
proc_kmsg_init
proc_page_init
init_devpts_fs
init_ext3_fs
init_ext2_fs
journal_init
init_cramfs_fs
init_ramfs_fs
init_fat_fs
init_vfat_fs
init_msdos_fs
init_iso9660_fs
init_nls_cp437
init_nls_cp850
#############################################################################
jffs2: version 2.2. (NAND) (SUMMARY)  ? 2001-2006 Red Hat, Inc.
#############################################################################
init_jffs2_fs
#############################################################################
ROMFS MTD (C) 2007 Red Hat, Inc.
#############################################################################
init_romfs_fs
ipc_init
ipc_sysctl_init
crypto_wq_init
crypto_algapi_init
skcipher_module_init
chainiv_module_init
eseqiv_module_init
aes_init
deflate_mod_init
lzo_mod_init
krng_mod_init
proc_genhd_init
io scheduler noop registered
noop_init
#############################################################################
io scheduler deadline registered
#############################################################################
deadline_init
#############################################################################
io scheduler cfq registered (default)
#############################################################################
cfq_init
fb_console_init
#############################################################################
  cpu_startup_entry.
Console: switching to colour frame buffer device 30x40
s3c2410-lcd s3c2410-lcd: fb0: s3c2410fb frame buffer device
#############################################################################
s3c2410fb_init
sm501fb_driver_init
pty_init
sysrq_init
#############################################################################
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
#############################################################################
serial8250_init
#############################################################################
s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 74) is a S3C2440
console [ttySAC0] enabled
s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 77) is a S3C2440
s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 80) is a S3C2440
#############################################################################
s3c24xx_serial_modinit  //注册串口驱动
init_kgdboc
rand_initialize
lp_init_module
#############################################################################
ppdev: user-space parallel port driver
#############################################################################
ppdev_init
parport_default_proc_register
topology_sysfs_init
isa_bus_init
brd_init
loop_init
at24_init
sm501_base_init
ide_init
ide_gd_init
ide_cdrom_init
platform_ide_init
init_sd
init_sg
init_mtd //初始化mtd
ofpart_parser_init
redboot_parser_init
cmdline_parser_init
init_mtdblock
cfi_probe_init
jedec_probe_init
map_rom_init
nand_base_init
############################################################################
s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
s3c24xx-nand s3c2440-nand: NAND soft ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit), 256MiB, page size: 2048, OOB size: 64
Scanning device for bad blocks
Bad eraseblock 682 at 0x000005540000
Bad eraseblock 1024 at 0x000008000000
Bad eraseblock 1736 at 0x00000d900000
Bad eraseblock 1979 at 0x00000f760000
Creating 4 MTD partitions on "NAND":
0x000000000000-0x000000200000 : "uboot"
0x000000200000-0x000000220000 : "u-boot-env"
0x000000220000-0x000000620000 : "kernel"
0x000000620000-0x000010000000 : "rootfs"
############################################################################
s3c24xx_nand_driver_init
ubi_gluebi_init
net_olddevs_init
dm9000_driver_init
cdrom_init
mon_init
############################################################################
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
############################################################################
ohci_hcd_mod_init
############################################################################
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
############################################################################
usb_serial_init
############################################################################
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
############################################################################
ftdi_init
############################################################################
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
############################################################################
usb_serial_module_init
serport_init
mousedev_init
evdev_init
atkbd_init
psmouse_init
s3c_rtc_driver_init
simtec_i2c_driver_init
############################################################################
s3c2410-wdt s3c2410-wdt: tmr_margin value out of range, default 15 used
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq disabled
############################################################################
s3c2410wdt_driver_init
mmc_blk_init
s3cmci_driver_init
bl_trig_init
hid_init
hid_generic_init
a4_driver_init
apple_driver_init
belkin_driver_init
ch_driver_init
ch_driver_init
cp_driver_init
ez_driver_init
ks_driver_init
lg_driver_init
ms_driver_init
mr_driver_init
alsa_timer_init
alsa_pcm_init
snd_mem_init
snd_compress_init
snd_soc_init
sock_diag_init
flow_cache_init_global
sysctl_ipv4_init
xfrm4_beet_init
xfrm4_transport_init
xfrm4_mode_tunnel_init
ipv4_netfilter_init
inet_diag_init
tcp_diag_init
cubictcp_register
##############################################################################
NET: Registered protocol family 17
##############################################################################
packet_init
--------------#define late_initcall(fn)		__define_initcall(fn, 7)
init_machine_late
init_oops_id
printk_late_init
sched_init_debug
pm_qos_power_init
max_swapfiles_check
ubifs_init
prandom_reseed
random_int_secret_init
deferred_probe_initcall
##############################################################################
UBI: default fastmap pool size: 95
UBI: default fastmap WL pool size: 25
UBI: attaching mtd3 to ubi0
usb 1-1: new full-speed USB device number 2 using s3c2410-ohci
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
UBI: scanning is finished
UBI warning: print_rsvd_warning: cannot reserve enough PEBs for bad PEB handling, reserved 34, need 36
UBI: attached mtd3 (name "rootfs", size 249 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
UBI: VID header offset: 512 (aligned 512), data offset: 2048
UBI: good PEBs: 1995, bad PEBs: 4, corrupted PEBs: 0
UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
UBI: available PEBs: 0, total reserved PEBs: 1995, PEBs reserved for bad PEB handling: 34
UBI: background thread "ubi_bgt0d" started, PID 943
##############################################################################
ubi_init
rtc_hctosys
tcp_congestion_default
tcp_fastopen_init
ip_auto_config
alsa_sound_last_init
initialize_hashrnd

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值