Files
m241Neelima/vxworks-6.9/target/h/private/vxsimHostLibP.h
T
2026-07-30 11:19:44 +05:30

242 lines
10 KiB
C

/* vxsimHostLibP.h - private Host/VxSim interface header */
/*
* Copyright (c) 2004-2011,2014 Wind River Systems, Inc.
*
* The right to copy, distribute or otherwise make use of this software
* may be licensed only pursuant to the terms of an applicable Wind River
* license agreement. No license to Wind River intellectual property rights
* is granted herein. All rights not licensed by Wind River are reserved
* by Wind River.
*/
/*
modification history
--------------------
02d,04aug14,elp VXW6-80640 fix (provide 64 bit timestamp).
02c,24feb11,elp added vxsimHostCpuDelay()/vxsimHostCpuWakeup() CQ:WIND00151275,
added vxsimHostExcEnterHook() (CQ:WIND00257359).
02b,04jan11,elp added vxsimHostFsBaseSet/Get() (CQ:WIND00247541).
02a,27may10,pad Added 'extern C' statement.
01z,20jan10,elp fixed vxsimHostWdbPipeRead prototype.
01y,07jan10,elp 64bit support.
01x,22dec09,dbt Updated vxsimHostSimnetIntClear & vxsimHostSimnetAttach for
NAT support.
01w,29jul09,elp made vxsimHostIpiEmit()available for UP.
01v,08sep08,elp added vxsimHostShMemLockf() (CQ:WIND133160).
01u,27aug08,jpb Renamed VSB header file
01t,24jun08,jpb Added include path for kernel configurations options set in
vsb. Renamed _WRS_VX_SMP to _WRS_CONFIG_SMP.
01s,08feb08,elp removed SIMNET_PKT type.
01r,05sep07,elp modified vxsimHostWdbPipeInit() (CQ:WIND103423).
01q,20aug07,dbt Added fd parameter to vxsimHostPassfsFileStatGet()
routine (CQ:WIND00101812).
01p,16aug07,elp moved header files inclusion from vxsimHostLib.h,
moved existing prototypes from vxsimHostArchLib.h,
removed internal passfs structure references.
01o,10aug07,elp added missing vxsimLoadDllEx() and vxsimHostCpuVarsInit().
01n,15jul07,elp added vxsimUsrSvcRegister(), vxsimUsrSvcCall().
01m,27jun07,elp added vxsimHostSimnetBufSend().
01l,23apr07,elp fixed mmu api names.
01k,13feb07,elp added sio API.
01j,07feb07,elp added ipi level to vxsimHostIpiEmit().
01i,18jan07,elp added interrupt pending calls, removed useless SMP calls.
01h,07nov06,elp added SMP support
01g,19oct06,elp updated vxsimBootStrategyGet() moved vxsimHostWdbPipe*
routines from public header.
01f,15sep05,elp added passFs 64 bits operations (SPR #111187).
01e,29jun05,jmp reworked vxsimHostModel() to no longer return a host side
address.
01d,29sep04,jmp added vxsimBootStrategyGet().
01c,09sep04,jmp updated vxsimHostRename() prototype (SPR #97903).
01b,03may04,dbt Added vxsimHostIntLock() API.
01a,29may04,jeg written.
*/
#ifndef __INCvxsimHostLibPh
#define __INCvxsimHostLibPh
#include <vsbConfig.h>
#include <sys/stat.h>
#include <utime.h>
#include <regs.h>
#include <vxsimHostLib.h>
#include <drv/end/simnetEnd.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void * SIO_ID;
/* DLL load option */
#define VXSIM_HOST_DLL_LOAD_ON_CPU0 0
#define VXSIM_HOST_DLL_LOAD_ON_ALL_CPU 1
/* user service max name length */
#define VXSIM_HOST_USR_SVC_MAX_NAME_LEN 50
/* user service register option */
#define VXSIM_HOST_USR_SVC_ON_CPU0 0x1
extern STATUS vxsimHostClose (int fd);
extern STATUS vxsimHostPassfsDirRead (char * path, void ** pDirFd,
char * pEntryName);
extern STATUS vxsimHostPassfsDelete (char * name);
extern int vxsimHostErrnoGet (void);
extern void vxsimHostExit (void);
extern STATUS vxsimHostPassfsClose (int fileFd, void * dirFd);
extern STATUS vxsimHostPassfsStatGet (char * path, void * pVolumeDesc,
struct statfs * pStatfs);
extern STATUS vxsimHostFtruncate (int fd, off_t length);
extern void vxsimHostIfInit (void * pHostInfo);
extern off_t vxsimHostLseek (int fd, off_t offset, int whence);
extern STATUS vxsimHostPassfsMkdir (char *path);
extern STATUS vxsimHostPassfsOpen (char *name, int flags, int mode);
extern STATUS vxsimHostOpen (char *name, int flags, int mode);
extern void * vxsimHostOpendir (char *dirname);
extern void vxsimHostPowerDown (void);
extern void vxsimHostPrintf (const char * fmt, ...);
extern ssize_t vxsimHostRead (int fd, char *buf, size_t len);
extern STATUS vxsimHostPassfsRename (char * path, int * pFileFd,
void * dirFd, int mode, int flags,
char * newPath);
extern STATUS vxsimHostReboot (int startType);
extern STATUS vxsimHostPassfsRmdir (char * path);
extern STATUS vxsimHostPassfsFileStatGet (char * path, int fd,
void * pVolumeDesc,
struct stat * pStat);
extern STATUS vxsimHostTimerInit (int sysVirtualTimeDef,
int auxVirtualTimeDef);
extern void vxsimHostTimerDisable (int clk);
extern STATUS vxsimHostTimerTimestampEnable (int tsRollOverIntNum);
extern STATUS vxsimHostTimerTimestampDisable (void);
extern UINT32 vxsimHostTimerTimestampFreqGet (void);
extern UINT32 vxsimHostTimerTimestampGet (void);
extern STATUS vxsimHostTimerTimestamp64FreqGet(UINT64 * pFreq);
extern STATUS vxsimHostTimerTimestamp64Get (UINT64 * pVal);
extern STATUS vxsimHostPassfsUnlink (char *path);
extern int vxsimHostPassfsCreate (char * name, int flags);
extern STATUS vxsimHostPassfsTimeSet (char * path,
struct utimbuf * pTime);
extern ssize_t vxsimHostWrite (int fd, char *buf, size_t len);
extern void vxsimHostDbg (char * format, ...);
extern STATUS vxsimHostCurrentPathGet (char * buf, size_t size);
extern char * vxsimHostModel (char * sysModelStr,
size_t sysModelStrMaxLen);
extern STATUS vxsimHostStat (char * path, struct stat * pStat);
extern UINT32 vxsimHostTimeGet (void);
extern int vxsimHostIntPendingGet (void);
extern STATUS vxsimHostSysNvRamGet (char * string, size_t strLen,
off_t offset, size_t nvRamSize);
extern STATUS vxsimHostSysNvRamSet (char * string, size_t strLen,
off_t offset, size_t nvRamSize);
extern void * vxsimHostShMemInit (void * smMemAddr, int smMemSize,
int * smLevel);
extern STATUS vxsimHostShMemLockf (BOOL lock, void * addr);
extern STATUS vxsimHostBusIntGen (int smLevel, int smBusInt);
extern STATUS vxsimHostSimnetAttach (char * devName,
char * paramString, char * ipAddr,
int netType, void ** ppNetCfg,
int * pIntId);
extern void vxsimHostSimnetDetach (void ** ppNetCfg);
extern void vxsimHostSimnetIntClear (void * pNetCfg, int intId);
extern void vxsimHostSimnetIntEnable (void * pNetCfg, int intId,
BOOL enable);
extern int vxsimHostSimnetPhysAddrLenGet (void * ppNetCfg);
extern void vxsimHostSimnetPhysAddrGet (void * ppNetCfg, UINT8 * enetAddr,
int len);
extern STATUS vxsimHostSimnetPhysAddrSet (void * ppNetCfg, UINT8 * enetAddr,
int len);
extern void vxsimHostSimnetBrdAddrGet (void * ppNetCfg, UINT8 * enetAddr,
int len);
extern int vxsimHostSimnetPktReceive (void * ppNetCfg, char * buffer,
size_t * pBufSize);
extern char * vxsimHostSimnetPktGet (void * ppNetCfg, size_t len);
extern void * vxsimHostSimnetPktAlloc (void * ppNetCfg, char ** pBuffer,
size_t * pBufSize);
extern STATUS vxsimHostSimnetPktSend (void * ppNetCfg, void * pPkt, size_t
bufSize);
extern STATUS vxsimHostSimnetBufSend (void * ppNetCfg, char * pBuf,
size_t bufSize);
extern STATUS vxsimHostSimnetPromiscModeSet (void * pNetCfg, BOOL promisc);
extern STATUS vxsimHostSimnetMCastModeSet (void * pNetCfg, BOOL mcast);
extern STATUS vxsimHostSimnetParamGet (void * pNetCfg, int param,
UCHAR * buf, size_t len);
extern STATUS vxsimHostSimnetParamSet (void * pNetCfg, int param,
UCHAR * buf, size_t len);
extern STATUS vxsimHostNetAddIfGet (int index, char ** ppDevice, int * pUnit,
char ** ppDevStr, char ** ppIpAddr,
char ** ppIpMask);
extern void vxsimHostVirtualMemInfoGet
(VIRT_ADDR * pVxsimVirtMemBaseAddr,
size_t * pVxsimVirtMemSize);
extern UINT32 vxsimBootStrategyConvert (UINT32 bootStrategy);
extern STATUS vxsimHostLseek64 (int fd, INT64 * pOffset, int whence);
extern STATUS vxsimHostFtruncate64 (int fd, INT64 * length);
extern STATUS vxsimHostWdbPipeInit (void * inputBuffer,
int * pHostTargetFd,
int * pTargetHostFd,
int * pIntVecNum,
UINT32 pipePktMtu,
size_t * pPktSize);
extern void vxsimHostWdbPipeModeSet (int pipeFd, int newMode);
extern void vxsimHostWdbPipeFlush (int pipeFd);
extern STATUS vxsimHostWdbPipeRead (int pipeFd, void * inputBuffer,
size_t * pSize);
extern ssize_t vxsimHostWdbPipeWrite (int pipeFd, void * buffer, size_t len);
extern STATUS vxsimHostWdbPipePoll (void);
extern void vxsimHostSleep (UINT32 duration);
extern SIO_ID vxsimHostSioDevFind (char * name);
extern int vxsimHostSioIntVecGet (SIO_ID sioId);
extern ssize_t vxsimHostSioWrite (SIO_ID sioId, char * buf, size_t len);
extern ssize_t vxsimHostSioRead (SIO_ID sioId, char * buf, size_t len);
extern STATUS vxsimHostSioOpen (SIO_ID sioId);
extern STATUS vxsimHostSioClose (SIO_ID sioId);
extern STATUS vxsimHostSioModeSet (SIO_ID sioId, int mode);
extern STATUS vxsimHostSioBaudRateSet (SIO_ID sioId, int baudRate);
#if CPU==SIMNT
extern STATUS vxsimHostVxWorksInstrCacheFlush (void * address, size_t size);
extern int vxsimHostTimerRateGet (int clk);
extern STATUS vxsimHostTimerRateSet (int clk, int ticksPerSecond);
extern void vxsimHostTimerEnable (int clk);
extern void vxsimHostDebugBreak (void);
#else
extern int vxsimHostGetgid (void);
extern void vxsimHostTimerEnable (int clk, int ticksPerSecond);
#endif /* CPU==SIMNT */
#ifdef _WRS_CONFIG_SMP
extern STATUS vxsimHostCpuEnable (int cpuNum, INSTR * startFunc,
ULONG stackPtr);
extern void vxsimHostCpuDelay (int milliseconds);
extern void vxsimHostCpuWakeup (cpuset_t processors);
#endif /* _WRS_CONFIG_SMP */
extern STATUS vxsimHostIpiEmit (cpuset_t processor, UINT8 ipiLvl);
extern STATUS vxsimHostUsrSvcRegister (UINT32 * pUsrSvcNum,
char * usrSvcName, char usrSvcFlags);
extern STATUS vxsimHostUsrSvcCall (ULONG * pResult, UINT32 svcNum,
ULONG arg0, ULONG arg1, ULONG arg2,
ULONG arg3, ULONG arg4, ULONG arg5,
ULONG arg6, ULONG arg7, ULONG arg8,
ULONG arg9);
extern STATUS vxsimHostDllLoadEx (char * dllName, UINT32 options);
extern void vxsimHostCpuVarsInit (void);
extern STATUS vxsimHostFsBaseSet (ULONG fsBase);
extern STATUS vxsimHostFsBaseGet (ULONG * pFsBase);
extern void vxsimHostExcEnterHook (void);
#ifdef __cplusplus
}
#endif
#endif /* __INCvxsimHostLibPh */