⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 typedefs_md.h

📁 《移动Agent技术》一书的所有章节源代码。
💻 H
字号:
/*
 * @(#)typedefs_md.h	1.25 98/01/12
 *
 * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
 *
 * This software is the confidential and proprietary information of Sun
 * Microsystems, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Sun.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 *
 * CopyrightVersion 1.1_beta
 *
 */

/*
 * Win32 dependent type definitions
 */

#ifndef _WIN32_TYPEDEF_MD_H_
#define _WIN32_TYPEDEF_MD_H_

#include <windows.h>

#if !defined(JTC_BUILD)
/* Note that these definitions also appear in jni_md.h                  ibm.10740
** They are replicated to avoid forcing use of 'windows.h'              ibm.10740
** onto users of that header                                            ibm.10740
**                                                                      ibm.10740
** Changes to the following macros must also be done in 'jni_md.h'      ibm.10740
*/
#ifndef JMS_TRL                                                      /* ibm.10740 */
#define JMS_TRL 1
#endif                                                               /* ibm.10740 */
#ifndef JIT_TRL                                                      /* ibm.10740 */
#define JIT_TRL 1
#endif                                                               /* ibm.10740 */
#ifndef JIT_WAY                                                      /* ibm.10740 */
#define JIT_WAY 1
#endif                                                               /* ibm.10740 */
#ifndef IBM_MIXED_MODE                                               /* ibm.10740 */
#define IBM_MIXED_MODE 1       /* IBM 9037 */
#endif                                                               /* ibm.10740 */
#endif

#include "bool.h"

typedef unsigned int uint_t;
typedef long int32_t;
typedef unsigned long uint32_t;
typedef __int64	int64_t;
typedef unsigned __int64 uint64_t;

#include "float_md.h"                                                   /*ibm.6689*/

/* use these macros when the compiler supports the long long type */

#define ll_high(a)	((long)((a)>>32))
#define ll_low(a)	((long)(a))
#define int2ll(a)	((int64_t)(a))
#define ll2int(a)	((int)(a))
#define ll_add(a, b)	((a) + (b))
#define ll_and(a, b)	((a) & (b))
#define ll_div(a, b)	((a) / (b))
#define ll_mul(a, b)	((a) * (b))
#define ll_neg(a)	(-(a))
#define ll_not(a)	(~(a))
#define ll_or(a, b)	((a) | (b))
/* THE FOLLOWING DEFINITION IS NOW A FUNCTION CALL IN ORDER TO WORKAROUND
   OPTIMIZER BUG IN MSVC++ 2.1 (see system_md.c)
   #define ll_shl(a, n)	((a) << (n)) */
#define ll_shr(a, n)	((a) >> (n))
#define ll_sub(a, b)	((a) - (b))
#define ll_ushr(a, n)	((uint64_t)(a) >> (n))
#define ll_xor(a, b)	((a) ^ (b))
#define uint2ll(a)	((uint64_t)(unsigned long)(a))
#define ll_rem(a,b)	((a) % (b))

#define INT_OP(x,op,y)  (((#op[0]=='/')||(#op[0]=='%')) ?                  \
			 ( (((x)==0x80000000)&&((y)==-1)) ?            \
			     ((x) op 1) :                              \
			     ((x) op (y))) :                           \
			 ((x) op (y)))
#define NAN_CHECK(l,r,x) (!_isnan((l))&&!_isnan((r))) ? (x : 0)
#define IS_NAN(x) _isnan(x)

int32_t float2l(float f);
int32_t double2l(double f);
int64_t float2ll(float f);
int64_t double2ll(double f);
#define ll2float(a)	((float) (a))
#define ll2double(a)	((double) (a))

/* comparison operators */
#define ll_ltz(ll)	((ll) < 0)
#define ll_gez(ll)	((ll) >= 0)
#define ll_eqz(a)	((a) == 0)
#define ll_eq(a, b)	((a) == (b))
#define ll_ne(a,b)	((a) != (b))
#define ll_ge(a,b)	((a) >= (b))
#define ll_le(a,b)	((a) <= (b))
#define ll_lt(a,b)	((a) < (b))
#define ll_gt(a,b)	((a) > (b))

#define ll_zero_const	((int64_t) 0)
#define ll_one_const	((int64_t) 1)

extern void ll2str(int64_t a, char *s, char *limit);
extern int64_t ll_shl(int64_t a, int bits);

#include <stdlib.h>	/* For malloc() and free() */

#endif /* !_WIN32_TYPEDEF_MD_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -