重新理解一波設備驅動|Linux驅動

一口Linux 2022-05-09 11:50

哈嘍,我是老吳。

非常懷念寫文章的感覺。

昨晚復習了一些 Linux 驅動的基礎知識,給大家分享一下吧。

先說結論:

多年來,我接觸到的 Linux 驅動教程大多都是從 0 編寫,這樣對初學者而言最大的好處,就是可以接觸到比較多的底層原理。

但是在真正的工作場景里,其實是應該盡量避免從 0 構建自己的設備驅動的。

更好的做法是在高度模塊化的驅動框架里添加自己的設備驅動。

這樣做的好處是最大程度地復用內核現有的代碼,同時獲得極大的彈性和可維護性,并且為應用程序提供出統一的訪問接口。

下面詳細地說說。

什么是設備驅動?

設備驅動程序 (device driver) 是對硬件的抽象:

提供基礎框架來編寫和運行設備驅動程序是操作系統內核責任的一部分。

盡管可以在用戶空間中運行設備驅動程序(通過一些內核接口,如 UIO 或 I2CDEV),更常見的情況是讓它們在內核空間中運行。


以字符設備驅動為例:

字符設備 (char device) 是一種最常見的硬件抽象。

/dev 目錄下的設備節點文件就是內核導出給用戶空間的訪問設備驅動的接口。

設備節點文件中有三個基本信息:

  • Type,用于標識是 block 還是 char device;

  • Major number,用于標志是那一類 char deivce;

  • Minor number,用于標志是哪一個 char device;


編寫字符設備驅動的流程:

1、分配設備號,這通過 register_chrdev_region() 或 alloc_chrdev_region() 來完成;

2、實現文件操作(open、read、write、ioctl)等。

3、使用 cdev_init() 和 cdev_add() 向內核中注冊字符設備。

以 LED 字符設備驅動為例


如果按照從 0 構建的思路編寫驅動的話,偽代碼如下

硬件訪問相關:

static?struct?{
?dev_t?devnum;
?struct?cdev?cdev;
?unsigned?int?led_status;
?void?__iomem?*regbase;
}?drvled_data;

static?void?drvled_setled(unsigned?int?status)
{
?u32?val;

?/*?set?value?*/
?val?=?readl(drvled_data.regbase?+?GPIO1_REG_DATA);
?if?(status?==?LED_ON)
??val?|=?GPIO_BIT;
?else?if?(status?==?LED_OFF)
??val?&=?~GPIO_BIT;
?writel(val,?drvled_data.regbase?+?GPIO1_REG_DATA);

?/*?update?status?*/
?drvled_data.led_status?=?status;
}

static?void?drvled_setdirection(void)
{
?...
}

文件操作相關:

static?ssize_t?drvled_read(struct?file?*file,?char?__user?*buf,
??????size_t?count,?loff_t?*ppos)

{
?...
}

static?ssize_t?drvled_write(struct?file?*file,?const?char?__user?*buf,
???????size_t?count,?loff_t?*ppos)

{
?char?kbuf?=?0;

?if?(copy_from_user(&kbuf,?buf,?1))
??return?-EFAULT;

?if?(kbuf?==?'1')?{
??drvled_setled(LED_ON);
??pr_info("LED?ON!\n");
?}?else?if?(kbuf?==?'0')?{
??drvled_setled(LED_OFF);
??pr_info("LED?OFF!\n");
?}

?return?count;
}

static?const?struct?file_operations?drvled_fops?=?{
?.owner?=?THIS_MODULE,
?.write?=?drvled_write,
?.read?=?drvled_read,
};

注冊和卸載字符設備相關:

static?int?__init?drvled_init(void)
{
?int?result?=?0;

?if?(!request_mem_region(GPIO1_BASE,?GPIO1_SIZE,?DRIVER_NAME))?{
??pr_err("%s:?Error?requesting?I/O!\n",?DRIVER_NAME);
??result?=?-EBUSY;
??goto?ret_err_request_mem_region;
?}

?drvled_data.regbase?=?ioremap(GPIO1_BASE,?GPIO1_SIZE);
?if?(!drvled_data.regbase)?{
??pr_err("%s:?Error?mapping?I/O!\n",?DRIVER_NAME);
??result?=?-ENOMEM;
??goto?err_ioremap;
?}

?result?=?alloc_chrdev_region(&drvled_data.devnum,?0,?1,?DRIVER_NAME);
?if?(result)?{
??pr_err("%s:?Failed?to?allocate?device?number!\n",?DRIVER_NAME);
??goto?ret_err_alloc_chrdev_region;
?}

?cdev_init(&drvled_data.cdev,?&drvled_fops);

?result?=?cdev_add(&drvled_data.cdev,?drvled_data.devnum,?1);
?if?(result)?{
??pr_err("%s:?Char?device?registration?failed!\n",?DRIVER_NAME);
??goto?ret_err_cdev_add;
?}

?drvled_setdirection();

?drvled_setled(LED_OFF);

?pr_info("%s:?initialized.\n",?DRIVER_NAME);
?goto?ret_ok;

ret_err_cdev_add:
?unregister_chrdev_region(drvled_data.devnum,?1);
ret_err_alloc_chrdev_region:
?iounmap(drvled_data.regbase);
err_ioremap:
?release_mem_region(GPIO1_BASE,?GPIO1_SIZE);
ret_err_request_mem_region:
ret_ok:
?return?result;
}

static?void?__exit?drvled_exit(void)
{
????...
}

module_init(drvled_init);
module_exit(drvled_exit);

運行效果:

$?install?ledrv.ko
$?ls?/dev/led
#?燈亮
$?echo?1?>/dev/led
#?燈滅
$?echo?1?>/dev/led?

三個問題

單從功能的角度看,上面的程序完全滿足控制一個 LED 的需求。

但是,它不是一個好的驅動,這里有 3 個問題。


問題 1:

它創建的接口是 /dev/led,這不是一個通用接口,會增加上層開發人員的學習成本。

解決這個問題需要在 LED char driver 上再添加一層 LED framework,LED framework 負責給用戶空間提供標準化的訪問接口,同時用于添加可復用的邏輯功能。

基本上各種設備驅動都有自己的 framework,例如 input, IIO, ALSA, V2L2, RTC, watchdog 等。

使用這些 framework 驅動工程師不用考慮提供給用戶空間的接口,應用開發人員也只需要學習一次標準的硬件訪問接口接口。


問題 2:

它只是控制 1 個 gpio,但是卻申請使用了 2 個寄存器,這 2 個寄存器負責控制芯片的 8 個 gpio。這意味著其他 7 個 gpio 再也沒法被其他驅動申請使用。

解決這個問題需要引入一個 gpio 的管理者:gpiolib。gpiolib 負責統一管理和分配 gpio 資源。


問題 3:

它包含了硬件信息。如果我們想控制另外一個 gpio或者多個 gpio,就得改動源碼,代碼維護的工作量極大。

解決這個問題我們需要將硬件信息從代碼中抽取出來,具體的就是引入總線、設備、驅動模型。

更好的 LED 驅動

我們用上面的思路,寫一個更合理的 LED 驅動。

引入 LED framework:

1、初始化 led_classdev 結構體。

2、提供一個回調函數來改變狀態 LED 的。

3、使用 led_classdev_register() 在想 LED framework 注冊驅動程序。


引入 gpiolib:

內核管理 gpio 的思路是典型的 producer/consumer 模型。

GPIO controller driver 是 producer,LED driver 是 consumer。

下面是幾個常用的 gpiolib api,它們的作用一目了然:

#include?
#include?
struct?gpio_desc?*gpiod_get(struct?device?*dev,?const?char?*con_id,enum?gpiod_flags?flags);

void?gpiod_put(struct?gpio_desc?*desc);

int?gpiod_direction_input(struct?gpio_desc?*desc);

int?gpiod_direction_output(struct?gpio_desc?*desc,?int?value);

void?gpiod_set_value(struct?gpio_desc?*desc,?int?value);

int?gpiod_get_value(const?struct?gpio_desc?*desc);


引入總線、設備、驅動模型 :

該模型包含 4 部分。

Bus core: 對硬件總線的抽象,不同總線有不同的 Bus core,例如 USB core, SPI core, I2C core, PCI core ,在內核中由 bus_type 結構表示。

Bus adapters: 總線控制器驅動程序,在內核中由 device_driver 結構體表示。

Bus drivers: 負責管理連接到總線的設備的驅動程序,在內核中由 device_driver 結構體表示。

Bus devices: 連接到總線的設備,在內核中由結構 device 表示。

內核虛擬了一條叫 Platform 的總線,用于適配 LED 這種不屬于任何總線的設備。

看下改造后的代碼:

設備信息:

LED {
<&gpio1 9>
}

硬件控制:

tatic?struct?drvled_data_st?*drvled_data;

static?void?drvled_setled(unsigned?int?status)
{
?//?控制?gpio
?if?(status?==?LED_ON)
??gpiod_set_value(drvled_data->desc,?1);
?else
??gpiod_set_value(drvled_data->desc,?0);
}

static?void?drvled_change_state(struct?led_classdev?*led_cdev,
????enum?led_brightness?brightness)

{
?if?(brightness)
??drvled_setled(LED_ON);
?else
??drvled_setled(LED_OFF);
}

向 LED framework 注冊:

static?int?drvled_probe(struct?platform_device?*pdev)
{
?struct?device_node?*np?=?pdev->dev.of_node;
?struct?device_node?*child?=?NULL;
?int?result,?gpio;

?child?=?of_get_next_child(np,?NULL);

?drvled_data?=?devm_kzalloc(&pdev->dev,?sizeof(*drvled_data),
???????GFP_KERNEL);
?if?(!drvled_data)
??return?-ENOMEM;

?//?從設備數中獲得硬件信息
?gpio?=?of_get_gpio(child,?0);

?result?=?devm_gpio_request(&pdev->dev,?gpio,?pdev->name);
?if?(result)?{
??dev_err(&pdev->dev,?"Error?requesting?GPIO\n");
??return?result;
?}

?drvled_data->desc?=?gpio_to_desc(gpio);

?drvled_data->led_cdev.name?=?of_get_property(child,?"label",?NULL);
?drvled_data->led_cdev.brightness_set?=?drvled_change_state;

?//?注冊進?LED?framework
?result?=?devm_led_classdev_register(&pdev->dev,?&drvled_data->led_cdev);
?if?(result)?{
??dev_err(&pdev->dev,?"Error?registering?led\n");
??return?result;
?}

?gpiod_direction_output(drvled_data->desc,?0);

?dev_info(&pdev->dev,?"initialized.\n");

?return?0;
}

static?int?drvled_remove(struct?platform_device?*pdev)
{
?dev_info(&pdev->dev,?"exiting.\n");

?return?0;
}

static?const?struct?of_device_id?of_drvled_match[]?=?{
?{?.compatible?=?"labworks,drvled"?},
?{},
};

static?struct?platform_driver?drvled_driver?=?{
?.driver?=?{
??.name?=?"drvleds",
??.owner?=?THIS_MODULE,
??.of_match_table?=?of_drvled_match,
?},
?.probe??=?drvled_probe,
?.remove??=?drvled_remove,
};

module_platform_driver(drvled_driver);


改造后,應用總是通過下面這種標準的接口訪問 LED:

#?燈亮
$?echo?1?>?/sys/class/leds//brightness

#?燈滅
$?echo?0?>?/sys/class/leds//brightness

并且有大量的 trigger 可供使用,例如讓 LED 呈心跳狀態的 heartbeat trigger:

$?echo?heartbeat?>?/sys/class/leds//trigger


假設這時你想改用 gpio expander 芯片來控制 LED:

只需要添加這個 gpio expander 的驅動代碼,并且修改設備樹即可,其他部分完全不需要改動:

gpioexp {
I2C0, 0x10
}
LED {
<&gpioexp 3>
}

到此,你是否更清楚如何為 Linux 添加設備驅動了呢?


—— The End ——

推薦閱讀:

專輯 | Linux 系統編程

專輯 | Linux 驅動開發

專輯?| Linux?內核品讀

專輯 | 每天一點 C

專輯 |?開源軟件

專輯 | Qt 入門

一口Linux 寫點代碼,寫點人生!
評論
  • 摘要在防爆電氣設計中,只參照芯數選型而忽略額定載流量,長期滿負荷運行會出現插頭發熱、接觸面氧化、IP67 密封受熱老化等問題。結合常用 3 針 3 孔、4 芯、5PIN、8PIN 圓形防爆連接器,制作分級電流參數對照表,區分冷壓免焊接、焊接兩種接線結構的安全載流數值,設置合理電流冗余系數,搭配使用環境修正參數,規范防爆接近開關連接器、防爆法蘭插座的選型計算方式。關鍵詞圓形防爆連接器,載流參數表,防爆法蘭插座,防爆端子接頭,IP67 防爆防水接插件1 產品概述圓形防爆連接器觸點載流能力由插針直徑、
    kyfbest科迎法電氣 2026-08-03 09:18 128647瀏覽
  • 在前六期中,我們已經分別討論了 CRA 的適用范圍、整體影響、漏洞通報義務、風險評估與技術文檔證據鏈、第三方組件與 SBOM 供應鏈治理,以及產品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業已經能夠回答幾個核心問題:產品是否落入 CRA 適用范圍,產品由哪些組件構成,企業如何證明自己在設計、開發和上市前采取了必要的安全措施,以及產品上市后如何持續維護和安全下線。但對于真正準備落地 CRA 合規的企業來說,還有一個更現實的問題:CRA 的法規條文相對原則化,企業應當如何把“網絡安
    虹科云科技 2026-08-03 16:51 171380瀏覽
  • 導語在現代高速數字電路設計中,信號的完整性已不僅是理想波形推演,而是一場與物理非理想特性正面博弈的工程實踐。濾波器芯片作為凈化傳輸鏈路的關鍵屏障,其核心挑戰在于:能否有效識別并濾除那些隱匿在電平跳變過程中的亞納秒級瞬態脈沖干擾,這類干擾持續極短,卻足以在高速鏈路中引發誤觸發。然而,傳統函數發生器受限于采樣率與邊沿速率,根本無法忠實復現如此狹窄且陡峭的異常波形。針對此困境,德思特TS-AWG7000系列任意波形發生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態脈沖提供精細刻畫,配合SPG
    德思特測試測量 2026-08-05 14:06 5瀏覽
  • 在EMC測試過程中,傳導發射(Conducted Emission,CE)超標是工程師最常遇到的問題之一。更令人頭疼的是,同樣的超標曲線背后,可能對應著完全不同的干擾機理:有的是差模噪聲沿電源回路傳播,有的是共模電流通過寄生路徑耦合,還有些問題甚至并非來自電源本身,而是負載、電纜布局或接地結構引起的連鎖反應。 · 150kHz~1MHz 超標:多為差模噪聲為主,干擾沿火線-零線回路傳輸。 · 1MHz~30MHz 超標:通常共模噪聲占主導,干擾通過火線/零線對地回路傳播。 如果條件允許,用電流探
    譽磁電磁兼容EMC 2026-07-31 18:45 509瀏覽
  • 文:杜杰編輯:侯煜當地時間7月28日,美國特朗普政府落地最新科技封鎖政策,美國聯邦通信委員會(FCC)正式更新《受管制清單》,新增兩大類設備——境外生產的先進機器人設備、境外生產的聯網電力逆變器。FCC在官方情況說明書中明確,該類境外制造產品,“會對美國國家安全或美國民眾的人身安全構成無法承受的風險”。本次新規設置明確豁免機制:經美國國防部(DoW)、電力逆變器品類經美國國土安全部(DHS)審核并授予“有條件批準”,認定對應設備品類不存在重大安全風險,即可獲得準入豁免。同時政策嚴格執行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 334瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 122239瀏覽
  • 產品使用18V供電,配套4串鋰離子電池,需要設計一個充電器。因為輸入18V,電池最高 16.8V,壓差僅 1.2V。因為壓差太小。使用開關型的充電控制芯片不穩定。嘗試自行設計一個。整體采用分立三極管 + TL431架構,分4個功能單元:使能控制回路、限流環路、TL431 精密恒壓反饋環路、PNP 功率管主功率輸出回路;實現完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經 R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導通,對地拉低 R1、R2 組成的分壓控制節點電位;該節點直
    southcreek 2026-08-07 13:45 346瀏覽
  • 在物聯網從“萬物互聯”邁向“萬物智聯”的進程中,LTE Cat.1憑借其在速率、成本與網絡覆蓋之間的完美平衡,正成為中低速物聯網市場的絕對主力。隨著2G/3G網絡的逐步退網以及新國標對終端設備智能化、定位功能的強制要求,Cat.1模組迎來了爆發式的增長窗口。在這一關鍵節點,基于華為海思Hi2131芯片設計的LTE Cat.1模組,憑借其在能效、射頻、架構及物理規格上的底層創新,成功打破了“高性能必高功耗”的傳統魔咒,為行業提供了極具競爭力的連接最優解。核心技術優勢:重塑Cat.1能效與連接標桿海
    用戶1778981989717 2026-08-05 21:04 177瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩定起振的成品,要經過十幾道精密工序。它內部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個生產過程里哪怕0.1微米的誤差,都會直接廢掉整批產品,這也是小尺寸晶振過去長期依賴進口,國內廠商花了十幾年才啃下量產硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 390瀏覽
  • 摘要防爆自控系統同時布設本安信號、工業總線、動力供電三類線路,僅依靠標識標牌管控插接極易出現人為錯插問題,高壓動力回路竄入本安弱電回路會突破安全柵限能標準,產生點火風險。依托 A、D、K 標準化機械防呆編碼體系,搭配護套顏色區分管理,適配 3 針 3 孔免焊接冷壓增安型防爆航插、5PIN 總線防爆航空插頭、8 芯焊接防爆法蘭插座的選型使用,從物理結構層面杜絕防爆接近開關連接器、防爆傳感器航插接頭混用插接問題,補齊防爆系統被動安全防護體系。關鍵詞圓形防爆連接器,防呆編碼防爆航插,防爆航空插頭,防爆
    kyfbest科迎法電氣 2026-07-31 18:29 414瀏覽
  • ?摘要:低價大流量卡正全面退市,政策收緊已成定局。面對傳統號卡的不確定性,隨身WiFi憑借穩定連接、多設備共享、獨立設備和靈活套餐等優勢,成為務實可靠的備選方案。1、流量卡黃金時代要結束了通信行業正迎來一場前所未有的“地震式”調整——曾讓無數用戶追捧的低價大流量卡,正在全速退出各大平臺。這早已不是一次普通的競合,而是一場趨勢性的行業洗牌。回望過去,19元200G的神卡,那時真是“睡著都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像隨便刷、隨便看,流量自由觸手可及。可如今,回頭再看,那種
    愛上電路設計 2026-08-03 10:21 128885瀏覽
  • 做藍牙音箱的工程師大概都碰過這個局面。產品要連手機放歌,要本地播開機提示音和按鍵音,還要接 App 做配網和狀態上報。三件事拆開,早先的常規做法是音頻藍牙一顆料、數傳藍牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍牙、BLE 數傳和 MP3 本地播放三樣全包了。對藍牙音箱來說,最實在的好處就
    唯創知音語音芯片 2026-08-06 15:14 293瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 塔日酒店| xl司令全集在线观看完整版免费| 徐若瑄 av| 仙逆全集免费观看| 战狼6双人版高清下载| 教室那一间| 《倔强退魔师》1-4集在线观看| 隐爱议程泰剧完整版| 龙虎戏凤| 片名《瓜达卢佩的玫瑰》| 千金奴隶| 哈利波特| 瑶山剿匪记| 《瓜达卢佩的玫瑰》在线播放免费墨 | 速7片尾曲| 束傅游戏免费观看第一季全集| 唐朝艳妃免费观看全集电视剧高清| 昔有琉璃瓦全集免费看| 妈妈14中字头强华驿大结局视频 | 爱我就别想太多免费| 艋胛剧情| 爱我几何原版无删减版百度云多长时| 马向阳下乡记电视剧免费观看| 怒火街头第二部| 月生沧海电视剧免费观看完整版| 一枝红杏入墙来| 《女超人2满天星版》完整版| 帽子的编织方法| 与青春有关的日子2我要活下去| 九一社1至36集电视剧| 最美情侣在线播放观看| 同学的妈妈电影| 28天后百度影音| 以你的心诠释我的爱在线观看| 十七岁高清完整版在线观看视频| 南京将军山碎尸案| 《农场主的三个女儿》| 坐火车旅行电影| 丈夫出差的三天,被讨厌的| 蜡笔小新国语高清| 一路上有你2| 高清《地狱乐 第二季》电视剧| 我的女上司短剧全剧免费观看| 男女愁愁愁电视剧在线观看网页| 探长欧光慈| 《我的私人游戏教练》| 爱在黎明前降落短剧免费观看| 武状元苏乞儿周星驰| 妻子的情人2| 高清《家政服务》免费观看| 黑暗森林满天星版法国| 永乐大帝电视剧全集免费观看| 黑帮大佬和我的365天在线观看| 乌龙山伯爵百度影音| 电影《爱上女闺蜜》完整版 | 新包青天之碧血丹心| 玉圃潭| 人猿泰山未删减完整版| 肉欲横流| 花环夫人主题曲| 浪漫私藏电视剧免费观看| 蝙蝠 韩国| 《耻辱の女潜入搜查官地狱电影| 《白衣绳索牙医生》| 我的土地我的家| 黑白配在线观看| 金瓶梅在线观看免费完整视频电影| 日韩r片| 高清《泰版跑男》| 凤凰军事观察室最新| 电影《北越暴行》免费播放| 在韩国成为房主的方法全集观看| 辛亥革命电影影评| 血族第三季| 白雪公主与猎人下载| 高压监狱2无删减1080P| 刘亦菲放飞美丽mv| 战狼10欧美版在线观看| 时光正好在线观看| 她的紧致让他闷哼出声电影| 八尺夫人意大利免费观看全集高清| 我的土地我的家| 美国家庭式忌讳1-4残酷的开始| pgd 606中文字幕| 蓝色隐形帽子完整版在哪看| 《奔跑吧13》免费观看| 荣华令全集免费观看| 善良的儿媳妇在线播放| 义胆群英国语高清| 巴西vs智利点球大战| 奇妙萌可第4集免费观看| 须要爸爸播种| 顺娘全集| 白峰美羽理论免费电影| 满江红电影张艺谋免费观看? | 擦枪走火电影完整版| 星客来尔迷宫| 霍家拳之铁臂娇娃电影完整版| 我的情人| 不良义姐| 电视剧门当户对| 长岛县| 七月与安生迅雷下载| 超人麦乐迪| 战火青春电视剧| 撸二哥男人在线网站观看 | 自宅警备员| 经营婚姻 电视剧| 美国禁忌满天星伦理电影| 欢愉电影完整版免费观看| 小山羊能治好吗| 午间天气预报| 佳恩别哭剧情介绍| 霸气逆袭| 复仇打脸:重生弃少短剧全集| 武平县| 国防部回应中印边界问题| 一起愁愁高清版在线看正版| 地铁迷情| 特殊酒店的滋味2| 伊人网站在线观看| 箭在弦上徐二航| 浴火危城电视剧| 不忠韩剧| 激战丛林| 打黑风暴22集全免费| 王李丹妮新片《维修工》叫什么名字| 《黑色电话2》| 捷克满天星A片在线观看| 韦小宝之古今| 女教师的滋味在线播放| 食为奴国语| 高清《初恋这件小事》| 《星克莱尔总统夫人》电影观看 | 4399推销员| 漂亮的廋子3| 高清《传说》电视剧| 满天星麦乐迪电影在线观看完整免费 | 噬血狂袭第二季| 叶卡捷琳娜大帝第一季在线观看| 扈三娘与矮脚虎王英| 北越暴行女民兵1-3集全| 高清《双刃》短剧免费观看| 日本本乡爱主演的电影| 靳东甄子丹当选全国政协委员| 女搜查官| 周杰伦的歌东风破| 飞机上的性服务K8在线观看| 恶之华在线观看| 子交换1的中文翻译| 聊斋艳谭第3集| 交换上司的秘书电影在线观看| 躲避的爱说唱词| 叶卡捷琳娜电视剧第二季| 小东解说dota| 对攻电视剧| 凤随歌电视剧免费观看| 扒鸭屁股| 《善良朋友的妻子》hd| 金瓶梅1-5电影免费完整版| 花子vs倔强驱魔师全集免费观看高清 | 女人复仇记电视剧| 我的教师生涯 电影| 灯草花和灯免费完整版| 我在岛屿读书| 混血儿的摇篮曲| 碧血蓝天电影免费观看完整版 | 肉蒲团完整版高清| 偶像公主全集| 《执法者们》国语版| 男模泳装下凸图| 君子好逑电视剧| 大牌生日会甄嬛传| 我记得 电影| 《保姆特别待遇》| 邻家姐姐第三季免费| 事物的秘密在水池一段是多少比喻| 不可能完成的任务电视剧免费观看| 美国式保罗讳1-4免费那台词 | 同学的母亲中字id英文| 夏家三千金 下载| 《诱人的岳 1》李银美| 罪域30| 新来的瑜伽老师完整版| 梅花三弄之水云间| 姐姐的朋友2在线观看| 浓从暗中来| 私人助理2完整版| 《卿卿我心》叶玉卿免费观看| 哇嘎影视大全在线观看| 了不起的挑战第二季| 女人荫蒂被添全过程A| 历劫惊途 第二季全集观看| 出差被迫和讨厌部长| 韩国免费A片爱的人蜜爱| 维修工老王的春天结局 | 咒怨录像带版| 年轻的妈妈韩版带中译| 电影侠女十三妹| 丛林激情在线观看免费完整电影| 摔跤玩鸟| 朴亚珍《隐形帽》原版在线观看 | 双人天堂按摩在线观看| 他年她日电影| 北越暴行2完整版免费| 地下交通站第一部28集下载| 李彩谭电影在线| 韩剧我也是花全集| 九阳天师短剧免费观看| 假面骑士revice在线观看| 刀剑神域07| 中国移动家庭计划| 乡村逆袭:小农民成首富全集免费| 有没有好一点的约x软件| 激情纵林| 爱情综合症前传电影| 馅老满饺子| 三年成全免费高清观看资源| 未婚少女高清免费观看电视剧 | 一路向西无删减| 传闻中的七公主中文版| 神龙赌圣之旗开得胜| 猛兽侠全集| 韩剧《我的游泳教练》免费播放| 折腰电视剧全集免费| 黑豹天下国语版| 河北公共频道| 善良的妻子免费观看| 小巷人家电视剧免费版| 黑白配在线观看免费高清视频 | 箭在弦上电视剧1一48集免费观看| 《姐弟恋》电影免费播放| 虐童女幼师| 高清在线看| 美味快递2中文版| 山城棒棒军第一部| 南充看电影吧| 莫妮卡《爱我几何》哪里能看 | 怒火重案国语在线观看| 《华胥引》| 空前绝后满天飞| 牙医姐妹1986完整版资源| 完美世界剧场版在线观看高清| 一路向西电影完整版种子| 漂亮妈妈中字开头字| 《密爱》2002完整版| 电影美国爸爸要播种| 爹别苟了出山吧 你真无敌了| 漂亮妈妈7中字开头歌曲| 小娘惹在线观看电视剧剧情完整版| 《卢旺达的玫瑰》完整版| 淄博一夜情| 青蛇免费| 无所畏惧第一季电视剧免费观看| 尖峰时刻3国语高清| DTF圣路易日记| 暴躁妹妹国语版bgm视频播放下载| 青春在线观看| 古惑仔3高清国语免费观看| 黛比浪漫女家教1-6季 电视剧| 北风那个吹在线观看免费完整版| 神不在的星期天动漫| 电影长津湖战役完整版播放免费| 下女完整版百度影音| 斗破苍穹171在线观看| 吴雪雯性迷宫| 人面兽心在线播放| 一眉道姑| 男女一起愁愁愁电影全集免费 | 情从林| 激情社区在线观看| 《倔强退魔师》1-4集在线观看免费| 一中学8个体育老师5个是班主任| 《黏黏糊糊的你》免费观看全集| 谢谢你温暖我演员表| 深海电影| 杨光的爱情故事2| 哇嘎影视高清完整版免费观看| 林正英的僵尸电影| 星条蓝与皇室蓝完整版| 桃色播播| 机械师1| 玖兰枢bg| 高清《鬼市》电影| 罗丽星克莱尔电影在线| 电视剧传说| 泽塔奥特曼中文版免费| 海贼王国语版全集国语版| 我独自升级第二季在线免费观看| 爱的代价原唱是谁| 谁说我纨绔不羁短剧| 名侦探柯南668| 儿媳妇的味道日本电影在线播放| 灵域第四季| 修理工大叔的艳遇韩国电影| 动真心:契约总裁短剧全集| 黑白诀电视剧40集全部播放| 我同学的妈妈双字id| 悬崖上的金鱼公| 大剑在线观看免费全集高清版| 电影美容院的特殊待遇五| 库伊拉黑白魔女| 玉米靠什么传播种子| 珍妮泰山1995全集免费看| 爱情公寓5在线观看免费完整版| 3v1三人一次性体检韩国电影 | 黑衣人3国语高清| 正在播放:中文本幕-亿万富翁的女儿 Anissa Kate,Sienn... - 17 | 《杉杉来了》免费观看| 肖恩康纳莱| 甜美姐姐| 兰州老街的瓜| 《花与蛇3》| 百变大咖秀第五季| zh.jizz| 第22条婚规电视剧| 勇者传说粤语| 美容院:待遇服务16 | 警察故事3国语完整版免费观看| 公公的浮之手电影 | 快闪之星图片| 大祭司她又美又飒短剧免费观看| 侄女的开发日记笫三季在线观看| 人儿何处归全集| 父贵荣华短剧全集| 美国的忌讳1~9| 温柔的背后全集| 美版女儿国在线观看完整版| 你是我的命运电视剧| 卖百科全书的女人| 米小圈电视剧| 一个巴掌赔偿100万| 放学别走| 丈夫上司部长与妻子相处秘诀| 金银悔5| 死神来了3下载| 恋恋师情| 《混血儿的摇篮曲》1973| 变形金刚2国语版| 漂亮的妈妈7中字开头7个字| 碧血蓝天电影免费观看完整版| 方糖映画| 广场舞火火的姑娘云裳| 青春娱乐网国产在线| 电影《双女任务》完整版| 苏志燮主君的太阳| 杨棋涵鸭店门完整版| 女超人满天星法版在线播放| 打脸亲戚:穷亲戚变豪门短剧全集| aj视频电视剧大全| 小女花不弃 电视剧| sis001邀请码| 罗丽星克莱尔性迷宫在线观看| 餐馆厕所突然钻出一截管子剧烈扭动| 法国空乘2019无删减版百度云| 美丽小蜜桃五| 诺比特电影免费观看完整版国语版| 两不疑动漫免费观看| 周生如故在线观看| 公淫之手| 驯服我 电影| 公的浮之手中字1上映时间| 黑暗荣耀第二季百度云| 韩剧妈妈爱上儿子全集| 高清《史前战纪 第三季》电视剧| 《部长出差的日子》电影| 土地公土地婆全集| 刘谦魔术揭秘2013| 女子监狱德国满天星| 哆啦A梦:大雄的金银岛电影| 千灭天际线| 《凤凰台上》免费观看| 读百科全书的女人| 福禄寿探案| 帅飘电视剧全集| 雪中悍刀行电视剧免费观看全集| 隐蔽的角落电视剧免费观看| 西出玉门电视剧免费看| 六鬼团电影全集| 韩国电影课中坏事| 十二生肖电视剧| 飞驰人生1| 色戒未删减版在线观看完整| 终极武器| 和尚爱上女子日剧的电视剧| 金银瓶1-5hd普通话2| 折腰电视剧剧情| 《火烈鸟》电影免费| 神奇动物:格林德沃之罪| 离婚合同| 我年轻的瘦子4| 非常大状粤语| 总统夫人的夜晚伦理电影1997在线观看| 金玫瑰洞| 朋友的妈妈2线在线播放| 喜庆农家全集| 五号特工组1全集| 法国电影法国空姐4 | 《女教师的味道3》| 人头豆腐汤电影| 小猪佩奇第9季中文版| 苹果在线高清免费播放| 异世界迷宫开后官二季| 剑来动漫片尾曲叫什么名字| 没有罩子的瑜伽老师| 上司趁着丈夫不在家拜访妻子在线观看日本电影 | 法航空姐11部免费观看| 朋友的姐姐 720p| 白毛女在线观看| 法国电影空姐2019满天星星辉照耀中国片段 | 杯水情歌吉他谱| 要爸爸播种美国电影在线观看免费| 袖珍妈妈电视剧全集| 聊斋之奇情异恋| 梁朝伟版的倚天屠龙记电视连续剧| flowover第一季在线播放免费观看| 中国在线观看免费播放| 以你的心诠释我的爱第二季电视剧| 秦香莲电视剧全集| yellow视频免费观看| 千年魔界| 电影外出2| 范文芳神雕侠侣| 法国电影空姐第二季| 李立群个人资料简介| 火影忍者剧场| 最后的较量电视剧| 歼灭天际线1-66全集酒店的女人| 叶海亚萨里阿在中国留学过吗| 《同居1ldk》番剧动漫观看免费| 康熙来了停播| 医院特殊待遇5中文版免费阅读| 危机边缘第一季| 诺比特电影免费观看完整版国语版| 垂涎15集| 高压监狱电影在线观看完整免费高清原声满天星在线 | 公与浮之| 我的女上司短剧全剧免费观看 | 魔鬼契约2| 亲爱的老师6中文版完整版| 芝麻胡同免费观看全集剧情| Overfloor第一季在线观看| 星乃せあら| 江桥决战| 所有的欲望| 韩国电影和部长一起出差旅日本电影叫什么| 在一声声姐姐中迷失自我| 淮剧珍珠塔| 伊甸园之东大结局| 《法国护士长》伦理| 我的老婆是大佬3国语| 香港明星足球队将踢贵州村超| 熊出没之古宅探宝 2022| 战狼6免费观看在线成人版| 我可以稍微放进你里面吗校园版| 赖汉的幸福指数全集在线观看 | 新扎师兄| 天使即将来临续集| 悔不当初我不追了短剧免费观看| 满天星禁忌| 我和黑帮老大的第365日| 学生爱上老师免费高清电视剧| 电视剧老公的春天全集| 外卖特邀外卖员| 合肥演唱会| 健全机斗士| 进击的巨人百度影音| 白峰电影高清在线观看| 都市风水:改运超神全集免费| 有匪电视剧在线观看全集| 《学生》完整版观看| 无憾坎贝奇英文在线完整观看| 朴妮唛29分钟完整版| 音乐人生| 依兰爱情故事电影免费观看| 歼灭天际线无删除版| 独狼高清| 伦理厨房的岳 BD神马在线观看 | 怪兽八号| 新动漫中华| 完整的恶魔之眼| 高清《屈原》| 都市之最强系统全集免费| 意大利爸爸的种子免费观看电视剧中| 老爸老妈浪漫史第九季| 小姬无人宠| 《法国空乘5》观看在线| 寻秦记2018| 烂滚夫斗烂滚妻国语| 女超人满天星版免费观看| 间谍过家家第8集| 珍珠港高清| 农民影院《法国少女农埸》完整版| 拳皇八神庵| 刚结婚陪部长出差的日子在线观看 | 妈妈的职业2观看全集免费高清中文| 12大战动漫免费观看| 心动的感觉| 《法国空乘10》成人版| 女超人满天星版麦乐迪第一季| 吉他兄弟| 情侣之夜| 暴躁老妈1-46集全免费观看高清版百度| 花子vs最强驱魔师免费观看| 扇娘全集| 魔弹战记| 台湾版《荒野渔夫》电影在线观看| 珍馐记电视剧免费版在线观看 | 超级飞侠动画片| 白峰电影在线观看高清| 银翼杀手2049 电影| 家庭秘密教学在线看| 日本天字号监狱电影叫什么名字| 盗墓笔记电视剧资源| 空中狐狸法国满天星全部演员表| 夏洛特烦恼免费观看完整版| 在厨房开车| 邻居的秘密| 《美容院:特殊待遇》孙婉| 《不当行为4》| 加勒比海盗5 死无对证| 《新金莲外传》在线观看| 小沈阳小品新白蛇传| 高清《家属2》动漫第一季免费观看 | 电视剧热爱| 二战德军发泄室正版| 张翰不一样的美男子| 绿皮书免费| 沙海电视剧免费观看| 《她被搬运工侵犯在线观看| 可怜武田全集免费播放| 初恋女帝| 九首歌完整版在线看| 张雪峰称不推荐专业也不打压专业| 英姿飒爽是什么意思| JUL945老公不在的平日、被自外工作回家的絶伦公公天天侵犯到疯狂高潮。三舩美 | 一年级大学季| 糊涂小天使| 金瓶梅电视剧全集电视剧在线看免费观看香港 | 战狼6老姨免费观看全集高清| 金品梅在线| 敢死队全集| 一起愁愁愁免费全集 | 这么多年 电影 在线观看| 女扮男装去上学短剧全集| 植物大战僵尸2坚不可摧攻略| 漂亮妈妈7巴中字开头7个字 | 《爱你的基蒂 第三季》| 最美丽的第七天| 一个好妈妈中字头强华驿| 爱情有点蓝之爱的交响乐全集| 中国阅兵式2009高清| 高清《满意度》电影完整版| 樱井莉亚4p无删减在线播放| 临终老人要走的6个手势| 禁忌1-4保罗一家| 陈百祥电影| 电影《血恋》完整版| 锵锵锵锵锵锵锵免费看完整版| 江湖少年诀电视剧免费观看| 昨夜长风二十集免费观看| 她很漂亮电视剧韩国| 爱我几何电影在线观看免费莫尼卡| 唐朝诡事录超清免费观看电视剧| 赖汉的幸福指数全集在线观看| 鹊刀门传奇2免费观看| 安姨版《售楼女王》满天星在线看 | 追凶者也未删减| 林正英僵尸电影全集国语高清| 瓜达卢佩的玫瑰 在线| 惊变下载| 黄日华个人资料简介| 活着电视剧| 人猿泰山主演1995版| 美容院的待遇在线观看| 近距离爱上你免费在线观看完整版 | 韩国电影美容院的特别待遇| 青春之旅第二季| 赤井美月| 大新县| 满天星版超女麦乐迪片段| 电影流浪地球| 西施秘史结局| 风云雄霸天下| 日剧《谜样的爱子》| 徐少强 金瓶梅| 王亚平军衔晋升少将| 大威虎看世界| 法国足球宝贝2完整版在线看 | 难寻电视剧免费观看全集完整版| 斗罗大陆176免费完整观看| 巨乳女医生的特殊治疗电影| 蜂鸟电视剧全集免费观看| 黄手帕第2部| 乌克兰基辅实时画面| 浮之公手3| 木下凛凛子AVHD101高清在线| 风筝电视剧免费观看| 美食的俘虏146| 无敌破坏王1| 女律师替夫还债电影| 年轮影视在线观看| 清明上河图密码40集全| 感官的世界| 芮城县| 五十路台湾版武松蒋玲玲田螺| 亲爱的妈妈是5在线观看完整| 善良秘书的目的在线观看| 斗破苍穹第121集完整版观看| 男生女生一起愁愁愁电视剧全集在现观看 | 津门侠盗团| 葵司电影在线观看| 猎罪图鉴2免费完整版电视剧| 战神3解说| 插曲的痛完整版在线观看免费高清电影| 免费观看电影在线观看高清版| 朵拉历险记全集| 女老板的性滋味| 妈妈母乳1-5H| 神话优酷| 女朋友的妹妹电影| 男生女生一起努力愁愁电视剧免费| 新建文件夹在线观看完整版| 我为卿 狂| 插曲的痛30集全集免费播放电影日本| 男人和女人一愁愁愁电视剧| 《下一个台风》| 同学的妈妈电影| 火热的领居中文字| 圣诞十二劫电影在线观看完整免费 | 酒徒温碧霞| 暴躁46集全在线观看免费高清/1| 火热的邻居| 金铁霖五大女高徒| 马龙回应能否多打几届奥运| 铿锵锵锵锵免费观看| 彷徨之刃在线观看电影| 人世间在线观看免费完整版高清| 《废世界》| 好日子全集在线播放| 画皮2ol| 高要市| 壮志凌云凯登劳斯版 | 冯宝宝与张楚岚电视剧| 婆婆妈妈电视剧免费观看| 得闲炒饭在线观看| 《我的老师中字ID》完整版| 电影《姐妹牙医》免费观| 孟羽童疑似成立个人工作室| 超级教师第6集在线观看播放| 宠爱免费观看完整版| xl司令第一季全集| 腹黑总裁:只对我温柔全集免费| 私藏浪漫电视剧在线看| 肢体的绣感在线看完整版免费观看| 特利迦奥特曼免费观看第一季| 爱上直播军事| 暗黑森林满天星版美国| 情爱天空| 联手复仇虐渣:双胞胎姐妹短剧全集| 侠客行吴健版| overflow第一季免费观看全| 我们永不言弃| 康斯坦丁电影高清在线观看完整| 摩登原始人1994满天星版 | 裸男 疯狂猜图| 黑girl成员| 《激战丛林》完整版免费国语| 高清《恶魔搬进来了》电影| 《修女的忏悔室》动漫免费看| 我的团长我的团53集全免费| 激情丛林女主角| 五个丝袜女警榨精嗯啊哦哦| 军刺电视剧全集在线观看| 逊克县| 花间姑娘韩国三级片| 了不起的挑战第一季| 只有神知道的世界| 电影天海翼匿名侦探免费观看| 电影《鸳鸯戏水》| 世界最恐怖的飞机| 《窃视者》电影在线看完整版免费| 蓝色隐身帽在线观看免费高清| 广场舞阿拉伯之夜| 《漂白》电视剧在线播放| 授业到天亮chu| 《特殊诊所》苍井空| 中毒韩国电影完整版资源| 赵本山小品就差钱| ごっくんする在线| 奇妙发型屋2在线观看免费中文版电视| 鬼娃回魂3| 自由的她们免费看全集完整版| 巴萨0-4皇马| 电影《叫我姐姐》| 游击兵工厂全集| 神探福娃六岁半短剧免费观看全集| 伊波拉病毒未删减版在哪| 四周恋人第二季| 哈尔滨夜店| 新金银悔1-5普通话| 婚里婚外那些事剧情介绍| 我和姪女小婷上下耸动| tobu4第一次| 打脸拜金女全集免费| 白夜行 豆瓣| 《语义错误》第二季| 四位大学位按摩记的背景和历史背景| 日威电推剪| 香烟爱上火柴广场舞| 斗破苍穹163集完整版免费观看| tobu4 HD免费,电影| 斗罗大陆206集| 送你一朵小红花在线观看| 大香港电视剧国语30集大结局| 正在播放:丈夫不在家的5天之间,被命令禁欲直到初夜为止的我身心都被性豪的公 | 急诊护士电影完整版| 小蜜桃六观看| 电影热辣滚烫今日正式上映| 地米菜煮鸡蛋的功效与作用| 翁虹任达华| 韩剧《不止暧昧》播放| 穷途鼠的奶酪梦| 年轻善良的嫂子韩国| 恶灵骑士1免费观看完整版在线观看 | 勇士惨负灰熊| 《性的暴行》日本电影| 童话 世界| 远离人群的地方| 中华之剑电视剧全集免费观看| 紫彩乃在线观看| 最佳李顺心| 小东西逃跑是要受到惩罚的| 逃学威龙| 荣誉守则杰西简免费版| 日韩入室强奸,免费观看| 第六感之吻电视剧在线观看| 食为奴国语全集| 《倾国倾城》| 日本修理工艳遇| 无能的丈夫在线全集免费观看| 美国男人大鸟| 飘香在线观看免费完整版| 啄木鸟系列壮志凌云满天星女版演员 | 婬荡的寡妇播放| 忍者神龟电影| 十二寡妇征西| 女超人手机在线观看| 噼里啪啦在线影视免费观看| 诱人的教师在线完整版| 《玛丽!玛丽》满天星| 朋友的女朋友在线观看| 红高粱大结局| 老婆11免费完整高清电视| 怀旧空吟闻笛赋| 工藤拉拉全部免费观看电视剧 | 使徒行者2粤语在线播放| 保你平安 电影| 陪讨厌部长去出差旅日本在线观看| ay电影| 多大的雪才算暴雪| 插曲的痛90集全集观看| 中国好声音总决赛回放| 那年花开全集免费观看星辰| 天堂网2023| 日本维修工艳遇中字| 传奇故事江西卫视| 新精武门周星驰| 0号宿舍.| 求婚大作战 韩剧| 金银1-5hd普通版| 大胸姑妈| 齐鲁风采| 因为爱情有晴天免费观看完整版| 我的妈妈动漫日语版动画片| 高清棒球大联盟未删减| 成人版禁忌的神话欧美| 木下檀檩子视频博放| 伪装者电视剧全集免费观看| 彭佳慧残酷的温柔| 仁心俱乐部电视剧全集在线观看| 重庆娱乐频道直播| 高清《天气之子》电影免费看| 青春须早为在线观看| 鱼夫的妻子 意大利| 警察锅哥播放电视剧一共40集| 机场特警评价| 完美女人电影| 达达兔免费观看延禧攻略| 白日梦2在线观看| 燃冬电影高清在线观看| 人猿泰山《激战丛林》完整版意大利| 十七岁高清完整版| 吉尺明步 110部全集| 色即是空2迅雷下载| 《沧元图》2在线观看| 韩国电影巜商务旅行戴帽子的主演在| 叶子楣电影大全免费观看在线| 魔兽世界封停超4万开挂账户| 红海行动手机 在线观看| 你给老子不上班| 公浮手完整版高清| 《爸爸种子2》在线| 《先哄后爱》| 小头爸爸| 长安三万里在线播放免费| 红楼梦金玉良缘| 现在就出发第二季最新一期| 温碧霞灯草和尚免费观看电视剧 | 韩剧巴黎恋人原声在线观看| 菲律宾《房产销售》| 第一滴血6全集免费完整| 别对我说谎 电视剧| 女教师白洁张敏玩交换| 喜人奇妙夜综艺免费观看| 孙颖莎1比3穆克吉| 母亲3| 图书馆女友第一季全集免费六集| 欲火狂蜜| 地下交通站第一部全集免费观看 | 山西警方回应女子当街抢孩子| 富有的玫瑰1987| 伊波拉病毒未减测版在线观看免费| 扫黑风暴28在线观看| 八角笼中免费观看在线| 我是刑警免费高清播放在线观看| 三女炕上交换玩| 罗丽星克莱尔迷宫在线观看| 纵有疾风起一共多少集| 肉蒲团 在线观看| 追踪者第二季电视剧| 强女の上司侵犯在线观看| 霹雳囧花 电影| 蜂蜜与四叶草下载| 美国需要爸爸播种电影| 年轻母亲在线免费观看| 华丽上班族迅雷下载| 你好世界在线观看完整版免费高清| 《炸天小姐》完整版| 早春二月免费| 火热电影| 弃少逆袭短剧全集| 女员工的付出 中文5| 逆天狂妃:邪王靠边站全集免费 | 心理测量者| 苍井空百度云视频分享| 末路天堂| 神奇布偶2控制女老板| 俄罗斯伦理片需要爸爸的种子| 《秘密列车》电视剧| 420电影网|