精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

調試記錄 | Linux 內核靜態(tài)庫封裝問題

系統(tǒng) Linux
對于靜態(tài)庫的封裝,大多數(shù)情況在應用層應用的封裝的比較多,用起來比較熟悉。不過,在嵌入式開發(fā)中,有些時候,需要將一些私有修改隱藏起來,特別是,內核中的一些修改。

[[410536]]

本文轉載自微信公眾號「漫談嵌入式」,作者Vinson 。轉載本文請聯(lián)系漫談嵌入式公眾號。

背景

對于靜態(tài)庫的封裝,大多數(shù)情況在應用層應用的封裝的比較多,用起來比較熟悉。不過,在嵌入式開發(fā)中,有些時候,需要將一些私有修改隱藏起來,特別是,內核中的一些修改。

此時需要在內核態(tài)制作靜態(tài)庫,然后鏈接到整個內核文件中。

對于一般(沒有復雜的內核依賴關系)的內核靜態(tài)庫的封裝,直接安裝應用層封裝即可。

對于內核中一些高級驅動的私有修改,在進行封裝時,就需要格外注意了,包括正確編譯,頭文件交叉引用,如果正確被鏈接到內核中,而不是被編譯器忽略掉了。

封裝問題

我們以 usb_f_uvc.ko 這個uvc function driver為例,來分析,內核靜態(tài)庫的封裝(假設,以下文件有修改或者定制)。最終,將usb_f_uvc.ko 打包成一個 靜態(tài)庫,鏈接到內核里面。

  1. # kernel/drivers/usb/gadget/function/Makefile 
  2. usb_f_uvc-y    := f_uvc.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_configfs.o 
  3. obj-$(CONFIG_USB_F_UVC)  += usb_f_uvc.o 

編譯

我們將需要的文件,復雜到一個目錄下,修改Makefile

  1. # Makefile 
  2.  
  3. # 可換成自己的工具鏈 
  4. CROSS_COMPILE ?= arm-linux-gnu-  
  5. CC := $(CROSS_COMPILE)gcc 
  6. LD := $(CROSS_COMPILE)ld 
  7. AR := $(CROSS_COMPILE)ar 
  8. CP := cp 
  9. RM := rm 
  10.  
  11. # 修改正確的kernel 路徑 
  12. KERNEL_PATH := xxxx/kerenl 
  13.  
  14. # 獲取gcc 版本 
  15. CC_PATH := ${shell which $(CC)} 
  16. CROSS_COMPILE_PATH := ${shell dirname $(CC_PATH)} 
  17.  
  18. CFLAGS := -nostdinc -isystem $(CROSS_COMPILE_PATH)/../lib/gcc/arm-linux-gnu/7.2.0/include 
  19.  
  20. # 頭文件順序很重要,換成自己平臺的 
  21. INCLUDE = -I$(KERNEL_PATH)/arch/arm/include \ 
  22.         -I$(KERNEL_PATH)/arch/arm/include/generated/uapi \ 
  23.         -I$(KERNEL_PATH)/arch/arm/include/generated \ 
  24.         -I$(KERNEL_PATH)/include \ 
  25.         -I$(KERNEL_PATH)/arch/arm/include/uapi \ 
  26.         -I$(KERNEL_PATH)/include/uapi \ 
  27.         -I$(KERNEL_PATH)/include/generated/uapi/ \ 
  28.         -include $(KERNEL_PATH)/include/linux/kconfig.h 
  29.  
  30. INCLUDE += -I$(KERNEL_PATH)/arch/arm/xxxx/core/include \ 
  31.         -I$(KERNEL_PATH)/arch/arm/xxxx/soc-xxx/include \ 
  32.         -I$(KERNEL_PATH)/arch/arm/include/asm/mach-generic 
  33.          
  34. #CFLAGS += -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -Wno-frame-address -Wno-format-truncation \ 
  35.         #-Wno-format-overflow -Wno-int-in-bool-context -Os --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO \ 
  36.         #-Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -Wno-unused-const-variable \ 
  37.         #-fomit-frame-pointer -fno-var-tracking-assignments -Wdeclaration-after-statement \ 
  38.         #-Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int \ 
  39.         #-Werror=strict-prototypes -Werror=date-time 
  40.   
  41. CFLAGS += -DEXPORT_SYMTAB 
  42.  
  43. # 這個一定要加 
  44. CFLAGS += -D__KERNEL__  
  45.  
  46. CFLAGS += $(INCLUDE) 
  47.  
  48. OBJS := uvc_queue.o uvc_v4l2.o uvc_video.o f_uvc.o uvc_configfs.o 
  49.  
  50. ARFLAG := -rcs 
  51.  
  52. LIB_TARGET := libxxx.a 
  53. TARGET := libxxx.hex 
  54.  
  55. all: $(TARGET) 
  56.  
  57. %.o:%.c 
  58.         $(CC) $(CFLAGS) -o $@ -c $^ 
  59.  
  60. $(TARGET): $(LIB_TARGET) 
  61.         $(CP) $(LIB_TARGET) $(TARGET) 
  62.         $(CP) -vf $(TARGET) $(KERNEL_PATH)/drivers/usb/gadget/function
  63.  
  64. $(LIB_TARGET): $(OBJS) 
  65.         $(AR) $(ARFLAG) $@ $^ 
  66.  
  67. clean: 
  68.         find . -name "*.o" | xargs rm -r 
  69.         $(RM) -vf $(LIB_TARGET) $(TARGET) 
  70.  
  71. install: 
  72.         $(CP) -vf $(TARGET) $(KERNEL_PATH)/drivers/usb/gadget/function

Makefile 參數(shù)和頭文件如何來?

事實上,整個內核打包的過程,筆者認為,編譯是最難的一步,特別是第一次接觸的時候。

對于驅動中的各符號和宏的定義,以及頭文件包含是層層套娃,根據(jù)錯誤信息定位,簡直要崩潰。

在這里,筆者建議,先參考【內核編譯參數(shù)選項】,然后在逐一刪減無關選項,這樣會方便很多。

具體操作如下:

  • 正常編譯內核:
  • touch 修改 f_uvc.c:
  • 重新編譯內核:make uImage V=1 > build.txt
  • vim build.txt 搜索f_uvc 即可看到編譯信息

使用 make V=1 參數(shù)將編譯的詳細信息輸出,包括頭文件包含順序,gcc 編譯參數(shù)選項等,然后將其添加到我們的Makefie上。最后在對我們的Makfile 做刪減。

添加到內核

  1. #kernel/drivers/usb/gadget/function/Makefile 
  2. usb_f_uvc-y    := libxxx.a                                           
  3. #obj-$(CONFIG_USB_F_UVC)  += usb_f_uvc.o 
  4. obj-y += usb_f_uvc.o 
  5. # 防止Make distclean 把所有 .a都清掉了 
  6. $(obj)/libxxx.a: $(obj)/libxxx.hex 
  7.     cp $(obj)/libxxx.hex $(obj)/libxxx.a 

編譯內核

重新編譯內核,將.a 鏈接到內核。然后燒到板子運行。

運行

實際運行,發(fā)現(xiàn)根本沒有鏈到板子去。

原因分析

查看 EXPORT_SYMBOL

打開 Module.symvers 發(fā)現(xiàn),uvc 相關的接口并沒有導出來,猜測有可能沒有成功鏈到內核。

  1. vim Module.symvers 

objdump 反匯編

使用objdump 將所有的符號表都輸出來,然后在搜索查看,進一步確認鏈接是否正確。結果發(fā)現(xiàn)也找不到任何符號信息

  1. arm-linux-gnu-objdump -Dz vmlinux > kernel.dump 

此時一個大膽的想法出現(xiàn)了,是否是被編譯器給優(yōu)化掉了?因為是靜態(tài)庫,對于庫文件來說,其本身只是一些接口,自身不能執(zhí)行調用過程。如果接口沒有人調用,那么所有相關的符號是否自動被忽略了?考慮一波對編譯鏈接的理解

分析源碼

  1. //f_uvc.c 
  2. DECLARE_USB_FUNCTION_INIT(uvc, uvc_alloc_inst, uvc_alloc); 
  3. MODULE_LICENSE("GPL"); 
  4. MODULE_AUTHOR("Laurent Pinchart"); 

這里的 DECLARE_USB_FUNCTION_INIT 很重要。我們,具體展開。

  1. #define DECLARE_USB_FUNCTION_INIT(_name, _inst_alloc, _func_alloc) \ 
  2.  DECLARE_USB_FUNCTION(_name, _inst_alloc, _func_alloc)  \ 
  3.  static int __init _name ## mod_init(void)   \ 
  4.  {        \ 
  5.   return usb_function_register(&_name ## usb_func); \ 
  6.  }        \ 
  7.  static void __exit _name ## mod_exit(void)   \ 
  8.  {        \ 
  9.   usb_function_unregister(&_name ## usb_func);  \ 
  10.  }        \ 
  11.  module_init(_name ## mod_init);     \ 
  12.  module_exit(_name ## mod_exit) 

這里看到 module_init 應該很熟悉了,對于我們上面封裝的庫來說,本質上也是一個驅動,是驅動就有對應的入口和出口。

對于內核,所有的入口都被放在 .text.init 處,加載到內核中后會按照相應順序進行初始化。

如果我們,把整個驅動封裝成一個靜態(tài)庫,DECLARE_USB_FUNCTION_INIT 屬于庫的接口,本身不會自己調用。所以內核在鏈接的過程中,發(fā)現(xiàn)沒有調用關系,就自然而然會忽略掉libxxx.a的相關符號。

知道了原因,解決方法就很簡單了。在內核中一定要存在有調用DECLARE_USB_FUNCTION_INIT的地方。

  • 方法1:手動調用。不推薦
  • 方法2:自動調用。沿用內核驅動模型。將 DECLARE_USB_FUNCTION_INIT 從靜態(tài)庫中剝離出來,其他文件打包成一個庫。

修改如下:

  1. // entry.c 
  2. #include <linux/kernel.h> 
  3. #include <linux/module.h> 
  4. #include <linux/device.h> 
  5. #include <linux/errno.h> 
  6. #include <linux/list.h> 
  7. #include <linux/mutex.h> 
  8. #include <linux/string.h> 
  9. #include <linux/usb/ch9.h> 
  10. #include <linux/usb/gadget.h> 
  11. #include <linux/usb/video.h> 
  12.  
  13. #include "u_uvc.h" 
  14. #include "f_uvc.h" 
  15.  
  16. static struct usb_function_instance *uvc_alloc_inst(void) 
  17.     return uvc_alloc_inst_callback(); 
  18.  
  19. static struct usb_function *uvc_alloc(struct usb_function_instance *fi) 
  20.     return uvc_alloc_callback(fi); 
  21.  
  22. DECLARE_USB_FUNCTION_INIT(uvc, uvc_alloc_inst, uvc_alloc); 
  23. MODULE_LICENSE("GPL"); 
  24. MODULE_AUTHOR("Laurent Pinchart"); 

重新修改Makefile

  1. usb_f_uvc-y   := entry.o libxxx.a 
  2. obj-y  += usb_f_uvc.o 
  3.  
  4. #obj-$(CONFIG_USB_F_UVC) += usb_f_uvc.o 
  5.  
  6. $(obj)/libxxx.a: $(obj)/libxxx.hex 
  7.     cp $(obj)/libxxx.hex $(obj)/libxxx.a 

這樣重新,編譯內核,就可以用了。以后只需要更新libxxx.a 即可。

總結

本文簡單介紹內核靜態(tài)庫,打包遇到的一些坑。通過一個例子,介紹內核靜態(tài)庫的封裝,以及遇到的問題。

同時也加深了對編譯和鏈接的理解。有關應用層靜態(tài)庫和內核態(tài)的庫在使用上是一樣的,不過在制作時有些許麻煩。

  • 頭文件的引用包含
  • 編譯參數(shù)選項
  • 是否成功鏈接

 

有關驅動入口的部分,不能做到庫里面,避免踩雷。折騰其他,結果發(fā)現(xiàn)是鏈接時出了問題。

 

責任編輯:武曉燕 來源: 漫談嵌入式
相關推薦

2025-10-27 01:55:00

2014-08-28 15:08:35

Linux內核

2010-01-22 11:01:04

linux內核模塊

2021-11-14 07:29:55

Linux 內核靜態(tài)追蹤Linux 系統(tǒng)

2011-08-10 15:36:26

iPhone靜態(tài)庫控件

2017-01-12 19:15:03

Linux內核調試自構proc

2022-02-08 15:15:26

OpenHarmonlinux鴻蒙

2010-01-07 17:36:38

Linux靜態(tài)庫

2023-04-10 09:44:22

內核鼠標調試鴻蒙

2016-08-23 09:17:08

LinuxD狀態(tài)TASK_RUNNIN

2025-11-17 00:00:55

2016-09-19 10:54:36

C語言靜態(tài)連接語言

2010-03-04 10:17:57

Linux動態(tài)庫

2016-10-28 09:18:47

Linux內核代碼

2021-02-20 06:08:07

LinuxWindows內核

2021-11-02 09:55:57

Linux內核內存

2012-07-31 16:06:28

Linux內核編譯

2011-06-29 17:00:26

QT 靜態(tài)編譯 Debug

2019-04-12 08:10:33

iOS靜態(tài)分析Xcode

2022-07-12 13:23:59

靜態(tài)鏈接庫可執(zhí)行文件C 目標文件
點贊
收藏

51CTO技術棧公眾號

实拍女处破www免费看| 国产免费一区二区三区| 亚洲精品国产精品乱码在线观看| 国产成人精选| 亚洲男人的天堂在线观看| av一区观看| 国产亚洲欧美在线精品| 99热在线成人| 亚洲国产精品推荐| 天天爽人人爽夜夜爽| 91高清在线观看视频| www..com久久爱| 国产精品美女久久久久av超清| 无码黑人精品一区二区| 天美av一区二区三区久久| 欧美日韩一区不卡| 久色视频在线播放| 在线观看免费高清完整| 成人三级伦理片| 国产精品国模在线| 国产大片中文字幕| 日韩欧美高清| 亚洲精品久久久久久久久| 中文字幕有码av| 福利在线免费视频| 亚洲女性喷水在线观看一区| 欧美性天天影院| 99精品久久久久久中文字幕| 日韩精品乱码av一区二区| 精品少妇v888av| 久久视频一区二区三区| 理论片一区二区在线| 欧美精品一卡两卡| 欧美性猛交久久久乱大交小说| 中文国产字幕在线观看| 日本一区二区动态图| 国内精品视频在线播放| a级片在线播放| 日本一不卡视频| 91国产一区在线| 欧美日韩偷拍视频| 欧美freesextv| 亚洲人成在线免费观看| 青青草视频网站| 精品久久亚洲| 欧美日韩精品电影| 欧美激情成人网| 麻豆免费版在线观看| 一区二区国产视频| 黄色小视频大全| 看女生喷水的网站在线观看| 国产精品美女一区二区在线观看| 久久综合一区| 天天摸天天干天天操| 成人综合在线观看| 国产成人精品福利一区二区三区 | 中文字幕乱码无码人妻系列蜜桃| 夜夜爽av福利精品导航| 久久久久久久久久av| 欧美日韩成人免费观看| 欧美黄在线观看| 欧美成人精品xxx| √天堂中文官网8在线| 天天射综合网视频| 精品激情国产视频| 99久久99久久精品国产| 欧美+日本+国产+在线a∨观看| 蜜臀久久99精品久久久无需会员 | 91蝌蚪视频在线观看| 电影网一区二区| 色av成人天堂桃色av| 狠狠热免费视频| 国产三级一区| 在线播放91灌醉迷j高跟美女| 精品亚洲视频在线| 欧洲精品99毛片免费高清观看| 日韩手机在线导航| 中国免费黄色片| 亚洲成a人片77777在线播放 | 成人福利视频在线观看| 国产免费黄色录像| 国产99精品在线观看| www.亚洲免费av| 91精品国产91久久久久久最新| 99精品视频99| 日本午夜精品一区二区三区电影| 国产一区二区在线免费视频| www.国产视频| 99久久久无码国产精品| 日韩国产在线一区| 国产原创精品视频| 亚洲一区二区三区不卡国产欧美| 你懂的av在线| 成人在线不卡| 精品久久人人做人人爱| 一卡二卡三卡四卡| 小处雏高清一区二区三区| 午夜精品一区二区三区视频免费看| 国产精品久久久久久人| 国产乱码精品一区二区三区av| 国产在线观看一区| 中文日本在线观看| 亚洲一二三专区| 高清一区二区视频| 一区二区中文字幕在线观看| 亚洲三级av在线| 国产盗摄x88av| 午夜在线精品偷拍| 91日本在线视频| 日本黄在线观看| 亚洲欧洲成人自拍| 国产精品-区区久久久狼| 人人精品久久| 精品亚洲一区二区三区在线观看| 亚洲欧美另类日本| 亚洲影音先锋| 91在线免费看网站| 国产精品一区在线看| 亚洲一区二区三区四区在线 | segui88久久综合| 91福利国产成人精品照片| 野花视频免费在线观看| 精品国产一区二区三区四区 | 欧美一区二区人人喊爽| 性少妇bbw张开| 欧美日韩精品免费观看视频完整| 国产成人精品一区二区| 粉嫩av一区二区夜夜嗨| 亚洲欧美影音先锋| 欧美日韩一区二区在线免费观看| 亚洲日本一区二区三区在线| 中文字幕日韩专区| 精品成人av一区二区在线播放| 国产在线播放一区二区三区| 日本一区二区三区四区高清视频| 丁香花视频在线观看| 91麻豆精品国产自产在线 | www.日韩在线| 中文字幕乱码免费| 成人av色网站| 亚洲欧美日韩中文在线| 日本少妇激情舌吻| 福利一区二区在线| 午夜久久久久久久久久久| 亚洲天堂1区| 亚洲嫩模很污视频| 国偷自拍第113页| 成人美女视频在线观看18| 国产欧美自拍视频| 亚洲成人1区| 波霸ol色综合久久| 91麻豆成人精品国产免费网站| 欧美国产日本视频| 天天爱天天操天天干| 欧美色就是色| 国产精品男人的天堂| 国产九色在线| 欧美日韩久久久一区| www成人啪啪18软件| 麻豆久久久久久| 亚洲一区二区自拍偷拍| 欧美男男gaygay1069| 日韩在线一区二区三区免费视频| 中文字幕第三页| 国产精品伦一区| 中日韩av在线播放| 久久久久久久久久久妇女| 成人做爰www免费看视频网站| 麻豆影视国产在线观看| 欧美一区二区视频在线观看2020| 欧美激情图片小说| 成人一区二区三区在线观看| av高清在线免费观看| 亚洲第一论坛sis| 国产成人高清激情视频在线观看| 国产三级视频在线| 538prom精品视频线放| 成年人一级黄色片| 成人丝袜视频网| 欧美激情亚洲自拍| 日韩不卡的av| 精品1区2区3区4区| 蜜桃日韩视频| 日韩电影精品| 欧美激情精品久久久久久蜜臀| 肥臀熟女一区二区三区| 91黄色在线观看| 欧美美女性生活视频| 国产91丝袜在线播放0| 日韩a在线播放| 日韩国产在线| 国产精品播放| 欧美一区久久久| 久久视频在线直播| 午夜福利一区二区三区| 欧美日韩一区二区电影| 久久精品一级片| 国产天堂亚洲国产碰碰| 免费在线观看日韩av| 老司机久久99久久精品播放免费| 偷拍盗摄高潮叫床对白清晰| 欧美成人午夜77777| 国产精品丝袜白浆摸在线| 变态调教一区二区三区| 一区二区国产精品视频| 亚洲爆乳无码一区二区三区| 欧美性猛交xxxx乱大交3| 欧美成人777| 国产欧美视频一区二区三区| 性一交一黄一片| 日韩va欧美va亚洲va久久| 国产尤物av一区二区三区| 免费久久精品| 91九色视频在线观看| 日本一道高清亚洲日美韩| 久久久人成影片一区二区三区| av小片在线| 亚洲精品www久久久| 国产精品久久久午夜夜伦鲁鲁 | 国产免费av一区二区| 亚洲欧美视频在线观看视频| av女人的天堂| av在线综合网| 性色av浪潮av| 蜜臀精品一区二区三区在线观看| 欧美大片在线播放| 欧美精品午夜| 在线看无码的免费网站| 国产在线观看91一区二区三区| 成人羞羞视频免费| 亚洲精品tv| 国产精品pans私拍| 欧美日韩国产观看视频| 欧美激情xxxxx| 欧美a在线看| 日韩在线视频观看| 成人免费高清在线播放| 精品一区二区亚洲| 日韩一级中文字幕| 精品国产一区二区三区忘忧草| 国产精品久久久久久久久毛片| 欧美日韩情趣电影| 中日韩av在线| 精品视频123区在线观看| 日韩不卡高清视频| 91福利国产精品| 波多野结衣午夜| 色综合久久88色综合天天 | 欧美性xxxxx极品少妇| 亚洲日本视频在线观看| 天天综合色天天综合| 日韩精品手机在线| 红桃av永久久久| www.国产成人| 欧美午夜xxx| www.国产一区二区| 91国在线观看| 进去里视频在线观看| 欧美日韩一区精品| 一区二区三区精| 91精品国产综合久久久久久漫画 | 欧美三级视频在线| 在线观看国产一区二区三区| 欧美日韩你懂得| 国产三级视频在线播放| 日韩欧美一二区| 免费激情视频网站| 亚洲精品中文字幕av| 欧美日本韩国一区二区| 一本色道久久88综合亚洲精品ⅰ | 26uuu精品一区二区| 性欧美13一14内谢| 中文字幕巨乱亚洲| 麻豆明星ai换脸视频| 亚洲一区二区三区三| 日韩美一区二区| 欧美日韩精品免费观看视频| jizz国产视频| 亚洲国产成人在线| 日韩欧美三级电影| 日韩啪啪电影网| 强开小嫩苞一区二区三区网站| 国产精品啊啊啊| koreanbj精品视频一区| 日韩av不卡一区二区| 99999精品| 成人av在线资源| 波多野吉衣中文字幕| 国产精品成人一区二区三区夜夜夜| 欧美日韩成人免费观看| 日韩欧美国产视频| 91久久久久国产一区二区| 亚洲国产美女久久久久| 大片免费播放在线视频| 久久97久久97精品免视看| 午夜影院在线播放| 国产噜噜噜噜噜久久久久久久久 | 欧洲一级在线观看| 精品国产欧美成人夜夜嗨| 国产白丝在线观看| 国产精品爽黄69天堂a| 加勒比久久高清| 亚洲图片都市激情| 亚洲毛片网站| 国产亚洲视频一区| 91女厕偷拍女厕偷拍高清| 91免费公开视频| 日韩欧美成人区| 国产xxxx在线观看| 亚洲天堂色网站| 国产99re66在线视频| 国产日韩欧美中文| 亚洲人成亚洲精品| 妞干网在线播放| 黄色小说综合网站| 日本性高潮视频| 午夜国产精品一区| 国产ts变态重口人妖hd| 中文字幕亚洲第一| 蜜桃视频在线观看播放| 99www免费人成精品| 日韩在线观看| 久草在在线视频| 97se狠狠狠综合亚洲狠狠| 久久国产精品波多野结衣| 欧美丰满一区二区免费视频| 黄色av网站在线免费观看| 91高清在线免费观看| www.成人网| 老汉色影院首页| 久久机这里只有精品| 国产精久久一区二区三区| 精品久久久一区| 日日躁夜夜躁白天躁晚上躁91| 久久国产精彩视频| 日韩一级特黄| 亚洲一区不卡在线| 日韩二区在线观看| 久久久久亚洲av成人无码电影| 图片区小说区区亚洲影院| 亚洲黄色片视频| 久操成人在线视频| 日韩激情综合| 久久久无码中文字幕久...| 精品中文av资源站在线观看| 黄色免费一级视频| 欧美色中文字幕| 岛国在线大片| 国产精品xxx视频| 欧美在线观看视频一区| 国产精品视频黄色| 国产日韩欧美高清在线| 手机av免费观看| 永久免费毛片在线播放不卡| 超碰这里只有精品| 亚洲二区三区四区| 麻豆freexxxx性91精品| 国产高清视频免费在线观看| 欧美精品乱人伦久久久久久| 国内外激情在线| 亚洲一区美女视频在线观看免费| 欧美.www| 亚洲国产果冻传媒av在线观看| 岛国精品视频在线播放| 经典三级在线| 国产日韩欧美在线播放| 在线中文一区| 中文字幕天堂av| 欧美午夜精品久久久久久浪潮 | 巨骚激情综合| 国产精品www色诱视频| 日韩中字在线| 中国老熟女重囗味hdxx| 亚洲国产人成综合网站| 深夜福利免费在线观看| 国产精品日韩在线| 在线精品视频在线观看高清| 高清中文字幕mv的电影| 欧美性xxxxxxx| 午夜小视频在线| 91中文字精品一区二区| 亚洲欧美日韩在线观看a三区| 97人妻人人揉人人躁人人| 91麻豆精品国产91久久久久久久久| 丁香高清在线观看完整电影视频| 欧美精品123| 国内精品伊人久久久久影院对白| 久草福利资源在线观看| 亚洲欧美国产视频| 久久综合偷偷噜噜噜色| 浮妇高潮喷白浆视频| 中文字幕精品一区二区精品绿巨人 | 男人天堂手机在线视频| 久久九九影视网| av天堂一区二区三区| 日本老师69xxx| 你懂的网址国产 欧美| 人妻精品久久久久中文字幕| 538prom精品视频线放| 国模套图日韩精品一区二区|