WATCHDOG驅動框架

2021-08-02 11:17:03 字數 1632 閱讀 3737

看門狗的框架涉及到drivers/watchdog/watchdog_dev.c、watchdog_dev.h、watchdog_core.c,include/linux/watchdog.h中

定義的結構體:

struct watchdog_device ;

struct watchdog_ops ;

struct watchdog_info ;

watchdog.h涉及到的api:

設定watchdog為nowayout

void watchdog_set_nowayout(struct watchdog_device *wdd, bool nowayout)

設定私有結構體

void watchdog_set_drvdata(struct watchdog_device *wdd, void *data)

獲取私有結構體

void *watchdog_get_drvdata(struct watchdog_device *wdd)

註冊watchdog_device結構體

int watchdog_register_device(struct watchdog_device *)

解除安裝watchdog_device結構體

void watchdog_unregister_device(struct watchdog_device *)

watchdog_core.c涉及到的api實現:

int watchdog_register_device(struct watchdog_device *wdd)

void watchdog_unregister_device(struct watchdog_device *wdd)

watchdog_dev.c涉及到的api:

static int watchdog_ping(struct watchdog_device *wddev)

static int watchdog_start(struct watchdog_device *wddev)

static int watchdog_stop(struct watchdog_device *wddev)

static ssize_t watchdog_write(struct file *file, const char __user *data,size_t len, loff_t *ppos)

static long watchdog_ioctl(struct file *file, unsigned int cmd,unsigned long arg)

static int watchdog_open(struct inode *inode, struct file *file)

static int watchdog_release(struct inode *inode, struct file *file)

int watchdog_dev_register(struct watchdog_device *watchdog)//被watchdog_register_device呼叫

int watchdog_dev_unregister(struct watchdog_device *watchdog)//被watchdog_unregister_device呼叫

Linux GPIO驅動 驅動框架概述

gpio是嵌入式開發中最常見的介面,之前自己就有寫過小的gpio驅動,提供ioctl介面給使用者空間操作。但直到最近才發現linux自身就有完善的gpio驅動框架,並且通過sysfs向使用者空間提供操作介面。linux的gpio驅動框架層次及資料結構如下 最上層是用來向向使用者空間提供介面,使用者可...

驅動基本框架

include ring0.h 驅動在解除安裝的時候,經過這裡,我們可以在這裡釋放一些資源。斷開通話 void driverunload pdriver object driverobject 函式派遣的irp,如果我們不需要用到這裡通訊。ntstatus iodispatch pdevice ob...

Power Supply驅動框架

power supply驅動框架和具體驅動 power supply驅動程式用於讓使用者空間可以讀取系統中的供電裝置資訊。供電裝置可以是直流電源 ac usb或者電池等。17.5.1 power supply驅動框架 power supply驅動程式與使用者空間的介面是sys檔案系統,該型別驅動程式...