99 lines
2.7 KiB
C
99 lines
2.7 KiB
C
/* vxSysInfoCommonP.h - private system information library header file */
|
|
|
|
/*
|
|
* Copyright (c) 2007, 2010 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use of this software
|
|
* may be licensed only pursuant to the terms of an applicable Wind River
|
|
* license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01d,14oct10,jpb Defect 233321: Edited macros _VX_IS_SYS_MODE_SMP and
|
|
_VX_IS_SYS_MODE_UP to be true or false on global boolean
|
|
variable that stores the value of vxSysMode member in
|
|
_VX_SYS_INFO.
|
|
01c,23aug07,kk added vxSysCpuConfigured and vxSysCpuEnabled fields
|
|
01b,23apr07,gls added _VX_SYS_MODE_MASK
|
|
01a,11apr07,gls written.
|
|
*/
|
|
|
|
#ifndef __INCvxSysInfoCommonPh
|
|
#define __INCvxSysInfoCommonPh
|
|
|
|
#include <vxWorks.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef _ASMLANGUAGE
|
|
|
|
/* typedefs */
|
|
|
|
/* _VX_SYS_INFO structure definition */
|
|
|
|
typedef struct __vx_sys_info
|
|
{
|
|
/*
|
|
* WARNING:
|
|
*
|
|
* The order and size of the members of this structure must not change.
|
|
* Maintaining binary backwards compatibility for RTPs depends on this.
|
|
* All changes must be additional in nature. Also, the version number
|
|
* must be incremented when this is done.
|
|
*/
|
|
|
|
UINT32 version; /* version number - MUST BE FIRST ENTRY */
|
|
UINT32 vxSysMode; /* system mode bit map */
|
|
UINT32 vxFeatureSet; /* feature set bit map */
|
|
UINT32 vxSysCpuConfigured;/* # of CPUs configured in the system */
|
|
cpuset_t vxSysCpuEnabled; /* # of CPUs enabled in the system */
|
|
} _VX_SYS_INFO;
|
|
|
|
/*
|
|
* This macro defines the value used to statically initialize the __vx_sysInfo
|
|
* global. The version number must be incremented when the _VX_SYS_INFO
|
|
* structure changes.
|
|
*
|
|
* Note that this defaults to UP mode.
|
|
*/
|
|
|
|
#define _VX_SYS_INFO_VERSION_1 {1, 0, 0}
|
|
|
|
#endif /* _ASMLANGUAGE */
|
|
|
|
/* vxSysMode bit definitions */
|
|
|
|
#define _VX_SYS_MODE_UP 0x0001
|
|
#define _VX_SYS_MODE_SMP 0x0002
|
|
|
|
extern BOOL vxSysModeSmp;
|
|
|
|
/* vxFeatureSet bit definitions */
|
|
|
|
#define _VX_SYS_ATOMIC_INSTR 0x0001
|
|
|
|
#if !defined(_WRS_KERNEL)
|
|
extern _VX_SYS_INFO __vx_sysInfo;
|
|
|
|
#define _VX_SYS_VERSION __vx_sysInfo.version
|
|
|
|
#define _VX_IS_SYS_MODE_SMP (vxSysModeSmp)
|
|
#define _VX_IS_SYS_MODE_UP (!vxSysModeSmp)
|
|
|
|
#define _VX_SYS_HAS_ATOMIC_INSTR (__vx_sysInfo.vxFeatureSet & \
|
|
_VX_SYS_ATOMIC_INSTR)
|
|
|
|
#define _VX_SYS_CPU_CONFIGURED (__vx_sysInfo.vxSysCpuConfigured)
|
|
#define _VX_SYS_CPU_ENABLED (__vx_sysInfo.vxSysCpuEnabled)
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCvxSysInfoCommonPh */
|