• linux 内核API总结


    common API

    sprintf
    snprintf
    sscanf
    strcmp
    strncmp
    strcpy
    strlcpy
    kstrtol
    strtol
    __raw_writel
    __raw_readl
    memset
    memcpy
    memcmp
    container_of
    udelay
    msleep
    printk
    poll_wait 实现IO多路复用
    __get_user
    __put_user
    iminor

    find_first_zero_bit
    set_bit
    BUG_ON
    ARRAY_SIZE
    proc_create
    print_hex_dump_bytes 缓冲区16进制dump 输出
    kstrtoul
    IS_ERR
    set_bit
    test_bit
    clear_bit
    devm 系列函数 devres.txt
    kthread_create

    bitmap 操作

    DECLARE_BITMAP
    for_each_set_bit

    debugfs API

    debugfs_create_dir

    list链表 API

    list_for_each_entry
    INIT_LIST_HEAD
    LIST_HEAD
    list_add
    list_del
    list_empty
    list_entry
    list_first_entry

    spi API

    spi_register_driver
    struct spi_driver
    spi_set_drvdata
    struct spi_transfer
    struct spi_message
    spi_message_init
    spi_message_add_tail
    spi_async
    spi_sync
    spi_setup

    uart API

    struct uart_driver
    uart_register_driver
    struct uart_ops
    struct uart_port
    uart_add_one_port
    struct ktermios

    thread API

    struct task_struct

    char device API

    struct file_operations
    register_chrdev
    unregister_chrdev
    MKDEV
    MAJOR
    find_first_zero_bit
    cdev_alloc
    cdev_add
    cdev_del
    cdev_init
    alloc_chrdev_region
    unregister_chrdev_region

    设备模型API

    platform_driver_register
    platform_device_register_simple
    platform_driver_unregister
    to_platform_device
    platform_set_drvdata
    class_create
    class_destroy
    device_create // 上报uevent事件
    kobject_uevent_env / kobject_uevent // 上报uevent事件
    device_create_file

    memory API

    devm_kzalloc
    ioremap
    kzalloc
    kfree

    regulator API

    devm_regulator_get
    regulator_enable
    regulator_disable

    device tree OF API

    struct device_node
    of_get_child_count
    for_each_child_of_node
    of_find_property
    of_get_named_gpio
    of_get_gpio_flags 解析gpios属性:gpios = <&tlmm_pinmux 49 0>;由gpio controller driver翻译
    of_get_property
    of_property_read_u32
    of_property_read_bool
    of_alias_get_id 根据传入到device node在 aliaes 节点找到唯一的编号
    of_platform_populate 为root节点下的所有子节点创建platform device
    platform_get_resource_byname
    platform_get_irq_byname
    clk_get
    clk_set_rate
    clk_prepare_enable

    pinctrl API

    devm_pinctrl_get
    pinctrl_lookup_state
    pinctrl_select_state

    gpio API

    devm_gpio_request_one
    devm_gpio_free
    gpio_request
    gpio_free
    gpio_set_value_cansleep
    gpio_get_value_cansleep
    gpio_export
    gpio_direction_output
    gpio_direction_input
    gpio_set_value
    gpio_get_value
    gpio_is_valid

    IRQ API

    gpio_to_irq
    devm_request_any_context_irq
    local_irq_disable
    local_irq_enable
    platform_get_irq_byname
    devm_request_irq
    request_irq
    request_threaded_irq
    free_irq
    enable_irq
    disable_irq
    enable_irq_wake
    disable_irq_wake
    irq_read_line

    power_supply API

    power_supply_get_by_name
    power_supply_set_supply_type
    power_supply_set_present

    sysfs API

    sysfs_create_file 创建属性文件
    sysfs_remove_file
    sysfs_create_group 创建属性组
    sysfs_remove_group

    wakelock API

    wake_lock_init
    wake_lock_timeout
    wake_unlock
    wake_lock_active
    wake_lock
    msecs_to_jiffies

    workqueue API

    create_singlethread_workqueue
    INIT_WORK
    INIT_DELAYED_WORK
    queue_work
    queue_delayed_work
    cancel_delayed_work_sync
    struct work_struct
    alloc_workqueue

    waitqueue API

    DECLARE_WAIT_QUEUE_HEAD
    wait_queue_head_t
    init_waitqueue_head
    wake_up_interruptible
    wake_up
    wait_event_interruptible
    wait_event_timeout

    互斥API

    DEFINE_MUTEX
    mutex_lock
    mutex_unlock
    mutex_init

    spinlock_t
    spin_lock_init
    spin_lock_irqsave
    spin_lock_irq
    spin_unlock_irq

    atomic_t
    atomic_read
    atomic_set
    atomic_dec
    atomic_dec_and_test

    timer API

    struct timer_list
    mod_timer
    msecs_to_jiffies
    del_timer
    setup_timer
    add_timer

    内核线程 API

    struct kthread_worker
    struct kthread_work
    init_kthread_worker
    kthread_run(kthread_worker_fn)
    init_kthread_work
    queue_kthread_work
    flush_kthread_worker
    kthread_should_stop

    hrtimer API

    struct hrtimer
    hrtimer_start

    通知链机制 API

    // 参考/kernel/kernel/power/main.c PM core实现的通知链
    struct notifier_block
    blocking_notifier_chain_register
    BLOCKING_NOTIFIER_HEAD

    内核空间 文件操作 API

    struct file
    filp_open
    get_fs
    set_fs
    调用文件指针的操作接口: f->f_op->write/read/unlocked_ioctl
    filp_close

    complete 接口API

    struct completion
    complete_all
    wait_for_completion_interruptible_timeout
    wait_for_completion
    init_completion
    complete

    time API

    struct timespec
    struct rtc_time
    getnstimeofday
    rtc_time_to_tm

  • 相关阅读:
    nginx防止盗链
    Nginx防盗链详细设置
    [bzoj2127]happiness
    [bzoj2400]Optimal Marks
    [bzoj1738]发抖的牛
    [bzoj1741]穿越小行星群
    [bzoj3123]森林
    [bzoj2588]Count on a tree
    [bzoj3144]切糕
    [bzoj1787]紧急集合
  • 原文地址:https://www.cnblogs.com/bobfly1984/p/14596763.html
Copyright © 2020-2023  润新知