看門狗的框架涉及到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檔案系統,該型別驅動程式...