
| 前言 本书使用方法 第1章 linux内核api分析必备知识1 linux内核编程注意事项1 本书中模块编译makefile模板1 内核调试函数printk2 内核编译与定制4 温馨提示10 参考文献11 第2章 linux内核模块机制api12 函数:__module_address ( )12 函数:__module_ref_addr ( )14 函数:__module_text_address ( )16 函数:__print_symbol ( )18 函数:__symbol_get ( )20 函数:__symbol_put ( )22 函数:find_module ( )24 函数:find_symbol ( )27 函数:module_is_live ( )30 函数:module_put ( )32 .函数:module_refcount ( )34 函数:sprint_symbol ( )36 函数:symbol_put_addr ( )38 函数:try_module_get ( )40 函数:use_module ( )42 参考文献44 第3章 linux进程管理内核api45 函数:__task_pid_nr_ns( )45 函数:find_get_pid( )47 函数:find_pid _ns( )49 函数:find_task_by_pid_ns( )51 函数:find_task_by_pid_type _ns( )53 函数:find_task_by_vpid( )55 函数:find_vpid( )57 函数:get_pid( )59 函数:get_task_mm( )60 函数:is_container_init( )63 函数:kernel_thread( )65 函数:mmput( )67 函数:ns_of_pid( )69 函数:pid_nr( )71 函数:pid_task( )73 函数:pid_vnr( )75 函数:put_pid( )77 函数:task_active_pid_ns( )79 函数:task_tgid_nr_ns( )81 参考文献83 第4章 linux进程调度内核api84 函数:__wake_up( )84 函数:__wake_up_sync( )87 函数:__wake_up_sync_key( )89 函数:abort_exclusive_wait( )91 函数:add_preempt_count( )95 函数:add_wait_queue( )97 函数:add_wait_queue_exclusive( )100 函数:autoremove_wake_function( )102 函数:complete( )106 函数:complete_all( )108 函数:complete_done( )111 函数:current_thread_info( )113 函数:default_wake_function( )115 函数:do_exit( )118 函数:finish_wait( )120 函数:init_waitqueue_entry( )123 函数:init_waitqueue_head( )125 函数:interruptible_sleep_on( )127 函数:interruptible_sleep_on_timeout( )130 函数:preempt_notifier_register ( )133 函数:preempt_notifier_unregister ( )136 函数:prepare_to_wait( )139 函数:prepare_to_wait_exclusive( )142 函数:remove_wait_queue( )146 函数:sched_setscheduler( )149 函数:set_cpus_allowed_ptr( )152 函数:set_user_nice( )155 函数:sleep_on( )158 函数:sleep_on_timeout( )160 函数:sub_preempt_count( )162 函数:task_nice( )164 函数:try_wait_for_completion( )166 函数:wait_for_completion( )169 函数:wait_for_completion_interruptible( )172 函数:wait_for_completion_interruptible_ timeout( )175 函数:wait_for_completion_killable( )179 函数:wait_for_completion_timeout( )182 函数:wake_up_process( )184 函数:yield( )187 参考文献188 第5章 linux中断机制内核api189 函数:__set_irq_handler( )189 函数:__tasklet_hi_schedule( )191 函数:__tasklet_schedule( )194 函数:disable_irq( )196 函数:disable_irq_nosync( )196 函数:disable_irq_wake( )198 函数:enable_irq( )201 函数:enable_irq_wake( )203 函数:free_irq( )205 函数:kstat_irqs_cpu( )207 函数:remove_irq( )209 函数:request_irq( )213 函数:request_threaded_irq( )216 函数:set_irq_chained_handler( )219 函数:set_irq_chip( )221 函数:set_irq_chip_data( )225 函数:set_irq_data( )227 函数:set_irq_handler( )229 函数:set_irq_type( )232 函数:set_irq_wake( )234 函数:setup_irq( )237 函数:tasklet_disable( )239 函数:tasklet_disable_nosync( )241 函数:tasklet_enable( )243 函数:tasklet_hi_enable( )244 函数:tasklet_hi_schedule( )246 函数:tasklet_init( )248 函数:tasklet_kill( )250 函数:tasklet_shedule( )252 函数:tasklet_trylock( )254 函数:tasklet_unlock( )255 参考文献257 第6章 linux内存管理内核api258 函数:__free_pages( )258 函数:__get_free_pages( )258 函数:__get_vm_area( )260 函数:__krealloc( )262 函数:alloc_pages( )265 函数:alloc_pages_exact( )268 函数:alloc_vm_area( )270 函数:do_brk( )272 函数:do_mmap( )273 函数:do_mmap_pgoff( )276 函数:do_munmap( )279 函数:find_vma( )281 函数:find_vma_intersection( )284 函数:free_pages( )286 函数:free_pages_exact( )287 函数:free_vm_area( )288 函数:get_unmapped_area( )288 函数:get_user_pages( )290 函数:get_user_pages_fast( )292 函数:get_vm_area_size( )294 函数:get_zeroed_page( )295 函数:kcalloc( )297 函数:kfree( )299 函数:kmalloc( )299 函数:kmap_high( )301 函数:kmem_cache_alloc( )303 函数:kmem_cache_create( )305 函数:kmem_cache_destroy( )308 函数:kmem_cache_free( )308 函数:kmem_cache_zalloc( )309 函数:kmemdup( )311 函数:krealloc( )313 函数:ksize( )315 函数:kstrdup( )318 函数:kstrndup( )319 函数:kunmap_high( )321 函数:kzalloc( )321 函数:memdup_user( )323 函数:mempool_alloc( )325 函数:mempool_alloc_pages( )327 函数:mempool_alloc_slab( )329 函数:mempool_create( )331 函数:mempool_create_kzalloc_pool ( )333 函数:mempool_destroy( )334 函数:mempool_free( )335 函数:mempool_free_pages( )335 函数:mempool_free_slab( )336 函数:mempool_kfree( )336 函数:mempool_kmalloc( )337 函数:mempool_kzalloc( )339 函数:mempool_resize( )341 函数:nr_free_buffer_pages( )343 宏:page_address( )345 宏:page_cache_get( )346 宏:page_cache_release( )348 函数:page_zone( )349 宏:probe_kernel_address( )352 函数:probe_kernel_read( )354 函数:probe_kernel_write( )355 函数:vfree( )357 函数:vma_pages( )358 函数:vmalloc( )359 函数:vmalloc_to_page( )361 函数:vmalloc_to_pfn( )363 函数:vmalloc_user( )365 参考文献366 第7章 linux内核定时机制api368 函数:__round_jiffies( )368 函数:__round_jiffies_relative( )369 函数:__round_jiffies_up( )371 函数:__round_jiffies_up_relative( )373 函数:__timecompare_update( )375 函数:add_timer( )377 函数:current_kernel_time( )378 函数:del_timer( )380 函数:del_timer_sync( )382 函数:do_gettimeofday( )384 函数:do_settimeofday( )386 函数:get_seconds( )388 函数:getnstimeofday( )390 函数:init_timer( )391 函数:init_timer_deferrable( )393 函数:init_timer_deferrable_key( )395 函数:init_timer_key( )398 函数:init_timer_on_stack( )400 函数:init_timer_on_stack_key( )402 函数:mktime( )404 函数:mod_timer( )406 函数:mod_timer_pending( )408 函数:ns_to_timespec( )410 函数:ns_to_timeval( )412 函数:round_jiffies( )414 函数:round_jiffies_relative( )416 函数:round_jiffies_up( )418 函数:round_jiffies_up_relative( )420 函数:set_normalized_timespec( )422 函数:setup_timer( )424 函数:setup_timer_key( )426 函数:setup_timer_on_stack( )428 函数:setup_timer_on_stack_key( )430 函数:timecompare_offset( )432 函数:timecompare_transform( )435 函数:timecompare_update( )436 函数:timer_pending( )439 函数:timespec_add_ns( )441 函数:timespec_compare( )442 函数:timespec_equal( )444 函数:timespec_sub( )446 函数:timespec_to_ns( )448 函数:timeval_compare( )450 函数:timeval_to_ns( )452 函数:try_to_del_timer_sync( )453 参考文献456 第8章 linux内核同步机制api457 函数:atomic_add( )457 函数:atomic_add_negative( )458 函数:atomic_add_return( )460 函数:atomic_add_unless( )461 宏:atomic_cmpxchg( )463 函数:atomic_dec( )464 函数:atomic_dec_and_test( )466 函数:atomic_inc( )467 函数:atomic_inc_and_test( )469 宏:atomic_read( )470 宏:atomic_set( )471 函数:atomic_sub( )472 函数:atomic_sub_and_test( )474 函数:atomic_sub_return( )475 函数:down( )477 函数:down_interruptible( )479 函数:down_killable( )481 函数:down_read( )483 函数:down_read_trylock( )485 函数:down_timeout( )487 函数:down_trylock( )489 函数:down_write( )491 函数:down_write_trylock( )492 函数:downgrade_write( )494 宏:init_rwsem( )496 宏:read_lock( )498 函数:read_seqbegin( )499 函数:read_seqretry( )500 宏:read_trylock( )503 宏:read_unlock( )504 宏:rwlock_init( )505 函数:sema_init( )508 宏:seqlock_init( )509 宏:spin_can_lock( )511 宏:spin_lock( )513 宏:spin_lock_bh( )514 宏:spin_lock_init ( )516 宏:spin_lock_irq( )518 宏:spin_lock_irqsave( )520 宏:spin_trylock( )522 宏:spin_unlock( )525 宏:spin_unlock_bh( )526 宏:spin_unlock_irq( )526 宏:spin_unlock_irqrestore( )527 宏:spin_unlock_wait( )527 函数:up( )529 函数:up_read( )531 函数:up_write( )532 宏:write_lock( )532 函数:write_seqlock( )534 函数:write_sequnlock( )534 宏:write_trylock( )535 宏:write_unlock( )537 参考文献537 第9章 linux文件系统内核api539 函数:__mnt_is_readonly( )539 函数:current_umask( )541 函数:d_alloc( )542 函数:d_alloc_root( )544 函数:d_delete( )547 函数:d_find_alias( )547 函数:d_invalidate( )549 函数:d_move( )550 函数:d_validate( )551 函数:dput( )553 函数:fget( )554 函数:find_inode_number( )557 函数:generic_fillattr( )559 函数:get_empty_filp( )561 函数:get_fs_type( )563 函数:get_max_files( )565 函数:get_super( )566 函数:get_unused_fd( )569 函数:have_submounts( )570 函数:i_bdev( )572 函数:iget_locked( )573 函数:inode_add_bytes( )575 函数:inode_get_bytes( )576 函数:inode_needs_sync( )578 函数:inode_set_bytes( )580 函数:inode_setattr( )581 函数:inode_sub_bytes( )584 函数:invalidate_inodes( )586 函数:is_bad_inode( )587 函数:make_bad_inode( )588 函数:may_umount( )590 函数:may_umount_tree( )591 函数:mnt_pin( )593 函数:mnt_unpin( )594 函数:mnt_want_write( )596 函数:new_inode( )596 函数:notify_change( )598 函数:put_unused_fd( )600 函数:register_filesystem( )602 函数:unregister_filesystem( )604 函数:unshare_fs_struct( )604 函数:vfs_fstat( )606 函数:vfs_getattr( )608 函数:vfs_statfs( )610 参考文献613 第10章 linux设备驱动及设备管理api614 函数:__class_create( )614 函数:__class_register( )615 函数:cdev_add( )616 函数:cdev_alloc( )617 函数:cdev_del( )619 函数:cdev_init( )624 宏:class_create( )628 函数:class_destroy( )629 宏:class_register( )631 函数:class_unregister( )632 函数:device_add( )637 函数:device_create( )638 函数: device_del( )640 函数:device_destroy( )640 函数:device_initialize( )646 函数:device_register( )652 函数:device_rename( )652 函数:device_unregister( )657 函数:get_device( )663 函数:put_device( )663 函数:register_chrdev( )667 函数:register_keyboard_notifier( )668 函数:unregister_chrdev( )669 函数:unregister_keyboard_notifier( )675 部分相关函数说明679 参考文献679 附录 linux内核api快速检索表680 |
商品评论(0条)