erl_vxworks_sys.h

来自「OTP是开放电信平台的简称」· C头文件 代码 · 共 175 行

H
175
字号
/* ``The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in * compliance with the License. You should have received a copy of the * Erlang Public License along with this software. If not, it can be * retrieved via the world wide web at http://www.erlang.org/. *  * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. *  * The Initial Developer of the Original Code is Ericsson Utvecklings AB. * Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings * AB. All Rights Reserved.'' *  *     $Id$ */#ifndef __ERL_VXWORKS_SYS_H__#define __ERL_VXWORKS_SYS_H__/* stdarg.h don't work without this one... */#include <vxWorks.h>#include <stdio.h>#include <math.h>#include <limits.h>#include <stdlib.h>#define index StringIndexFunctionThatIDontWantDeclared#include <string.h>#undef index#include <sys/times.h>#include <time.h>/* xxxP */#include <dirent.h>#include <sys/stat.h>/* xxxP from unix_sys.h  begin *//* * Make sure that MAXPATHLEN is defined. */#ifndef MAXPATHLEN#   ifdef PATH_MAX#       define MAXPATHLEN PATH_MAX#   else#       define MAXPATHLEN 2048#   endif#endif/* xxxP end *//* Unimplemented math functions */#define NO_ASINH#define NO_ACOSH#define NO_ATANH#define NO_ERF#define NO_ERFC/* Stuff that is useful for port programs, drivers, etc */#ifndef VXWORKS#define VXWORKS#endif#define DONT_USE_MAIN#define NO_FSYNC#define NO_MKDIR_MODE#define NO_UMASK#define NO_SYMBOLIC_LINKS#define NO_DEVICE_FILES#define NO_UID#define NO_ACCESS#define NO_FCNTL#define NO_SYSLOG#define NO_SYSCONF#define NO_PWD			/* XXX Means what? */#define NO_DAEMON/* This chooses ~250 reductions instead of 500 in config.h */#if (CPU == CPU32)#define SLOW_PROCESSOR#endif/* * Even though we does not always have small memories on VxWorks * we certainly does not have virtual memory. */#if !defined(LARGE_MEMORY)#define SMALL_MEMORY#endif/*************** Floating point exception handling ***************//* There are no known ways to customize the handling of invalid floating   point operations, such as matherr() or ieee_handler(), in VxWorks 5.1. */#if (CPU == MC68040 || CPU == CPU32 || CPU == PPC860 ||                \     CPU == PPC603 || CPU == PPC604 || CPU == SIMSPARCSOLARIS)/* VxWorks 5.1 on Motorola 68040 never generates SIGFPE, but sets the   result of invalid floating point ops to Inf and NaN - unfortunately   the way to test for those values is undocumented and hidden in a   "private" include file...  *//* Haven't found any better way, as of yet, for ppc860 xxxP*/#include <private/mathP.h>#define NO_FPE_SIGNALS#define erts_get_current_fp_exception() NULL#define __ERTS_FP_CHECK_INIT(fpexnp) do {} while (0)#define __ERTS_FP_ERROR(fpexnp, f, Action) if (isInf(f) || isNan(f)) { Action; } else {}#define __ERTS_FP_ERROR_THOROUGH(fpexnp, f, Action) __ERTS_FP_ERROR(fpexnp, f, Action)#define __ERTS_SAVE_FP_EXCEPTION(fpexnp)#define __ERTS_RESTORE_FP_EXCEPTION(fpexnp)#define ERTS_FP_CHECK_INIT(p)		__ERTS_FP_CHECK_INIT(&(p)->fp_exception)#define ERTS_FP_ERROR(p, f, A)		__ERTS_FP_ERROR(&(p)->fp_exception, f, A)#define ERTS_SAVE_FP_EXCEPTION(p)	__ERTS_SAVE_FP_EXCEPTION(&(p)->fp_exception)#define ERTS_RESTORE_FP_EXCEPTION(p)	__ERTS_RESTORE_FP_EXCEPTION(&(p)->fp_exception)#define ERTS_FP_ERROR_THOROUGH(p, f, A)	__ERTS_FP_ERROR_THOROUGH(&(p)->fp_exception, f, A)#if (CPU == PPC603)/* Need fppLib to change the Floating point registers     (fix_registers in sys.c)*/#include <fppLib.h>#endif /* PPC603 */#elseUnsupported CPU value !#endif#define HAVE_GETHRTIMEextern int erts_clock_rate;#define SYS_CLK_TCK (erts_clock_rate)#define SYS_CLOCK_RESOLUTION 1typedef struct _vxworks_tms {    clock_t tms_utime;    clock_t tms_stime;    clock_t tms_cutime;    clock_t tms_cstime;} SysTimes;typedef long long SysHrTime;typedef struct timeval SysTimeval;extern int sys_init_hrtime(void);extern SysHrTime sys_gethrtime(void);extern void sys_gettimeofday(SysTimeval *tvp);extern clock_t sys_times(SysTimes *t);#define SIZEOF_SHORT   2#define SIZEOF_INT     4#define SIZEOF_LONG    4#define SIZEOF_VOID_P  4#define SIZEOF_SIZE_T  4#define SIZEOF_OFF_T   4/* * Temporary buffer *only* used in sys code. */#define SYS_TMP_BUF_SIZE 65536#endif /* __ERL_VXWORKS_SYS_H__ */

⌨️ 快捷键说明

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