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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pentiumlib.c

?? vxwork源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* pentiumLib.c - Pentium and Pentium[234] library *//* Copyright 1984-2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01f,20nov01,hdn  doc clean up for 5.501e,01nov01,hdn  added pentiumMsrInit() and pentiumMcaEnable().01d,21aug01,hdn  added P5/P6 PMC routines from T31 ver 01e		 fixed a bug in pentiumMtrr[GS]et() (spr 68103)01c,24mar99,jdi  doc: added basic formatting cmds, particularly .CS/.CE		 to set off code snippets as per standard practice.01b,17apr98,hdn  fixed typo.01b,17apr98,hdn  added documentation.01a,09jul97,hdn  written.*//*DESCRIPTIONThis library provides Pentium and Pentium[234] specific routines. .SS "MTRR (Memory Type Range Register)"MTRR (Memory Type Range Register) are a new feature introduced in the P6 family processor that allow the processor to optimize memory operationsfor different types of memory, such as RAM, ROM, frame buffer memory, andmemory-mapped IO.  MTRRs configure an internal map of how physical address ranges are mapped to various types of memory.  The processor uses this internalmap to determine the cacheability of various physical memory locations and theoptimal method of accessing memory locations.  For example, if a memorylocation is specified in an MTRR as write-through memory, the processor handlesaccesses to this location as follows.  It reads data from that location in lines and caches the read data or maps all writes to that location to the busand updates the cache to maintain cache coherency.  In mapping the physicaladdress space with MTRRs, the processor recognizes five types of memory:uncacheable (UC), write-combining (WC), write-through (WT),write-protected (WP), and write-back (WB).There is one table - sysMtrr[] in sysLib.c - and four routines to interfacethe MTRR.  These four routines are:.CS  void pentiumMtrrEnable (void)  void pentiumMtrrDisable (void)  STATUS pentiumMtrrGet      (      MTRR * pMtrr		/@ MTRR table @/      )  STATUS pentiumMtrrSet (void)      (      MTRR * pMtrr		/@ MTRR table @/      ).CEpentiumMtrrEnable() enables MTRR, pentiumMtrrDisable() disables MTRR.pentiumMtrrGet() gets MTRRs to the specified MTRR table.pentiumMtrrGet() sets MTRRs from the specified MTRR table.The MTRR table is defined as follows:.CStypedef struct mtrr_fix         /@ MTRR - fixed range register @/    {    char type[8];		/@ address range: [0]=0-7 ... [7]=56-63 @/    } MTRR_FIX;typedef struct mtrr_var         /@ MTRR - variable range register @/    {    long long int base;		/@ base register @/    long long int mask;		/@ mask register @/    } MTRR_VAR;typedef struct mtrr             /@ MTRR @/    {    int cap[2];                 /@ MTRR cap register @/    int deftype[2];             /@ MTRR defType register @/    MTRR_FIX fix[11];           /@ MTRR fixed range registers @/    MTRR_VAR var[8];            /@ MTRR variable range registers @/    } MTRR;.CEFixed Range Register's type array can be one of following memory types.MTRR_UC (uncacheable), MTRR_WC (write-combining), MTRR_WT (write-through), MTRR_WP (write-protected), and MTRR_WB (write-back).MTRR is enabled in sysHwInit()..SS "PMC (Performance Monitoring Counters)"The P5 and P6 family of processors has two performance-monitoring countersfor use in monitoring internal hardware operations. These counters areduration or event counters that can be programmed to count any of approximately100 different types of events, such as the number of instructions decoded,number of interrupts received, or number of cache loads. However, the set ofevents can be counted with PMC is different in the P5 and P6 family ofprocessors; and the locations and bit difinitions of the related counter andcontrol registers are also different. So there are two set of PMC routines,one for P6 family and one for P5 family respectively in pentiumALib. Forconvenience, the PMC routines here are acting as wrappers to those routinesin pentiumALib. They will call the P5 or P6 routine depending on the processor type.There are twelve routines to interface the PMC.  These twelve routines are:.CS  STATUS pentiumPmcStart         (         int pmcEvtSel0;        /@ performance event select register 0 @/         int pmcEvtSel1;        /@ performance event select register 1 @/         )  STATUS pentiumPmcStart0         (         int pmcEvtSel0;        /@ performance event select register 0 @/         )  STATUS pentiumPmcStart1         (         int pmcEvtSel1;        /@ performance event select register 1 @/         )  void   pentiumPmcStop (void)  void   pentiumPmcStop0 (void)  void   pentiumPmcStop1 (void)  void   pentiumPmcGet         (         long long int * pPmc0; /@ performance monitoring counter 0 @/         long long int * pPmc1; /@ performance monitoring counter 1 @/         )  void   pentiumPmcGet0         (         long long int * pPmc0; /@ performance monitoring counter 0 @/         )  void   pentiumPmcGet1         (         long long int * pPmc1; /@ performance monitoring counter 1 @/         )  void   pentiumPmcReset (void)  void   pentiumPmcReset0 (void)  void   pentiumPmcReset1 (void).CEpentiumPmcStart() starts both PMC0 and PMC1. pentiumPmcStart0() starts PMC0,and pentiumPmcStart1() starts PMC1.pentiumPmcStop() stops both PMC0 and PMC1. pentiumPmcStop0() stops PMC0, and pentiumPmcStop1() stops PMC1.pentiumPmcGet() gets contents of PMC0 and PMC1.  pentiumPmcGet0() getscontents of PMC0, and pentiumPmcGet1() gets contents of PMC1.pentiumPmcReset() resets both PMC0 and PMC1.  pentiumPmcReset0() resetsPMC0, and pentiumPmcReset1() resets PMC1.PMC is enabled in sysHwInit().  Selected events in the default configurationare PMC0 = number of hardware interrupts received and PMC1 = number ofmisaligned data memory references..SS "MSR (Model Specific Registers)"The P5(Pentium), P6(PentiumPro, II, III), and P7(Pentium4) family processorscontain a model-specific registers (MSRs).  These registers are implement-ation specific.  They are provided to control a variety of hardware and software related features including the performance monitoring, the debugextensions, the machine check architecture, etc.There is one routine - pentiumMsrInit() - to initialize all the MSRs.This routine initializes all the MSRs in the processor and works on eitherP5, P6 or P7 family processors..SS "MCA (Machine Check Architecture)"The P5(Pentium), P6(PentiumPro, II, III), and P7(Pentium4) family processorshave a machine-check architecture that provides a mechanism for detecting and reporting hardware (machine) errors, such as system bus errors, ECCerrors, parity errors, cache errors and TLB errors.  It consists of a setof model-specific registers (MSRs) that are used to set up machine checking and additional banks of MSRs for recording errors that are detected.The processor signals the detection of a machine-check error by generatinga machine-check exception, which an abort class exception.  The implement-ation of the machine-check architecture, does not ordinarily permit the processor to be restarted reliably after generating a machine-check exception.  However, the machine-check exception handler can collectinformation about the machine-check error from the machine-check MSRs.There is one routine - pentiumMcaEnable() - to enable or disable the MCA.The routine enables or disables 1) the Machine Check Architecture and its Error Reporting register banks 2) the Machine Check Exception by togglingthe MCE bit in the CR4.  This routine works on either P5, P6 or P7 family.SEE ALSO:.I PentiumALib, "Pentium, Pentium[234] Family Developer's Manual"*//* includes */#include "vxWorks.h"#include "regs.h"#include "arch/i86/pentiumLib.h"#include "vxLib.h"#include "intLib.h"#include "cacheLib.h"/* defines */#define	IA32_MISC_ENABLE_DEFAULT	(MSC_FAST_STRING_ENABLE | \					 MSC_THERMAL_MON_ENABLE)#define MSR_ROB_CR_BKUPTMPDR6_DEFAULT	0x4/* externals */IMPORT CPUID sysCpuId;IMPORT int sysProcessor;/* globals */PENTIUM_MSR pentiumMsrP5[] = {    {MSR_P5_MC_ADDR,		"P5_MC_ADDR"},    {MSR_P5_MC_TYPE,		"P5_MC_TYPE"},    {MSR_TSC,			"TSC"},    {MSR_CESR,			"CESR"},    {MSR_CTR0,			"CTR0"},    {MSR_CTR1,			"CTR1"},    };INT32 pentiumMsrP5NumEnt = NELEMENTS (pentiumMsrP5);PENTIUM_MSR pentiumMsrP6[] = {    {MSR_P5_MC_ADDR,		"P5_MC_ADDR"},    {MSR_P5_MC_TYPE,		"P5_MC_TYPE"},    {MSR_TSC,			"TSC"},    {IA32_PLATFORM_ID,		"IA32_PLATFORM_ID"},    {MSR_APICBASE,		"APICBASE"},    {MSR_EBL_CR_POWERON,	"EBL_CR_POWERON"},    {MSR_TEST_CTL,		"TEST_CTL"},    /* RW triggers the loading of the microcode update.    {MSR_BIOS_UPDT_TRIG,	"BIOS_UPDT_TRIG"},    */    {MSR_BBL_CR_D0,		"BBL_CR_D0"},    {MSR_BBL_CR_D1,		"BBL_CR_D1"},    {MSR_BBL_CR_D2,		"BBL_CR_D2"},    {MSR_BIOS_SIGN,		"BIOS_SIGN"},    {MSR_PERFCTR0,		"PERFCTR0"},    {MSR_PERFCTR1,		"PERFCTR1"},    {MSR_MTRR_CAP,		"MTRR_CAP"},    {MSR_BBL_CR_ADDR,		"BBL_CR_ADDR"},    {MSR_BBL_CR_DECC,		"BBL_CR_DECC"},    {MSR_BBL_CR_CTL,		"BBL_CR_CTL"},    /* write only with Data=0, reading generates GPF exception.    {MSR_BBL_CR_TRIG,		"BBL_CR_TRIG"},    */    {MSR_BBL_CR_BUSY,		"BBL_CR_BUSY"},    {MSR_BBL_CR_CTL3,		"BBL_CR_CTL3"},    {MSR_SYSENTER_CS,		"SYSENTER_CS"},    {MSR_SYSENTER_ESP,		"SYSENTER_ESP"},    {MSR_SYSENTER_EIP,		"SYSENTER_EIP"},    {MSR_MCG_CAP,		"MCG_CAP"},    {MSR_MCG_STATUS,		"MCG_STATUS"},    /* generate GPF exception if not present.    {MSR_MCG_CTL,		"MCG_CTL"},    */    {MSR_EVNTSEL0,		"EVNTSEL0"},    {MSR_EVNTSEL1,		"EVNTSEL1"},    {MSR_DEBUGCTLMSR,		"DEBUGCTLMSR"},    {MSR_LASTBRANCH_FROMIP,	"LASTBRANCH_FROMIP"},    {MSR_LASTBRANCH_TOIP,	"LASTBRANCH_TOIP"},    {MSR_LASTINT_FROMIP,	"LASTINT_FROMIP"},    {MSR_LASTINT_TOIP,		"LASTINT_TOIP"},    {MSR_ROB_CR_BKUPTMPDR6,	"ROB_CR_BKUPTMPDR6"},    {MSR_MTRR_PHYS_BASE0,	"MTRR_PHYS_BASE0"},    {MSR_MTRR_PHYS_MASK0,	"MTRR_PHYS_MASK0"},    {MSR_MTRR_PHYS_BASE1,	"MTRR_PHYS_BASE1"},    {MSR_MTRR_PHYS_MASK1,	"MTRR_PHYS_MASK1"},    {MSR_MTRR_PHYS_BASE2,	"MTRR_PHYS_BASE2"},    {MSR_MTRR_PHYS_MASK2,	"MTRR_PHYS_MASK2"},    {MSR_MTRR_PHYS_BASE3,	"MTRR_PHYS_BASE3"},    {MSR_MTRR_PHYS_MASK3,	"MTRR_PHYS_MASK3"},    {MSR_MTRR_PHYS_BASE4,	"MTRR_PHYS_BASE4"},    {MSR_MTRR_PHYS_MASK4,	"MTRR_PHYS_MASK4"},    {MSR_MTRR_PHYS_BASE5,	"MTRR_PHYS_BASE5"},    {MSR_MTRR_PHYS_MASK5,	"MTRR_PHYS_MASK5"},    {MSR_MTRR_PHYS_BASE6,	"MTRR_PHYS_BASE6"},    {MSR_MTRR_PHYS_MASK6,	"MTRR_PHYS_MASK6"},    {MSR_MTRR_PHYS_BASE7,	"MTRR_PHYS_BASE7"},    {MSR_MTRR_PHYS_MASK7,	"MTRR_PHYS_MASK7"},    {MSR_MTRR_FIX_00000,	"MTRR_FIX_00000"},    {MSR_MTRR_FIX_80000,	"MTRR_FIX_80000"},    {MSR_MTRR_FIX_A0000,	"MTRR_FIX_A0000"},    {MSR_MTRR_FIX_C0000,	"MTRR_FIX_C0000"},    {MSR_MTRR_FIX_C8000,	"MTRR_FIX_C8000"},    {MSR_MTRR_FIX_D0000,	"MTRR_FIX_D0000"},    {MSR_MTRR_FIX_D8000,	"MTRR_FIX_D8000"},    {MSR_MTRR_FIX_E0000,	"MTRR_FIX_E0000"},    {MSR_MTRR_FIX_E8000,	"MTRR_FIX_E8000"},    {MSR_MTRR_FIX_F0000,	"MTRR_FIX_F0000"},    {MSR_MTRR_FIX_F8000,	"MTRR_FIX_F8000"},    {MSR_MTRR_DEFTYPE,		"MTRR_DEFTYPE"},    /* use pentiumMcaEnable() or pentiumMcaShow()    {MSR_MC0_CTL,		"MC0_CTL"},    {MSR_MC0_STATUS,		"MC0_STATUS"},    {MSR_MC0_ADDR,		"MC0_ADDR"},    {MSR_MC0_MISC,		"MC0_MISC"},    {MSR_MC1_CTL,		"MC1_CTL"},    {MSR_MC1_STATUS,		"MC1_STATUS"},    {MSR_MC1_ADDR,		"MC1_ADDR"},    {MSR_MC1_MISC,		"MC1_MISC"},    {MSR_MC2_CTL,		"MC2_CTL"},    {MSR_MC2_STATUS,		"MC2_STATUS"},    {MSR_MC2_ADDR,		"MC2_ADDR"},    {MSR_MC2_MISC,		"MC2_MISC"},    {MSR_MC4_CTL,		"MC4_CTL"},    {MSR_MC4_STATUS,		"MC4_STATUS"},    {MSR_MC4_ADDR,		"MC4_ADDR"},    {MSR_MC4_MISC,		"MC4_MISC"},    {MSR_MC3_CTL,		"MC3_CTL"},    {MSR_MC3_STATUS,		"MC3_STATUS"},    {MSR_MC3_ADDR,		"MC3_ADDR"},    {MSR_MC3_MISC,		"MC3_MISC"},    */    };INT32 pentiumMsrP6NumEnt = NELEMENTS (pentiumMsrP6);PENTIUM_MSR pentiumMsrP7[] = {    {IA32_P5_MC_ADDR,		"IA32_P5_MC_ADDR"},    {IA32_P5_MC_TYPE,		"IA32_P5_MC_TYPE"},    {IA32_TIME_STAMP_COUNTER,	"IA32_TIME_STAMP_COUNTER"},    {IA32_PLATFORM_ID,		"IA32_PLATFORM_ID"},    {IA32_APIC_BASE,		"IA32_APIC_BASE"},    {MSR_EBC_HARD_POWERON,	"EBC_HARD_POWERON"},    {MSR_EBC_SOFT_POWERON,	"EBC_SOFT_POWERON"},    {MSR_EBC_FREQUENCY_ID,	"EBC_FREQUENCY_ID"},    /* RW triggers the loading of the microcode update.    {IA32_BIOS_UPDT_TRIG,	"IA32_BIOS_UPDT_TRIG"},     */    {IA32_BIOS_SIGN_ID,		"IA32_BIOS_SIGN_ID"},    {IA32_MTRRCAP,		"IA32_MTRRCAP"},    {IA32_MISC_CTL,		"IA32_MISC_CTL"},    {IA32_SYSENTER_CS,		"IA32_SYSENTER_CS"},    {IA32_SYSENTER_ESP,		"IA32_SYSENTER_ESP"},    {IA32_SYSENTER_EIP,		"IA32_SYSENTER_EIP"},    {IA32_MCG_CAP,		"IA32_MCG_CAP"},    {IA32_MCG_STATUS,		"IA32_MCG_STATUS"},    /* generate GPF exception if not present.    {IA32_MCG_CTL,		"IA32_MCG_CTL"},    {IA32_MCG_EAX,		"IA32_MCG_EAX"},    {IA32_MCG_EBX,		"IA32_MCG_EBX"},    {IA32_MCG_ECX,		"IA32_MCG_ECX"},    {IA32_MCG_EDX,		"IA32_MCG_EDX"},    {IA32_MCG_ESI,		"IA32_MCG_ESI"},    {IA32_MCG_EDI,		"IA32_MCG_EDI"},    {IA32_MCG_EBP,		"IA32_MCG_EBP"},    {IA32_MCG_ESP,		"IA32_MCG_ESP"},    {IA32_MCG_EFLAGS,		"IA32_MCG_EFLAGS"},    {IA32_MCG_EIP,		"IA32_MCG_EIP"},    {IA32_MCG_MISC,		"IA32_MCG_MISC"},     */    {IA32_THERM_CONTROL,	"IA32_THERM_CONTROL"},    {IA32_THERM_INTERRUPT,	"IA32_THERM_INTERRUPT"},    {IA32_THERM_STATUS,		"IA32_THERM_STATUS"},    {IA32_MISC_ENABLE,		"IA32_MISC_ENABLE"},    {MSR_LER_FROM_LIP,		"LER_FROM_LIP"},    {MSR_LER_TO_LIP,		"LER_TO_LIP"},    {IA32_DEBUGCTL,		"IA32_DEBUGCTL"},    {MSR_LASTBRANCH_TOS,	"LASTBRANCH_TOS"},    {MSR_LASTBRANCH_0,		"LASTBRANCH_0"},    {MSR_LASTBRANCH_1,		"LASTBRANCH_1"},    {MSR_LASTBRANCH_2,		"LASTBRANCH_2"},    {MSR_LASTBRANCH_3,		"LASTBRANCH_3"},    {IA32_MTRR_PHYSBASE0,	"IA32_MTRR_PHYSBASE0"},    {IA32_MTRR_PHYSMASK0,	"IA32_MTRR_PHYSMASK0"},    {IA32_MTRR_PHYSBASE1,	"IA32_MTRR_PHYSBASE1"},    {IA32_MTRR_PHYSMASK1,	"IA32_MTRR_PHYSMASK1"},    {IA32_MTRR_PHYSBASE2,	"IA32_MTRR_PHYSBASE2"},    {IA32_MTRR_PHYSMASK2,	"IA32_MTRR_PHYSMASK2"},    {IA32_MTRR_PHYSBASE3,	"IA32_MTRR_PHYSBASE3"},    {IA32_MTRR_PHYSMASK3,	"IA32_MTRR_PHYSMASK3"},    {IA32_MTRR_PHYSBASE4,	"IA32_MTRR_PHYSBASE4"},    {IA32_MTRR_PHYSMASK4,	"IA32_MTRR_PHYSMASK4"},    {IA32_MTRR_PHYSBASE5,	"IA32_MTRR_PHYSBASE5"},    {IA32_MTRR_PHYSMASK5,	"IA32_MTRR_PHYSMASK5"},    {IA32_MTRR_PHYSBASE6,	"IA32_MTRR_PHYSBASE6"},    {IA32_MTRR_PHYSMASK6,	"IA32_MTRR_PHYSMASK6"},    {IA32_MTRR_PHYSBASE7,	"IA32_MTRR_PHYSBASE7"},    {IA32_MTRR_PHYSMASK7,	"IA32_MTRR_PHYSMASK7"},    {IA32_MTRR_FIX64K_00000,	"IA32_MTRR_FIX64K_00000"},    {IA32_MTRR_FIX16K_80000,	"IA32_MTRR_FIX16K_80000"},    {IA32_MTRR_FIX16K_A0000,	"IA32_MTRR_FIX16K_A0000"},    {IA32_MTRR_FIX4K_C0000,	"IA32_MTRR_FIX4K_C0000"},    {IA32_MTRR_FIX4K_C8000,	"IA32_MTRR_FIX4K_C8000"},    {IA32_MTRR_FIX4K_D0000,	"IA32_MTRR_FIX4K_D0000"},    {IA32_MTRR_FIX4K_D8000,	"IA32_MTRR_FIX4K_D8000"},    {IA32_MTRR_FIX4K_E0000,	"IA32_MTRR_FIX4K_E0000"},    {IA32_MTRR_FIX4K_E8000,	"IA32_MTRR_FIX4K_E8000"},    {IA32_MTRR_FIX4K_F8000,	"IA32_MTRR_FIX4K_F8000"},    {IA32_CR_PAT,		"IA32_CR_PAT"},    {IA32_MTRR_DEF_TYPE,	"IA32_MTRR_DEF_TYPE"},    {MSR_BPU_COUNTER0,		"BPU_COUNTER0"},    {MSR_BPU_COUNTER1,		"BPU_COUNTER1"},    {MSR_BPU_COUNTER2,		"BPU_COUNTER2"},    {MSR_BPU_COUNTER3,		"BPU_COUNTER3"},    {MSR_MS_COUNTER0,		"MS_COUNTER0"},    {MSR_MS_COUNTER1,		"MS_COUNTER1"},    {MSR_MS_COUNTER2,		"MS_COUNTER2"},    {MSR_MS_COUNTER3,		"MS_COUNTER3"},    {MSR_FLAME_COUNTER0,	"FLAME_COUNTER0"},    {MSR_FLAME_COUNTER1,	"FLAME_COUNTER1"},    {MSR_FLAME_COUNTER2,	"FLAME_COUNTER2"},    {MSR_FLAME_COUNTER3,	"FLAME_COUNTER3"},    {MSR_IQ_COUNTER0,		"IQ_COUNTER0"},    {MSR_IQ_COUNTER1,		"IQ_COUNTER1"},    {MSR_IQ_COUNTER2,		"IQ_COUNTER2"},    {MSR_IQ_COUNTER3,		"IQ_COUNTER3"},    {MSR_IQ_COUNTER4,		"IQ_COUNTER4"},

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷激情综合网| 中文文精品字幕一区二区| 欧美丰满少妇xxxxx高潮对白| 久久久国产精品麻豆| 日韩精品电影在线| 欧美日韩精品系列| 亚洲电影激情视频网站| 欧美在线观看你懂的| 亚洲欧美日韩国产一区二区三区| 粉嫩一区二区三区在线看| 久久综合成人精品亚洲另类欧美| 国产一区二区毛片| 日韩一区二区在线观看视频| 日韩中文字幕区一区有砖一区| 亚洲国产精品二十页| 欧美一区二区国产| 国产主播一区二区三区| 精品国产一二三区| 国产99久久久精品| 国模无码大尺度一区二区三区| 亚洲网友自拍偷拍| 26uuu精品一区二区| 欧美电影一区二区| 欧美性做爰猛烈叫床潮| 蜜桃视频免费观看一区| 久久久午夜精品理论片中文字幕| 欧美精品久久一区二区三区| 在线视频观看一区| 91小视频在线免费看| 亚洲精品伦理在线| 91精品国产综合久久久久久| 国产一区二区免费在线| 老司机精品视频导航| 国产精品高潮久久久久无| 欧美体内she精高潮| 99精品欧美一区二区三区小说| 亚洲午夜精品在线| 一区二区三区在线视频播放| 2020国产精品自拍| 日韩欧美www| 91一区一区三区| 成人av在线网| 日韩精品成人一区二区在线| 一区二区三区四区高清精品免费观看| 亚洲欧洲成人av每日更新| 欧美日本不卡视频| 欧美精品粉嫩高潮一区二区| 7777精品久久久大香线蕉| 欧美酷刑日本凌虐凌虐| 3atv一区二区三区| 欧美大片一区二区三区| 日韩欧美你懂的| 久久免费偷拍视频| 日本一区二区三区高清不卡| 欧美一区二区三区影视| 欧美一区二区视频在线观看2022| 日韩一区二区免费在线电影| 欧美成人免费网站| 欧美精品欧美精品系列| 日韩欧美一级在线播放| 久久在线免费观看| 国产精品视频免费看| 一区二区三区四区激情| 日韩影院在线观看| 韩国av一区二区三区四区 | 美女任你摸久久| 国模冰冰炮一区二区| 成人国产精品免费观看| 欧美视频在线一区| 精品久久久久久久久久久久久久久久久 | 亚洲男同1069视频| 亚洲成人免费视| 国模无码大尺度一区二区三区| 成人黄动漫网站免费app| 91九色02白丝porn| 成人午夜又粗又硬又大| 久久99国内精品| 日本欧美一区二区| 樱花草国产18久久久久| 日日夜夜免费精品| 不卡视频一二三四| 欧美日韩高清一区| 欧美激情一区二区三区四区| 一区二区在线免费观看| 蜜桃久久久久久久| 91免费国产在线| 日韩精品自拍偷拍| 1024亚洲合集| 国产麻豆一精品一av一免费| 色婷婷av一区二区三区大白胸 | 美女网站色91| 91亚洲国产成人精品一区二三| 日韩欧美国产综合| 亚洲精品videosex极品| 国产在线精品一区二区三区不卡| 在线欧美日韩国产| 中文无字幕一区二区三区| 偷拍亚洲欧洲综合| aa级大片欧美| a级精品国产片在线观看| 欧美大白屁股肥臀xxxxxx| 亚洲日本护士毛茸茸| 国产精品国模大尺度视频| 青青草伊人久久| 久久精品二区亚洲w码| 日本丶国产丶欧美色综合| 国产亚洲成av人在线观看导航| 国产精品美女久久久久av爽李琼| 蜜桃视频一区二区| 欧美日韩色综合| 久久精品人人爽人人爽| 亚洲大片免费看| 一本到一区二区三区| 日本一区二区动态图| 国内不卡的二区三区中文字幕 | 国产一区在线看| 欧美日本一区二区在线观看| 亚洲少妇最新在线视频| 国产二区国产一区在线观看| 成人福利视频网站| 337p日本欧洲亚洲大胆精品| 日本中文字幕不卡| 在线播放91灌醉迷j高跟美女 | 亚洲精品国产高清久久伦理二区| 国产盗摄精品一区二区三区在线| 日韩精品一区二区三区视频播放| 视频一区国产视频| 欧美日韩国产123区| 亚洲国产精品一区二区久久| 色琪琪一区二区三区亚洲区| 国产精品精品国产色婷婷| 成人午夜视频网站| 日本一区二区电影| jlzzjlzz欧美大全| 亚洲欧洲性图库| 成人av综合一区| 中文字幕一区二区三区在线不卡| 国产99久久精品| 中文字幕国产一区二区| 成人激情免费网站| 国产欧美一区二区精品性色超碰| 国产成人综合网| 亚洲国产精品成人综合 | 精品日韩欧美在线| 精品一区中文字幕| 久久亚洲精精品中文字幕早川悠里 | 一区二区三区精品在线观看| 在线一区二区视频| 午夜欧美电影在线观看| 91精品婷婷国产综合久久性色| 男人的天堂久久精品| 亚洲日本va在线观看| 91网页版在线| 亚洲综合av网| 成人深夜在线观看| 亚洲特黄一级片| 欧美日韩免费高清一区色橹橹| 日韩精品亚洲一区| 久久日韩粉嫩一区二区三区 | 不卡的av电影| 亚洲啪啪综合av一区二区三区| 在线视频欧美精品| 日韩高清不卡一区二区三区| 亚洲精品在线免费观看视频| 国产1区2区3区精品美女| 一区二区三区四区中文字幕| 欧美一卡在线观看| 丁香婷婷深情五月亚洲| 亚洲欧美日韩国产一区二区三区| 7777女厕盗摄久久久| 国产成人aaa| 亚洲精品国产a久久久久久| 欧美一卡2卡3卡4卡| 国产精品中文字幕欧美| 欧美一区国产二区| 国产精品一二三四| 一区二区三区丝袜| 欧美成人一级视频| 在线日韩av片| 国产激情视频一区二区在线观看| 亚洲美女免费在线| 亚洲精品一区二区三区蜜桃下载| 波多野结衣中文字幕一区二区三区| 亚洲在线视频一区| www久久精品| 欧美性猛片aaaaaaa做受| 裸体歌舞表演一区二区| 亚洲男人天堂一区| 久久综合给合久久狠狠狠97色69| 色综合久久综合网97色综合| 热久久免费视频| 亚洲日韩欧美一区二区在线| 日韩精品专区在线影院重磅| 91美女视频网站| 精品一区二区三区不卡| 亚洲福利一二三区| 日韩美女精品在线| 久久九九国产精品| 日韩丝袜美女视频| 欧美撒尿777hd撒尿|