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

鴻蒙輕內(nèi)核M核源碼分析系列之Musl LibC

開發(fā) 前端
LiteOS-M內(nèi)核LibC實現(xiàn)有2種,可以根據(jù)需求進行二選一,分別是musl libC和newlibc。本文先學習下Musl LibC的實現(xiàn)代碼。文中所涉及的源碼,均可以在開源站點。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

LiteOS-M內(nèi)核LibC實現(xiàn)有2種,可以根據(jù)需求進行二選一,分別是musl libC和newlibc。本文先學習下Musl LibC的實現(xiàn)代碼。文中所涉及的源碼,均可以在開源站點https://gitee.com/openharmony/kernel_liteos_m 獲取。LiteOS-M內(nèi)核提供了和內(nèi)核相關的文件系統(tǒng)、內(nèi)存申請釋放接口,其他接口可以直接使用Musl提供的。我們分別來看下內(nèi)核提供的接口部分。

1、Musl LibC文件系統(tǒng)

在使用Musl LibC并且使能支持POSIX FS API時,可以使用文件kal\libc\musl\fs.c中定義的文件系統(tǒng)操作接口。這些是標準的POSIX接口,如果想了解其用法,可以參考Section 2: system calls??梢栽诰W(wǎng)頁上搜索,也可以直接把上述網(wǎng)址和函數(shù)名稱進行拼接,如對于mount()函數(shù),可以直接訪問https://linux.die.net/man/2/mount。opendir等部分函數(shù)需要在Section 3: library functions網(wǎng)頁上查看。下文快速記錄下各個函數(shù)的使用方法。

1.1 函數(shù)mount

函數(shù)mount會掛載source參數(shù)(通常是設備名稱,也可以是目錄)指定的文件系統(tǒng)到target參數(shù)指定的目錄。文件系統(tǒng)類型LiteOS-M內(nèi)核支持"fat"和"littlefs"兩種類型。"littlefs"文件系統(tǒng)不需要掛載選項參數(shù)mountflags。對于fat文件類型,掛載選項參數(shù)定義在文件third_party\musl\porting\liteos_m\kernel\include\sys\mount.h中,如MS_RDONLY、MS_NOSUID、MS_REMOUNT等等。參數(shù)data由文件系統(tǒng)進行解析,fat文件類型不需要該參數(shù);"littlefs"文件系統(tǒng)需要傳入的data參數(shù)應該為 (struct lfs_config*)指針類型。

該函數(shù)會調(diào)用components\fs\vfs\los_fs.c中的函數(shù)LOS_FsMount,后文會專門講解FS VFS。

  1. int mount(const char *source, const char *target, 
  2.               const char *filesystemtype, unsigned long mountflags, 
  3.               const void *data) 
  4.     return LOS_FsMount(source, target, filesystemtype, mountflags, data); 

1.2 函數(shù)umount和umount2

函數(shù)umount, umount2用于unmount卸載文件系統(tǒng)。參數(shù)target指定要卸載的文件系統(tǒng)。函數(shù)umount2除了卸載,還可以指定flag參數(shù)來控制卸載行為。支持的參數(shù)定義在third_party\musl\porting\liteos_m\kernel\include\sys\mount.h,如MNT_FORCE、MNT_DETACH、MNT_EXPIRE和UMOUNT_NOFOLLOW。

  1. int umount(const char *target) 
  2.     return LOS_FsUmount(target); 
  3.  
  4. int umount2(const char *target, int flag) 
  5.     return LOS_FsUmount2(target, flag); 

1.3 函數(shù)open、close和unlink

函數(shù)open用于打開一個文件或設備,可能會先創(chuàng)建文件或設備。參數(shù)path指定文件或設備的路徑,參數(shù)oflag需要使用下面的訪問模式O_RDONLY, O_WRONLY, O_RDWR中的一個,這幾個定義在文件third_party\musl\porting\liteos_m\kernel\include\fcntl.h。third_party\musl\porting\liteos_m\kernel\include\bits\fcntl.h。另外,還有些其他文件創(chuàng)建標簽或文件狀態(tài)標簽可以通過邏輯與進行指定。文件創(chuàng)建標簽有O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_TRUNC和O_TTY_INIT。其余的為文件狀態(tài)標簽,這些標簽定義文件中third_party\musl\porting\liteos_m\kernel\include\bits\fcntl.h中。可以訪問https://linux.die.net/man/2/open了解這些標簽的詳細用法。

函數(shù)open返回值為文件描述符file descriptor,會被其他函數(shù)如read, write, lseek, fcntl等使用。函數(shù)close用于關閉一個文件描述符,使fd不再引用任何文件,可被再次重用。函數(shù)unlink用于刪除path路徑指定的文件。

  1. int open(const char *path, int oflag, ...) 
  2.     va_list vaList; 
  3.     va_start(vaList, oflag); 
  4.     int ret; 
  5.     ret = LOS_Open(path, oflag, vaList); 
  6.     va_end(vaList); 
  7.     return ret; 
  8.  
  9. int close(int fd) 
  10.     return LOS_Close(fd); 
  11.  
  12. int unlink(const char *path) 
  13.     return LOS_Unlink(path); 

1.4 函數(shù)read和write

函數(shù)read嘗試從fd中讀取nbyte字節(jié)的數(shù)據(jù)到buf開始的緩存里,讀取成功時返回讀取的字節(jié)數(shù)目。函數(shù)write把buf處開始的nbyte字節(jié)數(shù)據(jù)寫入fd引用的文件里,寫入成功時返回實際寫入的字節(jié)數(shù)目。

  1. ssize_t read(int fd, void *buf, size_t nbyte) 
  2.     return LOS_Read(fd, buf, nbyte); 
  3.  
  4. ssize_t write(int fd, const void *buf, size_t nbyte) 
  5.     return LOS_Write(fd, buf, nbyte); 

1.5 函數(shù)lseek

函數(shù)lseek用于重新定位文件讀寫的偏移位置。參數(shù)whence取值為SEEK_SET、SEEK_CUR或SEEK_END,定義在文件third_party\musl\porting\liteos_m\kernel\include\fcntl.h。

  • SEEK_SET

偏移設置在offset字節(jié)處。

  • SEEK_CUR

偏移設置在當前位置加上offset字節(jié)處。

  • SEEK_END

偏移設置在文件大小加上offset字節(jié)處。

函數(shù)執(zhí)行成功時,返回值為從文件開頭的偏移字節(jié)數(shù)值。

  1. off_t lseek(int fd, off_t offset, int whence) 
  2.     return LOS_Lseek(fd, offset, whence); 
  3. }} 

1.6 函數(shù)fstat、stat和statfs

函數(shù)fstat和stat用于獲取文件的狀態(tài)state,參數(shù)參數(shù)分別是文件描述符和文件路徑。參數(shù)中的struct stat結構體定義在文件third_party\musl\porting\liteos_m\kernel\include\bits\stat.h中。

函數(shù)statfs返回文件系統(tǒng)統(tǒng)計statistics數(shù)據(jù),結構體struct statfs定義在文件third_party\musl\porting\liteos_m\kernel\include\bits\statfs.h中。

  1. int fstat(int fd, struct stat *buf) 
  2.     return LOS_Fstat(fd, buf); 
  3.  
  4. int stat(const char *path, struct stat *buf) 
  5.     return LOS_Stat(path, buf); 
  6. int statfs(const char *path, struct statfs *buf) 
  7.     return LOS_Statfs(path, buf); 

1.7 函數(shù)mkdir、opendir、readir、closedir和rmdrir

函數(shù)mkdir用于創(chuàng)建一個目錄,目錄名稱由參數(shù)path指定。參數(shù)mode指定目錄權限。創(chuàng)建成功返回0,否則返回-1。

函數(shù)opendir用于打開一個目錄流a directory stream,目錄名稱由參數(shù)dirName指定,返回一個執(zhí)行目錄劉的指針。發(fā)生錯誤時,返回NULL,并設置errno。返回值類型DIR是struct __dirstream的別名,定義在文件中third_party\musl\porting\liteos_m\kernel\include\dirent.h??梢栽L問https://linux.die.net/man/3/opendir了解更多關于該函數(shù)的信息。

函數(shù)readdir用于讀取一個目錄,返回一個struct dirent結構體指針,代表目錄流DIR *dir中的下一個目錄條目directory entry。到達目錄流尾部或錯誤時,返回NULL。結構體定義在文件third_party\musl\porting\liteos_m\kernel\include\bits\dirent.h中。 可以訪問https://linux.die.net/man/3/readdir了解更多關于該函數(shù)的信息。

函數(shù)closedir用于關閉一個目錄。函數(shù)rmdir用于刪除一個目錄,只有空目錄才會被刪除。

  1. int mkdir(const char *path, mode_t mode) 
  2.     return LOS_Mkdir(path, mode); 
  3.  
  4. DIR *opendir(const char *dirName) 
  5.     return LOS_Opendir(dirName); 
  6.  
  7. struct dirent *readdir(DIR *dir) 
  8.     return LOS_Readdir(dir); 
  9.  
  10. int closedir(DIR *dir) 
  11.     return LOS_Closedir(dir); 
  12.  
  13. int rmdir(const char *path) 
  14.     return LOS_Unlink(path); 

1.8 函數(shù)fsync

函數(shù)mkdir用于同步內(nèi)存中所有已修改的文件數(shù)據(jù)到儲存設備。可以訪問https://linux.die.net/man/3/fsync了解更多關于該函數(shù)的信息。

  1. int fsync(int fd) 
  2.     return LOS_Fsync(fd); 

1.9 函數(shù)rename

函數(shù)rename用于重命名一個文件??梢栽L問https://linux.die.net/man/3/rename了解更多關于該函數(shù)的信息。

  1. int rename(const char *oldName, const char *newName) 
  2.     return LOS_Rename(oldName, newName); 
  3.  

1.10 函數(shù)ftruncate

函數(shù)ftruncate用于截斷一個文件到指定的長度??梢栽L問https://linux.die.net/man/3/ftruncate了解更多關于該函數(shù)的信息。

  1. int ftruncate(int fd, off_t length) 
  2.     return LOS_Ftruncate(fd, length); 

2、Musl LibC內(nèi)存分配釋放

LiteOS-M內(nèi)核提供了內(nèi)存分配釋放函數(shù)。這些是標準的POSIX接口,如果想了解其用法,可以參考Section 3: library functions??梢栽诰W(wǎng)頁上搜索,也可以直接把上述網(wǎng)址和函數(shù)名稱進行拼接,如對于malloc()函數(shù),可以直接訪問https://linux.die.net/man/3/malloc。opendir等部分函數(shù)需要在網(wǎng)頁上查看。下文快速記錄下各個函數(shù)的使用方法。

1.1 函數(shù)malloc、free和memalign

函數(shù)malloc和free分別調(diào)用內(nèi)核內(nèi)存模塊的接口來實現(xiàn)內(nèi)存申請和釋放。函數(shù)memalign可以以指定的內(nèi)存對齊大小來申請內(nèi)存。

  1. void free(void *ptr) 
  2.     if (ptr == NULL) { 
  3.         return
  4.     } 
  5.  
  6.     LOS_MemFree(OS_SYS_MEM_ADDR, ptr); 
  7.  
  8. void *malloc(size_t size
  9.     if (size == 0) { 
  10.         return NULL
  11.     } 
  12.  
  13.     return LOS_MemAlloc(OS_SYS_MEM_ADDR, size); 
  14. void *memalign(size_t boundary, size_t size
  15.     if (size == 0) { 
  16.         return NULL
  17.     } 
  18.  
  19.     return LOS_MemAllocAlign(OS_SYS_MEM_ADDR, size, boundary); 

1.2 函數(shù)malloc、free和memalign

函數(shù)calloc在內(nèi)存的動態(tài)存儲區(qū)中分配nitems個長度為size的連續(xù)空間,函數(shù)返回一個指向分配起始地址的指針;如果分配不成功,返回NULL。

函數(shù)zalloc和malloc的區(qū)別是,申請成功后,對申請的內(nèi)存區(qū)域置0。函數(shù)realloc用于重新申請一塊內(nèi)存區(qū)域。

  1. void *calloc(size_t nitems, size_t size
  2.     size_t real_size; 
  3.     void *ptr = NULL
  4.  
  5.     if (nitems == 0 || size == 0) { 
  6.         return NULL
  7.     } 
  8.  
  9.     real_size = (size_t)(nitems * size); 
  10.     ptr = LOS_MemAlloc(OS_SYS_MEM_ADDR, real_size); 
  11.     if (ptr != NULL) { 
  12.         (void)memset_s(ptr, real_size, 0, real_size); 
  13.     } 
  14.     return ptr; 
  15. void *zalloc(size_t size
  16.     void *ptr = NULL
  17.  
  18.     if (size == 0) { 
  19.         return NULL
  20.     } 
  21.  
  22.     ptr = LOS_MemAlloc(OS_SYS_MEM_ADDR, size); 
  23.     if (ptr != NULL) { 
  24.         (void)memset_s(ptr, size, 0, size); 
  25.     } 
  26.     return ptr; 
  27.  
  28. void *realloc(void *ptr, size_t size
  29.     if (ptr == NULL) { 
  30.         return malloc(size); 
  31.     } 
  32.  
  33.     if (size == 0) { 
  34.         free(ptr); 
  35.         return NULL
  36.     } 
  37.  
  38.     return LOS_MemRealloc(OS_SYS_MEM_ADDR, ptr, size); 

小結

本文學習了LiteOS-M內(nèi)核Musl LibC的實現(xiàn),特別是文件系統(tǒng)和內(nèi)存分配釋放部分。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2022-01-12 10:50:23

鴻蒙HarmonyOS應用

2021-06-04 09:57:49

鴻蒙HarmonyOS應用

2022-03-11 20:23:14

鴻蒙源碼分析進程管理

2021-10-20 16:08:57

鴻蒙HarmonyOS應用

2021-05-25 09:28:34

鴻蒙HarmonyOS應用

2021-05-17 09:28:59

鴻蒙HarmonyOS應用

2021-05-08 15:14:50

鴻蒙HarmonyOS應用

2021-06-04 14:15:10

鴻蒙HarmonyOS應用

2022-01-14 08:39:47

鴻蒙HarmonyOS應用

2021-05-31 20:30:55

鴻蒙HarmonyOS應用

2022-04-13 11:02:12

鴻蒙事件模塊事件Event

2022-03-03 18:28:28

Harmony進程任務管理模塊

2021-05-11 09:54:55

鴻蒙HarmonyOS應用

2021-06-09 09:48:01

鴻蒙HarmonyOS應用

2021-05-27 09:43:56

鴻蒙HarmonyOS應用

2021-05-21 09:25:11

鴻蒙HarmonyOS應用

2021-07-06 09:45:03

鴻蒙HarmonyOS應用

2021-09-22 14:36:32

鴻蒙HarmonyOS應用

2021-12-01 15:59:22

鴻蒙HarmonyOS應用

2021-05-12 09:45:20

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

国产麻豆乱码精品一区二区三区| 欧美老女人性视频| 日本在线观看免费视频| 日韩欧美小视频| 成人网男人的天堂| 国产精品久久久久久影视| av激情在线观看| 综合亚洲色图| 91精品免费观看| 黑人糟蹋人妻hd中文字幕| 丝袜美腿美女被狂躁在线观看| 国产高清精品网站| 国产精品wwww| 日韩精品国产一区二区| 婷婷综合伊人| 亚洲欧洲国产伦综合| 丰满人妻一区二区三区大胸| 极品美女一区| 亚洲一级不卡视频| 一区二区三区四区五区精品 | 天天舔天天操天天干| 青草伊人久久| 欧美区视频在线观看| 黄色片视频在线免费观看| 国产精品剧情| 久久精品人人爽人人爽| 国产精品免费一区二区三区| 亚洲网站在线免费观看| 国产精品日韩久久久| 欧美成人性色生活仑片| 欧美美女性生活视频| 亚洲人成网亚洲欧洲无码| 日韩美女视频在线| 国产无遮挡猛进猛出免费软件| 色吧亚洲日本| 午夜久久电影网| 日韩成人三级视频| a级片国产精品自在拍在线播放| 国产欧美一区二区精品性| 激情久久av| 黑人精品一区二区三区| 国产aⅴ精品一区二区三区色成熟| 国产在线观看精品| 怡春院在线视频| 三级影片在线观看欧美日韩一区二区| 国模精品系列视频| 欧美精品成人久久| 欧美高清日韩| 欧美极品美女视频网站在线观看免费 | 色婷婷综合久久久久中文字幕1| 人妻少妇无码精品视频区| 青青草久久爱| 亚洲跨种族黑人xxx| 国产偷人妻精品一区| 日韩极品在线| 亚洲免费视频观看| 欧美黄色一级生活片| 成人vr资源| 日韩中文理论片| 日本午夜在线观看| 黑丝一区二区三区| 欧美亚洲第一页| 一级一级黄色片| 久久精品国产一区二区三| 91免费看片网站| 亚洲精品久久久狠狠狠爱| www.亚洲国产| 日本黑人久久| 久久亚洲天堂| 亚洲成av人片| 免费裸体美女网站| 成人免费黄色| 日韩欧美国产一区在线观看| 午夜免费福利影院| 精品视频免费| 免费91麻豆精品国产自产在线观看 | 91激情在线观看| 国产精品一卡二卡| 久久青青草原一区二区| 番号在线播放| 亚洲美女免费在线| 欧美 日韩 国产在线观看| 亚洲精品mv| 欧美日韩亚洲综合一区二区三区| 久久综合在线观看| 日韩欧美在线精品| 最新国产成人av网站网址麻豆| 国产性生活大片| 亚洲精品激情| 国产精品亚洲片夜色在线| 精品国产无码AV| 久久精品亚洲精品国产欧美kt∨| 日本黄色播放器| www视频在线观看| 欧美色爱综合网| 少妇一级淫免费观看| 欧美色图国产精品| 久久久久久久一| 一区二区三区免费在线| 99国产精品久久久久| 一本一道久久a久久综合精品| 欧美午夜大胆人体| 欧美日韩一区二区欧美激情| 亚洲av人人澡人人爽人人夜夜| 禁断一区二区三区在线| 欧美俄罗斯乱妇| 亚洲精品91天天久久人人| 国产精品18久久久久久vr| 清纯唯美一区二区三区| 麻豆av在线免费观看| 欧美色偷偷大香| 亚洲永久无码7777kkk| 亚洲91久久| 国产精品成人在线| 午夜国产在线视频| 一区二区三区四区在线| 性chinese极品按摩| 婷婷综合电影| 韩国三级电影久久久久久| 国产深喉视频一区二区| 亚洲国产精品99久久久久久久久| 波多野结衣乳巨码无在线| 欧美专区一区| 久久亚洲国产精品成人av秋霞| 波多野结衣av无码| 91蜜桃在线免费视频| 97在线免费视频观看| 欧美天堂一区二区| 中文字幕日韩在线视频| 一二三区免费视频| 91免费在线视频观看| 热99这里只有精品| av综合网站| 久久在线观看视频| 99re只有精品| 亚洲精品欧美专区| 在线视频观看一区二区| 亚欧美无遮挡hd高清在线视频| 国产精品免费看久久久香蕉 | baoyu135国产精品免费| 久久福利网址导航| 国产乱淫av免费| 亚洲精品成人悠悠色影视| www.成年人| 亚洲精品a级片| 91精品婷婷国产综合久久蝌蚪| 二区在线播放| 日韩亚洲欧美在线| 久草免费在线视频观看| 国产不卡在线视频| 日韩人妻无码精品久久久不卡| 91九色鹿精品国产综合久久香蕉| 欧美人与物videos| 四虎免费在线观看| 欧美日韩在线视频观看| 老牛影视av老牛影视av| 久久久久91| 亚洲国产一区二区三区在线播| jizz欧美| 欧美成人黑人xx视频免费观看| 国产浮力第一页| 亚洲狠狠爱一区二区三区| 国产成人av片| aa国产精品| 日本不卡久久| 97久久精品一区二区三区的观看方式| 久久视频免费观看| 欧洲成人一区二区三区| 一本久久精品一区二区| 久久午夜精品视频| 国产成人亚洲精品狼色在线| 成人性生活视频免费看| 三级精品视频| 国产日韩欧美自拍| 不卡av免费观看| 国产亚洲精品美女| 国产草草影院ccyycom| 亚洲国产精品久久久久婷婷884| 中文字幕一区二区久久人妻网站| 日韩电影在线免费观看| japanese在线播放| 亚洲v天堂v手机在线| 国产剧情日韩欧美| www成人免费观看| 色老头一区二区三区| 天堂成人在线观看| 欧美日本一道本在线视频| 加勒比av在线播放| 久久精品水蜜桃av综合天堂| 在线播放国产视频| 日韩精品成人一区二区在线| 日韩精品手机在线观看| 亚洲第一福利社区| 91九色偷拍| 日韩精品第一| 91a在线视频| 婷婷激情在线| 精品亚洲永久免费精品| 国产99视频在线| 色综合 综合色| 青娱乐在线视频免费观看| 天堂av在线免费| 一区二区三区四区视频精品免费 | 亚洲男人天堂网址| 亚洲精品v日韩精品| 亚洲一区二区三区黄色| 秋霞影院一区二区| 五十路熟女丰满大屁股| 亚洲mv大片欧洲mv大片| 日韩精品一区二区三区四区五区| 国产精品日韩精品在线播放 | 国产免费一区二区三区最新不卡| 欧美日韩亚洲一区二| 草视频在线观看| 国产精品视频观看| 亚洲熟妇一区二区三区| 国产成人综合精品三级| 欧美午夜aaaaaa免费视频| 亚洲一区二区三区高清不卡| 免费在线看黄色片| 欧美.日韩.国产.一区.二区| 无遮挡亚洲一区| 妖精视频一区二区三区| 激情小说网站亚洲综合网| 免费一级欧美片在线观看网站| 国产精品偷伦视频免费观看国产 | 色综合久久久久综合体桃花网| 妺妺窝人体色www在线下载| 亚洲天堂av一区| 三级黄色免费观看| 中文字幕的久久| jizz中文字幕| 国产亚洲1区2区3区| 日韩精品卡通动漫网站| 99v久久综合狠狠综合久久| 91精品啪在线观看国产| 大尺度一区二区| 又色又爽又黄18网站| 国产福利91精品一区| 亚洲天堂av一区二区| 美女视频一区二区| 亚洲一级片网站| 另类小说视频一区二区| 欧美性猛交xxx乱久交| 久久久亚洲人| 久久综合伊人77777麻豆最新章节| 噜噜噜躁狠狠躁狠狠精品视频| 国产精品50p| 美女尤物久久精品| 亚洲福利精品视频| 激情综合网激情| 三上悠亚 电影| 成人午夜视频在线观看| 麻豆精品国产传媒av| 99re视频这里只有精品| 中日韩精品一区二区三区| 久久综合九色综合欧美98| 成都免费高清电影| 国产精品毛片a∨一区二区三区| 欧美88888| 亚洲一卡二卡三卡四卡五卡| 日韩av男人天堂| 色8久久人人97超碰香蕉987| 中文天堂在线视频| 日韩一区二区在线观看视频播放| 亚洲乱码在线观看| 亚洲精品福利视频| 成人午夜电影在线观看| 久久亚洲影音av资源网 | 一区二区三区在线影院| 日本一级一片免费视频| 色偷偷成人一区二区三区91| 一级久久久久久| 欧美一区二区精品在线| 噜噜噜久久,亚洲精品国产品| 欧美精品一区男女天堂| 麻豆app在线观看| 精品国产欧美成人夜夜嗨| 国产丝袜精品丝袜| 国产精品视频导航| 爱爱精品视频| 无码免费一区二区三区免费播放| 影音先锋成人在线电影| 99精品在线免费视频| 另类中文字幕网| 亚洲一区二区三区黄色| 亚洲国产成人午夜在线一区| 麻豆视频在线观看| 日韩欧美中文免费| 国产ts变态重口人妖hd| 亚洲人成电影网站色www| a级在线观看| 日韩av123| 伊人www22综合色| 亚洲综合首页| 亚洲欧美日韩专区| 香蕉视频免费网站| 国产精品污www在线观看| 国产精品第72页| 6080日韩午夜伦伦午夜伦| 五月婷婷六月丁香| 草民午夜欧美限制a级福利片| 黑人精品一区| 国产精品国产精品国产专区蜜臀ah | 色琪琪综合男人的天堂aⅴ视频| av最新在线| 91在线免费视频| 久久精品国产www456c0m| 九九九九免费视频| 风间由美性色一区二区三区 | 九色在线免费| 97激碰免费视频| 久久精品九色| 一区精品视频| 日本三级亚洲精品| a级在线观看视频| 亚洲一区二区三区三| 国产永久免费视频| 中文字幕日本精品| 成人勉费视频| 国内成+人亚洲| 亚洲视频综合| 中文字幕一区二区三区人妻在线视频| 国产精品视频九色porn| 国产成人av免费| 国产亚洲成av人片在线观看桃| 夜鲁夜鲁夜鲁视频在线播放| 国产精品二区在线观看| 欧美日韩国产高清| 亚洲第一区第二区第三区| 国产精品美女www爽爽爽| 免费在线不卡av| 亚洲欧美日韩精品| 欧美电影免费观看网站| 久久久一本精品99久久精品66| 国产精品婷婷| 国产艳俗歌舞表演hd| 欧美日韩亚洲一区二区| 奇米影视888狠狠狠777不卡| 97精品国产aⅴ7777| 欧美交a欧美精品喷水| 黄页网站大全在线观看| 成人av在线资源| 日韩少妇高潮抽搐| 日韩av一区在线| 中国色在线日|韩| 日本精品一区二区三区视频| 日日骚欧美日韩| 东方伊人免费在线观看| 精品视频一区 二区 三区| 137大胆人体在线观看| 成人免费网站在线观看| 欧美一区综合| 精品久久久久一区二区| 精品国产电影一区| 青春有你2免费观看完整版在线播放高清| 全亚洲最色的网站在线观看| 经典一区二区| av在线免费看片| 伊人色综合久久天天人手人婷| 农村少妇久久久久久久| 欧美亚州一区二区三区| 成人精品中文字幕| 在线观看视频你懂得| 亚洲永久精品大片| 色视频免费在线观看| 国产精品高清在线| 一区二区三区午夜探花| 日韩Av无码精品| 欧美在线不卡一区| 菠萝蜜视频国产在线播放| 极品校花啪啪激情久久| 老牛影视一区二区三区| 欧美激情精品久久久久久免费| 日韩精品一区二区三区中文不卡| 热色播在线视频| 亚欧精品在线| 懂色av一区二区三区免费观看| 狠狠人妻久久久久久| 久久国内精品一国内精品| 久久精品国产亚洲5555| 91极品尤物在线播放国产| 亚洲综合免费观看高清完整版在线 | 自拍偷拍亚洲区| 91成人在线精品视频| www.色小姐com| 欧美一级精品在线| 特黄毛片在线观看| 中文字幕超清在线免费观看| 成人的网站免费观看| 丰满熟女人妻一区二区三| 欧美韩日一区二区| 欧美日韩在线观看视频小说| 欧美国产在线一区| 一本久久综合亚洲鲁鲁五月天 | 欧美裸体男粗大视频在线观看| 亚洲国产精品嫩草影院久久av| 亚洲一区二区三区三州| 日韩欧美在线国产| 免费在线中文字幕|