日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

进程的创建——fork函数

發布時間:2023/12/14 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 进程的创建——fork函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 進程的信息

  • 進程的結構
    在Linux中,一切皆文件,進程也是保存在內存中的一個實例,下圖描述了進程的結構:
  • 堆棧:保存局部變量
  • 數據段:一般存放全局變量和靜態變量
  • 代碼段:存儲進程的代碼文件
  • TSS狀態段:進程做切換時,需要保存進程現場以便恢復,一般存儲一些寄存器的值。
  • task_struct : 進程的結構體描述符,用來描述一個進程的屬性,這是一種面向對象的編程思想,task_struct的結構大致如下:
struct task_struct {long state; //* -1 unrunnable, 0 runnable, >0 stopped * 進程的狀態long counter; // 時間片long priority; //優先級long signal; //信號struct sigaction sigaction[32];long blocked;int exit_code;unsigned long start_code,end_code,end_data,brk,start_stack;long pid,father,pgrp,session,leader; //進程號,父進程號,會話等unsigned short uid,euid,suid;unsigned short gid,egid,sgid;long alarm; //警告long utime,stime,cutime,cstime,start_time;//用戶態、內核態執行時間unsigned short used_math;int tty;unsigned short umask;struct m_inode * pwd;struct m_inode * root;struct m_inode * executable;unsigned long close_on_exec;struct file * filp[NR_OPEN]; //打開的文件列表struct desc_struct ldt[3]; //ldt段struct tss_struct tss; //tss段 };

通過管理進程對應的task_struct,可以完成進程的相關操作。

  • GDT和LDT

操作系統在保護模式下,內存管理分為分段模式和分頁模式。分段模式下內存的尋址為「段基址:偏移地址」。對一個段的描述包括以下三個方面:【Base Address,Limit,Access】,他們加在一起被放在一個64bit長的數據結構中,被稱為段描述符。因此需要用64bit的寄存器去存儲段描述符,但是操作系統的段基址寄存器只能存儲16bit的數據,因此無法直接存儲64bit的段描述符,為了解決這個問題,操作系統將段描述符存放在一個全局的數組中,而段寄存器直接存儲對應的段描述符對應的下標,這個全局的數組叫做GDT

由于GDT也需要直接存在內存中,所以操作系統用GDTR寄存器來存儲GDT的基地址,因此尋 址的過程為:

1. 通過GDTR寄存器找到GDT的基地址 2. 通過段寄存器找到段描述符的索引 3. 通過GDT基地址+索引從GDT數組中找到段描述符 4. 通過段描述符基地址+偏移地址找到線性地址

至于LDT,本質上和GDT是類似的,但也有不一樣的地方,LDT本身也是一段內存,因此需要段描述符去描述它,它的段描述符存在GDT中,而LDT有LDTR寄存器,LDTR并不存儲LDT的段基址,而是一個段選擇子,是LDT的索引。

用一張圖來詮釋GDT和LDT的尋址過程:

  • 進程的狀態

進程一共有五種狀態,分別是:

  • TASK_RUNNING 運行狀態

    運行狀態表示正在運行,只有這個狀態的進程才能被執行

  • TASK_INTERRUPTIBLE 可中斷睡眠狀態

    當一個進程處于可中斷睡眠狀態時,它不會占用cpu資源,但是它可以響應中斷或者信號。如socket等待連接建立時,它是睡眠的,但是連接一旦建立就會被喚醒。這種狀態就是阻塞狀態。

  • TASK_UNINTERRUPTIBLE 不可中斷睡眠狀態

和TASK_INTERRUPTIBLE不同,處于TASK_UNINTERRUPTIBLE狀態的進程無法被中斷或者信號喚醒,假設一個進程是TASK_UNINTERRUPTIBLE狀態,你會驚奇的發現通過kill -9無法殺死該進程,因為它無法響應異步信號。這種狀態很少見,一般發生在內核態程序中,如讀取某個設備的文件,需要通過read系統調用通過驅動操作硬件設備讀取,這個過程是無法被中斷的。

  • TASK_ZOMBIE 僵死狀態

    處于TASK_ZOMBIE狀態的進程并不代表著進程已經被銷毀,此時除了task_struct,進程占有的所有資源將被釋放,之所以不釋放task_struct是因為task_struct保存著一些統計信息,其父進程可能需要這些信息。

  • TASK_STOPPED

    不保留task_struct,進程資源全部被釋放

2. 系統初始化——main函數

上面大致介紹了和進程相關的一些信息說明,本節將從kernel的main.c方法開始,分析進程的創建過程.

Linux的main.c文件,是Linux開機時內核初始化函數,在初始化的過程中,內核將創建系統的第一個進程:0號進程,0號進程不做任何操作,也不能被終止(除非系統異常或者關機),以后創建的每一個進程都是0號進程的子孫進程。

main.c的入口是main()函數,main()函數的主要實現:

void main(void){ROOT_DEV = ORIG_ROOT_DEV;drive_info = DRIVE_INFO; //省略了一段內存初始化操作mem_init(main_memory_start,memory_end); // 主內存區初始化trap_init(); // 陷阱門(硬件中斷向量)初始化blk_dev_init(); // 塊設備初始化chr_dev_init(); // 字符設備初始化tty_init(); // tty初始化time_init(); // 設置開機啟動時間 startup_timesched_init(); // 調度程序初始化(加載任務0的tr,ldtr)buffer_init(buffer_memory_end); // 緩沖管理初始化,建內存鏈表等。hd_init(); // 硬盤初始化floppy_init(); // 軟驅初始化sti(); // 所有初始化工作都做完了,開啟中斷// 下面過程通過在堆棧中設置的參數,利用中斷返回指令啟動任務0執行。move_to_user_mode(); // 移到用戶模式下執行if (!fork()) { init(); // 在新建的子進程(任務1)中執行。}for(;;) pause(); }

我們來看一看和進程管理相關的兩個初始化過程:

  • time_init()
  • static void time_init(void) {struct tm time;do {time.tm_sec = CMOS_READ(0);time.tm_min = CMOS_READ(2);time.tm_hour = CMOS_READ(4);time.tm_mday = CMOS_READ(7);time.tm_mon = CMOS_READ(8);time.tm_year = CMOS_READ(9);} while (time.tm_sec != CMOS_READ(0));BCD_TO_BIN(time.tm_sec);BCD_TO_BIN(time.tm_min);BCD_TO_BIN(time.tm_hour);BCD_TO_BIN(time.tm_mday);BCD_TO_BIN(time.tm_mon);BCD_TO_BIN(time.tm_year);time.tm_mon--; // tm_mon中月份的范圍是0-11startup_time = kernel_mktime(&time); // 計算開機時間 }

    time_init()函數主要從CMOS管中讀取一個實時時鐘的年月日時分秒等信息并保存起來,并且通過kernel_mktime()函數來計算一個startup_time作為系統的開機時間,而kernel_time()函數就是根據從CMOS讀出的信息計算出1970年1月1日到現在的一個時間。

    分析這個函數主要想介紹一下內核一個很重要的時間概念:jiffies(系統滴答)
    jiffies是系統的脈搏,或者說是系統的節拍。在內核中,系統會以一定的頻率發生定時中斷,也就是說,某個進程正在運行,運行一段時間后系統會暫停這個進程運行,然后切換到另一個進程運行,jiffies決定了系統發生中斷的頻率,因此它和進程的調度息息相關。

  • sched_init()
  • void sched_init(void) {int i;struct desc_struct * p; // 描述符表結構指針if (sizeof(struct sigaction) != 16) // sigaction 是存放有關信號狀態的結構panic("Struct sigaction MUST be 16 bytes");set_tss_desc(gdt+FIRST_TSS_ENTRY,&(init_task.task.tss));set_ldt_desc(gdt+FIRST_LDT_ENTRY,&(init_task.task.ldt));p = gdt+2+FIRST_TSS_ENTRY;for(i=1;i<NR_TASKS;i++) {task[i] = NULL;p->a=p->b=0;p++;p->a=p->b=0;p++;} }

    首先來看一個變量task[],它的定義為:

    struct task_struct * task[NR_TASKS] = {&(init_task.task), }

    在sched.c文件中,定義了一個task數組,這個數組的類型為task_struct結構體,它的最大容量NR_TASKS=64,它的初始值也就是task[0] = init_task.task。

    這個task數組的意義是:

    task是一個保存進程結構體的數組,最大容量為64,task[0]的位置保存了0號進程task_struct

    再回到sched_init()的代碼,首先定義了一個desc_struct指針,然后為0號進程設置了它的ldt段和tss段,ldt段是由數據段和代碼段構成的。然后從1開始遍歷task數組,將每個槽設置為null,并將其gdt設置為空,由于是從1開始遍歷,因此處于index=0的0號進程不會被置空。可見,sched_init()函數創建了0號進程。

    3. 進程的創建——fork()函數

    進行一系列初始化后,執行了這句代碼:

    move_to_user_mode();

    這個函數是將當前模式由內核態轉為用戶態。

    內核態:不可搶占的
    用戶態:可搶占,可以進行調度的

    也就是說,上述所有的初始化操作都是在內核態執行的,這么做的目的是,內核初始化過程是不能被中斷的,在內核態運行可以保證這一點。

    切換到用戶態以后,便開始創建進程了:

    if (!fork()) { init(); }

    這里的fork()函數,就是linux創建進程的函數,進入這個函數,它的聲明為:

    static inline _syscall0(int,fork)

    syscall是系統調用函數,就是內核自己實現的一些函數,如 read,open,chmod等,這些函數可以直接提供給開發人員調用,而調用的過程需要切換到內核態進行,因為函數調用過程中不允許被中斷。這個調用過程稱為系統調用。

    _syscall0的函數定義如下:

    #define _syscall0(type,name) \ type name(void) \ { \ long __res; \ __asm__ volatile ("int $0x80"\: "=a" (__res) \: "0" (__NR_##name)); \ if (__res >= 0) \return (type) __res; \ errno = -__res; \ return -1; \ }

    把參數替換成fork以后,是這個樣子:

    #define _syscall0(type,fork) \ type name(void) \ { \ long __res; \ __asm__ volatile ("int $0x80"\: "=a" (__res) \: "0" (__NR_FORK)); \ if (__res >= 0) \return (type) __res; \ errno = -__res; \ return -1; \ }

    這是一段匯編代碼,這段代碼的執行過程是這樣的:

  • 將_res變量和eax寄存器綁定,后面_res變量的值就是從eax寄存器讀出來的值
  • 將_NR_FORK=2 賦值給eax寄存器
  • "int $0x80"產生一個軟中斷,由于之前sched_init()函數中設置了0x80中斷服務函數:
    set_system_gate(0x80,&system_call),因此產生0x80中斷以后會調用system_call,system_call在system_call.s中定義,
  • system_call:cmpl $nr_system_calls-1,%eax # 調用號如果超出范圍的話就在eax中置-1并退出ja bad_sys_callpush %ds # 保存原段寄存器值push %espush %fspushl %edxpushl %ecx pushl %ebx movl $0x10,%edx mov %dx,%dsmov %dx,%esmovl $0x17,%edxmov %dx,%fscall sys_call_table(,%eax,4) # 間接調用指定功能C函數pushl %eax # 把系統調用返回值入棧movl current,%eax # 取當前任務(進程)數據結構地址→eaxcmpl $0,state(%eax) jne reschedulecmpl $0,counter(%eax)je rescheduleret_from_sys_call:movl current,%eax # task[0] cannot have signalscmpl task,%eaxje 3f # 向前(forward)跳轉到標號3處退出中斷處理cmpw $0x0f,CS(%esp) jne 3fcmpw $0x17,OLDSS(%esp) jne 3fmovl signal(%eax),%ebx # 取信號位圖→ebx,1位代表1種信號,共32個信號movl blocked(%eax),%ecx # 取阻塞(屏蔽)信號位圖→ecxnotl %ecx # 每位取反andl %ebx,%ecx # 獲得許可信號位圖bsfl %ecx,%ecx # 從低位(0)開始掃描位圖,看是否有1的位,若有,則ecx保留該位的偏移值je 3f # 如果沒有信號則向前跳轉退出btrl %ecx,%ebx # 復位該信號(ebx含有原signal位圖)movl %ebx,signal(%eax) # 重新保存signal位圖信息→current->signal.incl %ecx # 將信號調整為從1開始的數(1-32)pushl %ecx # 信號值入棧作為調用do_signal的參數之一call do_signal # 調用C函數信號處理程序(kernel/signal.c)popl %eax # 彈出入棧的信號值 3: popl %eax # eax中含有上面入棧系統調用的返回值popl %ebxpopl %ecxpopl %edxpop %fspop %espop %dsiret

    首先將各寄存器入棧,然后調用了關鍵的一個函數:

    call sys_call_table(,%eax,4)

    sys_call_table是一個數組,在sys.h中定義,它保存著所有系統調用的函數名,%eax就是eax寄存器的值,前面提到過0x80中斷產生之前將_NR_FORK=2加入到了eax寄存器中,因此調用的就是sys_call_table[2],也就是sys_fork函數:

    sys_fork:call find_empty_processtestl %eax,%eax js 1fpush %gspushl %esipushl %edipushl %ebppushl %eaxcall copy_processaddl $20,%esp 1: ret

    這是一段匯編代碼,首先調用了fork.c文件中的find_empty_process函數,目的在于從task進程數組中找到一個空的槽用于保存要創建的進程的task_struct,這個函數會返回進程的pid。

    testl %eax,%eax 指令作用是將call find_empty_process函數的返回值保存到eax寄存器中。隨后進行了一系列寄存器數的壓棧,最后調用了copy_process()函數:

    int copy_process(int nr,long ebp,long edi,long esi,long gs,long none,long ebx,long ecx,long edx,long fs,long es,long ds,long eip,long cs,long eflags,long esp,long ss) {struct task_struct *p;int i;struct file *f;p = (struct task_struct *) get_free_page();if (!p)return -EAGAIN;task[nr] = p;*p = *current; p->state = TASK_UNINTERRUPTIBLE;p->pid = last_pid; // 新進程號。也由find_empty_process()得到。p->father = current->pid; // 設置父進程p->counter = p->priority; // 運行時間片值p->signal = 0; // 信號位圖置0p->alarm = 0; // 報警定時值(滴答數)p->leader = 0; p->utime = p->stime = 0; // 用戶態時間和和心態運行時間p->cutime = p->cstime = 0; // 子進程用戶態和和心態運行時間p->start_time = jiffies; // 進程開始運行時間(當前時間滴答數)p->tss.back_link = 0;p->tss.esp0 = PAGE_SIZE + (long) p; // 任務內核態棧指針。p->tss.ss0 = 0x10; // 內核態棧的段選擇符(與內核數據段相同)p->tss.eip = eip; // 指令代碼指針p->tss.eflags = eflags; // 標志寄存器p->tss.eax = 0; // 這是當fork()返回時新進程會返回0的原因所在p->tss.es = es & 0xffff; // 段寄存器僅16位有效p->tss.ldt = _LDT(nr); // 任務局部表描述符的選擇符(LDT描述符在GDT中)p->tss.trace_bitmap = 0x80000000; // 高16位有效if (copy_mem(nr,p)) {task[nr] = NULL;free_page((long) p);return -EAGAIN;}set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY,&(p->tss));set_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY,&(p->ldt));p->state = TASK_RUNNING; /* do this last, just in case */return last_pid; }

    這個函數非常長,省略了一些無關代碼,主要有以下幾個重要步驟:

  • 定義了一個task_struct *p,并為其分配了內存,然后放到task數組對應的槽當中
  • 將當前進程指針賦值給p
  • *p = *current

    *current指向當前進程,也就是調用fork函數的進程,本過程中就是0號進程,*p指向要創建的進程,本過程中就是1號進程。*p=*current,這不就是將0號進程的task_struct直接賦值給了1號進程嗎?原來進程的創建第一步都是先把它的父進程拿來拷貝一份。

  • 將進程p的狀態設置為不可中斷睡眠狀態
  • p->state = TASK_UNINTERRUPTIBLE

    這么做的目的是當前進程既不能處理信號,也無法參與調度。

  • 設置task_struct特定屬性
    要創建的進程p是通過拷貝父進程task_struct而來,但是作為一個進程,它需要有自己特定的屬性,因此需要對其特定的屬性進行賦值:
  • p->pid = last_pid; // 新進程號。也由find_empty_process()得到。p->father = current->pid; // 設置父進程p->counter = p->priority; // 運行時間片值p->signal = 0; // 信號位圖置0p->alarm = 0; // 報警定時值(滴答數)p->utime = p->stime = 0; // 用戶態時間和和內核運行時間p->cutime = p->cstime = 0; // 子進程用戶態和和內核運行時間p->start_time = jiffies; // 進程開始運行時間(當前時間滴答數)p->tss.esp0 = PAGE_SIZE + (long) p; // 任務內核態棧指針。p->tss.ss0 = 0x10; // 內核態棧的段選擇符(與內核數據段相同)p->tss.eip = eip; // 指令代碼指針p->tss.eflags = eflags; // 標志寄存器p->tss.eax = 0; //eax寄存器p->tss.ldt = _LDT(nr); // 任務局部表描述符的選擇符(LDT描述符在GDT中)

    大部分屬性都容易看懂,但是有兩個地方卻暗藏玄機:

    p->tss.eax = 0; p->tss.eip = eip;

    看似很常規的兩行代碼: 將子進程的eax寄存器設置為0,將子進程eip寄存器設置為父進程的eip寄存器值。

    eax寄存器存儲著函數的返回值,而eip寄存器,存儲著cpu要去讀取的下一行指令代碼的位置,那尋根溯源一下,父進程下一行代碼是哪一行呢?

    事實上,我們正在分析的fork系統調用的代碼并不屬于父進程執行的代碼,它屬于內核態程序,真正父進程執行的代碼應該是它產生軟中斷而調用fork系統調用的下一行,也就是這個:

    #define _syscall0(type,fork) \ type name(void) \ { \ long __res; \ __asm__ volatile ("int $0x80"\: "=a" (__res) \: "0" (__NR_FORK)); \ if (__res >= 0) \return (type) __res; \ errno = -__res; \ return -1; \

    中的這一行

    if (__res >= 0)

    這也就意味著,當子進程開始運行的時候,會從這一行開始執行。

  • 設置進程的tss和ldt
  • set_tss_desc(gdt+(nr<<1)+FIRST_TSS_ENTRY,&(p->tss)); set_ldt_desc(gdt+(nr<<1)+FIRST_LDT_ENTRY,&(p->ldt));
  • 將進程p狀態改為運行狀態
  • p->state = TASK_RUNNING;

    進程創建到這里,已經為要創建的進程創建了task_struct,并完成了task_struct初始化,也設置了進程的ldt段和tss段,那么這個進程已經可以開始運行并可以參與調度了,因此將進程設置為就緒狀態。

  • 返回進程id
  • return last_pid

    就是返回子進程的id,這里返回的是一號進程的id 1。

    copy_process()函數返回了,sys_fork也就返回了,返回的值就是copy_process函數的返回值,這里就是一號進程的id=1,然后就返回到system_call執行,將各寄存器值出棧,然后0x80中斷就返回了,將切換到用戶態繼續執行0號進程的代碼,_syscall0將繼續往下執行

    #define _syscall0(type,fork) \ type name(void) \ { \ long __res; \ __asm__ volatile ("int $0x80"\: "=a" (__res) \: "0" (__NR_FORK)); \ if (__res >= 0) \return (type) __res; \ errno = -__res; \ return -1; \ }

    前面提到過_res的值就是eax,當前0號進程eax值就是sys_fork調用的copy_process()的返回值,前面提到了copy_process()返回的是子進程1號進程的進程id,也就是1。因此if條件符合,_syscall0返回1。

    到這里fork()函數執行完畢并返回了1,回到fork調用的地方

    if (!fork()) {init(); } for(;;) pause();

    由于fork()返回了1,所以這里if條件不符合,往下走到一段死循環,循環里調用了pause()函數,點開pause函數的聲明:

    static inline _syscall0(int,pause)

    啊這。。又是這玩意,看到這里立馬就懂了,pause()函數也是一個系統調用,省去中間系統調用的過程,直接來到pause調用的函數:

    int sys_pause(void) {current->state = TASK_INTERRUPTIBLE;schedule();return 0; }

    與前面fork系統調用不同的是,pause系統調用是c語言實現的。pause先將進程狀態設置為可中斷睡眠狀態,然后進行了一次schedule()也就是進行了一次進程調度,由于當前只有0號和1號兩個進程,所以進程調度的結果肯定是由0號進程切換到1號進程,至于進程的調度和進程的切換,后面會有詳細介紹這里就不展開了。

    現在正在運行的是1號進程,cpu就會找到gdt找到1號進程的ldt,就會讀取1號進程的eip寄存器去讀取指令。現在重點來了,我們在介紹0號進程fork1號進程的時候提示過,當時0號進程將自己的eip寄存器值賦給了1號進程,所以1號進程eip寄存器存儲的下一行代碼是:

    if (__res >= 0)

    _res是eax寄存器的值,而fork的時候0號進程將1號進程的eax寄存器值得設置為了0

    p->tss.eax = 0;

    因此if條件也是符合的,就將_res 返回了,返回到哪里了呢?返回的肯定是fork()函數被調用的地方,也就是:

    if (!fork()) {init(); } for(;;) pause();

    看到這你可能有點懵逼了,怎么又到這來了,0號進程不是已經執行過一次了嗎,又來。。

    但是和之前不同的是,這里的fork()返回的_res值是0,是符合if條件的,然后會執行init()。。

    這就是fork()函數很神秘的地方,它實現了一個函數"return了兩次",一次是父進程返回,一次是子進程返回。

    至于init()函數,里面涉及了一些shell初始化,tty0初始化,輸入輸出設備初始化操作,跟進程的創建沒有太大的關系,就不繼續展開了。

    4. 總結

    本文以0號進程創建1號進程為例,分析了fork()函數詳細的過程,有以下:

  • sched_init()定義了task[64],并將第0個位置保存0號進程task_struct,隨后0號進程被創建
  • 從內核態切換到用戶態,開始運行0號進程
  • 0號進程調用fork()系統調用,產生一個0x80軟中斷,調用了sys_fork函數
  • sys_fork先為1號進程分配了id,然后調用了copy_process函數
  • copy_process函數將0號進程的task_struct賦值給1號進程,然后設置了1號進程特定的屬性,并設置了eip和eax寄存器
  • 1號進程創建完畢,返回0號進程執行,0號進程調用pause()休眠,進程調度到了1號進程執行
  • 1號進程返回_res=0,然后執行init()
  • 總結

    以上是生活随笔為你收集整理的进程的创建——fork函数的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    在线看片成人 | 天天操天天干天天操天天干 | 国内精品在线观看视频 | 国产黄色精品在线观看 | 91新人在线观看 | 九九九九色 | 超碰在线97国产 | 夜夜嗨av色一区二区不卡 | 成人黄色资源 | 国产精品一区二区三区四区在线观看 | 91精品色 | 久久久国产精品电影 | 在线观看黄色 | 欧美日在线 | 狠狠操影视 | 在线免费色 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 天天色天天草天天射 | 蜜臀av网站| 欧美日韩精品在线 | 999成人国产 | 亚洲欧洲精品久久 | 色婷婷成人 | 日韩免费一区 | 久久免费黄色大片 | 国产精品专区h在线观看 | 国产精品初高中精品久久 | 精品久久一二三区 | 成人97人人超碰人人99 | 中文字幕电影在线 | 亚洲精品视频在线观看视频 | 亚洲精品国产精品乱码不99热 | 免费v片| 久久精品久久久精品美女 | 久久国产精品久久精品 | 成人欧美日韩国产 | 亚洲午夜久久久久久久久 | 美女天天操 | 精品福利视频在线观看 | 99久久一区 | 国产亚洲永久域名 | 99久久婷婷国产精品综合 | 狠狠躁天天躁 | 欧美亚洲成人免费 | 夜色资源站国产www在线视频 | 粉嫩av一区二区三区入口 | 免费成人av在线看 | 久久久久久电影 | 欧美日本三级 | 五月婷婷六月综合 | 欧美色一色 | 亚洲视频播放 | 日本女人逼 | 日韩精品视 | 五月婷在线播放 | 国产精品国内免费一区二区三区 | 久久久国产一区二区 | 一区 二区电影免费在线观看 | 日本中文字幕久久 | 国产中文字幕网 | 亚洲国产资源 | 91免费高清观看 | 一区二区三区四区久久 | 久久久久影视 | 国产九九热 | 911av视频| 日本在线观看一区二区三区 | 国产亚洲精品久久久网站好莱 | 亚洲视频在线免费看 | 在线观看一区二区精品 | 91久久爱热色涩涩 | 国产精品久久久久久久久久久久午夜片 | 免费观看成人网 | 久久观看免费视频 | 99久久精品久久亚洲精品 | 手机成人在线电影 | 久久久受www免费人成 | 97天堂 | 久草在线视频免费资源观看 | 久久精品这里热有精品 | 日韩在线看片 | 亚洲国产精品久久 | 又大又硬又黄又爽视频在线观看 | 夜色成人av| 成av在线 | 日日碰狠狠躁久久躁综合网 | 日韩久久久久久久 | 国产免费二区 | 欧美成人h版 | 日韩午夜网站 | 欧美日韩在线精品 | www.天天干.com| 日韩资源在线观看 | 狠狠躁天天躁 | av免费在线观看1 | 成人黄色电影在线观看 | 黄色网www| 天天操天天色综合 | av线上看 | 亚洲精品乱码久久久久久蜜桃91 | 欧美成年网站 | 午夜丰满寂寞少妇精品 | 97视频资源 | 中文字幕色播 | 深爱激情开心 | 91麻豆精品国产91久久久更新时间 | 六月色| 黄色av网站在线观看免费 | 国产色婷婷在线 | 国产生活一级片 | 欧美成年黄网站色视频 | 婷婷久久五月天 | 色综合天天综合在线视频 | 91在线网址| 夜夜骑日日操 | 国产成人一区二区三区 | 久久久久久毛片 | 欧美成人日韩 | 不卡国产在线 | 天天碰天天操 | 91探花国产综合在线精品 | 国产伦精品一区二区三区免费 | 黄色网址a| 蜜臀av在线一区二区三区 | 亚洲一区美女视频在线观看免费 | www欧美色| 久久成人国产精品 | 国产免费午夜 | 国产精国产精品 | 日日日日干 | 久久久久一区二区三区 | 91丨九色丨国产丨porny精品 | 日韩啪啪小视频 | 美女精品在线观看 | 狠狠干成人综合网 | 18+视频网站链接 | 国产精品片 | 欧美美女视频在线观看 | www亚洲视频 | 日本黄色免费看 | 丰满少妇高潮在线观看 | 99视频在线精品免费观看2 | 国产一区二区影院 | 亚洲欧美成人综合 | 啪啪肉肉污av国网站 | 狠狠操狠狠 | 黄色软件在线观看免费 | 国产日本在线观看 | www.99热精品 | 日韩在线高清免费视频 | 91精品色| 日韩欧美在线视频一区二区三区 | 激情网综合 | 欧美一区二区在线刺激视频 | 天天干一干 | 日三级在线 | 丁香久久婷婷 | 午夜精品一区二区国产 | 婷婷丁香av| 久久久国产精品亚洲一区 | 开心激情久久 | 91视频麻豆视频 | 精品久久久影院 | 欧美韩国日本在线 | 日韩成人欧美 | www免费看 | 热re99久久精品国产99热 | 国产黄色成人av | 国产一线二线三线在线观看 | 在线视频一二三 | 亚洲成人xxx| 欧美精品一级视频 | 国产中文字幕一区二区三区 | 狠狠亚洲 | 五月激情综合婷婷 | 国产精成人品免费观看 | av女优中文字幕在线观看 | 啪啪av在线 | 91精品国产综合久久福利 | 国产 欧美 日本 | 免费观看www小视频的软件 | 色吧久久 | 天天看天天操 | 久久久久在线观看 | 成人性生交大片免费看中文网站 | 午夜丁香视频在线观看 | 国产精品嫩草69影院 | 人人玩人人添人人澡97 | 久久久久免费看 | 最近中文字幕久久 | 97超碰在线免费 | 91漂亮少妇露脸在线播放 | 免费视频你懂的 | 人人舔人人干 | 精品视频123区在线观看 | 久草精品在线播放 | 97在线看| 一本一本久久a久久精品牛牛影视 | 国产精品视频地址 | 91免费黄视频 | 国产在线视频一区二区三区 | 国产最新精品视频 | 香蕉视频网站在线观看 | 欧美日韩中文国产一区发布 | 久久精选 | 少妇资源站 | 国产亚洲一区 | 99热精品国产一区二区在线观看 | 99久久99 | 亚洲国产精品一区二区久久,亚洲午夜 | 午夜精品一区二区三区视频免费看 | 国产精品入口麻豆 | 91福利小视频 | www.黄色片.com | 欧美在线视频一区二区 | 国产免费久久av | 福利二区视频 | 久久久久国产一区二区 | 午夜视频99| 欧美精品被 | 五月天婷亚洲天综合网鲁鲁鲁 | 97成人资源站| 日韩午夜高清 | 日韩高清在线不卡 | 五月综合在线观看 | 久久久av免费| 狠狠ri| 久久影院午夜论 | 国产91aaa| 精品久久久久一区二区国产 | 黄色成年片 | 九九爱免费视频在线观看 | 日韩成人精品在线观看 | 国产免码va在线观看免费 | 91成年人网站 | 国产精品电影一区 | 亚洲精品国产精品国 | 999免费视频 | 免费在线播放视频 | 婷婷五天天在线视频 | 亚洲综合小说 | 在线www色 | 美女视频久久 | 999久久久久久久久6666 | 日韩 国产| 日本精品久久久一区二区三区 | 97韩国电影| 最新av网址大全 | 九九久久久久久久久激情 | 国产三级国产精品国产专区50 | 亚洲区二区 | 国产a级片免费观看 | 精品久久久久久综合日本 | 中文 一区二区 | 国产护士hd高朝护士1 | 97理论电影 | 亚洲春色成人 | 天天操天天舔天天爽 | 欧美日韩性视频 | 国产淫片免费看 | 粉嫩一区二区三区粉嫩91 | 美女视频黄色免费 | 免费黄色网址大全 | 高清一区二区三区av | 婷婷色av| 日韩免费电影一区二区三区 | 午夜91视频 | 日韩精品在线免费播放 | 98涩涩国产露脸精品国产网 | 欧美一级电影片 | 精品一区二区在线看 | 免费观看一级视频 | 在线视频一区二区 | 久久久精品国产免费观看一区二区 | 2023年中文无字幕文字 | 色多多视频在线 | 五月精品 | 免费成视频 | 国产手机av| 免费大片黄在线 | av免费在线网站 | 成人av电影在线 | 国产精品免费久久久久影院仙踪林 | 在线观看视频日韩 | www.99av| 中文字幕丰满人伦在线 | 久久久久免费精品视频 | 欧美九九九 | 超碰av在线免费观看 | 成人夜晚看av | 国产精品久久久久久久久久久久冷 | 国产婷婷一区二区 | 91av小视频 | 久久久蜜桃一区二区 | 日韩免费高清在线观看 | 日韩videos高潮hd | 亚洲综合视频在线观看 | 国产欧美精品在线观看 | 久久国产精品99久久人人澡 | 天天看天天干 | 国产字幕在线播放 | 久久精品爱视频 | 日本护士三级少妇三级999 | 成年人免费在线观看 | 在线观看黄网站 | 亚洲欧美精品一区 | 国产免费一区二区三区最新 | 久久久国产精品麻豆 | 欧美五月婷婷 | 日韩精品一区二区三区免费观看视频 | 国产成人精品一区二区三区在线观看 | 狠狠色丁香久久婷婷综合丁香 | 午夜性色 | 91传媒在线看 | 精品在线免费视频 | 色香蕉在线视频 | 国产在线p | 欧美片一区二区三区 | 99国产高清| 国产精品久久久久毛片大屁完整版 | 成人毛片久久 | 久久久精品网站 | 色噜噜在线观看视频 | 免费视频一区二区 | 国产精品一区二区久久 | 亚洲国产精品传媒在线观看 | 中文字幕一区二区在线播放 | 麻豆传媒在线免费看 | 久久精品理论 | 天天做天天看 | 波多野结衣在线中文字幕 | 成年人免费看片网站 | 人人超碰在线 | 国产乱对白刺激视频不卡 | 三级黄色理论片 | 亚洲乱码中文字幕综合 | 欧美乱淫视频 | 婷婷狠狠操 | 国产视频精品在线 | 欧美成人黄色片 | 欧美日韩精品在线 | 亚洲人成网站精品片在线观看 | 日日摸日日爽 | 日本女人的性生活视频 | 成人一级在线 | 免费看国产精品 | 久久五月天色综合 | 91精选在线观看 | 免费视频你懂得 | 欧美国产精品久久久久久免费 | 丁香六月激情婷婷 | 成人黄色小说网 | 中文字幕在线日本 | 日韩成年视频 | 亚洲黄色一级电影 | 日本黄色免费看 | 九九九九九九精品 | 激情视频在线观看网址 | 久久只精品99品免费久23小说 | 日韩中文字幕国产 | 日韩免费二区 | 在线免费观看国产黄色 | 国产精品视频内 | 亚洲精品99 | 亚洲国产电影在线观看 | 超碰在线人人艹 | 欧美激情视频一二区 | 久久理论片 | 中文字幕观看av | 免费av视屏 | 国产乱对白刺激视频不卡 | 午夜精品久久久久久久99无限制 | 99精品一区二区 | 91人人网| 久久香蕉电影 | 成全在线视频免费观看 | 国产精品久久久久久久99 | 亚洲黄色一级视频 | 亚州视频在线 | 91综合久久一区二区 | 青青久草在线视频 | 精品二区视频 | 国产在线观看一 | 国产精品美女久久久久久网站 | 日本成人黄色片 | 午夜精品视频一区二区三区在线看 | 久久久久国产成人免费精品免费 | 国产成人精品久久二区二区 | 国产高清视频在线播放 | sm免费xx网站 | av怡红院 | 伊人五月 | 日韩欧美一区二区在线观看 | 久99热| 99这里有精品 | 精品国产免费久久 | 四虎国产 | 国产伦精品一区二区三区无广告 | 久久久精选 | 三上悠亚在线免费 | 日本最新中文字幕 | 国产一区二区在线免费观看 | 久久综合狠狠综合久久综合88 | 精品国产乱码久久 | 国产91精品一区二区绿帽 | 丁香婷婷综合激情五月色 | 97超在线 | 久久精品国产亚洲a | 国产毛片aaa | 精品一区二区在线看 | 青春草国产视频 | 最近最新最好看中文视频 | 中文字幕色婷婷在线视频 | 日韩欧美视频在线播放 | 日韩精品久久久久久久电影竹菊 | 99这里只有| 久久免费视频在线观看6 | 国产91免费在线 | 日韩一区二区三区免费电影 | 欧美日韩激情视频8区 | 亚洲黄色大片 | 91av视频网站 | 国产韩国日本高清视频 | 亚洲精品色视频 | 超碰成人免费电影 | 久久经典国产 | 久久久久免费 | 91人人网| 黄www在线观看 | 国产小视频你懂的在线 | 亚洲国产精品日韩 | 久久久久女人精品毛片 | 中文字幕在线观看完整版电影 | 黄色毛片在线观看 | 国产精品久久久999 国产91九色视频 | av成人免费在线看 | 超碰激情在线 | 亚洲精品综合欧美二区变态 | 黄污视频网站大全 | 五月婷婷综合激情 | 久久国产精品99久久久久 | 五月婷婷香蕉 | 亚洲精品乱码久久久久久9色 | 成人一级片在线观看 | 色婷婷视频在线观看 | 日韩.com| 97在线影视| 国产字幕在线观看 | 日韩电影在线一区 | 亚洲精品黄色在线观看 | 一区二区视频在线播放 | 亚洲国产午夜精品 | 91爱爱网址 | 欧美日产在线观看 | 色综合天天狠狠 | 欧美日韩国产精品一区二区亚洲 | 国产成人99久久亚洲综合精品 | 久久久精品一区二区三区 | 欧美日韩裸体免费视频 | 国产亚洲成人网 | 在线韩国电影免费观影完整版 | 99夜色| 国产一级片免费播放 | 日韩精品电影在线播放 | 国产正在播放 | 天天亚洲综合 | 五月天中文在线 | 日本久久久久久久久 | a天堂一码二码专区 | 五月天网站在线 | 欧美性生活久久 | 国产精品女主播一区二区三区 | 毛片网站免费 | 在线视频 你懂得 | 天天操天天射天天操 | 国产午夜精品一区二区三区在线观看 | 午夜视频二区 | 国产精品av久久久久久无 | 美女国产| 黄av免费在线观看 | 亚洲精品国产精品久久99 | 热久久精品在线 | 婷婷色网站 | 伊人久久婷婷 | av片在线看| 日本中文字幕一二区观 | 国产乱码精品一区二区三区介绍 | 色婷婷六月 | 久久亚洲美女 | 伊人久久av | av中文字幕免费在线观看 | www.色就是色 | 精品国产一区二区三区久久影院 | 欧美一级片免费播放 | 国产亚洲精品久久 | 在线天堂中文www视软件 | 久久综合日 | 久久久官网 | 九九久久精品视频 | 91免费在线播放 | 丁香激情网| 免费在线看成人av | 激情av在线资源 | 狠狠ri| 国产麻豆精品传媒av国产下载 | 手机av片 | 久久久久久看片 | 毛片一区二区 | 日韩美女免费线视频 | www.天天综合 | 亚洲一区二区视频在线播放 | 亚洲综合视频在线 | 天天干天天干天天操 | 六月丁香在线视频 | 国产自偷自拍 | 国产成人一二三 | 久久er99热精品一区二区三区 | 最新国产视频 | 高清久久久 | 久草精品视频在线播放 | 日韩三级视频在线观看 | 国产一级久久久 | www九九热| 五月天婷亚洲天综合网鲁鲁鲁 | 免费观看一级一片 | 亚洲精品国偷拍自产在线观看 | 成人黄色毛片 | 精品欧美在线视频 | 国产在线观看av | 高清免费av在线 | 91mv.cool在线观看 | 黄色三级久久 | 欧美性高跟鞋xxxxhd | 在线观看完整版 | 亚洲三区在线 | 精品在线一区二区 | 亚洲精品在线一区二区三区 | av亚洲产国偷v产偷v自拍小说 | 午夜黄色 | 欧美日韩视频精品 | 日韩欧美一区二区三区免费观看 | 免费看特级毛片 | 久久免费视频播放 | 精品国产一二三四区 | 欧美aaaxxxx做受视频 | 久久久久久久久久毛片 | 91福利视频网站 | 亚洲精品乱码久久久久久写真 | 精品国产一区二区三区日日嗨 | 韩国精品福利一区二区三区 | 五月婷婷色综合 | 日韩精品免费在线视频 | 成人影视片 | av九九| 久草精品视频在线观看 | 欧美日韩一区二区在线 | 久久综合福利 | 麻豆久久久 | 91你懂的 | 亚洲国产成人在线 | bayu135国产精品视频 | 成人午夜性影院 | 久久九九免费 | 色欧美视频 | 又色又爽又激情的59视频 | 日韩在线观看中文字幕 | 日本高清中文字幕有码在线 | 中文字幕一区二区在线观看 | 99re6热在线精品视频 | 在线观看免费一区 | 国产美女无遮挡永久免费 | 欧美精品乱码久久久久久按摩 | 欧美一区二区在线 | 久精品视频在线观看 | 处女av在线| 国产91大片 | 国语自产偷拍精品视频偷 | www四虎影院 | 91精品国产网站 | 日本精品久久久久影院 | 久久免费毛片视频 | 极品国产91在线网站 | 久久www免费人成看片高清 | 国产麻豆果冻传媒在线观看 | 日韩视频免费观看高清完整版在线 | 婷婷在线播放 | www.久草.com | 狠狠狠色丁香婷婷综合久久五月 | 国产精品一区二区三区视频免费 | 久久久久久国产精品久久 | 国产精品 日韩精品 | 国产理论影院 | 色综合天天综合网国产成人网 | 色婷婷成人| 国产无套一区二区三区久久 | 国产视频亚洲 | 在线观看成人 | 亚洲成年人av | 久久久久久久久久久国产精品 | 综合天堂av久久久久久久 | 国产精品日韩久久久久 | 91成人精品一区在线播放69 | 国产精品久久久久婷婷二区次 | 综合av在线| 激情五月婷婷综合网 | 久久国产色 | 久99久中文字幕在线 | 欧美欧美| 日韩欧美精品一区二区三区经典 | 亚洲乱码国产乱码精品天美传媒 | 91成人免费看 | 精品久久久久久久久久岛国gif | 日本精品在线看 | 亚洲国产精品资源 | 免费看污污视频的网站 | 新版资源中文在线观看 | 久草在线视频首页 | 成人免费观看在线视频 | 9在线观看免费高清完整版在线观看明 | 国产一区二区免费在线观看 | 狠狠色丁香婷婷 | 综合久久综合久久 | 奇米网在线观看 | 国产一级二级三级在线观看 | 免费在线成人 | 在线观看视频黄 | 精品一区二区三区香蕉蜜桃 | 国产精品igao视频网入口 | 九九天堂 | www.久久爱.cn| 日韩视频在线不卡 | 亚洲韩国一区二区三区 | 91在线中文 | 一区二区三区精品久久久 | 国产电影黄色av | 国产丝袜制服在线 | 一区二区三区四区在线 | 国产系列在线观看 | 最新国产精品拍自在线播放 | 超碰成人网 | 日本超碰在线 | 色婷av | 免费观看丰满少妇做爰 | 国产精品久久久久久久久久久久久久 | 精品视频在线观看 | 密桃av在线 | 欧美在线视频不卡 | 日批视频在线观看免费 | 97超碰香蕉 | 久久久www成人免费毛片麻豆 | 天天插伊人| 成人91在线 | 最近中文字幕在线中文高清版 | av综合网址 | 国产精品h在线观看 | 亚洲激情综合 | 日韩精品中字 | 日韩城人在线 | 人人dvd| 久久伊人婷婷 | 黄色成人91| 日韩一区二区三 | 国产一区在线看 | 免费a视频在线观看 | 久久人人97超碰精品888 | 97超级碰 | 波多野结衣动态图 | 在线中文字幕电影 | 国产精品无 | 国产剧在线观看片 | 人人艹视频 | 精品在线一区二区 | 亚洲一级特黄 | 黄色三几片| 天天干天天玩天天操 | 91久久久久久久一区二区 | 国产精品久久久久毛片大屁完整版 | 欧美另类重口 | 日韩av综合网站 | 一区二区三区在线观看免费 | 成人wwwxxx视频 | 97超碰在线资源 | 色99之美女主播在线视频 | 中文字幕色婷婷在线视频 | 91看成人| 99精品视频免费全部在线 | 免费日韩三级 | 精品福利av| 久久久久久久久久久国产精品 | 射综合网 | 亚洲高清网站 | 久久综合狠狠综合久久激情 | 欧美日韩一区二区免费在线观看 | 欧美精品久久久久久久久免 | 91高清在线看 | 操操操日日 | 欧美一级片在线播放 | 欧美小视频在线 | 亚洲综合网站在线观看 | 四虎影视成人精品国库在线观看 | 黄色三级免费网址 | 国产成人综合在线观看 | 久久影院精品 | 日日操日日干 | 国产中文字幕亚洲 | 色综合激情久久 | 欧美视频www | av一区二区三区在线 | 欧美在线一二区 | av+在线播放在线播放 | 欧美-第1页-屁屁影院 | 最近日本中文字幕 | 日韩一区视频在线 | 国产在线观看一区 | 国产免费国产 | 麻豆视传媒官网免费观看 | 91麻豆免费看 | 国产麻豆果冻传媒在线观看 | 在线视频第一页 | 综合国产在线观看 | 亚洲日本一区二区在线 | 国产亚洲精品综合一区91 | 精品一区 在线 | 久久精品4 | 久久久.com| 黄色成人免费电影 | 五月天亚洲综合 | 狠狠操精品 | 视频在线观看日韩 | 韩国精品视频在线观看 | 国产中文欧美日韩在线 | 99在线视频观看 | 狠狠插狠狠操 | 国产麻豆视频网站 | 日韩一区正在播放 | 国产日产高清dvd碟片 | 久久99日韩 | 视频在线91 | 成人一区二区三区中文字幕 | 在线久草视频 | 婷婷色 亚洲 | 国产精品久久久久久久久久 | 国产一区电影在线观看 | 午夜精品久久久久99热app | 国产大片黄色 | 中文字幕在线视频第一页 | 国产一级片视频 | 欧美三级免费 | 日韩视频一区二区三区 | 成人在线播放av | 亚洲国产高清视频 | 国产中文欧美日韩在线 | 欧美成人精品欧美一级乱黄 | 国产人成精品一区二区三 | 精品女同一区二区三区在线观看 | 96久久精品 | 亚洲精品一区二区18漫画 | 天天操操操操操操 | 99热在线国产 | 国产高清综合 | 国产色视频123区 | 亚洲理论在线观看电影 | 久久成人欧美 | 91视频免费视频 | 国产高清视频在线观看 | 日本午夜免费福利视频 | 在线视频a | 最新中文字幕在线播放 | 日韩精品久久久免费观看夜色 | 丁香婷婷激情国产高清秒播 | 久久久亚洲精华液 | 97精品伊人 | 99精品一级欧美片免费播放 | 亚洲一二视频 | 精品视频成人 | 日韩三级视频在线看 | 国产成人久久精品一区二区三区 | 欧美一级免费片 | 精品久久久久久久久久久院品网 | 久久影视一区二区 | 免费av观看网站 | 综合网在线视频 | 91在线视频免费观看 | 日本字幕网 | 一级黄色片在线免费看 | 国产精品久久久久久久久久免费 | 婷婷 综合 色| 天天摸天天舔天天操 | 精品亚洲男同gayvideo网站 | 人人爽人人澡 | 精品国产乱码久久久久久三级人 | 国产精品一区在线 | 国产一在线精品一区在线观看 | 黄色电影小说 | 99精品在线免费 | 在线观看国产 | 精品国产理论 | 国产字幕在线观看 | 99资源网 | 久久综合狠狠综合 | 国产伦精品一区二区三区无广告 | 欧美日本不卡视频 | 亚洲国内精品 | 操操综合| 丁香六月婷| av大片免费| 国产色就色| 色婷婷丁香 | 欧美网址在线观看 | 国产精品久久久久久久毛片 | www.亚洲激情.com | 99视频一区二区 | 国产h在线播放 | 91精品第一页 | 国产精品乱码久久久久 | 精品久久视频 | 国产黄色一级大片 | 亚洲黄色在线观看 | 首页av在线 | 久草在线在线 | 波多野结衣动态图 | 毛片网站免费在线观看 | 成人在线视频网 | 丁香色婷 | 天天操天天吃 | 97超碰人人模人人人爽人人爱 | 精品久久精品久久 | 久久影视中文字幕 | 成人动漫精品一区二区 | 午夜在线免费观看 | 国产精品日韩高清 | 久热超碰| 亚洲国产欧美在线人成大黄瓜 | 久久久久久久久久久网站 | 99精品一区二区三区 | 99久高清在线观看视频99精品热在线观看视频 | 久久久久久久久久久久国产精品 | 亚洲九九爱 | 天躁狠狠躁 | 欧美巨大荫蒂茸毛毛人妖 | 天天曰夜夜操 | 久久久久国产成人免费精品免费 | 精品国产乱码久久久久久天美 | 亚洲精品18日本一区app | 中文字幕综合在线 | 99久久精品国 | 色综合天天视频在线观看 | 激情开心站 | 国产精品久久网站 | 国产精彩视频一区二区 | 久久国内视频 | 婷婷射五月| 国产视频日韩视频欧美视频 | 韩日精品中文字幕 | 欧美一级视频免费 | 中文字幕在线观看视频网站 | 91av蜜桃| 午夜精品久久久 | 久久久激情视频 | 日韩理论片在线观看 | 正在播放亚洲精品 | 亚洲免费专区 | 久久精品国产成人精品 | 六月激情网| 欧美精品久久久久性色 | 久久精品福利视频 | 日韩理论片在线 | 在线观影网站 | 国产麻豆精品95视频 | 国产精品a成v人在线播放 | 国产精品一区二区免费视频 | 美女网站在线播放 | 五月激情片 | 人人澡超碰碰 | 国产色在线 | 国语精品视频 | 欧美精品在线观看免费 | 精品一区二区综合 | 久草www| 亚洲天堂在线观看完整版 | 欧美成人亚洲成人 | 欧美日韩在线观看一区 | 在线之家官网 | 久久五月婷婷丁香 | 久久精品一区二区 | 中文字幕av在线播放 | 国产精品久久久久久久久软件 | 国产.精品.日韩.另类.中文.在线.播放 | 国产精品高清在线 | 奇米影视777四色米奇影院 | 色福利网| 韩国一区二区三区在线观看 | 色婷婷精品大在线视频 | 九九热只有这里有精品 | 日韩乱色精品一区二区 | 91成人观看 | 国产精品99久久久精品免费观看 | 美女视频又黄又免费 | 欧美日韩一区二区三区免费视频 | 日本3级在线观看 | 亚洲视频综合 | 国产 日韩 在线 亚洲 字幕 中文 | 久久久久日本精品一区二区三区 | 天天插综合 | 国产成人精品一区在线 | 欧美va日韩va | www.99久久.com | 成人黄色大片在线免费观看 | 亚洲免费av网站 | 亚洲精品一区二区在线观看 | 久久国产免费 | 国产精品高潮呻吟久久av无 | 欧美精品乱码99久久影院 | 国产精品区一区 | 91毛片在线 | 国产日韩精品在线观看 | 久久视频在线观看中文字幕 | 69xx视频| 久久不色 | 高清不卡一区二区三区 | 久草网视频 | 91麻豆精品国产91久久久使用方法 | 亚洲精品国产精品国自产观看浪潮 | 亚洲视频免费在线观看 | 国产 日韩 欧美 中文 在线播放 | 日日夜夜av | 亚洲视频六区 | 久久国产麻豆 | 黄色影院在线免费观看 | 国产精品久久久久久久免费观看 | 国产美女在线观看 | 久久任你操 | 麻豆视频免费版 | 亚洲精品男人天堂 | 久久第四色 | 日韩欧美在线观看 | 69xxxx欧美 | 中文字幕在线观看你懂的 | 91在线精品秘密一区二区 | 亚洲精品综合在线观看 | 一区二区视频欧美 | 国产不卡一区二区视频 | 九九爱免费视频 | 中文字幕你懂的 | 去看片 | 亚洲精品男女 | 中文字幕亚洲在线观看 | 久草视频在线免费播放 | 日韩成人精品在线观看 | 中文字幕中文字幕在线中文字幕三区 | 91视频a | 808电影免费观看三年 | 国产 视频 高清 免费 | 久久综合久久久久88 | 免费观看高清 | 又黄又网站 | 免费看黄色毛片 | 免费在线一区二区 | 亚洲成人精品av | 在线观看涩涩 | 亚洲激情精品 | 九色91福利 | 91社区国产高清 | 免费视频色| 欧美午夜精品久久久久 | 免费毛片一区二区三区久久久 | 在线观看av不卡 | 午夜精品久久久99热福利 | se婷婷 | 中文区中文字幕免费看 | 欧美亚洲专区 | 国产三级国产精品国产专区50 | 免费看的黄色录像 | 国产 视频 久久 | 在线亚洲播放 | 国产精品一区二区在线观看免费 | 成人影视免费看 | 欧洲亚洲女同hd | 欧美大片aaa | 岛国av在线不卡 | 天天综合网 天天综合色 | 国产专区一 | 久久精品男人的天堂 | 激情综合中文娱乐网 | 黄色的视频 | 久草在线看片 | 国产精品久久一区二区三区不卡 | 成人免费视频网站 | 色婷婷av在线 | 亚洲欧美日韩国产精品一区午夜 | 日韩丝袜在线 | 日韩精品久久久久久久电影竹菊 | 欧洲av不卡| 亚洲精品视频在线观看网站 | 久久这里只有精品1 | 国产片免费在线观看视频 | 日韩色综合 | 丁香五香天综合情 |