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

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

?? fixheap.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved. */
#include <windows.h>
#include <coredll.h>
#include "heap.h"
#include <memory.h>

// layout: (DBG = with sentinels, RET = without sentinels)
//	[4 byte size in bytes not including headers, H_FREEBLOCK set if free]
//	[4 byte signature set to FREESIGHEAD/ALLOCSIGHEAD in DBG, unused on 64 bit
//		machines RET, not present on 32 bit machines RET]
//	[n byte free or data]
//	[4 byte signature set to FREESIGTAIL/ALLOCSIGTAIL in DBG, not present in RET]
//	[4 byte unused on 64 bit machines in DBG, else not present]

extern DWORD pagemask;

extern heap ProcessHeap;

_inline void INITFREEBLOCK(LPVOID p, UINT size) {
	HEADPTR(p)->size = (size & H_SIZEMASK) | H_FREEBLOCK;
#if HEAP_SENTINELS
	HEADPTR(p)->sig = FREESIGHEAD;
	TAILPTR(p)->sig = FREESIGTAIL;
#endif
#ifdef DEBUG
	memset(HEAPTOPTR(p),0xcc,size);
#endif
}

_inline void INITUSEDBLOCK(LPVOID p, UINT size) {
	HEADPTR(p)->size = size & H_SIZEMASK;
#if HEAP_SENTINELS
	HEADPTR(p)->sig = ALLOCSIGHEAD;
	TAILPTR(p)->sig = ALLOCSIGTAIL;
#endif
}

_inline void INITDEADBLOCK(LPVOID p, UINT size) {
	HEADPTR(p)->size = (size & H_SIZEMASK) | H_DEADBLOCK;
#if HEAP_SENTINELS
	HEADPTR(p)->sig = DEADSIGHEAD;
	TAILPTR(p)->sig = DEADSIGTAIL;
#endif
}

BOOL IsSigValid(pheap pHeap, LPVOID ptr, DWORD allowfree) {
	if (!pHeap->pMem || ((DWORD)ptr < (DWORD)pHeap->pMem) || ((DWORD)ptr > (DWORD)pHeap->pHigh - HDRSIZE - TLRSIZE))
        return FALSE;
	if (!allowfree && !ISINUSE(ptr))
		return FALSE;
#if HEAP_SENTINELS
	if (HEADPTR(ptr)->sig != (ISFREE(ptr) ? FREESIGHEAD : ISDEAD(ptr) ? DEADSIGHEAD : ALLOCSIGHEAD))
		return FALSE;
#endif
	if ((DWORD)TAILPTR(ptr) + TLRSIZE > (DWORD)pHeap->pHigh)
		return FALSE;
#if HEAP_SENTINELS
	if (TAILPTR(ptr)->sig != (ISFREE(ptr) ? FREESIGTAIL : ISDEAD(ptr) ? DEADSIGTAIL :ALLOCSIGTAIL))
		return FALSE;
#endif
	return TRUE;
}

// Extend a free block, only through other free blocks
void GrowFree(pheap pHeap, LPVOID ptr) {
	LPVOID newptr;
	DWORD growth, numnew;

	growth = numnew = 0;
	newptr = NEXTBLOCK(pHeap, ptr);
	while ((newptr > ptr) && ISFREE(newptr)) {
		growth += ITEMSIZE(newptr) + HDRSIZE + TLRSIZE;
		numnew++;
		newptr = NEXTBLOCK(pHeap, newptr);
	}
	if (growth) {
		HEADPTR(ptr)->size += growth;
		pHeap->dwFree += (HDRSIZE+TLRSIZE)*numnew;
#ifdef DEBUG
		memset(HEAPTOPTR(ptr),0xcc,ITEMSIZE(ptr));
#endif
	}
	if (pHeap->dwMaxLeft && (pHeap->dwMaxLeft < ITEMSIZE(ptr)))
		pHeap->dwMaxLeft = ITEMSIZE(ptr);
}

// Extend a free/dead block through other free/dead blocks if it will yield a free block of 'size'
DWORD MakePotentialSize(pheap pHeap, LPBYTE ptr, DWORD size) {
	LPBYTE ptr2 = ptr;
	int deadbytes = 0, numpieces = 0, lastdead = 0, size2, maxhit;
	do {
		numpieces++;
		if (lastdead = ISDEAD(ptr2)) {
			maxhit = (ITEMSIZE(ptr2) == pHeap->dwMaxLeft);
			deadbytes += ITEMSIZE(ptr2);
		}
		ptr2 = NEXTBLOCK(pHeap,ptr2);
	} while ((ptr2 != pHeap->pMem) && !ISINUSE(ptr2) && (ptr2 < ptr + size + HDRSIZE + TLRSIZE));
	if (ptr2 == pHeap->pMem)
		ptr2 = pHeap->pHigh;
	if (ptr + HDRSIZE + TLRSIZE + size > ptr2)
		return FALSE;
    pHeap->flOptions |= HEAP_IS_CHANGING_VM;
	if (lastdead) {
		LPBYTE tmpptr1, tmpptr2;
		tmpptr1 = (LPBYTE)((DWORD)(ptr + HDRSIZE + size + TLRSIZE + HDRSIZE + pagemask) & ~pagemask);
		tmpptr2 = (LPBYTE)((DWORD)(ptr2 - TLRSIZE) & ~pagemask);
		if (tmpptr1 < tmpptr2) {
			deadbytes -= ptr2 - TLRSIZE - tmpptr1;
			size2 = ptr2 - TLRSIZE - tmpptr1;
			ptr2 = tmpptr1 - HDRSIZE;
		} else
			lastdead = 0;
	}
	// since this does whole pages, it'll get the header for ptr2 if we're doing a lastdead
	if (!VirtualAlloc(ptr,ptr2-ptr,MEM_COMMIT, PAGE_READWRITE)) {
	    pHeap->flOptions &= ~HEAP_IS_CHANGING_VM;
		return FALSE;
	}
	if (lastdead) {
		INITDEADBLOCK(ptr2,size2);
		numpieces--;
		if (pHeap->dwMaxLeft && (pHeap->dwMaxLeft < ITEMSIZE(ptr2)))
			pHeap->dwMaxLeft = ITEMSIZE(ptr2);
		else if (maxhit)
			pHeap->dwMaxLeft = 0;
	}
    pHeap->flOptions &= ~HEAP_IS_CHANGING_VM;
	INITFREEBLOCK(ptr,ptr2-ptr-HDRSIZE-TLRSIZE);
	numpieces--;
	pHeap->dwCommitted += deadbytes;
	pHeap->dwFree += deadbytes;
    pHeap->dwFree += numpieces*(HDRSIZE+TLRSIZE);
	if (pHeap->dwMaxLeft && (pHeap->dwMaxLeft < ITEMSIZE(ptr)))
		pHeap->dwMaxLeft = ITEMSIZE(ptr);

	return TRUE;
}

// Break a free block into two pieces (if enough room)
void SplitFreeBlock(pheap pHeap, LPVOID ptr, UINT size) {
	UINT cursize;
	LPVOID ptr2;
	cursize = ITEMSIZE(ptr);
	if (pHeap->dwMaxLeft == cursize)
		pHeap->dwMaxLeft = 0;
	if (cursize - size > HDRSIZE + TLRSIZE) {
		ptr2 = (LPVOID)((DWORD)ptr + HDRSIZE + TLRSIZE + size);
		INITFREEBLOCK(ptr,size);
		INITFREEBLOCK(ptr2,cursize-size-HDRSIZE-TLRSIZE);
		// needed because of the "extension" case, since if we allowed the original free extension to be
		// added, it would immediately be removed and we'd set to 0.
		if (pHeap->dwMaxLeft && (pHeap->dwMaxLeft < ITEMSIZE(ptr2)))
			pHeap->dwMaxLeft = ITEMSIZE(ptr2);
		DEBUGCHK(pHeap->dwFree >= HDRSIZE + TLRSIZE);
		pHeap->dwFree -= HDRSIZE + TLRSIZE;
	}
}

// Shrink a block (splitting off another free block)
void ShrinkBlock(pheap pHeap, LPVOID ptr, UINT size) {
	UINT cursize;
	LPVOID ptr2;

	cursize = ITEMSIZE(ptr);
	if (cursize - size > HDRSIZE + TLRSIZE) {
		ptr2 = (LPVOID)((DWORD)ptr + HDRSIZE + TLRSIZE + size);
		HEADPTR(ptr)->size = size;
#if HEAP_SENTINELS
		TAILPTR(ptr)->sig = ALLOCSIGTAIL;
#endif
		INITFREEBLOCK(ptr2,cursize-size-HDRSIZE-TLRSIZE);
		if (pHeap->dwMaxLeft && (pHeap->dwMaxLeft < ITEMSIZE(ptr2)))
			pHeap->dwMaxLeft = ITEMSIZE(ptr2);
		pHeap->dwFree += cursize-size-HDRSIZE-TLRSIZE;
	}
}

#ifdef DEBUG

UINT WINAPI _HeapDump(HLOCAL hHeap) {
    pheap  pHeap = (pheap) hHeap;
	LPVOID ptr;
	UINT retval = 0;
	vaheapalloc *pvalloc;
    if (!pHeap)
        pHeap = &ProcessHeap;
    EnterCriticalSection(&hcs);
    try {
		if (!pHeap->pMem) {
	        DEBUGMSG(1, (TEXT("_HeapDump: Heap empty\r\n")));
	        goto done;
	    }
		while (pHeap) {
		    DEBUGMSG(1, (TEXT("flOptions:     0x%08X   pMem:    0x%08X\r\npHigh:         0x%08X   pLast:   0x%08X\r\ndwMaximumSize: 0x%08X   pCur:    0x%08X\r\ndwCommitted:   0x%08X   HDRSIZE: 0x%08X\r\ndwFree:        0x%08X   TLRSIZE: 0x%08X\r\n\r\n"),
    		             pHeap->flOptions,
        		         pHeap->pMem,
            		     pHeap->pHigh,
	                	 pHeap->dwLastCompact,
		                 pHeap->dwMaximumSize,
	    	             pHeap->pCur,
	        	         pHeap->dwCommitted,
	            	     HDRSIZE,
		                 pHeap->dwFree,
		                 TLRSIZE));
			ptr = pHeap->pMem;
			do {
				if (!IsSigValid(pHeap,ptr,1)) {
					retval = 1;
					goto done;
				}
#if HEAP_SENTINELS
		        DEBUGMSG(1, (TEXT("0x%08X %s size: 0x%08X sig: 0x%08X\r\n"),
	    	             ptr, ISFREE(ptr) ? TEXT("FREEBLOCK") : ISDEAD(ptr) ? TEXT("DEADBLOCK") : TEXT("USEDBLOCK"),
	        	         ITEMSIZE(ptr), HEADPTR(ptr)->sig));
		        DEBUGMSG(1, (TEXT("0x%08X                            sig: 0x%08X\r\n"),
	    	             TAILPTR(ptr), TAILPTR(ptr)->sig));
#else
		        DEBUGMSG(1, (TEXT("0x%08X %s size: 0x%08X\r\n"),
	    	             ptr, ISFREE(ptr) ? TEXT("FREEBLOCK") : ISDEAD(ptr) ? TEXT("DEADBLOCK") :TEXT("USEDBLOCK"),
	        	         ITEMSIZE(ptr)));
#endif
			} while ((ptr = NEXTBLOCK(pHeap, ptr)) != pHeap->pMem);
			for (pvalloc = pHeap->pVallocs; pvalloc; pvalloc = pvalloc->pnext)
				DEBUGMSG(1,(TEXT("Extended block at 0x%8.8lx, length 0x%8.8lx\r\n"),pvalloc->pBase,pvalloc->dwSize));
			pHeap = pHeap->pGrowthHeap;
		}
	    DEBUGMSG(1, (TEXT("-----------------------------------------------------\r\n")));
done:
		;
	} except (EXCEPTION_EXECUTE_HANDLER) {
		retval = 1;
	}
    LeaveCriticalSection(&hcs);
	return retval;
}

#endif

BOOL WINAPI HeapValidate(HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem) {
	BOOL retval = FALSE;
	LPVOID ptr, ptr2;
	pheap pHeap;
	vaheapalloc *pvalloc;
    if (dwFlags & ~HEAP_NO_SERIALIZE) {
	    SetLastError(ERROR_INVALID_PARAMETER);
		return FALSE;
    }
	EnterCriticalSection(&hcs);
	try {
		if (lpMem) {
			ptr = PTRTOHEAP(lpMem);
			for (pHeap = (pheap)hHeap; pHeap; pHeap = pHeap->pGrowthHeap) {
				 if ((ptr >= pHeap->pMem) && (ptr < pHeap->pHigh)) {
				 	retval = IsSigValid(pHeap,ptr,0);
				 	goto done;
				}
				for (pvalloc = pHeap->pVallocs; pvalloc; pvalloc = pvalloc->pnext) {
					if (pvalloc->pBase == lpMem) {
						if (!((DWORD)pvalloc->pBase & 0xffff) && (pvalloc->dwSize >= CE_VALLOC_MINSIZE))
							retval = TRUE;
						goto done;
					}
				}
			}
		} else {
			for (pHeap = (pheap)hHeap; pHeap; pHeap = pHeap->pGrowthHeap) {
				if (ptr = pHeap->pMem) {
					do {
						if (!IsSigValid(pHeap,ptr,1))
							goto done;
						ptr2 = (LPVOID)((DWORD)ptr + HDRSIZE + ITEMSIZE(ptr) + TLRSIZE);
						if (ptr2 <= ptr)
							goto done;
					} while ((ptr = ptr2) != pHeap->pHigh);
				}
				for (pvalloc = pHeap->pVallocs; pvalloc; pvalloc = pvalloc->pnext) {
					if (((DWORD)pvalloc->pBase & 0xffff) || (pvalloc->dwSize < CE_VALLOC_MINSIZE))
						goto done;
				}
			}
			retval = TRUE;
		}
done:
		;
	} except (EXCEPTION_EXECUTE_HANDLER) {
		retval = FALSE;
	}
	LeaveCriticalSection(&hcs);
#ifdef DEBUG
	if (!retval)
		_HeapDump(hHeap);
#endif
	return retval;
}

// Initialize a heap
BOOL SetupFixedHeap(pheap pHeap) {
	LPVOID pMem;
	if (!(pMem = VirtualAlloc(NULL,pHeap->dwMaximumSize,MEM_RESERVE,PAGE_NOACCESS)))
        return FALSE;
	pHeap->dwCommitted = pagemask + 1;
    if (!VirtualAlloc(pMem,pHeap->dwCommitted, MEM_COMMIT, PAGE_READWRITE)) {
    	VirtualFree(pMem,0,MEM_RELEASE);
		return FALSE;
	}
	DEBUGCHK(pHeap->dwCommitted >= HDRSIZE + TLRSIZE);
	pHeap->dwFree = pHeap->dwCommitted - HDRSIZE - TLRSIZE;
	pHeap->pHigh = (LPVOID)((LPBYTE)pMem + pHeap->dwCommitted);
	INITFREEBLOCK(pMem,pHeap->dwFree);
	pHeap->pCur = pMem;
	pHeap->pMem = pMem;	// heap is now initialized - this must come LAST!
	pHeap->dwMaxLeft = ITEMSIZE(pHeap->pCur);
	return TRUE;
}

LPBYTE InitSharedHeap(LPBYTE pMem, DWORD size, DWORD reserve) {
	LPBYTE pReserved, pData;
	pheap pHeap;
	LPVOID pAlloc;
	pReserved = pMem + ((sizeof(heap)+ALIGNMASK)&~ALIGNMASK);
	if (size) {
	    pAlloc = VirtualAlloc(pMem,pagemask+1, MEM_COMMIT, PAGE_READWRITE);
    	DEBUGCHK(pAlloc == pMem);
		pHeap = (pheap)pMem;
		pData = pReserved + ((reserve+ALIGNMASK)&~ALIGNMASK);
		size -= (pData - pMem);
		size &= ~ALIGNMASK;
		pHeap->dwCommitted   = pagemask + 1 - (pData - pMem);
		pHeap->pVallocs      = 0;
		pHeap->pGrowthHeap   = 0;
	    pHeap->flOptions     = HEAP_IS_SHARED;
	    pHeap->dwMaximumSize = size;
	    pHeap->pMem          = pData;
	    pHeap->pCur          = pData;
	    pHeap->pHigh         = (LPVOID)((LPBYTE)pData+pHeap->dwCommitted);
		DEBUGCHK(pHeap->dwCommitted >= HDRSIZE-TLRSIZE);
	    pHeap->dwFree        = pHeap->dwCommitted-HDRSIZE-TLRSIZE;
	    pHeap->dwLastCompact = 0;
		INITFREEBLOCK(pData,pHeap->dwFree);
	}
	return pReserved;
}

// Get size of heap block
DWORD FixedHeapSize(pheap pHeap, LPVOID ptr) {
	LPVOID ptr2;
	vaheapalloc *pva;
	pheap pTrav;
	EnterCriticalSection(&hcs);
	ptr2 = PTRTOHEAP(ptr);
	for (pTrav = pHeap; pTrav; pTrav = pTrav->pGrowthHeap) {
		if (pTrav->pMem && IsSigValid(pTrav,ptr2,0)) {
			LeaveCriticalSection(&hcs);
			return ITEMSIZE(ptr2);
		}
	}
	for (pva = pHeap->pVallocs; pva; pva = pva->pnext)
		if (pva->pBase == ptr) {
			LeaveCriticalSection(&hcs);
			return pva->dwSize;
		}
	LeaveCriticalSection(&hcs);
	return (DWORD)-1;
}

// Free a heap block
BOOL FixedHeapFree(pheap pHeap, LPVOID ptr) {
	LPVOID ptr2;
	vaheapalloc *pva, *pvaprev;
	pheap pTrav;
	ptr2 = PTRTOHEAP(ptr);
	for (pTrav = pHeap; pTrav; pTrav = pTrav->pGrowthHeap) {
		if (pTrav->pMem && IsSigValid(pTrav,ptr2,0)) {
			pTrav->dwFree += ITEMSIZE(ptr2);
			INITFREEBLOCK(ptr2,ITEMSIZE(ptr2));
			GrowFree(pTrav,ptr2);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91啦中文在线观看| 婷婷开心久久网| 一区二区三区.www| 婷婷激情综合网| 国内精品久久久久影院色| 成人在线视频首页| 欧美午夜影院一区| 精品久久久久久最新网址| 国产精品国产精品国产专区不片| 亚洲伊人伊色伊影伊综合网| 麻豆91在线播放免费| jvid福利写真一区二区三区| 欧美日韩第一区日日骚| 国产欧美一区二区精品忘忧草| 一区二区久久久久久| 日本aⅴ亚洲精品中文乱码| 国产91清纯白嫩初高中在线观看| 欧美综合亚洲图片综合区| 中文字幕亚洲在| 日本亚洲视频在线| 99国内精品久久| 精品乱人伦小说| 亚洲综合清纯丝袜自拍| 国产在线播放一区三区四| 欧美性大战久久| 国产精品丝袜91| 麻豆国产精品官网| 欧美综合亚洲图片综合区| 国产农村妇女毛片精品久久麻豆| 日韩av中文字幕一区二区| 91浏览器在线视频| 久久日一线二线三线suv| 亚洲国产欧美在线人成| 成人深夜视频在线观看| 日韩久久久精品| 亚洲激情综合网| 国产传媒久久文化传媒| 91精品国产aⅴ一区二区| 日韩一区日韩二区| 国产精品影视天天线| 欧美一级午夜免费电影| 亚洲最新视频在线播放| 成人一二三区视频| 日韩欧美一区在线观看| 亚洲成人你懂的| 99久久精品99国产精品| 久久蜜桃av一区二区天堂| 日本午夜一本久久久综合| 欧美午夜精品理论片a级按摩| 国产精品美女www爽爽爽| 免费成人在线影院| 在线播放91灌醉迷j高跟美女| 亚洲一级二级三级| 色呦呦一区二区三区| 亚洲国产精品精华液ab| 国产乱码精品一区二区三| 日韩欧美高清dvd碟片| 日韩vs国产vs欧美| 欧美精品在线观看播放| 亚洲国产乱码最新视频| 一本久久精品一区二区| 中文字幕视频一区二区三区久| 国产高清成人在线| 久久久噜噜噜久噜久久综合| 精品在线播放免费| 精品国产一区a| 精品无人码麻豆乱码1区2区 | 婷婷夜色潮精品综合在线| 欧美在线视频你懂得| 亚洲一卡二卡三卡四卡无卡久久| 欧洲一区二区av| 一区二区三区国产精华| 91成人免费电影| 亚洲小说欧美激情另类| 欧美日韩一区不卡| 亚洲国产日韩在线一区模特| 欧美日韩中文字幕一区| 亚洲aaa精品| 日韩你懂的在线播放| 另类人妖一区二区av| 久久久亚洲午夜电影| 国产不卡在线视频| 国产精品国产三级国产普通话99| 91色porny| 亚洲国产一区二区三区青草影视| 3d成人动漫网站| 美女一区二区三区在线观看| 精品国精品国产| 国产99久久久国产精品潘金| 国产精品国产馆在线真实露脸| 一本大道av一区二区在线播放| 洋洋av久久久久久久一区| 欧美精品色一区二区三区| 日本伊人色综合网| 国产午夜亚洲精品午夜鲁丝片 | 一区二区三区电影在线播| 欧美日韩高清一区| 极品少妇xxxx精品少妇偷拍| 国产色综合久久| 色哟哟在线观看一区二区三区| 亚洲v日本v欧美v久久精品| 日韩欧美亚洲国产精品字幕久久久| 国产精品综合一区二区三区| 亚洲欧美自拍偷拍色图| 欧美日韩另类国产亚洲欧美一级| 免费观看在线综合| 国产精品福利一区二区三区| 欧美日韩国产a| 国产精品一区二区你懂的| 亚洲欧美日韩精品久久久久| 在线播放视频一区| 成人免费观看视频| 亚洲成人久久影院| 国产欧美日产一区| 欧美四级电影网| 国产精品一级在线| 亚洲香蕉伊在人在线观| 久久久国产一区二区三区四区小说 | 欧美日韩视频在线观看一区二区三区| 性欧美大战久久久久久久久| 久久色在线观看| 欧美午夜寂寞影院| 成人午夜免费视频| 偷拍日韩校园综合在线| 中文字幕精品综合| 日韩一区二区三区在线| aaa欧美日韩| 麻豆精品一区二区| 一区二区三区国产精品| 久久久不卡影院| 欧美日韩国产首页| 懂色av中文一区二区三区| 日韩精品国产欧美| 中文字幕日韩精品一区| 日韩欧美中文字幕制服| 在线精品视频小说1| 国产69精品久久久久777| 丝袜美腿亚洲色图| 亚洲欧美在线aaa| 久久精品一级爱片| 91精品蜜臀在线一区尤物| 99精品1区2区| 高清不卡一区二区| 久久精品国产精品青草| 亚洲一区二区在线视频| 中文字幕av在线一区二区三区| 日韩一区二区视频在线观看| 欧美午夜精品久久久久久超碰| 成人国产精品免费观看| 国产做a爰片久久毛片| 日本美女一区二区三区| 亚洲综合激情另类小说区| 中文av一区二区| 26uuu精品一区二区在线观看| 欧美日韩国产系列| 91传媒视频在线播放| 成人国产视频在线观看| 国产精品一卡二卡在线观看| 九色porny丨国产精品| 三级精品在线观看| 亚洲午夜在线观看视频在线| 玉足女爽爽91| 亚洲欧洲精品一区二区精品久久久 | 亚洲成av人影院| 一区二区三区在线视频免费观看| 国产女同互慰高潮91漫画| 久久一区二区视频| 精品国产麻豆免费人成网站| 欧美一区二区免费视频| 欧美精品一级二级三级| 9191成人精品久久| 欧美日韩免费电影| 精品视频资源站| 欧美日韩综合在线| 欧美日韩精品一二三区| 欧美日本视频在线| 欧美男同性恋视频网站| 欧美日韩免费电影| 91精品欧美福利在线观看| 欧美丰满少妇xxxbbb| 欧美日韩第一区日日骚| 制服丝袜国产精品| 欧美一区二区三区的| 精品免费日韩av| 久久免费午夜影院| 国产午夜精品一区二区三区四区| 久久―日本道色综合久久| 久久久久久久综合狠狠综合| 国产欧美日韩在线视频| 国产精品三级av在线播放| 中日韩av电影| 亚洲色图一区二区| 亚洲综合图片区| 全部av―极品视觉盛宴亚洲| 麻豆专区一区二区三区四区五区| 看电影不卡的网站| 国产精品自产自拍| 91色.com| 91精品国产乱| 2021中文字幕一区亚洲|