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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

6.S081 Xv6 Lab 2: system calls

發布時間:2023/12/9 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6.S081 Xv6 Lab 2: system calls 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Lab: system calls

From: https://pdos.csail.mit.edu/6.S081/2020/labs/syscall.html

【NOTE】Add a new system call

To add a new system call, say, named xxx:

  • add a prototype for the system call to user/user.h

    int xxx(int)
  • add a stub to user/usys.pl

    entry("xxx");
  • add a syscall number to kernel/syscall.h

    #define SYS_xxx 22
  • add the new syscall into kernel/syscall.c

    extern uint64 sys_xxx(void); // 1static uint64 (*syscalls[])(void) = { ... [SYS_xxx] sys_xxx, // 2 };
  • add sys_xxx (a function takes void as argument and returns uint64) inkernel/sysproc.c. This function do fetch arguments about the system call and return values.

    uint64 sys_xxx(void) {// about arguments: the [xv6 book](https://pdos.csail.mit.edu/6.S081/2020/xv6/book-riscv-rev1.pdf) Sections 4.3 and 4.4 of Chapter 4 }
  • implement the syscall somewhere in the kernel. (e.g. implement a xxx function , defines in kernel/defs.h, to do hard work)

  • System call tracing

    In this assignment you will add a system call tracing feature that may help you when debugging later labs. You’ll create a new trace system call that will control tracing. It should take one argument, an integer “mask”, whose bits specify which system calls to trace. For example, to trace the fork system call, a program calls trace(1 << SYS_fork), where SYS_fork is a syscall number from kernel/syscall.h. You have to modify the xv6 kernel to print out a line when each system call is about to return, if the system call’s number is set in the mask. The line should contain the process id, the name of the system call and the return value; you don’t need to print the system call arguments. The tracesystem call should enable tracing for the process that calls it and any children that it subsequently forks, but should not affect other processes.

    Main implement

    kernel/sysproc.c:

    ...// * uint64 sys_trace(void) {if (argint(0, &myproc()->tracemask) < 0)return -1;return 0; }

    kernel/proc.h:

    struct proc {struct spinlock lock;...int pid; // Process ID...int tracemask; // trace mask // * };

    kernel/syscall.c:

    ...extern uint64 sys_chdir(void); extern uint64 sys_close(void); ... extern uint64 sys_trace(void); // *static uint64 (*syscalls[])(void) = { [SYS_fork] sys_fork, [SYS_exit] sys_exit, ... [SYS_trace] sys_trace, // * };char *syscallnames[] = { [SYS_fork] "fork", [SYS_exit] "exit", ... [SYS_trace] "trace", // * };void syscall(void) {...// trace // *if (p->tracemask >> num) {printf("%d: syscall %s -> %d\n", p->pid, syscallnames[num], p->trapframe->a0);} }

    Detailed diff

    diff --git a/Makefile b/Makefile index f0beb51..1c07efd 100644 --- a/Makefile +++ b/Makefile @@ -149,6 +149,7 @@ UPROGS=\$U/_grind\$U/_wc\$U/_zombie\ + $U/_trace\diff --git a/gradelib.pyc b/gradelib.pyc new file mode 100644 index 0000000..d118849 Binary files /dev/null and b/gradelib.pyc differ diff --git a/kernel/proc.c b/kernel/proc.c index 6afafa1..73845e4 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -280,6 +280,9 @@ fork(void)// copy saved user registers.*(np->trapframe) = *(p->trapframe);+ // copy trace mask + np->tracemask = p->tracemask; +// Cause fork to return 0 in the child.np->trapframe->a0 = 0;diff --git a/kernel/proc.h b/kernel/proc.h index 9c16ea7..cf18b9b 100644 --- a/kernel/proc.h +++ b/kernel/proc.h @@ -103,4 +103,6 @@ struct proc {struct file *ofile[NOFILE]; // Open filesstruct inode *cwd; // Current directorychar name[16]; // Process name (debugging) + + int tracemask; // trace mask}; diff --git a/kernel/syscall.c b/kernel/syscall.c index c1b3670..182ca99 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -104,6 +104,7 @@ extern uint64 sys_unlink(void);extern uint64 sys_wait(void);extern uint64 sys_write(void);extern uint64 sys_uptime(void); +extern uint64 sys_trace(void);static uint64 (*syscalls[])(void) = {[SYS_fork] sys_fork, @@ -127,6 +128,32 @@ static uint64 (*syscalls[])(void) = {[SYS_link] sys_link,[SYS_mkdir] sys_mkdir,[SYS_close] sys_close, +[SYS_trace] sys_trace, +}; + +char *syscallnames[] = { +[SYS_fork] "fork", +[SYS_exit] "exit", +[SYS_wait] "wait", +[SYS_pipe] "pipe", +[SYS_read] "read", +[SYS_kill] "kill", +[SYS_exec] "exec", +[SYS_fstat] "fstat", +[SYS_chdir] "chdir", +[SYS_dup] "dup", +[SYS_getpid] "getpid", +[SYS_sbrk] "sbrk", +[SYS_sleep] "sleep", +[SYS_uptime] "uptime", +[SYS_open] "open", +[SYS_write] "write", +[SYS_mknod] "mknod", +[SYS_unlink] "unlink", +[SYS_link] "link", +[SYS_mkdir] "mkdir", +[SYS_close] "close", +[SYS_trace] "trace",};void @@ -143,4 +170,10 @@ syscall(void)p->pid, p->name, num);p->trapframe->a0 = -1;} + + // trace + if (p->tracemask >> num) { + printf("%d: syscall %s -> %d\n", + p->pid, syscallnames[num], p->trapframe->a0); + }} diff --git a/kernel/syscall.h b/kernel/syscall.h index bc5f356..01004db 100644 --- a/kernel/syscall.h +++ b/kernel/syscall.h @@ -20,3 +20,5 @@#define SYS_link 19#define SYS_mkdir 20#define SYS_close 21 + +#define SYS_trace 22 diff --git a/kernel/sysproc.c b/kernel/sysproc.c index e8bcda9..7a078c0 100644 --- a/kernel/sysproc.c +++ b/kernel/sysproc.c @@ -95,3 +95,12 @@ sys_uptime(void)release(&tickslock);return xticks;} + +uint64 +sys_trace(void) +{ + if (argint(0, &myproc()->tracemask) < 0) + return -1; + + return 0; +} diff --git a/user/user.h b/user/user.h index b71ecda..774bb03 100644 --- a/user/user.h +++ b/user/user.h @@ -24,6 +24,8 @@ char* sbrk(int);int sleep(int);int uptime(void);+int trace(int); +// ulib.cint stat(const char*, struct stat*);char* strcpy(char*, const char*); diff --git a/user/usys.pl b/user/usys.pl index 01e426e..2e51985 100755 --- a/user/usys.pl +++ b/user/usys.pl @@ -36,3 +36,5 @@ entry("getpid");entry("sbrk");entry("sleep");entry("uptime"); + +entry("trace");

    Sysinfo

    In this assignment you will add a system call, sysinfo, that collects information about the running system. The system call takes one argument: a pointer to a struct sysinfo (see kernel/sysinfo.h). The kernel should fill out the fields of this struct: the freemem field should be set to the number of bytes of free memory, and the nproc field should be set to the number of processes whose state is not UNUSED. We provide a test program sysinfotest; you pass this assignment if it prints “sysinfotest: OK”.

    Main implement

    kernel/sysproc.c:

    uint64 sys_sysinfo(void) {uint64 info; // user pointer to struct statif(argaddr(0, &info) < 0)return -1;return systeminfo(info); }

    kernel/sysinfo.c:

    #include "types.h" #include "riscv.h" #include "param.h" #include "spinlock.h" #include "defs.h" #include "sysinfo.h" #include "proc.h"// Get current system info // addr is a user virtual address, pointing to a struct sysinfo. int systeminfo(uint64 addr) {struct proc *p = myproc();struct sysinfo info;info.freemem = freemem();info.nproc = nproc();if(copyout(p->pagetable, addr, (char *)&info, sizeof(info)) < 0)return -1;return 0; }

    kernel/proc.c:

    // Get the number of processes whose state is not UNUSED. int nproc(void) {int n = 0;struct proc *p;for(p = proc; p < &proc[NPROC]; p++) {acquire(&p->lock);if(p->state != UNUSED)++n;release(&p->lock);}return n; }

    kernel/kalloc.c:

    // Get the number of bytes of free memory int freemem(void) {int n = 0;struct run *r;acquire(&kmem.lock);for (r = kmem.freelist; r; r = r->next)++n;release(&kmem.lock);return n * 4096; }

    Detailed diff

    diff --git a/Makefile b/Makefile index 1c07efd..b626677 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ OBJS = \$K/kernelvec.o \$K/plic.o \$K/virtio_disk.o \ + $K/sysinfo.o \ifeq ($(LAB),pgtbl)OBJS += $K/vmcopyin.o @@ -150,6 +151,7 @@ UPROGS=\$U/_wc\$U/_zombie\$U/_trace\ + $U/_sysinfotest\diff --git a/kernel/defs.h b/kernel/defs.h index 4b9bbc0..7ebebb8 100644 --- a/kernel/defs.h +++ b/kernel/defs.h @@ -8,6 +8,7 @@ struct spinlock;struct sleeplock;struct stat;struct superblock; +struct sysinfo;// bio.cvoid binit(void); @@ -63,6 +64,7 @@ void ramdiskrw(struct buf*);void* kalloc(void);void kfree(void *);void kinit(void); +int freemem(void);// log.cvoid initlog(int, struct superblock*); @@ -104,6 +106,7 @@ void yield(void);int either_copyout(int user_dst, uint64 dst, void *src, uint64 len);int either_copyin(void *dst, int user_src, uint64 src, uint64 len);void procdump(void); +int nproc(void);// swtch.Svoid swtch(struct context*, struct context*); @@ -183,5 +186,8 @@ void virtio_disk_init(void);void virtio_disk_rw(struct buf *, int);void virtio_disk_intr(void);+// sysinfo.c +int systeminfo(uint64); +// number of elements in fixed-size array#define NELEM(x) (sizeof(x)/sizeof((x)[0])) diff --git a/kernel/kalloc.c b/kernel/kalloc.c index fa6a0ac..5051a1d 100644 --- a/kernel/kalloc.c +++ b/kernel/kalloc.c @@ -80,3 +80,19 @@ kalloc(void)memset((char*)r, 5, PGSIZE); // fill with junkreturn (void*)r;} + +// Get the number of bytes of free memory +int +freemem(void) +{ + int n = 0; + struct run *r; + acquire(&kmem.lock); + + for (r = kmem.freelist; r; r = r->next) + ++n; + + release(&kmem.lock); + + return n * 4096; +} diff --git a/kernel/proc.c b/kernel/proc.c index 73845e4..73d2745 100644 --- a/kernel/proc.c +++ b/kernel/proc.c @@ -696,3 +696,20 @@ procdump(void)printf("\n");}} + +// Get the number of processes whose state is not UNUSED. +int +nproc(void) +{ + int n = 0; + struct proc *p; + + for(p = proc; p < &proc[NPROC]; p++) { + acquire(&p->lock); + if(p->state != UNUSED) + ++n; + release(&p->lock); + } + + return n; +} diff --git a/kernel/syscall.c b/kernel/syscall.c index 182ca99..fdf996d 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -105,6 +105,7 @@ extern uint64 sys_wait(void);extern uint64 sys_write(void);extern uint64 sys_uptime(void);extern uint64 sys_trace(void); +extern uint64 sys_sysinfo(void);static uint64 (*syscalls[])(void) = {[SYS_fork] sys_fork, @@ -129,6 +130,7 @@ static uint64 (*syscalls[])(void) = {[SYS_mkdir] sys_mkdir,[SYS_close] sys_close,[SYS_trace] sys_trace, +[SYS_sysinfo] sys_sysinfo,};char *syscallnames[] = { @@ -154,6 +156,7 @@ char *syscallnames[] = {[SYS_mkdir] "mkdir",[SYS_close] "close",[SYS_trace] "trace", +[SYS_sysinfo] "sysinfo",};void diff --git a/kernel/syscall.h b/kernel/syscall.h index 01004db..6716e88 100644 --- a/kernel/syscall.h +++ b/kernel/syscall.h @@ -22,3 +22,4 @@#define SYS_close 21#define SYS_trace 22 +#define SYS_sysinfo 23 diff --git a/kernel/sysinfo.c b/kernel/sysinfo.c new file mode 100644 index 0000000..40bd08a --- /dev/null +++ b/kernel/sysinfo.c @@ -0,0 +1,22 @@ +#include "types.h" +#include "riscv.h" +#include "param.h" +#include "spinlock.h" +#include "defs.h" +#include "sysinfo.h" +#include "proc.h" + +// Get current system info +// addr is a user virtual address, pointing to a struct sysinfo. +int +systeminfo(uint64 addr) { + struct proc *p = myproc(); + struct sysinfo info; + + info.freemem = freemem(); + info.nproc = nproc(); + + if(copyout(p->pagetable, addr, (char *)&info, sizeof(info)) < 0) + return -1; + return 0; +} diff --git a/kernel/sysproc.c b/kernel/sysproc.c index 7a078c0..a1231d0 100644 --- a/kernel/sysproc.c +++ b/kernel/sysproc.c @@ -104,3 +104,13 @@ sys_trace(void)return 0;} + +uint64 +sys_sysinfo(void) +{ + uint64 info; // user pointer to struct stat + + if(argaddr(0, &info) < 0) + return -1; + return systeminfo(info); +} diff --git a/time.txt b/time.txt new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/time.txt @@ -0,0 +1 @@ +2 diff --git a/user/user.h b/user/user.h index 774bb03..708496d 100644 --- a/user/user.h +++ b/user/user.h @@ -1,5 +1,6 @@struct stat;struct rtcdate; +struct sysinfo;// system callsint fork(void); @@ -25,6 +26,7 @@ int sleep(int);int uptime(void);int trace(int); +int sysinfo(struct sysinfo *);// ulib.cint stat(const char*, struct stat*); diff --git a/user/usys.pl b/user/usys.pl index 2e51985..fce5771 100755 --- a/user/usys.pl +++ b/user/usys.pl @@ -38,3 +38,4 @@ entry("sleep");entry("uptime");entry("trace"); +entry("sysinfo");

    EOF


    By CDFMLR 2020-03-02

    頂部圖片來自于小歪API,系隨機選取的圖片,僅用于檢測屏幕顯示的機械、光電性能,與文章的任何內容及觀點無關,也并不代表本人局部或全部同意、支持或者反對其中的任何內容及觀點。如有侵權,聯系刪除。

    總結

    以上是生活随笔為你收集整理的6.S081 Xv6 Lab 2: system calls的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    婷婷网站天天婷婷网站 | www.av免费| 美女视频免费精品 | 91最新地址永久入口 | 日韩精品免费在线 | 久久免费av电影 | 国产丝袜在线 | 精品国产91亚洲一区二区三区www | 国产亚洲精品久 | 国内精品毛片 | 亚洲永久字幕 | 伊人视频| 国产黄影院色大全免费 | 婷婷色综合 | 国产日韩视频在线播放 | 亚洲国内精品 | 久草观看 | 日韩久久久久久久久久 | 91麻豆精品国产自产在线 | 久久99视频 | 成人在线免费视频观看 | 午夜性盈盈 | 色婷婷丁香 | 九九热国产| 久久久久国产精品免费网站 | 久热免费 | 999久久国产 | 国产 精品 资源 | 久久精品欧美日韩精品 | 久草在线视频网站 | 五月婷婷中文网 | av成人免费在线观看 | 久久草网站| 欧美人人爱 | 久久国产片 | 欧美极品久久 | 国产专区视频在线观看 | 91精品导航 | 色综合久久精品 | 日韩中文字幕国产 | 特级毛片网站 | 中文字幕乱偷在线 | 成人黄色大片在线免费观看 | www.在线看片.com | 精品一区二区三区四区在线 | 色婷婷五 | www.五月激情.com | 激情综合网五月 | 99久久er热在这里只有精品66 | 国产99久久久国产精品成人免费 | 一级黄视频 | 国产精品亚洲综合久久 | 热re99久久精品国产99热 | 四虎国产免费 | 免费视频91蜜桃 | 免费在线观看毛片网站 | 亚洲国产日韩欧美 | 啪啪免费试看 | 97超级碰碰 | 久久91网 | 色婷婷激情综合 | 九九久久影院 | 91精品国产自产在线观看 | 久久综合九色综合欧美就去吻 | 99久热在线精品视频成人一区 | 免费观看高清 | 亚洲国产美女精品久久久久∴ | 97热久久免费频精品99 | 国产美女网站视频 | 中文字幕在线免费观看 | 久久综合操| 日本99热| 免费精品视频在线观看 | 欧美成人视| 欧美日韩不卡在线视频 | 欧美激情第一页xxx 午夜性福利 | 在线观看aaa | 国产a免费 | 国产精品毛片完整版 | 日韩一区二区三区高清免费看看 | 欧美极品一区二区三区 | 国产a免费| 精品亚洲成a人在线观看 | 日韩成人免费电影 | 中文字幕中文字幕在线中文字幕三区 | 超碰伊人网 | 午夜精品一区二区国产 | 久草视频在线观 | 精品久久网 | 中文资源在线播放 | 国产在线观看91 | 中文字幕在线日本 | 国产亚洲激情视频在线 | 国产原创中文在线 | 亚洲精品字幕在线观看 | 日韩精品免费在线观看 | 色噜噜日韩精品欧美一区二区 | 99精品99| 国产尤物一区二区三区 | 91久久精品一区二区二区 | 久久综合中文字幕 | 国产日韩在线视频 | 日韩精品一区电影 | 国产在线a免费观看 | 中文字幕成人在线观看 | 伊人手机在线 | 91精品国产自产在线观看永久 | 人人艹视频 | 一本—道久久a久久精品蜜桃 | 99免费在线播放99久久免费 | a黄色片在线观看 | 久久激情婷婷 | 伊人永久在线 | 天天操夜夜操 | 91porny九色在线播放 | 国产成人免费在线 | 国产中文字幕在线观看 | 色姑娘综合网 | 久久视频这里有精品 | 中文字幕人成不卡一区 | www.亚洲精品 | 在线色网站 | 国产色视频网站2 | 久久午夜色播影院免费高清 | 色综合网 | 国产99久久精品一区二区永久免费 | 国产露脸91国语对白 | 亚洲精品1234区 | 国产va精品免费观看 | 亚洲男男gaygay无套同网址 | 国产一线在线 | 六月丁香婷婷网 | 贫乳av女优大全 | 亚洲精品久久久久58 | 亚洲国产成人精品电影在线观看 | 国产综合在线观看视频 | 精品国产伦一区二区三区观看方式 | 999久久a精品合区久久久 | 免费看的国产视频网站 | 青草视频在线看 | 精品久久电影 | 色资源网在线观看 | 激情五月网站 | 最近更新中文字幕 | 亚洲精品乱码久久久久久久久久 | 久久专区 | 国产精品国产三级在线专区 | 色a4yy| 国产视频一区在线免费观看 | 成人羞羞视频在线观看免费 | 国产精品国内免费一区二区三区 | 欧美在线一二区 | 四虎免费在线观看 | 国产精品久久久久久影院 | 国产在线观看91 | 国产一区成人在线 | 色婷久久 | 中文字幕国产精品 | 亚洲黄色激情小说 | 丁香婷婷色综合亚洲电影 | 久久免费视频6 | 午夜色场| a v在线视频| 在线看片91 | 国产精品18videosex性欧美 | 97超碰在线免费 | 日韩精品一区二区三区在线播放 | 98涩涩国产露脸精品国产网 | 亚洲国产精品一区二区久久,亚洲午夜 | 最近日本中文字幕 | 中文字幕一区二区在线观看 | 精品一区二区三区在线播放 | 国产精品久久久久久久免费大片 | 国产高清不卡一区二区三区 | 亚洲一区二区三区在线看 | 91av片| www.com久久| 天天干天天射天天插 | 久久综合久久综合这里只有精品 | 亚洲精品视频第一页 | 麻豆91视频 | 国内精品久久久久久久久久 | 天天曰 | 国产成人一区二区三区在线观看 | 日韩在线网址 | 最新国产在线视频 | 黄色毛片一级片 | 国产精品久久久久久久久免费 | 人人插人人做 | 国产老太婆免费交性大片 | 97在线免费 | 欧美一级淫片videoshd | 国产精成人品免费观看 | 国产拍揄自揄精品视频麻豆 | 国产乱老熟视频网88av | 国产精品久久99综合免费观看尤物 | 欧美精品久久久久久久久老牛影院 | 色狠狠婷婷| 国产精品国内免费一区二区三区 | 午夜999| 精品专区| 色在线高清 | 亚洲免费一级电影 | 亚洲va韩国va欧美va精四季 | 99视频精品 | 色永久免费视频 | 日韩成年视频 | 成年人黄色免费看 | 亚洲精品视频在线观看视频 | 欧美人交a欧美精品 | japanesexxxhd奶水| 日韩中文字幕免费在线播放 | av中文字幕在线观看网站 | 亚洲精品自在在线观看 | 久久精品三 | 欧美一区二视频在线免费观看 | 999久久国精品免费观看网站 | 国产视频97 | 婷婷中文字幕在线观看 | 日日夜夜噜 | 中文字幕日韩在线播放 | 中文字幕在线色 | 操天天操| 9在线观看免费高清完整 | 美女网站视频久久 | 国产91精品一区二区麻豆亚洲 | 国产免费三级在线观看 | 免费国产黄线在线观看视频 | 国产精品久久久久久久久久免费看 | 亚洲精品国产综合久久 | 久久久国产99久久国产一 | www.色就是色| 亚洲精品国产精品国自产观看浪潮 | 久久久久久久久久亚洲精品 | 超级碰碰碰碰 | 人人讲下载 | 午夜精品久久久久久久久久久 | 99精品在线视频观看 | 二区视频在线观看 | 亚洲免费av电影 | 爱爱一区 | 久久久网页 | 日本中文字幕影院 | 色综合天天天天做夜夜夜夜做 | 九九热免费在线观看 | 中文字幕影片免费在线观看 | 久久久久国产一区二区三区四区 | 91爱爱视频 | 成年人看片网站 | 波多野结衣电影久久 | 在线欧美最极品的av | 亚洲国产剧情 | 69国产精品视频免费观看 | 国产在线精品播放 | 国产精品色视频 | 国内精品久久久久影院一蜜桃 | 免费av观看 | 九九九视频在线 | 国产欧美精品在线观看 | 91免费日韩 | 久久tv | 天天干天天色2020 | 久久免费av电影 | 欧美日韩伦理在线 | 深夜免费福利 | 最新一区二区三区 | 久久99国产精品久久 | 成人啪啪18免费游戏链接 | 中文字幕一区二区三区四区 | 色a在线观看 | 中文字幕成人 | 欧美日韩在线网站 | 激情综合中文娱乐网 | 色婷婷狠狠18| 亚洲色影爱久久精品 | 激情www| 日日插日日干 | 成人在线观看影院 | 4p变态网欧美系列 | 成人国产精品久久久春色 | 四虎精品成人免费网站 | 国产专区视频在线观看 | 久久69精品久久久久久久电影好 | 夜色在线资源 | 夜夜视频欧洲 | 亚洲精品在线观看视频 | 亚洲午夜小视频 | 久久国产亚洲 | 狠狠色丁香婷婷综合 | 波多野结衣在线观看一区二区三区 | 中文字幕国产一区二区 | 亚洲狠狠婷婷 | 国产一区在线免费观看 | 国产精品美女久久 | 中文一区二区三区在线观看 | 中文字幕在线观看第三页 | 五月天激情婷婷 | 久久久久久久久久亚洲精品 | 免费在线观看不卡av | 91成年视频 | 久草在线精品观看 | 日韩视频精品在线 | 少妇bbb好爽 | 欧美日韩一区三区 | 国产日韩视频在线观看 | 狠狠婷婷| 久久全国免费视频 | 国产最新在线观看 | 久久久高清一区二区三区 | 国产99久久精品 | 在线精品播放 | 偷拍区另类综合在线 | 日本三级不卡 | av综合 日韩 | 免费看污污视频的网站 | 97超碰资源 | 999久久久久久 | 国产日韩在线播放 | 欧美日韩有码 | 日韩特黄av | 视频成人永久免费视频 | 亚洲欧洲精品久久 | 久久久国产精品免费 | 91九色成人蝌蚪首页 | 亚洲成 人精品 | 99国内精品久久久久久久 | 国产成人av电影在线 | 国产色区 | 国产91精品一区二区麻豆网站 | 国产精品久久久久久久久久久久午夜 | 亚洲伊人婷婷 | 久久免费视频3 | 精品国产欧美一区二区 | 波多野结衣一区二区 | bbbbb女女女女女bbbbb国产 | av免费网| 国产亚洲精品久久久网站好莱 | 国产97av | 久久99热精品 | 欧美色婷婷 | 91试看 | 日韩在线观看第一页 | 婷婷在线色 | 久草剧场| 色综合久久久久综合体 | 成人网色 | 日韩三级不卡 | www.天堂av | 韩日视频在线 | 人人干狠狠干 | 欧美一级电影免费观看 | 在线 国产一区 | 91九色在线视频观看 | 精品国产亚洲日本 | 国产精品国内免费一区二区三区 | 久久有精品| 在线之家官网 | 波多野结衣亚洲一区二区 | 成人午夜片av在线看 | 日日干夜夜草 | 男女全黄一级一级高潮免费看 | av噜噜噜在线播放 | 久久久久久久国产精品影院 | 九色福利视频 | 国产视频在线观看一区 | 国产一区二区三区网站 | 91麻豆精品国产91久久久久久久久 | wwwwww色| 欧美在线视频一区二区 | 国产18精品乱码免费看 | 激情综合色播五月 | 日韩特黄一级欧美毛片特黄 | 久久精品国产免费看久久精品 | 超碰国产在线 | 99热最新 | 日韩欧美区 | 免费在线观看黄 | 欧美午夜一区二区福利视频 | 亚洲精品网站在线 | 欧美激情精品久久久久久变态 | 色吊丝在线永久观看最新版本 | 亚洲精品国偷拍自产在线观看蜜桃 | 欧美亚洲国产日韩 | 亚洲精品乱码久久久久久写真 | 黄色av一区 | 日韩在线中文字幕视频 | 香蕉影视| 欧美一级视频在线观看 | 亚洲精品99久久久久中文字幕 | 国产xxxx做受性欧美88 | 在线看v片 | 天堂激情网 | 99精品国产一区二区三区不卡 | 麻豆影视在线播放 | 91精彩视频 | 国产精品久久久久久吹潮天美传媒 | 久久99国产精品久久99 | 狠狠久久综合 | 毛片在线播放网址 | 久久草在线免费 | 超碰公开97| 成人黄色小说网 | 麻豆系列在线观看 | 免费日韩视 | 中国一级片在线播放 | 在线91视频 | 亚洲激情六月 | 亚洲国产资源 | 久久精品一区八戒影视 | 免费在线观看黄色网 | 九九九电影免费看 | www.久久色.com | 亚洲91在线 | 在线视频观看成人 | 97超级碰| 超级碰碰视频 | av福利网址导航 | 色九九视频 | 99久久久久久 | 日本在线精品视频 | 国产精品初高中精品久久 | 91在线www| 免费黄色网址网站 | 狠狠干干 | 国产精品久久电影网 | 香蕉视频日本 | 国产高清视频色在线www | 色吧久久 | 免费看污在线观看 | 深爱五月网 | 久久综合狠狠综合久久狠狠色综合 | 久久网页| 国产精品一区二区三区在线看 | 美国av大片 | 天天做日日爱夜夜爽 | 香蕉视频91 | 国产精品夜夜夜一区二区三区尤 | 最新国产精品拍自在线播放 | 六月婷婷网 | 伊人资源视频在线 | av片一区二区 | 亚洲少妇xxxx| 国产激情电影综合在线看 | 中文亚洲欧美日韩 | 欧美精品在线观看一区 | 精品久久久久久久久久久久久 | 久久精品视频在线免费观看 | 日韩在线观看你懂的 | 男女视频91 | 欧美 激情 国产 91 在线 | 国产一性一爱一乱一交 | 国产不卡在线观看视频 | 国产精品黄色 | 91亚洲精品久久久中文字幕 | 亚洲精品综合在线 | 四虎www | 999久久久久久久久 69av视频在线观看 | 久久国产精品成人免费浪潮 | 日韩黄色中文字幕 | 99久久99久久综合 | 免费一级片观看 | 日韩啪啪小视频 | 国产在线免费av | 国产精品99爱 | 黄色一级免费网站 | 国产精品免费久久久久影院仙踪林 | 美女在线观看网站 | 精品久久亚洲 | 国产成人精品一区在线 | 亚洲激情六月 | 欧美日韩免费观看一区二区三区 | 免费av大全 | 国产高清无线码2021 | 三级黄色免费 | 欧美精品v国产精品v日韩精品 | 亚洲精品在线观看免费 | 中文字幕精品视频 | 国产色婷婷精品综合在线手机播放 | 在线国产精品视频 | 96精品视频| 中文字幕在线精品 | 国产精品一码二码三码在线 | 亚洲国产精品成人av | 超碰97在线资源 | 97超碰福利久久精品 | 一区二区三区动漫 | 中文字幕视频在线播放 | 久久久高清 | 免费h视频| 免费看的视频 | 香蕉影院在线播放 | 91精品啪在线观看国产线免费 | 色综合久久五月 | 久久综合国产伦精品免费 | 亚洲精品视频第一页 | 日韩久久久久 | 99精品视频在线播放免费 | 欧美激情第一区 | 久久精品国产一区二区 | 最近中文字幕视频网 | 韩国视频一区二区三区 | 999久久国精品免费观看网站 | 欧美污在线观看 | 中文字幕亚洲精品在线观看 | 97激情影院 | 久草视频视频在线播放 | 国产一级精品绿帽视频 | 日本精品视频在线观看 | 粉嫩av一区二区三区四区在线观看 | 91麻豆精品国产91久久久久久久久 | 亚洲精品国产精品国自产观看浪潮 | 中文字幕在线免费观看视频 | 国产一区二区在线免费视频 | 天天摸天天舔 | 天天射网站 | 久草在线在线 | 久久国产精品免费看 | 国产裸体永久免费视频网站 | 天天拍天天草 | 久久婷婷丁香 | 精品久久久精品 | 激情欧美网 | 天天干夜夜操视频 | 麻豆手机在线 | 免费91麻豆精品国产自产在线观看 | 亚洲激精日韩激精欧美精品 | 一级精品视频在线观看宜春院 | 成人欧美日韩国产 | 综合色中色 | 国产午夜精品一区二区三区嫩草 | 亚洲91精品在线观看 | 91精品中文字幕 | 国产中文字幕一区二区 | 国产香蕉97碰碰久久人人 | 国产精品18久久久久久久久 | 欧洲精品二区 | 东方av在 | 久久精品国产精品 | 成年人在线观看 | 国产精品淫 | 日韩动漫免费观看高清完整版在线观看 | 久久久精品国产免费观看一区二区 | 欧美激情精品久久 | 激情图片久久 | 国产精品麻豆果冻传媒在线播放 | 在线精品视频在线观看高清 | 超碰伊人网| 中文视频在线看 | 日韩精品亚洲专区在线观看 | 日本午夜在线观看 | 日韩.com| 亚洲一区二区视频在线 | 久久久免费少妇 | 久久情爱 | 91视频电影 | 精品国产片 | 97国产小视频 | 亚洲高清国产视频 | 午夜视频久久久 | 午夜私人影院久久久久 | 日韩成人黄色av | 丁香婷婷综合色啪 | 国产精品午夜久久 | 久久久影院一区二区三区 | 日日夜夜精品免费视频 | 久久福利国产 | 网站免费黄色 | 日本黄色大片免费看 | 91精品视频在线免费观看 | 正在播放国产91 | 日韩大片在线看 | 日韩高清一区二区 | 亚洲欧美视频在线播放 | 懂色av一区二区三区蜜臀 | 中文字幕观看视频 | 久久久精品一区二区三区 | 国产成人精品亚洲a | 久久精品影片 | 国产三级国产精品国产专区50 | 久久久久一区二区三区四区 | 久久综合一本 | 白丝av在线 | 深夜免费小视频 | 国产精品99久久久久久武松影视 | 国产一级高清 | 国产成人在线免费观看 | 蜜桃视频日本 | 九九激情视频 | 成人一级片免费看 | 国产在线看一区 | 欧美91视频| 日韩av专区 | 99久久日韩精品免费热麻豆美女 | 日韩一区二区在线免费观看 | 日韩r级在线 | 日韩在线高清视频 | 久久精品播放 | 国产97在线视频 | 九色视频网 | 国产一级片播放 | 五月婷婷丁香 | 午夜精品福利在线 | 久久丁香网 | 91麻豆精品国产91久久久无需广告 | 欧美黄色成人 | 久久蜜臀一区二区三区av | 99热在线这里只有精品 | 天堂av网址 | 国内精品小视频 | 欧美在线一级片 | 黄色视屏免费在线观看 | 中文字幕在线精品 | 免费久久片 | 免费进去里的视频 | 中文字幕在线观看亚洲 | 免费成人在线网站 | 国产精品一区二区在线免费观看 | 久草视频免费 | 99精品国产高清在线观看 | 国产经典三级 | 婷婷色中文字幕 | 国产午夜在线观看 | 亚洲欧美日韩一级 | 国产精品免费麻豆入口 | 国产天天爽 | 久久99免费视频 | 久久亚洲影院 | 国产亚洲va综合人人澡精品 | www黄色| 国产精品久久久久久久av电影 | 色婷婷综合久久久 | 欧美综合色在线图区 | 日本精品久久久久中文字幕5 | 婷婷综合成人 | 美女免费黄网站 | 日韩av中文在线观看 | 五月开心激情 | 丁香影院在线 | 伊人电影天堂 | 国产精品一区二区视频 | 精品国产大片 | 亚洲婷久久 | www.狠狠干| 日日成人网 | 精品国产伦一区二区三区观看说明 | 亚洲三级影院 | 超级碰碰免费视频 | 日本一区二区三区视频在线播放 | 最近免费中文字幕大全高清10 | 999久久久久久久久久久 | 久久视频这里有精品 | 国产精品 中文在线 | 成人精品影视 | 日韩精品偷拍 | 久久久久电影网站 | 免费黄色看片 | 精品999国产| 久久久精品 | 久久草网 | 国产精品免费看久久久8精臀av | 成年人电影毛片 | 久久国内精品99久久6app | 亚洲黄色激情小说 | 51精品国自产在线 | 91丨九色丨91啦蝌蚪老版 | 日韩精品aaa | 欧美日韩在线观看视频 | 国产亚洲精品久久久久久电影 | 久久久九色精品国产一区二区三区 | 色福利网 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 色综合在| 在线观看www视频 | 成人性生活大片 | 狠狠干天天 | 久香蕉| 精品国产一区二区在线 | www.黄色网.com | 欧美另类巨大 | 国产丝袜制服在线 | 99视屏| 久久草视频 | 亚洲人成网站精品片在线观看 | 天天干天天干天天操 | 国产专区一 | 人人爽人人爽av | 麻豆成人在线观看 | 天天干天天干天天射 | 久久综合干 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品乱码久久久久v最新版 | 欧美一级片免费 | 久久私人影院 | 人人人爽 | 国产成人av在线影院 | 欧美日韩国产在线精品 | 少妇高潮流白浆在线观看 | 国产视频在线观看一区 | 夜色成人av | 伊人干综合| 天天射天天干天天操 | 欧美激情片在线观看 | 91精品久久久久久综合乱菊 | 久久精视频 | 日韩伦理一区二区三区av在线 | 婷婷激情综合网 | 中国一级片在线观看 | 国产 亚洲 欧美 在线 | 色婷婷综合视频在线观看 | 美女网站在线播放 | 一级欧美一级日韩 | 国产精品爽爽久久久久久蜜臀 | 日韩精品一区二区三区视频播放 | 天天操福利视频 | 91中文字幕| 日韩大片免费在线观看 | 91九色在线观看视频 | 亚洲精品资源在线观看 | 亚洲日韩中文字幕在线播放 | 久久久精品国产免费观看一区二区 | 右手影院亚洲欧美 | 在线观看视频h | 青青河边草免费直播 | 97视频在线观看视频免费视频 | 99精品小视频 | 99精品福利视频 | 久草在线资源观看 | 精品一区二区日韩 | 国产96视频| 欧美另类69| 日韩国产精品久久久久久亚洲 | 国产韩国精品一区二区三区 | 视频91在线 | 粉嫩av一区二区三区四区五区 | 深爱激情亚洲 | 久久久久免费网站 | 日韩av成人在线观看 | 96视频在线| 日本中文字幕一二区观 | 99精品视频中文字幕 | 日本乱视频| 狠狠干夜夜操天天爽 | 好看的国产精品视频 | 日操操 | 欧美日韩xxxxx| 99免费在线| 日本视频不卡 | 久久午夜影视 | 美女精品久久久 | 在线观看日韩精品 | 免费毛片一区二区三区久久久 | www亚洲精品| 日韩有码在线观看视频 | 手机在线小视频 | 欧洲精品亚洲精品 | 久久久国产日韩 | 国产成人精品一二三区 | 欧美另类tv | 日韩最新在线视频 | 波多野结依在线观看 | 亚洲aⅴ在线观看 | 亚洲国产午夜 | 欧美一区二区三区激情视频 | 91中文字幕在线观看 | 一区二区中文字幕在线观看 | 亚洲精品乱码 | 日韩av有码在线 | 亚洲六月丁香色婷婷综合久久 | 欧美淫视频 | 国产成人一区二区三区在线观看 | 国产一区二区电影在线观看 | 久久久久高清 | 五月天综合网 | 久久一级电影 | 免费在线观看视频a | 96国产精品视频 | 伊人天堂av | 精品久久久一区二区 | 久久精品国产亚洲aⅴ | 伊人国产女| 亚洲国产精品小视频 | 蜜臀av性久久久久av蜜臀妖精 | 国产精品一区欧美 | 久久久久久久久久福利 | 午夜影院在线观看18 | 天堂va在线观看 | wwwwwww色| 91麻豆精品国产91久久久久久 | 日本三级在线观看中文字 | 国产经典三级 | 中文字幕在线播出 | 日韩av在线小说 | 亚洲激情小视频 | 91成版人在线观看入口 | 国产五月 | 91超碰免费在线 | 久草精品视频在线看网站免费 | 日本护士撒尿xxxx18 | 不卡电影免费在线播放一区 | 中文区中文字幕免费看 | 国产视频日韩 | 99热精品视| 欧美一级性生活 | 国产精品一区二区三区四 | 成人网页在线免费观看 | 成人精品一区二区三区中文字幕 | 深夜免费福利视频 | 99视频在线播放 | 在线视频 区 | 成人免费网站视频 | 日本在线视频一区二区三区 | 91香蕉视频在线下载 | 日本成址在线观看 | av免费播放 | 国产美女黄网站免费 | 97国产小视频 | 亚洲国产精品成人av | 久久免费的精品国产v∧ | 国产精品一区二区久久精品爱微奶 | 超碰在线最新网址 | 99综合久久 | 久久人人插 | 国产一区二区三区在线 | 高清在线观看av | 欧美aaa大片 | 亚洲另类交 | 夜夜躁狠狠燥 | 黄网站色视频 | 欧美极品一区二区三区 | jizzjizzjizz亚洲| 欧美日韩破处 | 99精品国产一区二区三区麻豆 | 久久不色 | 欧美久久久久久久久久 | 欧美午夜寂寞影院 | 99精品免费久久久久久久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线视频日韩欧美 | av黄色一级片 | 激情伊人五月天久久综合 | 国产亚洲精品美女久久 | 国产四虎影院 | 国产 在线 高清 精品 | 一级黄网 | 国产黄色视 | 欧美精品小视频 | 久草精品视频在线观看 | 久久这里只精品 | 亚洲综合视频在线播放 | 久久久男人的天堂 | 亚洲最大成人免费网站 | 亚洲另类视频在线 | 欧美va在线观看 | 蜜桃av人人夜夜澡人人爽 | 国内精品久久久久久久久 | 国产精品永久久久久久久久久 | 亚洲美女在线国产 | 国产一线二线三线性视频 | 国产高清免费观看 | 久久久高清一区二区三区 | 久久久精华网 | 欧美性色综合网站 | 久章草在线 | 国内成人av| 国内精品久久久久久久久久清纯 | 日韩av男人的天堂 | 婷婷午夜激情 | 精品欧美一区二区三区久久久 | 日韩视频1 | 在线观看黄色 | 欧美另类高清 videos | 又黄又爽又湿又无遮挡的在线视频 | 国产成人久久精品一区二区三区 | 久久婷亚洲五月一区天天躁 | 中文一区在线观看 | 三级黄色三级 | 亚洲精品在线观看网站 | 国产免费人成xvideos视频 | 国产手机在线观看 | av千婊在线免费观看 | 国产视频 亚洲精品 | 在线观看国产麻豆 | 国产精品一区二区你懂的 | 国产精品手机在线观看 | 99视频精品全部免费 在线 | 精品久久一区二区 | 国产在线色| 9999国产精品 | 久草在线资源观看 | 2021国产在线 | 婷婷六月丁香激情 | 国产精品手机在线播放 | 免费观看成人网 | 亚洲 欧美 日韩 综合 | 天天操伊人 | 久久久国产在线视频 | 9999国产| 亚洲影院一区 | 欧洲精品视频一区二区 | 在线观看av麻豆 | 国产1级毛片 | 日韩在线视频免费播放 | 夜夜操天天操 | 天堂av在线网址 | 久久曰视频 | 亚州国产精品视频 | 九九久久久久99精品 | 中文字幕国产一区二区 | 黄色日批网站 | 国产在线精品二区 | 国产精品porn | 国语精品视频 | 国产v在线观看 | 国产午夜三级 | 中文成人字幕 | 草免费视频 | 国产精品女视频 | 在线观看成人国产 | 亚洲国产69 | 亚洲激情一区二区三区 | 伊人影院在线观看 | 婷婷丁香国产 | 热九九精品 | 欧美另类xxx| 天天超碰 | 男女男视频 | 久久久久五月天 | 蜜桃av人人夜夜澡人人爽 | 一区二区视频网站 | 亚洲视频 视频在线 | 日韩 在线 | 一区二区三区福利 | 一二三四精品 | 国产剧情在线一区 | 婷婷综合亚洲 | 在线视频18在线视频4k | 亚洲在线免费视频 | 超碰在线人人爱 | 国产欧美在线一区二区三区 | 国产免费观看久久 | 成人av免费| 国产成人精品午夜在线播放 | av中文字幕在线观看网站 | av免费在线观看网站 | 精品久久久久久久久久久院品网 | 久久一区二区三区超碰国产精品 | 91精品国产福利 | 久久不卡电影 | 狠狠五月天 | 国产精品高潮久久av | 五月婷婷狠狠 | 97理论电影| 91成人免费看片 | 一级久久久 | 福利网址在线观看 | 久久午夜剧场 | 六月丁香色婷婷 | 伊人va | 丁香五月亚洲综合在线 | 五月天综合在线 | 免费网站观看www在线观看 | 日本一区二区三区免费观看 | 五月婷婷操 | 天堂在线v | 久久欧美在线电影 | 日韩欧美视频一区二区三区 | 天堂av最新网址 | 97视频总站 | 成人影视片| 日韩欧美一区二区三区在线 | 日本中文字幕网址 | 日本一区二区三区视频在线播放 | 五月开心六月伊人色婷婷 | 在线观看黄色小视频 | 欧美va天堂va视频va在线 | 91精品久久久久久久久久久久久 | 五月天免费网站 | 中文字幕文字幕一区二区 | 久久午夜羞羞影院 | 国产精品视频不卡 | 伊人五月综合 | 91丨九色丨国产丨porny精品 | 色婷婷导航 | 91男人影院 | 亚洲免费av在线 | 欧美激情一区不卡 | 天天干,夜夜爽 | www亚洲一区 | 超碰大片| 欧美另类人妖 | 久久综合狠狠综合 | 中文字幕丝袜 | 日本中文字幕一二区观 | www.色爱 | 欧美日韩国产色综合一二三四 | 国产精品国产三级国产aⅴ入口 | 成人中文字幕+乱码+中文字幕 | 亚洲精品美女视频 |