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

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

?? mem_align.c

?? 基于Linux的ffmepg decoder
?? C
字號:
#include <stdlib.h>#include <stdio.h>#include "mem_align.h"#include "../../faraday_mpeg4_common/dev_mem.h"void *xvid_malloc(size_t size,			uint8_t alignment){	uint8_t *mem_ptr;	if (!alignment) {		size += CACHE_LINE;	  //reserved_size;		/* We have not to satisfy any alignment */		if ((mem_ptr = (uint8_t *) malloc(size + 1)) != NULL) {			/* Store (mem_ptr - "real allocated memory") in *(mem_ptr-1) *///			*mem_ptr = 0;			*mem_ptr = 1;			/* Return the mem_ptr pointer */			return (void *) ++mem_ptr;		}	} else {		uint8_t *tmp;		/*		 * Allocate the required size memory + alignment so we		 * can realign the data if necessary		 */		size += CACHE_LINE;	  //reserved_size;		if ((tmp = (uint8_t *) malloc(size + alignment)) != NULL) {			/* Align the tmp pointer */			mem_ptr =				(uint8_t *) ((ptr_t) (tmp + alignment - 1) &							 (~(ptr_t) (alignment - 1)));			/*			 * Special case where malloc have already satisfied the alignment			 * We must add alignment to mem_ptr because we must store			 * (mem_ptr - tmp) in *(mem_ptr-1)			 * If we do not add alignment to mem_ptr then *(mem_ptr-1) points			 * to a forbidden memory space			 */			if (mem_ptr == tmp)				mem_ptr += alignment;			/*			 * (mem_ptr - tmp) is stored in *(mem_ptr-1) so we are able to retrieve			 * the real malloc block allocated and free it in xvid_free			 */			*(mem_ptr - 1) = (uint8_t) (mem_ptr - tmp);			/* Return the aligned pointer */			return (void *) mem_ptr;		}	}	return NULL;}/***************************************************************************** * xvid_free * * Free a previously 'xvid_malloc' allocated block. Does not free NULL * references. * * Returned value : None. * ****************************************************************************/voidxvid_free(void *mem_ptr){	/* *(mem_ptr - 1) give us the offset to the real malloc block */	if (mem_ptr)		free((uint8_t *) mem_ptr - *((uint8_t *) mem_ptr - 1));}void *xvid_dma_malloc(size_t size,			uint8_t alignment, void ** phy){	uint8_t *virt_mem_ptr;	uint8_t *virt_ret;	uint32_t tsize;	if (!alignment) {	    tsize = size + 9 + CACHE_LINE;	   	if (dma_malloc(tsize, phy, (void **)&virt_mem_ptr, (void **)&virt_ret) == 0) {			/* Store (mem_ptr - "real allocated memory") in *(mem_ptr-9) */			*virt_mem_ptr ++ = 9;			/* Store (malloc size) in *(mem_ptr-8) ~ *(mem_ptr-5)*/			*virt_mem_ptr ++ = (tsize >> 24) & 0xFF;			*virt_mem_ptr ++ = (tsize >> 16) & 0xFF;			*virt_mem_ptr ++ = (tsize >> 8) & 0xFF;			*virt_mem_ptr ++ = (tsize >> 0) & 0xFF;			/* Store (virt_ret at consistent_alloc) in *(mem_ptr-4) ~ *(mem_ptr-1)*/			*virt_mem_ptr ++ = ((uint32_t)virt_ret >> 24) & 0xFF;			*virt_mem_ptr ++ = ((uint32_t)virt_ret >> 16) & 0xFF;			*virt_mem_ptr ++ = ((uint32_t)virt_ret >> 8) & 0xFF;			*virt_mem_ptr ++ = ((uint32_t)virt_ret >> 0) & 0xFF;			*(uint32_t *)phy += 9;			/* Return the mem_ptr pointer */			return (void *) virt_mem_ptr;		}	} else {		uint8_t *tmp;		/*		 * Allocate the required size memory + alignment so we		 * can realign the data if necessary		 */	    tsize = size + alignment + 8 + CACHE_LINE;	   	if (dma_malloc(tsize, phy, (void **)&tmp, (void **)&virt_ret) == 0) {			/* Align the tmp pointer */			virt_mem_ptr =				(uint8_t *) ((ptr_t) (tmp + 8 + alignment - 1) &							 (~(ptr_t) (alignment - 1)));			/*			 * Special case where malloc have already satisfied the alignment			 * We must add alignment to mem_ptr because we must store			 * (mem_ptr - tmp) in *(mem_ptr-1)			 * If we do not add alignment to mem_ptr then *(mem_ptr-1) points			 * to a forbidden memory space			 */			while ((virt_mem_ptr - tmp) <= 8)				virt_mem_ptr += alignment;			*phy += (virt_mem_ptr - tmp);			/*			 * (mem_ptr - tmp) is stored in *(mem_ptr-1) so we are able to retrieve			 * the real malloc block allocated and free it in xvid_free			 */			/* Store (mem_ptr - "real allocated memory") in *(mem_ptr-5) */			*(virt_mem_ptr - 9) = (uint8_t) (virt_mem_ptr - tmp);			/* Store (malloc size) in *(mem_ptr-8) ~ *(mem_ptr-5)*/			*(virt_mem_ptr - 8) = (tsize >> 24) & 0xFF;			*(virt_mem_ptr - 7) = (tsize >> 16) & 0xFF;			*(virt_mem_ptr - 6) = (tsize >> 8) & 0xFF;			*(virt_mem_ptr - 5) = (tsize >> 0) & 0xFF;			/* Store (virt_ret at consistent_alloc) in *(mem_ptr-4) ~ *(mem_ptr-1)*/			*(virt_mem_ptr - 4) = ((uint32_t)virt_ret >> 24) & 0xFF;			*(virt_mem_ptr - 3) = ((uint32_t)virt_ret >> 16) & 0xFF;			*(virt_mem_ptr - 2) = ((uint32_t)virt_ret >> 8) & 0xFF;			*(virt_mem_ptr - 1) = ((uint32_t)virt_ret >> 0) & 0xFF;			/* Return the aligned pointer */			return (void *) virt_mem_ptr;		}	}	return NULL;}/***************************************************************************** * xvid_free * * Free a previously 'xvid_malloc' allocated block. Does not free NULL * references. * * Returned value : None. * ****************************************************************************/voidxvid_dma_free(void *virt_mem_ptr, void * phy_ptr){	uint32_t tsize;	uint8_t *virt_ret;	uint8_t offset;	/* *(virt_mem_ptr - 1) give us the offset to the real malloc block */	if (virt_mem_ptr) {	    offset = *(uint8_t *) (virt_mem_ptr - 9);	    tsize = (*(uint8_t *)(virt_mem_ptr - 8) << 24) +	    	  	(*(uint8_t *)(virt_mem_ptr - 7) << 16) +	    	  	(*(uint8_t *)(virt_mem_ptr - 6) << 8) +	    	  	(*(uint8_t *)(virt_mem_ptr - 5) << 0);	    virt_ret = (uint8_t*)((*(uint8_t *)(virt_mem_ptr - 4) << 24) +			    	  	(*(uint8_t *)(virt_mem_ptr - 3) << 16) +	    				(*(uint8_t *)(virt_mem_ptr - 2) << 8) +						(*(uint8_t *)(virt_mem_ptr - 1) << 0));		dma_free(tsize, (void *)((uint32_t) phy_ptr - offset), (void *)((uint32_t) virt_mem_ptr - offset), (void *)virt_ret); 	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲已满18点击进入久久| 久久精品亚洲麻豆av一区二区| 综合色天天鬼久久鬼色| 成人午夜电影网站| 亚洲另类一区二区| 欧美中文字幕一二三区视频| 亚洲高清一区二区三区| 91精品国产美女浴室洗澡无遮挡| 久久成人av少妇免费| 欧美激情资源网| 色av成人天堂桃色av| 日韩高清欧美激情| 久久久久久久久久美女| 99久久综合狠狠综合久久| 亚洲一级不卡视频| 日韩欧美一二三| 高清国产一区二区三区| 亚洲男人的天堂在线aⅴ视频| 欧美日韩一区久久| 蓝色福利精品导航| 日本一区二区三区久久久久久久久不| 99久久免费视频.com| 亚洲丰满少妇videoshd| 日韩欧美国产一区在线观看| 丁香婷婷深情五月亚洲| 亚洲精品乱码久久久久久黑人| 欧美日韩国产区一| 韩国女主播一区| 亚洲欧美自拍偷拍| 欧美一级艳片视频免费观看| 国产成人在线视频网站| 亚洲小说春色综合另类电影| 精品国产乱码久久久久久1区2区| 99久久久久久| 久久9热精品视频| 亚洲色欲色欲www| 日韩欧美国产综合| 91老师片黄在线观看| 日本欧美久久久久免费播放网| 2022国产精品视频| 欧美丝袜第三区| 丁香亚洲综合激情啪啪综合| 日本最新不卡在线| 亚洲丝袜另类动漫二区| 精品国产一区二区精华| 在线免费精品视频| 不卡影院免费观看| 国产制服丝袜一区| 首页国产欧美久久| 日韩理论电影院| 国产日韩欧美麻豆| 日韩一区二区免费在线观看| 色哟哟一区二区三区| 粉嫩欧美一区二区三区高清影视| 婷婷综合五月天| 亚洲黄色小说网站| 国产精品欧美综合在线| 2欧美一区二区三区在线观看视频| 欧美三级日韩在线| 在线观看一区二区视频| 91色在线porny| jizz一区二区| 99视频有精品| fc2成人免费人成在线观看播放 | www国产精品av| 欧美一区二区三区男人的天堂| 在线观看一区二区精品视频| 色综合夜色一区| caoporn国产精品| 成人av网站免费| 国产东北露脸精品视频| 精品一区二区在线观看| 麻豆成人免费电影| 久久精品国产亚洲aⅴ| 日韩高清在线一区| 日韩精品视频网| 日本最新不卡在线| 久久精品99国产精品| 麻豆视频观看网址久久| 免费成人在线观看视频| 日本不卡在线视频| 精品亚洲aⅴ乱码一区二区三区| 久久er99精品| 懂色中文一区二区在线播放| 风间由美中文字幕在线看视频国产欧美| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人综合亚洲网站| 国产精品羞羞答答xxdd| 国产精品一区二区久久精品爱涩| 国产91精品免费| 高清不卡在线观看av| jvid福利写真一区二区三区| 91女神在线视频| 欧美日韩国产高清一区二区| 91精品国产91久久综合桃花| 欧美成人福利视频| 欧美国产日韩a欧美在线观看| 欧美极品美女视频| 亚洲人一二三区| 日韩中文欧美在线| 免费成人在线观看视频| 国产精品 欧美精品| 97超碰欧美中文字幕| 欧美精品第一页| 国产网站一区二区三区| 亚洲精品国产精品乱码不99 | 蜜臀va亚洲va欧美va天堂| 国内成人精品2018免费看| 成人午夜大片免费观看| 欧美日韩成人一区| 久久人人97超碰com| 亚洲人成人一区二区在线观看| 日韩综合小视频| 丁香六月综合激情| 欧美日韩免费视频| 国产日本一区二区| 亚洲国产aⅴ成人精品无吗| 久色婷婷小香蕉久久| 99麻豆久久久国产精品免费 | 欧美性xxxxx极品少妇| 2020国产成人综合网| 亚洲免费观看高清| 久久99精品久久久| 欧洲视频一区二区| 久久久一区二区| 亚洲第一主播视频| 成人免费观看视频| 日韩一卡二卡三卡国产欧美| 亚洲人成影院在线观看| 极品少妇一区二区三区精品视频 | 图片区小说区国产精品视频| 国产成人亚洲综合色影视| 欧美色中文字幕| 国产精品久久久久影院色老大 | 一区二区三区不卡视频| 国产精品小仙女| 日韩免费观看高清完整版 | 日韩午夜电影av| 亚洲美女淫视频| 成人av资源站| 久久你懂得1024| 伦理电影国产精品| 欧美视频第二页| 亚洲男人的天堂一区二区| 国产成人一区二区精品非洲| 精品美女在线观看| 日韩高清不卡一区| 欧美性色黄大片| 亚洲欧美一区二区三区极速播放| 国产福利一区二区| 久久综合999| 久久国内精品视频| 欧美日韩国产一级| 亚洲最大色网站| 色婷婷久久99综合精品jk白丝| 欧美激情一区二区三区四区| 国模一区二区三区白浆| 精品国产精品网麻豆系列| 蜜臀91精品一区二区三区| 欧美精品视频www在线观看| 一区二区国产视频| 色激情天天射综合网| 一区二区三区.www| 在线一区二区视频| 亚洲在线视频网站| 欧美三级韩国三级日本三斤| 亚洲一区二区三区在线| 日本韩国精品在线| 亚洲高清免费视频| 欧美日韩精品一区二区天天拍小说 | 日本强好片久久久久久aaa| 欧美丰满一区二区免费视频| 午夜激情一区二区| 欧美一级搡bbbb搡bbbb| 麻豆91精品视频| 久久先锋影音av鲁色资源网| 国产麻豆精品95视频| 欧美经典一区二区| av网站免费线看精品| 亚洲精品免费播放| 在线播放/欧美激情| 奇米影视7777精品一区二区| 精品黑人一区二区三区久久| 精品一区二区三区影院在线午夜| 久久久影院官网| gogo大胆日本视频一区| 亚洲国产欧美在线人成| 欧美久久久影院| 国模一区二区三区白浆| 国产精品少妇自拍| 欧美色欧美亚洲另类二区| 日韩电影一二三区| 国产欧美日韩在线观看| 色中色一区二区| 欧美a一区二区| 国产精品久久久久国产精品日日| 欧美少妇bbb| 国产.欧美.日韩| 亚洲成av人片一区二区| 精品国产凹凸成av人网站|