亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? crono.c

?? 實時操作系統RT LINUX的源代碼
?? C
字號:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <xview/xview.h>
#include <xview/xv_xrect.h>
#include <xview/scrollbar.h>
#include <xview/font.h>
#include <xview/canvas.h>
#include <xview/cursor.h>
#include <xview/panel.h>
#include <xview/file_chsr.h>
#include <sys/types.h>
#include "input.tab.h"
#include "crono.h"
#define SCROLL_JUMPS
    40extern void PS_output();
static  int ALTO=200, ANCHO=1000;  /*  size of the chrong canvas */
static Frame    frame;static Display  *dpy;static Canvas      canvas;static Window      xwin;static Panel       control;static Xv_opaque   bot_file,menu_file;static Xv_opaque   vsb,hsb;static Xv_opaque   saveas,openas;static int         lee_esc_flag;static Xv_opaque  pan_grid;int   NPoints;int   TimeSim;int   NTasks;int   NResources;GC      gc;GC      gc_xdot;    /* used to do the grid */GC      gcerase;    /* Cleaner */GC      gcupper;    /* Up line */GC      gclower;    /* Down line */GC      gcdiag;     /* Diag line */GC      gctasks[MAX_TASKS];   /* colors for the tasks */Accion        Chronog[MAX_MATRIX];char          Tasks[MAX_TASKS][20];char          Resources[MAX_TASKS][20];char    Name_i[100];char    Name_o[200]="Sim_crono.ps";static void Dibuja(XRectangle *);void X_Run_Simul();void X_Simul_Start();static void CreateGCs ();void Redraw ();static int     Scale1=10;static int     Scale2=10;static int     Grid_old=-1;static int     Grid_new=-1;static int     Each=100;/***************************************************** lee_grid */static void  lee_grid(Panel_item	item, Event	*event){  int x = (int) xv_get(item, PANEL_VALUE);    if (x==0) x=-1;  if (x != Grid_new){    Grid_old = Grid_new;    Grid_new = x;    if ((Grid_new!=-1) &&(Grid_new*Scale1/Scale2 <= 10)) {      Grid_new=10*Scale2/Scale1;      Grid_new= Grid_new? Grid_new:1;      xv_set(pan_grid, PANEL_VALUE , Grid_new, NULL);    }    X_Run_Simul();  }}/****************************************************************//********************************************** lee_salve_proc  */void lee_proc(fc,path,file,client_data)File_chooser fc;char *path;char *file;Xv_opaque client_data;{  int ini, fin;  Rect *rect;  strcpy(Name_i,path);  Redraw ();  xv_set(fc, XV_SHOW,FALSE,NULL);}/****************************************************************//********************************************** salva_proc  */void salva_proc(fc,path,file,client_data)File_chooser fc;char *path;char *file;Xv_opaque client_data;{  int ini, fin;  Rect *rect;  strcpy(Name_o,(char *)xv_get(saveas,FILE_CHOOSER_DOC_NAME,NULL));   rect=(Rect *) xv_get(canvas,CANVAS_VIEWABLE_RECT,canvas_paint_window(canvas));  PS_output(Name_o,(int)(rect->r_left*Scale2/Scale1),	    (int)((rect->r_left+rect->r_width)*Scale2/Scale1));  xv_set(fc, XV_SHOW,FALSE,NULL);}/****************************************************************//********************************************** menu_file_proc  */void  menu_file_proc(Menu menu, Menu_item item){  char *titulo;  titulo=(char *)xv_get(item,MENU_STRING,NULL);  switch (titulo[0]){  case 'L' :  /* load */  if(!openas) {    openas = (File_chooser)xv_create((Xv_opaque)NULL,				     FILE_CHOOSER_OPEN_DIALOG,				     XV_LABEL,"File: Open Task Set",				     FILE_CHOOSER_FILTER_STRING,"[0-9a-zA-Z]+[.]tsk$",				     FILE_CHOOSER_SHOW_DOT_FILES,FALSE,				     FILE_CHOOSER_ABBREV_VIEW,TRUE,				     /*FILE_CHOOSER_ABBREV_VIEW,TRUE,*/				     FILE_CHOOSER_NO_CONFIRM,FALSE,				     FILE_CHOOSER_AUTO_UPDATE,TRUE,				     FILE_CHOOSER_NOTIFY_FUNC,lee_proc,/*				     XV_X,100,XV_Y,70,*/				     NULL);  }      xv_set(openas,FILE_CHOOSER_DOC_NAME,Name_i,NULL);    xv_set(openas,XV_SHOW,TRUE,NULL);    lee_esc_flag=0;    break;  case 'S' : /* Save */    if(!saveas) {      saveas = (File_chooser)xv_create((Xv_opaque) NULL,				       FILE_CHOOSER_SAVE_DIALOG,				       XV_LABEL,"File: Save PostScript",				       /*FILE_CHOOSER_FILTER_STRING,"[.*]*[.]ps",*/				       /*FILE_CHOOSER_SHOW_DOT_FILES,FALSE,*/				       FILE_CHOOSER_ABBREV_VIEW,TRUE,				       FILE_CHOOSER_NO_CONFIRM,FALSE,				       FILE_CHOOSER_AUTO_UPDATE,TRUE,				       FILE_CHOOSER_NOTIFY_FUNC,salva_proc,				       XV_X,100,XV_Y,70,				       NULL);    }        xv_set(saveas,FILE_CHOOSER_DOC_NAME,Name_o,NULL);    xv_set(saveas,XV_SHOW,TRUE,NULL);    lee_esc_flag=1;    break;  case 'Q':    exit(0);    break;  default:    printf("Menu error\n");  }   /*xv_set(ficha.frame_load_save, XV_SHOW, TRUE, NULL);*/  }/****************************************************************//****************************************************** ord_mat */int ord_mat (const void *A, const void *B){  return ((Accion*)A)->x1 - ((Accion*)B)->x1;}/***************************************************** lee_zoom */static void  lee_zoom(Panel_item item, Event *event){  Scale1 = (int) xv_get(item, PANEL_VALUE);  if (Scale1>0)    Scale1 += Scale2 = 10;  else if (Scale1<0){    Scale2 = 10 - Scale1;  /* Scale1 is a negative number */    Scale1 = 10;  } else    Scale1=Scale2=10;  Each = (100* Scale2/Scale1);  if (Each>5)    Each = (Each/5)*5;  if (!Each)    Each=1;  if ((Grid_new!=-1) && (Grid_new*Scale1/Scale2 <= 10) ){    Grid_new=10*Scale2/Scale1;    Grid_new= Grid_new? Grid_new:1;    xv_set(pan_grid, PANEL_VALUE , Grid_new, NULL);  }  X_Run_Simul();  }/****************************************************************//****************************************************** Redraw  */void Redraw (){  Fill_Matrix(Name_i);  qsort(Chronog, NPoints, sizeof (Accion),  ord_mat);  X_Run_Simul();}/************************************************************* Draw_event */static void Draw_event(Accion *item){  /*                               to draw  |_______^ */  static XPoint  exec_frame[7]={{0,0},                                                                   {0,20},                                  {0,0},                                  {0,-10},                                  {-2,5},                                  {2,-5},                                  {2,5}};  switch(item->accion){  case ACTI:   exec_frame[0].x=10+item->x1*Scale1/Scale2;    exec_frame[0].y=(int)(item->id)*40;    exec_frame[2].x=(item->x2 - item->x1)*Scale1/Scale2;    XDrawLines(dpy, xwin, gc, exec_frame, 7, CoordModePrevious);    break;  case EXEC:    XFillRectangle(dpy, xwin, gctasks[item->id], 		   10+item->x1*Scale1/Scale2,		   (int)(item->id)*40+7, 		   (item->x2 - item->x1)*Scale1/Scale2, 		   13);    XDrawRectangle(dpy, xwin, gc, 		   10+item->x1*Scale1/Scale2,		   (int)(item->id)*40+7, 		   (item->x2 - item->x1)*Scale1/Scale2, 		   13);    break;  case END:        break;    } /* switch */}/************************************************************* Dibuja */static void Dibuja(XRectangle *area){  int    x,y,m_period,fin_area_x,fina_area_y;  char   cade[100];  Rect  *rect;  fin_area_x = area->x + area->width;  area->x -=10;  if (Each){    x = ((area->x*Scale2/Scale1)/Each)* Each;    for ( ; x<= (fin_area_x)*Scale2/Scale1 ; x += Each){      sprintf(cade,"%d",x);      XDrawString(dpy, xwin, gc, 10+x*Scale1/Scale2, 15, cade, strlen (cade));      XDrawLine(dpy, xwin, gc_xdot, 10+x*Scale1/Scale2,15,10+x*Scale1/Scale2, 40);    }  }  if (Grid_new != -1)    for (x=((area->x*Scale2/Scale1)/Grid_new)*Grid_new ; x<=fin_area_x*Scale2/Scale1; x+=Grid_new)  /* grid */      XDrawLine(dpy, xwin, gc_xdot, 10+x*Scale1/Scale2,40,10+x*Scale1/Scale2, 		(NTasks)*40+40);            /* looking for the start point in the chronog array */  for (x=0; (Chronog[x].x2*Scale1/Scale2+4 <  area->x) && (x< NPoints) ; x++);              /* Draw the chronog */  for (; (x< NPoints) && (Chronog[x].x1*Scale1/Scale2< fin_area_x); x++)    Draw_event(&Chronog[x]);              /* Draw a circle if one task lose its deadline */}/************************************************************* X_Run_Simul */void X_Run_Simul(){  XRectangle  region;  xv_set(canvas, CANVAS_HEIGHT,(NTasks+1)*40+40,NULL);  xv_set(canvas, CANVAS_WIDTH,TimeSim*Scale1/Scale2+30,NULL);  XClearWindow(dpy,xwin);   region.x = 0;  region.y =  0;  region.width =  TimeSim*Scale1/Scale2+30;  region.height = (NTasks+1)*40+40;  Dibuja(&region);}/************************************************************* REPAINT_PROC */static void repaint_proc(Canvas canvas,Xv_Window  paint_window ,			 Display *dpy,Window xwin, Xv_xrectlist *xrects){  int x;  xv_set(canvas, CANVAS_HEIGHT,(NTasks+1)*40,NULL);  xv_set(canvas, CANVAS_WIDTH,(int)(Scale1*TimeSim/Scale2)+30,NULL);  for (x=0; x< xrects->count; x++)    Dibuja(&(xrects->rect_array[x]));  }void X_Simul_Start( ){      frame = (Frame) xv_create((Xv_opaque) NULL, FRAME,			   FRAME_SHOW_RESIZE_CORNER, TRUE,			   FRAME_LABEL,              "Execution Display",			   XV_HEIGHT,                ALTO+26,			   NULL);    control = (Panel) xv_create(frame,PANEL,		      XV_X,0,		      XV_Y,0,		      XV_HEIGHT, 26,		      NULL);   menu_file = (Xv_opaque)xv_create((Xv_opaque)NULL,  MENU,		       MENU_NOTIFY_PROC,  menu_file_proc,		       MENU_STRINGS, "Load Task File", "Save as PostScript", "Quit", NULL,		       NULL);  bot_file = xv_create( control, PANEL_BUTTON,		       XV_X,5,		       XV_Y,5,		       PANEL_LABEL_STRING, "File",		       PANEL_ITEM_MENU, menu_file,		       NULL);  (void) xv_create(control,PANEL_BUTTON,                          PANEL_LABEL_STRING,      "Redraw",                          PANEL_NOTIFY_PROC,   Redraw,                          NULL);            (void) xv_create(control, PANEL_NUMERIC_TEXT,		   PANEL_VALUE_DISPLAY_LENGTH, 6,		   PANEL_VALUE_STORED_LENGTH, 6,		   PANEL_LABEL_STRING, "Zoom:",		   PANEL_LAYOUT, PANEL_HORIZONTAL, 		   PANEL_MAX_VALUE, 1000,		   PANEL_MIN_VALUE, -1000,		   PANEL_VALUE, 0,		   PANEL_READ_ONLY, FALSE,		   PANEL_NOTIFY_PROC, lee_zoom,		   NULL);   pan_grid = xv_create(control, PANEL_NUMERIC_TEXT,		       PANEL_VALUE_DISPLAY_LENGTH, 6,		       PANEL_VALUE_STORED_LENGTH, 6,		       PANEL_LABEL_STRING, "Grid  :",		       PANEL_LAYOUT, PANEL_HORIZONTAL, 		       PANEL_MAX_VALUE, 1000,		       PANEL_MIN_VALUE, 0,		       PANEL_VALUE, 0,		       PANEL_READ_ONLY, FALSE,		       PANEL_NOTIFY_PROC, lee_grid,		       NULL);    canvas = (Canvas)xv_create(frame, CANVAS,			     XV_X,0,			     XV_Y,26,			     CANVAS_X_PAINT_WINDOW,  TRUE,			     CANVAS_REPAINT_PROC,    repaint_proc,			     CANVAS_AUTO_SHRINK,     FALSE,			     CANVAS_AUTO_EXPAND,     FALSE,			     CANVAS_RETAINED,        FALSE,			     CANVAS_WIDTH,      ANCHO,			     CANVAS_HEIGHT,     (NTasks+1)*40,			     OPENWIN_AUTO_CLEAR,     FALSE,			     NULL);  dpy = (Display *)xv_get (canvas_paint_window(canvas),XV_DISPLAY,NULL);  xwin= xv_get (canvas_paint_window(canvas),XV_XID);      vsb=xv_create(canvas, SCROLLBAR,		SCROLLBAR_DIRECTION,            SCROLLBAR_VERTICAL,		SCROLLBAR_PIXELS_PER_UNIT,      2,		NULL);	      hsb=xv_create(canvas, SCROLLBAR,		SCROLLBAR_DIRECTION,            SCROLLBAR_HORIZONTAL,		SCROLLBAR_PIXELS_PER_UNIT,      SCROLL_JUMPS,		NULL);      window_fit(frame);}/************************************************************* CreateGCs *//* This function choose the best way to display the line according       *//* to the monitor (BW, COLOR).                                           *//*************************************************************************/static void CreateGCs (){  int           x;  XGCValues     val;  unsigned long gcmask;  /* 0-> Diagonal line     1-> Upper line     2-> lower line     3....-> tasks */  static char   *ColorNames[][2]={{"black","red"},                                    {"black","DarkSeeGreen"},                                    {"black","blue"},                                    {"black","NavyBlue"},                                    {"black","plum"},                                    {"black","orange1"},                                    {"black","OliveDrab1"},                                    {"black","hot pink"},                                    {"black","coral1"},                                    {"black","VioletRed4"},                                    {"black","gold1"},                                    {"black","yellow"},                                    {"black","tomato"},                                    {"black","peru"},                                    {"black","pink"},                                    {"black","SlateGray1"},                                    {"black","coral1"},                                    {"black","turquoise2"},                                    {"black","SeeGreen3"},                                    {"black","IndianRed3"},                                    {"black","purple1"}};  static        char      dash[3]={(char)1,(char)5};  Colormap      dc;  XColor        ColorNum[40],bgc;  int           mon_type; if (DefaultDepth (dpy, DefaultScreen (dpy)) < 2) /* Monochrome display */    mon_type=0;  else     /* Color display */    mon_type=1; dc = DefaultColormap (dpy, DefaultScreen(dpy) );  for (x=0; x< 20; x++){    XParseColor (dpy, dc, ColorNames[x][mon_type], &ColorNum[x]);    XAllocColor (dpy, dc, &ColorNum[x]);  }  XParseColor (dpy, dc, "white", &bgc);  XAllocColor (dpy, dc, &bgc);   gcmask = 0L;  val.foreground = bgc.pixel;     gcmask |= GCForeground;   val.background = bgc.pixel;     gcmask |= GCBackground;  val.graphics_exposures = False; gcmask |= GCGraphicsExposures;  val.line_width = 1;             gcmask |= GCLineWidth;  val.plane_mask = AllPlanes;     gcmask |= GCPlaneMask;  gcerase = XCreateGC (dpy, xwin, gcmask, &val);  val.foreground = ColorNum[0].pixel;  gcdiag = XCreateGC (dpy, xwin, gcmask, &val);  val.foreground = ColorNum[1].pixel;  gcupper = XCreateGC (dpy, xwin, gcmask, &val);   val.foreground = ColorNum[2].pixel;  gclower = XCreateGC (dpy, xwin, gcmask, &val);   for (x=0 ; x<MAX_TASKS; x++){    val.foreground = ColorNum[3+(x%17)].pixel;    gctasks[x]= XCreateGC (dpy, xwin, gcmask, &val);  }  gc = DefaultGC(dpy, DefaultScreen(dpy));  XSetForeground(dpy, gc, XBlackPixel(dpy, DefaultScreen(dpy) ));   gcmask = 0L;  gc_xdot = XCreateGC (dpy, xwin, gcmask, &val);  XSetForeground(dpy, gc_xdot, XBlackPixel(dpy, DefaultScreen(dpy) ));   XSetBackground(dpy, gc_xdot, XWhitePixel(dpy, DefaultScreen(dpy) ));   XSetDashes(dpy,gc_xdot , 0, dash, 2);  XSetLineAttributes(dpy, gc_xdot, 0, LineOnOffDash ,CapRound, JoinBevel);  }/****************************************************************//********************************************************* main */main(int argc, char *argv[]) {  int i,j;  char *fil;  xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);  Name_o[0]=0x0;  if (argc<2) {    printf("Usage: crono filename\n");    strcpy(Name_i,"");  } else    strcpy(Name_i,argv[1]);  Fill_Matrix(Name_i);  qsort(Chronog, NPoints, sizeof (Accion), ord_mat);    X_Simul_Start( );  CreateGCs ();   xv_main_loop(frame);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品中文字幕日韩精品 | 亚洲欧美在线观看| 一区二区三区丝袜| 国模娜娜一区二区三区| 色综合欧美在线视频区| 久久久天堂av| 麻豆成人久久精品二区三区红 | 奇米影视7777精品一区二区| 成人一道本在线| 精品国产99国产精品| 亚洲一区二区视频| 成人黄色一级视频| 欧美精品一区二区三区在线播放| 一区二区三区四区激情| jvid福利写真一区二区三区| 欧美精品一区二区在线播放| 日本成人在线看| 欧美日韩高清一区二区不卡| 亚洲三级小视频| 粉嫩一区二区三区在线看| 欧美一区二区三区思思人| 一区二区三区高清不卡| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩精品1区2区3区| 91在线免费视频观看| 国产亚洲短视频| 国产黄色成人av| 亚洲精品一区二区三区蜜桃下载| 午夜精品福利视频网站| 欧美日韩五月天| 亚洲成年人影院| 欧美三电影在线| 亚洲福利视频导航| 欧美酷刑日本凌虐凌虐| 调教+趴+乳夹+国产+精品| 欧美日韩成人综合天天影院 | 蜜桃久久久久久久| 日韩女优av电影| 欧美在线你懂的| 久久婷婷国产综合国色天香| 亚洲r级在线视频| 欧洲人成人精品| 亚洲高清免费在线| 欧美日韩在线一区二区| 一区二区三区四区乱视频| 欧美做爰猛烈大尺度电影无法无天| 亚洲欧美国产高清| 欧美在线三级电影| 日韩av一区二区三区四区| 日韩欧美色综合| 国产精品99久久久久久似苏梦涵 | 538在线一区二区精品国产| 一区二区三区在线免费观看| 欧美视频在线一区| 另类的小说在线视频另类成人小视频在线 | 国产欧美一区二区精品婷婷 | 国产欧美一区在线| av亚洲精华国产精华精华| 国产精品久久久久久亚洲毛片 | 欧美日韩成人在线一区| 麻豆传媒一区二区三区| 久久久美女毛片| 色综合久久88色综合天天免费| 亚洲一区电影777| 欧美xxxxxxxx| 色婷婷久久一区二区三区麻豆| 午夜私人影院久久久久| 国产校园另类小说区| 色嗨嗨av一区二区三区| 日韩高清国产一区在线| 国产精品亲子乱子伦xxxx裸| 欧美丝袜丝nylons| 国产成人精品亚洲777人妖| 亚洲男人天堂一区| 精品国产一区二区三区忘忧草 | 欧美在线观看你懂的| 久久se精品一区精品二区| 中文字幕一区二区三区av| 欧美精品xxxxbbbb| 99久久伊人精品| 免费观看91视频大全| ●精品国产综合乱码久久久久| 欧美剧在线免费观看网站| 成人免费观看男女羞羞视频| 天天综合天天综合色| 国产亚洲精品福利| 69堂国产成人免费视频| 不卡一区二区中文字幕| 久久99久久99| 亚洲国产日韩一区二区| 欧美亚洲一区二区三区四区| 天堂影院一区二区| 日韩美女久久久| 欧美精品一区二区三区蜜桃| 99久久婷婷国产综合精品| 狠狠色狠狠色合久久伊人| 久久色视频免费观看| 丰满少妇在线播放bd日韩电影| 日本91福利区| 亚洲成a人v欧美综合天堂下载| 国产精品高潮久久久久无| 国产偷国产偷精品高清尤物| 欧美不卡一区二区| 91麻豆精品久久久久蜜臀| 一本一道波多野结衣一区二区| 成人免费看片app下载| 国产精品综合二区| 国产呦萝稀缺另类资源| 美女网站色91| 麻豆免费看一区二区三区| 日韩av在线发布| 美腿丝袜亚洲综合| 性做久久久久久久免费看| 亚洲一区国产视频| 亚洲一级二级在线| 亚洲国产综合在线| 一区二区三区免费| 一区二区在线观看av| 亚洲美女屁股眼交| 亚洲精品成人在线| 一区二区免费看| 亚洲图片欧美色图| 亚洲成人av资源| 人人爽香蕉精品| 久久精品国产99久久6| 精品一区免费av| 国产一区二区三区免费观看| 国产另类ts人妖一区二区| 国产二区国产一区在线观看| 不卡一区在线观看| 在线视频国内自拍亚洲视频| 欧美日韩黄色一区二区| 337p亚洲精品色噜噜噜| 欧美xxxx在线观看| 国产日韩av一区| 亚洲欧洲另类国产综合| 一级特黄大欧美久久久| 日韩精品一二三区| 国产福利一区二区三区视频| 成人综合婷婷国产精品久久| 97精品电影院| 欧美女孩性生活视频| 精品乱码亚洲一区二区不卡| 国产免费观看久久| 亚洲日本va在线观看| 亚洲国产色一区| 国产福利91精品| 欧洲激情一区二区| 精品国产sm最大网站免费看| 国产精品网站在线| 午夜激情久久久| 国产91丝袜在线18| 欧洲精品在线观看| 久久日韩粉嫩一区二区三区| 中文字幕中文在线不卡住| 亚洲18女电影在线观看| 国产一区高清在线| 在线观看亚洲精品视频| 2021中文字幕一区亚洲| 夜夜精品浪潮av一区二区三区| 蜜臀91精品一区二区三区 | 性做久久久久久免费观看| 国产在线播放一区三区四| 日本精品视频一区二区三区| 精品国产123| 亚洲一级二级在线| 丁香激情综合国产| 日韩精品一区二区三区在线播放| 中文字幕一区三区| 激情五月婷婷综合| 欧美另类高清zo欧美| 国产精品久99| 国产精品资源站在线| 欧美精品 国产精品| 亚洲欧美激情小说另类| 狂野欧美性猛交blacked| 色一情一乱一乱一91av| 国产欧美日韩三级| 久久精工是国产品牌吗| 欧美日韩国产高清一区二区三区| 1024精品合集| 波多野结衣一区二区三区| 日韩精品一区二区三区在线播放| 亚洲成人激情综合网| 色综合久久88色综合天天6 | 国产精品二三区| 国产精品99久| 精品国产不卡一区二区三区| 亚洲妇女屁股眼交7| 在线观看成人小视频| 国产精品成人免费| www.性欧美| 中文字幕 久热精品 视频在线 | 精品美女被调教视频大全网站| 午夜久久久久久久久久一区二区| 99精品国产99久久久久久白柏| 国产天堂亚洲国产碰碰| 国产成人精品免费一区二区| 精品粉嫩aⅴ一区二区三区四区| 麻豆91精品91久久久的内涵|