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

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

?? lhash.h

?? SDL文件。SDL_ERROwenjian.....
?? H
字號:
/* crypto/lhash/lhash.h */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 * 
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from 
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 * 
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

/* Header for dynamic hash table routines
 * Author - Eric Young
 */

#ifndef HEADER_LHASH_H
#define HEADER_LHASH_H

#include <openssl/e_os2.h>
#ifndef OPENSSL_NO_FP_API
#include <stdio.h>
#endif

#ifndef OPENSSL_NO_BIO
#include <openssl/bio.h>
#endif

#ifdef  __cplusplus
extern "C" {
#endif

typedef struct lhash_node_st
	{
	void *data;
	struct lhash_node_st *next;
#ifndef OPENSSL_NO_HASH_COMP
	unsigned long hash;
#endif
	} LHASH_NODE;

typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *);
typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *);
typedef void (*LHASH_DOALL_FN_TYPE)(void *);
typedef void (*LHASH_DOALL_ARG_FN_TYPE)(void *, void *);

/* Macros for declaring and implementing type-safe wrappers for LHASH callbacks.
 * This way, callbacks can be provided to LHASH structures without function
 * pointer casting and the macro-defined callbacks provide per-variable casting
 * before deferring to the underlying type-specific callbacks. NB: It is
 * possible to place a "static" in front of both the DECLARE and IMPLEMENT
 * macros if the functions are strictly internal. */

/* First: "hash" functions */
#define DECLARE_LHASH_HASH_FN(f_name,o_type) \
	unsigned long f_name##_LHASH_HASH(const void *);
#define IMPLEMENT_LHASH_HASH_FN(f_name,o_type) \
	unsigned long f_name##_LHASH_HASH(const void *arg) { \
		o_type a = (o_type)arg; \
		return f_name(a); }
#define LHASH_HASH_FN(f_name) f_name##_LHASH_HASH

/* Second: "compare" functions */
#define DECLARE_LHASH_COMP_FN(f_name,o_type) \
	int f_name##_LHASH_COMP(const void *, const void *);
#define IMPLEMENT_LHASH_COMP_FN(f_name,o_type) \
	int f_name##_LHASH_COMP(const void *arg1, const void *arg2) { \
		o_type a = (o_type)arg1; \
		o_type b = (o_type)arg2; \
		return f_name(a,b); }
#define LHASH_COMP_FN(f_name) f_name##_LHASH_COMP

/* Third: "doall" functions */
#define DECLARE_LHASH_DOALL_FN(f_name,o_type) \
	void f_name##_LHASH_DOALL(void *);
#define IMPLEMENT_LHASH_DOALL_FN(f_name,o_type) \
	void f_name##_LHASH_DOALL(void *arg) { \
		o_type a = (o_type)arg; \
		f_name(a); }
#define LHASH_DOALL_FN(f_name) f_name##_LHASH_DOALL

/* Fourth: "doall_arg" functions */
#define DECLARE_LHASH_DOALL_ARG_FN(f_name,o_type,a_type) \
	void f_name##_LHASH_DOALL_ARG(void *, void *);
#define IMPLEMENT_LHASH_DOALL_ARG_FN(f_name,o_type,a_type) \
	void f_name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \
		o_type a = (o_type)arg1; \
		a_type b = (a_type)arg2; \
		f_name(a,b); }
#define LHASH_DOALL_ARG_FN(f_name) f_name##_LHASH_DOALL_ARG

typedef struct lhash_st
	{
	LHASH_NODE **b;
	LHASH_COMP_FN_TYPE comp;
	LHASH_HASH_FN_TYPE hash;
	unsigned int num_nodes;
	unsigned int num_alloc_nodes;
	unsigned int p;
	unsigned int pmax;
	unsigned long up_load; /* load times 256 */
	unsigned long down_load; /* load times 256 */
	unsigned long num_items;

	unsigned long num_expands;
	unsigned long num_expand_reallocs;
	unsigned long num_contracts;
	unsigned long num_contract_reallocs;
	unsigned long num_hash_calls;
	unsigned long num_comp_calls;
	unsigned long num_insert;
	unsigned long num_replace;
	unsigned long num_delete;
	unsigned long num_no_delete;
	unsigned long num_retrieve;
	unsigned long num_retrieve_miss;
	unsigned long num_hash_comps;

	int error;
	} LHASH;

#define LH_LOAD_MULT	256

/* Indicates a malloc() error in the last call, this is only bad
 * in lh_insert(). */
#define lh_error(lh)	((lh)->error)

LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c);
void lh_free(LHASH *lh);
void *lh_insert(LHASH *lh, void *data);
void *lh_delete(LHASH *lh, const void *data);
void *lh_retrieve(LHASH *lh, const void *data);
void lh_doall(LHASH *lh, LHASH_DOALL_FN_TYPE func);
void lh_doall_arg(LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg);
unsigned long lh_strhash(const char *c);
unsigned long lh_num_items(const LHASH *lh);

#ifndef OPENSSL_NO_FP_API
void lh_stats(const LHASH *lh, FILE *out);
void lh_node_stats(const LHASH *lh, FILE *out);
void lh_node_usage_stats(const LHASH *lh, FILE *out);
#endif

#ifndef OPENSSL_NO_BIO
void lh_stats_bio(const LHASH *lh, BIO *out);
void lh_node_stats_bio(const LHASH *lh, BIO *out);
void lh_node_usage_stats_bio(const LHASH *lh, BIO *out);
#endif
#ifdef  __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区在线观看| 欧美日韩国产在线观看| 久久久三级国产网站| 激情六月婷婷久久| 日本一区二区电影| 99在线精品免费| 亚洲图片有声小说| 日韩三级av在线播放| 国产一区二区美女诱惑| 亚洲欧洲精品一区二区三区不卡| 99视频一区二区| 香蕉乱码成人久久天堂爱免费| 欧美一区二区啪啪| 国产91精品精华液一区二区三区| 中文字幕在线免费不卡| 欧美日韩一区高清| 九一九一国产精品| 国产精品传媒视频| 欧美精品第1页| 国产成人综合亚洲网站| 一区二区三区中文字幕在线观看| 欧美一区二区女人| av一区二区久久| 日韩不卡一区二区| 亚洲国产成人午夜在线一区| 欧美在线观看一二区| 国产一区二区精品久久99| 亚洲精品自拍动漫在线| 日韩视频在线你懂得| 成人午夜电影久久影院| 亚洲国产精品精华液网站| 精品国产乱码久久| 日韩精品一区二区三区在线观看| 国模冰冰炮一区二区| 中文字幕一区日韩精品欧美| 91精品国产色综合久久ai换脸 | 成人一级视频在线观看| 亚洲va欧美va天堂v国产综合| 久久精品一区八戒影视| 欧美日韩mp4| 99久久精品免费精品国产| 免费三级欧美电影| 一区二区三区在线免费播放| 久久青草欧美一区二区三区| 欧美精选在线播放| 91论坛在线播放| 粉嫩绯色av一区二区在线观看| 视频在线观看一区二区三区| 最好看的中文字幕久久| 国产亚洲综合性久久久影院| 欧美一区二区三区啪啪| 欧洲亚洲精品在线| 欧美国产一区二区| 在线视频中文字幕一区二区| 成人午夜精品在线| 韩国三级电影一区二区| 免费人成精品欧美精品| 亚洲图片欧美一区| 亚洲一区二区三区小说| 亚洲人午夜精品天堂一二香蕉| 国产欧美日本一区二区三区| 精品久久久久久亚洲综合网| 欧美一区二区三区视频在线观看| 欧美日韩综合一区| 在线看日本不卡| 欧美亚洲图片小说| 欧美亚洲禁片免费| 欧美日韩视频专区在线播放| 欧美性生活影院| 欧美在线|欧美| 欧美日韩亚洲高清一区二区| 欧美综合一区二区| 欧美三级电影网站| 欧美精品自拍偷拍动漫精品| 欧美日韩精品欧美日韩精品| 欧美精品乱码久久久久久 | 成人高清视频免费观看| 懂色av一区二区夜夜嗨| 成人自拍视频在线| 成人免费三级在线| 91麻豆swag| 欧美丝袜丝交足nylons图片| 色先锋资源久久综合| 色偷偷久久一区二区三区| 欧美中文字幕亚洲一区二区va在线 | 亚洲天堂2014| 一区二区三区在线视频免费| 午夜精品一区二区三区电影天堂 | 亚洲精品一线二线三线无人区| 欧美成人猛片aaaaaaa| 精品奇米国产一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 国产成人鲁色资源国产91色综 | 中文字幕一区av| 亚洲精品国产a久久久久久| 亚洲午夜精品在线| 日本亚洲天堂网| 国产伦理精品不卡| 99视频超级精品| 欧美嫩在线观看| 2024国产精品视频| 自拍偷拍亚洲综合| 日韩黄色小视频| 国产激情视频一区二区在线观看| 99久久99久久精品免费看蜜桃| 在线一区二区视频| 日韩欧美的一区| 亚洲欧洲美洲综合色网| 日韩黄色片在线观看| 成人性生交大片免费看中文网站| 欧美主播一区二区三区美女| 久久综合久久综合亚洲| 亚洲精品久久嫩草网站秘色| 精品一区二区三区香蕉蜜桃 | 国产在线播放一区三区四| 91麻豆蜜桃一区二区三区| 欧美一区二区观看视频| 1024成人网| 久久97超碰色| 欧美在线免费视屏| 中文字幕欧美激情一区| 日韩精彩视频在线观看| 99久久免费视频.com| 日韩三级免费观看| 一区av在线播放| 丁香亚洲综合激情啪啪综合| 欧美一级片在线观看| 亚洲私人黄色宅男| 国产一区二区毛片| 91精品国产黑色紧身裤美女| 中文字幕在线观看不卡视频| 黄色成人免费在线| 在线91免费看| 亚洲精品日日夜夜| 国产伦精品一区二区三区免费迷 | 91精品国产欧美一区二区18| 亚洲素人一区二区| 国产精品一卡二| 日韩亚洲欧美成人一区| 亚洲午夜三级在线| 色噜噜狠狠色综合中国| 亚洲精品国产无套在线观| 久久精品国产77777蜜臀| 欧美性生活久久| 一区二区三区中文在线| a在线欧美一区| 中文子幕无线码一区tr| 国产麻豆成人传媒免费观看| 日韩精品在线网站| 美女视频网站黄色亚洲| 欧美日韩成人综合在线一区二区| 一区二区三区中文字幕在线观看| 99久久综合精品| 国产精品天美传媒| 成人午夜激情片| 日本一区二区免费在线观看视频 | 国产精品毛片高清在线完整版| 激情综合色丁香一区二区| 91精品国产欧美一区二区18| 日韩国产欧美视频| 欧美一区二区三区免费观看视频| 日韩黄色免费电影| 91精选在线观看| 日韩和欧美的一区| 欧美一区二区三区的| 美女免费视频一区二区| 欧美成人综合网站| 狠狠色丁香婷综合久久| 久久综合五月天婷婷伊人| 国产在线不卡一卡二卡三卡四卡| 久久久久久97三级| 成人精品鲁一区一区二区| 国产精品国产自产拍高清av| 91亚洲永久精品| 亚洲国产综合人成综合网站| 欧美人xxxx| 国内成人精品2018免费看| 久久精品男人天堂av| 成人福利电影精品一区二区在线观看 | 91视视频在线观看入口直接观看www | 国产精品88av| 国产精品国产三级国产有无不卡| 91污片在线观看| 性做久久久久久免费观看欧美| 欧美一区二区三区小说| 精品亚洲porn| 国产精品女上位| 在线视频综合导航| 美女在线观看视频一区二区| 国产亚洲精品7777| 色综合天天综合给合国产| 亚洲第一主播视频| 精品第一国产综合精品aⅴ| 大白屁股一区二区视频| 亚洲福中文字幕伊人影院| 精品欧美一区二区在线观看| av资源网一区| 日本一不卡视频| 综合在线观看色| 欧美一区二区免费|