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

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

?? ipp_zlib.c

?? 這是在PCA下的基于IPP庫示例代碼例子,在網(wǎng)上下了IPP的庫之后,設(shè)置相關(guān)參數(shù)就可以編譯該代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*
//
//               INTEL CORPORATION PROPRIETARY INFORMATION
//  th software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2005 Intel Corporation. All Rights Reserved.
//
//
*/
    
/* zlib.h -- interface of the 'zlib' general purpose compression library
  version 1.2.1, November 17th, 2003

  Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler

  th software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of th software.

  Permission is granted to anyone to use th software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of th software must not be misrepresented; you must not
     claim that you wrote the original software. If you use th software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. th notice may not be removed or altered from any source distribution.

  Jean-loup Gailly        Mark Adler
  jloup@gzip.org          madler@alumni.caltech.edu


  The data format used by the zlib library is described by RFCs (Request for
  Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt
  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
*/
    
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include "omp.h"
#include "ippdc.h"
#include "ipps.h"
#include "ipp_zlib.h"

#define z_off_t long

typedef struct gz_stream {
    z_stream stream;
    int      z_err;   /* error code for last stream operation */
    int      z_eof;   /* set if end of input file */
    FILE     *file;   /* .gz file */
    Byte     *inbuf;  /* input buffer */
    Byte     *outbuf; /* output buffer */
    uLong    crc;     /* crc32 of uncompressed data */
    char     *msg;    /* error message */
    char     *path;   /* path name for debugging only */
    int      transparent; /* 1 if input file is not a .gz file */
    char     mode;    /* 'w' or 'r' */
    z_off_t  start;   /* start of compressed data in file (header skipped) */
    z_off_t  in;      /* bytes into deflate or inflate */
    z_off_t  out;     /* bytes out of deflate or inflate */
    int      back;    /* one character push-back */
    int      last;    /* true if push-back is last character */
} gz_stream;

static int const gz_magic[2] = {0x1f, 0x8b};

#define ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
#define HEAD_CRC     0x02 /* bit 1 set: header CRC present */
#define EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
#define ORIG_NAME    0x08 /* bit 3 set: original file name present */
#define COMMENT      0x10 /* bit 4 set: file comment present */
#define RESERVED     0xE0 /* bits 5..7: reserved */

/**********************************************************************************/
/*               Declarations and type definitions for inflate()                  */
/**********************************************************************************/

# define ENOUGH 1440
# define MAXD 154
# define MAXBITS 15 

typedef struct {
    unsigned char op;           /* operation, extra bits, table bits */
    unsigned char bits;         /* bits in this part of the code */
    unsigned short val;         /* offset in table or code value */
} code;

#ifdef NATIVE_INFLATE

typedef enum {
    CODES,
    LENS,
    DISTS
} codetype;

typedef enum {
    HEAD,       /* i: waiting for magic header */
#ifdef GZIP
    FLAGS,      /* i: waiting for method and flags (gzip) */
    TIME,       /* i: waiting for modification time (gzip) */
    OS,         /* i: waiting for extra flags and operating system (gzip) */
    EXLEN,      /* i: waiting for extra length (gzip) */
    EXTRA,      /* i: waiting for extra bytes (gzip) */
    NAME,       /* i: waiting for end of file name (gzip) */
    ICOMMENT,    /* i: waiting for end of comment (gzip) */
    HCRC,       /* i: waiting for header crc (gzip) */
#endif
    DICTID,     /* i: waiting for dictionary check value */
    DICT,       /* waiting for inflateSetDictionary() call */
    TYPE,       /* i: waiting for type bits, including last-flag bit */
    TYPEDO,     /* i: same, but skip check to exit inflate on new block */
    STORED,     /* i: waiting for stored size (length and complement) */
    COPY,       /* i/o: waiting for input or output to copy stored block */
    TABLE,      /* i: waiting for dynamic block table lengths */
    LENLENS,    /* i: waiting for code length code lengths */
    CODELENS,   /* i: waiting for length/lit and distance code lengths */
    LEN,        /* i: waiting for length/lit code */
    LENEXT,     /* i: waiting for length extra bits */
    DIST,       /* i: waiting for distance code */
    DISTEXT,    /* i: waiting for distance extra bits */
    MATCH,      /* o: waiting for output space to copy string */
    LIT,        /* o: waiting for output space to write literal */
    CHECK,      /* i: waiting for 32-bit check value */
#ifdef GZIP
    LENGTH,     /* i: waiting for 32-bit length (gzip) */
#endif
    DONE,       /* finished check, done -- remain here until reset */
    BAD,        /* got a data error -- remain here until reset */
    MEM,        /* got an inflate() memory error -- remain here until reset */
    SYNC        /* looking for synchronization bytes to restart inflate() */
} inflate_mode;

struct inflate_state {
    inflate_mode mode;          /* current inflate mode */
    int last;                   /* true if processing last block */
    int wrap;                   /* bit 0 true for zlib, bit 1 true for gzip */
    int havedict;               /* true if dictionary provided */
    int flags;                  /* gzip header method and flags (0 if zlib) */
    unsigned long check;        /* protected copy of check value */
    unsigned long total;        /* protected copy of output count */
        /* sliding window */
    unsigned wbits;             /* log base 2 of requested window size */
    unsigned wsize;             /* window size or zero if not using window */
    unsigned whave;             /* valid bytes in the window */
    unsigned write;             /* window write index */
    unsigned char FAR *window;  /* allocated sliding window, if needed */
        /* bit accumulator */
    unsigned long hold;         /* input bit accumulator */
    unsigned bits;              /* number of bits in "in" */
        /* for string and stored block copying */
    unsigned length;            /* literal or length of data to copy */
    unsigned offset;            /* distance back to copy string from */
        /* for table and code decoding */
    unsigned extra;             /* extra bits needed */
        /* fixed and dynamic code tables */
    code const FAR *lencode;    /* starting table for length/literal codes */
    code const FAR *distcode;   /* starting table for distance codes */
    unsigned lenbits;           /* index bits for lencode */
    unsigned distbits;          /* index bits for distcode */
        /* dynamic table building */
    unsigned ncode;             /* number of code length code lengths */
    unsigned nlen;              /* number of length code lengths */
    unsigned ndist;             /* number of distance code lengths */
    unsigned have;              /* number of code lengths in lens[] */
    code FAR *next;             /* next available space in codes[] */
    unsigned short lens[320];   /* temporary storage for code lengths */
    unsigned short work[288];   /* work area for code table building */
    code codes[ENOUGH];         /* space for code tables */
};

#endif /* NATIVE_INFLATE */

/**********************************************************************************/
/*                             ZLIB own functions                                 */
/**********************************************************************************/

void
zmemcpy(unsigned char* toBuffer, unsigned char* fromBuffer, int howMuch)
{
  if(howMuch == 0) 
    return;
 
  do{
    *toBuffer++ = *fromBuffer++;  
  }while(--howMuch != 0 );
} /* memCpy() */

/**********************************************************************************/

int
put_byte(z_stream* pZStream, unsigned char b) 
{ 

   if(pZStream->avail_out == 0 ) return (-1);

   *(pZStream->next_out) = b;
   (pZStream->avail_out)--;
   (pZStream->next_out)++;

  return 0;
} /* put_byte() */

/**********************************************************************************/

int 
putShortMSB (z_stream* pZStream, unsigned int b)
{
    if(pZStream->avail_out <= 1 ) return(-1);

    put_byte(pZStream, (unsigned char)(b >> 8));
    put_byte(pZStream, (unsigned char)(b & 0xff));
    return 0;
} /* putShortMSB */

/**********************************************************************************/

int 
get_byte(gz_stream* s)
{
    if (s->z_eof) return EOF;
    if (s->stream.avail_in == 0) 
    {
        s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
        if (s->stream.avail_in == 0) 
        {
            s->z_eof = 1;
            if (ferror(s->file)) s->z_err = Z_ERRNO;
            return EOF;
        }
        s->stream.next_in = s->inbuf;
    }
    s->stream.avail_in--;
    return *(s->stream.next_in)++;
} /* get_byte() */

/**********************************************************************************/

unsigned long 
getLong (gz_stream* s)
{
    unsigned long x = (unsigned long)get_byte(s);
    int c;

    x += ((unsigned long)get_byte(s))<<8;
    x += ((unsigned long)get_byte(s))<<16;
    c = get_byte(s);
    if (c == EOF) s->z_err = Z_DATA_ERROR;
    x += ((unsigned long)c)<<24;

    return x;
} /* getLong() */

/**********************************************************************************/

void 
check_header(gz_stream* s)
{
    int method; 
    int flags;  
    unsigned int len;
    int c;
    
    len = s->stream.avail_in;
    if (len < 2) 
    {
        if (len) s->inbuf[0] = s->stream.next_in[0];
        len = fread(s->inbuf + len, 1, Z_BUFSIZE >> len, s->file);
        if (len == 0 && ferror(s->file)) s->z_err = Z_ERRNO;
        s->stream.avail_in += len;
        s->stream.next_in = s->inbuf;
        if (s->stream.avail_in < 2) {
            s->transparent = s->stream.avail_in;
            return;
        }
    }
    
    if (s->stream.next_in[0] != gz_magic[0] ||
        s->stream.next_in[1] != gz_magic[1]) {
        s->transparent = 1;
        return;
    }
    s->stream.avail_in -= 2;
    s->stream.next_in += 2;

    method = get_byte(s);
    flags = get_byte(s);
    if (method != Z_DEFLATED || (flags & RESERVED) != 0) 
    {
        s->z_err = Z_DATA_ERROR;
        return;
    }

    for (len = 0; len < 6; len++) (void)get_byte(s);

    if ((flags & EXTRA_FIELD) != 0) 
    { 
        len  =  (uInt)get_byte(s);
        len += ((uInt)get_byte(s))<<8;
        while (len-- != 0 && get_byte(s) != EOF) ;
    }
    if ((flags & ORIG_NAME) != 0) 
    { 
        while ((c = get_byte(s)) != 0 && c != EOF) ;
    }
    if ((flags & COMMENT) != 0) 
    {   
        while ((c = get_byte(s)) != 0 && c != EOF) ;
    }
    if ((flags & HEAD_CRC) != 0) 
    { 
        for (len = 0; len < 2; len++) (void)get_byte(s);
    }
    s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
    ippsDecodeLZ77SetStatus_8u(IppLZ77InflateStatusHuffProcess, s->stream.state);  

} /* check_header() */


#ifdef NATIVE_INFLATE
/**********************************************************************************/

int 
inflate_table(codetype type, unsigned short* lens, unsigned int codes, code** table, unsigned int* bits, unsigned short* work)
{
    int i;
    unsigned len;               /* a code's length in bits */
    unsigned sym;               /* index of code symbols */
    unsigned min, max;          /* minimum and maximum code lengths */
    unsigned root;              /* number of index bits for root table */
    unsigned curr;              /* number of index bits for current table */
    unsigned drop;              /* code bits to drop for sub-table */
    int left;                   /* number of prefix codes available */
    unsigned used;              /* code entries in table used */
    unsigned huff;              /* Huffman code */
    unsigned incr;              /* for incrementing code, index */
    unsigned fill;              /* index for replicating entries */
    unsigned low;               /* low bits for current root entry */
    unsigned mask;              /* mask for low root bits */
    code this;                  /* table entry for duplication */
    code *next;                 /* next available space in table */
    const unsigned short *base;     /* base value table to use */
    const unsigned short *extra;    /* extra bits table to use */
    int end;                    /* use base and extra for symbol > end */
    unsigned short count[MAXBITS+1];    /* number of codes of each length */
    unsigned short offs[MAXBITS+1];     /* offsets in table for each length */
    static const unsigned short lbase[31] = { /* Length codes 257..285 base */
        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 76, 66};
    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
        8193, 12289, 16385, 24577, 0, 0};
    static const unsigned short dext[32] = { /* Distance codes 0..29 extra */
        16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
        23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
        28, 28, 29, 29, 64, 64};

    for (len = 0; len <= MAXBITS; len++)
        count[len] = 0;
    for (sym = 0; sym < codes; sym++)
        count[lens[sym]]++;

    root = *bits;
    for (max = MAXBITS; max >= 1; max--)
        if (count[max] != 0) break;
    if (root > max) root = max;
    if (max == 0) return -1;            
    for (min = 1; min <= MAXBITS; min++)
        if (count[min] != 0) break;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频在线| 欧美亚洲日本国产| 欧美剧在线免费观看网站| 日韩在线播放一区二区| 综合久久久久久| www国产成人| 欧美一区二区三区在线观看| 91亚洲永久精品| 国产精品一二一区| 蜜桃视频免费观看一区| 一区二区激情视频| 亚洲欧美自拍偷拍| 国产日韩欧美制服另类| 欧美日本一道本| 91最新地址在线播放| 国产成人精品www牛牛影视| 免费在线看一区| 午夜激情久久久| 亚洲自拍偷拍麻豆| 亚洲欧美日韩一区二区 | 精品久久久久久久一区二区蜜臀| 91免费视频网| 不卡视频在线看| 国产高清在线精品| 国产精品综合一区二区三区| 日韩av中文字幕一区二区| 亚洲丰满少妇videoshd| 一区二区三区.www| 亚洲精品高清视频在线观看| 综合久久久久久久| 亚洲美女在线一区| 亚洲品质自拍视频| 一区二区三区在线观看国产| 中文字幕中文字幕在线一区| 日本一区二区三区四区在线视频| 欧美精品一区二区三区蜜桃视频 | 亚洲免费视频中文字幕| 国产精品久久久久久久久晋中| 久久久精品国产99久久精品芒果| 欧美变态凌虐bdsm| 久久久久久夜精品精品免费| 久久人人超碰精品| 国产欧美精品一区aⅴ影院| 国产精品素人一区二区| 国产精品美女久久福利网站| 国产精品久久毛片a| 亚洲三级电影全部在线观看高清| 17c精品麻豆一区二区免费| 亚洲欧美日韩国产中文在线| 亚洲视频一区二区在线观看| 亚洲精品亚洲人成人网在线播放| 一区二区三区蜜桃网| 午夜精品视频在线观看| 免费精品视频在线| 丰满亚洲少妇av| 99riav久久精品riav| 91麻豆国产福利精品| 欧洲一区在线电影| 欧美一区二区视频观看视频 | 国产视频视频一区| 国产精品美女久久久久久久| 亚洲激情图片qvod| 日本vs亚洲vs韩国一区三区二区| 国产精品资源站在线| 成人免费av网站| 欧美日韩免费电影| 国产婷婷精品av在线| 亚洲综合一二三区| 六月丁香婷婷色狠狠久久| 成人国产视频在线观看| 欧美日韩中文精品| 精品成人私密视频| 一区二区不卡在线播放 | 一区二区三区日韩精品| 精品在线视频一区| 色综合一区二区三区| 欧美一级日韩一级| 国产精品入口麻豆九色| 午夜电影一区二区三区| 国产精品亚洲午夜一区二区三区| 色婷婷综合久色| 精品美女一区二区| 一区二区三区精品视频在线| 精品一区二区三区免费观看| 91在线你懂得| 久久久精品黄色| 午夜a成v人精品| 成人综合在线观看| 日韩欧美亚洲国产另类| 国产精品第五页| 男女男精品网站| 一本一本久久a久久精品综合麻豆| 日韩片之四级片| 一区二区三区高清| 成人午夜又粗又硬又大| 欧美一级日韩免费不卡| 一区二区欧美国产| 本田岬高潮一区二区三区| 日韩欧美国产一区在线观看| 亚洲免费在线播放| 丁香桃色午夜亚洲一区二区三区| 欧美日韩aaaaa| 亚洲精品中文字幕在线观看| 国产中文一区二区三区| 欧美精品久久99| 亚洲六月丁香色婷婷综合久久| 国产一区二区三区| 欧美一区二区三区视频在线 | 337p日本欧洲亚洲大胆精品 | 亚洲成av人片在线| 色久综合一二码| 国产精品看片你懂得| 久久99热国产| 91麻豆精品国产| 亚洲福利一区二区三区| 91麻豆视频网站| 国产精品女主播在线观看| 国内久久精品视频| 日韩欧美色综合网站| 亚洲国产综合在线| 日本道色综合久久| 亚洲乱码日产精品bd| 99re6这里只有精品视频在线观看| 久久久久亚洲蜜桃| 国产精品一区二区在线观看不卡| 91精品国产一区二区三区| 亚洲二区视频在线| 欧美日韩久久久久久| 午夜视频一区二区三区| 欧美日韩亚洲综合一区| 亚洲国产一区二区视频| 欧美午夜片在线观看| 一区二区三区资源| 欧美最猛性xxxxx直播| 亚洲欧美日韩国产综合在线 | 国产女人18水真多18精品一级做| 极品美女销魂一区二区三区| 日韩精品一区二区三区蜜臀| 精品制服美女久久| 国产午夜一区二区三区| 粉嫩一区二区三区性色av| 国产精品美女视频| 色94色欧美sute亚洲线路一ni | 欧美老肥妇做.爰bbww| 天天免费综合色| 欧美一区二区成人6969| 国内精品伊人久久久久av影院| 欧美精品一区二区在线观看| 国产精品白丝jk黑袜喷水| 国产精品久久久久久亚洲伦 | 精品日产卡一卡二卡麻豆| 国内一区二区在线| 国产精品色哟哟| 在线视频一区二区三区| 天堂精品中文字幕在线| 日韩欧美国产一区在线观看| 国产精品99久久久久久宅男| 国产精品久久久久影院老司 | 日韩亚洲欧美综合| 国产露脸91国语对白| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲综合区在线| 欧美一区日韩一区| 国产高清精品在线| 最新久久zyz资源站| 欧美日本国产一区| 国产精品1024| 一区二区三区四区五区视频在线观看 | 久久综合精品国产一区二区三区 | 国产精品色眯眯| 欧美日韩免费视频| 国产乱色国产精品免费视频| 国产精品第一页第二页第三页| 欧美日韩国产区一| 国产精品性做久久久久久| 亚洲男人天堂一区| 精品久久久久久久久久久久久久久久久| 中文字幕一区二区三区在线播放 | 欧美人妇做爰xxxⅹ性高电影 | 久久国产尿小便嘘嘘尿| 中文字幕一区二区三| 6080午夜不卡| 成人h动漫精品一区二| 视频一区二区三区入口| 日本一区二区久久| 欧美一区二区三区喷汁尤物| 成人福利视频网站| 日本va欧美va瓶| 一区二区三区美女| 国产目拍亚洲精品99久久精品| 欧美日韩aaa| 99精品1区2区| 黑人巨大精品欧美一区| 亚洲宅男天堂在线观看无病毒| 精品国产露脸精彩对白| 欧美日精品一区视频| 99久久免费视频.com| 国产剧情一区二区三区| 五月婷婷久久丁香| 亚洲人成电影网站色mp4|