发布网友 发布时间:2022-04-19 13:11
共1个回答
热心网友 时间:2022-05-12 19:43
前言 本书使用方法 第1章 Linux内核API分析必备知识 1 Linux内核编程注意事项 1 本书中模块编译Makefile模板 1 内核调试函数printk 2 内核编译与定制 4 温馨提示 10 参考文献 11 第2章 Linux内核模块机制API 12 函数:__mole_address ( ) 12 函数:__mole_ref_addr ( ) 14 函数:__mole_text_address ( ) 16 函数:__print_symbol ( ) 18 函数:__symbol_get ( ) 20 函数:__symbol_put ( ) 22 函数:find_mole ( ) 24 函数:find_symbol ( ) 27 函数:mole_is_live ( ) 30 函数:mole_put ( ) 32 函数:mole_refcount ( ) 34 函数:sprint_symbol ( ) 36 函数:symbol_put_addr ( ) 38 函数:try_mole_get ( ) 40 函数:use_mole ( ) 42 参考文献 44 第3章 Linux进程管理内核API 45 函数:__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进程调度内核API 84 函数:__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_setscheler( ) 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中断机制内核API 189 函数:__set_irq_handler( ) 189 函数:__tasklet_hi_schele( ) 191 函数:__tasklet_schele( ) 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_schele( ) 246 函数:tasklet_init( ) 248 函数:tasklet_kill( ) 250 函数:tasklet_shele( ) 252 函数:tasklet_trylock( ) 254 函数:tasklet_unlock( ) 255 参考文献 257 第6章 Linux内存管理内核API 258 函数:__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 函数:kmemp( ) 311 函数:krealloc( ) 313 函数:ksize( ) 315 函数:kstrp( ) 318 函数:kstrnp( ) 319 函数:kunmap_high( ) 321 函数:kzalloc( ) 321 函数:memp_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内核定时机制API 368 函数:__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内核同步机制API 457 函数: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文件系统内核API 539 函数:__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设备驱动及设备管理API 614 函数:__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