www.pudn.com > vxworks0108.rar > sysLib.h
#ifndef __INCsysLibh
#define __INCsysLibh
#ifdef __cplusplus
extern "C" {
#endif
#include "type.h"
#include "bootlib.h"
#ifndef _ASMLANGUAGE
/* system restart types */
#define BOOT_NORMAL 0x00 /* normal reboot with countdown */
#define BOOT_NO_AUTOBOOT 0x01 /* no autoboot if set */
#define BOOT_CLEAR 0x02 /* clear memory if set */
#define BOOT_QUICK_AUTOBOOT 0x04 /* fast autoboot if set */
/* for backward compatibility */
#define BOOT_WARM_AUTOBOOT BOOT_NORMAL
#define BOOT_WARM_NO_AUTOBOOT BOOT_NO_AUTOBOOT
#define BOOT_WARM_QUICK_AUTOBOOT BOOT_QUICK_AUTOBOOT
#define BOOT_COLD BOOT_CLEAR
/* system configuration flags in sysFlags */
/* Some targets have system controllers that can be enabled in software.
* By default, the system controller is enabled for processor 0.
* When set this flag inhibits enabling the system controller even
* for processor 0.
*/
#define SYSFLG_NO_SYS_CONTROLLER 0x01
/* System debug option:
* load kernel symbol table with all symbols (not just globals)
*/
#define SYSFLG_DEBUG 0x02
#define SYSFLG_NO_AUTOBOOT 0x04 /* Don't start autoboot sequence */
#define SYSFLG_QUICK_AUTOBOOT 0x08 /* Immediate autoboot (no countdown) */
#define SYSFLG_NO_STARTUP_SCRIPT 0x10 /* Don't read startup script */
#define SYSFLG_NO_SECURITY 0x20 /* Don't ask passwd on network login */
#define SYSFLG_AUTOCONFIG 0x40 /* Use bootp or DHCP to get boot */
/* parameters */
#define SYSFLG_TFTP 0x80 /* Use tftp to get boot image */
#define SYSFLG_PROXY 0x100 /* Use proxy arp */
#define SYSFLG_WDB 0x200 /* Use WDB agent */
#define SYSFLG_VENDOR_0 0x1000 /* vendor defined flag 0 */
#define SYSFLG_VENDOR_1 0x2000 /* vendor defined flag 1 */
#define SYSFLG_VENDOR_2 0x4000 /* vendor defined flag 2 */
#define SYSFLG_VENDOR_3 0x8000 /* vendor defined flag 3 */
/* system parameters */
extern int sysBus; /* system bus type (VME_BUS, MULTI_BUS, etc) */
extern int sysCpu; /* system cpu type (MC680x0, SPARC, etc.) */
extern int sysProcNum; /* processor number of this cpu */
extern char * sysBootLine; /* address of boot line */
extern char * sysExcMsg; /* address of exception message area */
extern int sysFlags; /* configuration flags */
/* obsolete - but remain for backward compatiblity */
extern char sysBootHost[BOOT_FIELD_LEN]; /* name of host from which system was booted */
extern char sysBootFile[BOOT_FIELD_LEN]; /* name of file from which system was booted */
/* function declarations */
#if defined(__STDC__) || defined(__cplusplus)
extern char * sysModel (void);
extern char * sysBspRev (void);
extern void sysHwInit (void);
extern void sysHwInit2 (void);
extern char * sysMemTop (void);
extern char * sysPhysMemTop (void);
extern STATUS sysToMonitor (int startType);
extern int sysProcNumGet (void);
extern void sysProcNumSet (int procNum);
extern BOOL sysBusTas (char *adrs);
extern STATUS sysNvRamGet (char *string, int strLen, int offset);
extern STATUS sysNvRamSet (char *string, int strLen, int offset);
extern STATUS sysScsiInit (void);
extern STATUS sysScsiConfig (void);
extern void sysSerialHwInit (void);
extern void sysSerialHwInit2 (void);
extern void sysSerialReset (void);
extern STATUS sysLocalToBusAdrs (int adrsSpace, char *localAdrs,
char **pBusAdrs);
extern STATUS sysBusToLocalAdrs (int adrsSpace, char *busAdrs,
char **pLocalAdrs);
extern STATUS sysIntDisable (int intLevel);
extern STATUS sysIntEnable (int intLevel);
extern int sysBusIntAck (int intLevel);
extern STATUS sysBusIntGen (int level, int vector);
extern STATUS sysMailboxConnect (FUNCPTR routine, int arg);
extern STATUS sysMailboxEnable (char *mailboxAdrs);
extern int tyCoDrv (void);
extern int tyCoDevCreate (char *name, int channel, int rdBufSize,
int wrtBufSize);
#if (CPU_FAMILY == I80X86)
/*
* These prototypes are for the x86 family only. They are incorrect,
* but we do not want to change the API for the entire ARCH_FAMILY.
* They should be unsigned arguments.
*/
extern UCHAR sysInByte (int port);
extern USHORT sysInWord (int port);
extern ULONG sysInLong (int port);
extern void sysInWordString (int port, short *pData, int count);
extern void sysInLongString (int port, long *pData, int count);
extern void sysOutByte (int port, char data);
extern void sysOutWord (int port, short data);
extern void sysOutLong (int port, long data);
extern void sysOutWordString (int port, short *pData, int count);
extern void sysOutLongString (int port, long *pData, int count);
#else
/* For all architectures, except X86, the arguments are unsigned. */
extern UCHAR sysInByte (ULONG port);
extern USHORT sysInWord (ULONG port);
extern ULONG sysInLong (ULONG port);
extern void sysInWordString (ULONG port, UINT16 *pData, int count);
extern void sysInLongString (ULONG port, ULONG *pData, int count);
extern void sysOutByte (ULONG port, UCHAR data);
extern void sysOutWord (ULONG port, UINT16 data);
extern void sysOutLong (ULONG port, ULONG data);
extern void sysOutWordString (ULONG port, UINT16 *pData, int count);
extern void sysOutLongString (ULONG port, ULONG *pData, int count);
#endif /* (CPU_FAMILY == I80X86) */
/* optional support routines used by several architectures */
extern void sysNanoDelay (UINT32 nanoseconds);
extern void sysReboot (void);
extern void sysDelay (void);
extern void sysWait (void);
extern STATUS sysIntDisablePIC (int intLevel);
extern STATUS sysIntEnablePIC (int intLevel);
/* i960 special routines */
extern void sysFaultTableInit (void (*func)());
extern void sysExcInfoPrint (UINT32 type);
/* X86 special routines */
extern void sysLoadGdt (char *sysGdtr);
#else /* __STDC__ */
extern char * sysModel ();
extern void sysHwInit ();
extern void sysHwInit2 ();
extern char * sysMemTop ();
extern STATUS sysToMonitor ();
extern int sysProcNumGet ();
extern void sysProcNumSet ();
extern BOOL sysBusTas ();
extern STATUS sysNvRamGet ();
extern STATUS sysNvRamSet ();
extern STATUS sysScsiInit ();
extern SIO_CHAN *sysSerialChanGet ();
extern STATUS sysLocalToBusAdrs ();
extern STATUS sysBusToLocalAdrs ();
extern STATUS sysIntDisable ();
extern STATUS sysIntEnable ();
extern int sysBusIntAck ();
extern STATUS sysBusIntGen ();
extern STATUS sysMailboxConnect ();
extern STATUS sysMailboxEnable ();
extern int tyCoDrv ();
extern int tyCoDevCreate ();
#if CPU_FAMILY == I960
extern void sysFaultTableInit ();
extern UINT32 sysFaultVecSet ();
extern void sysExcInfoPrint ();
#endif /* CPU_FAMILY == I960 */
#if (CPU_FAMILY == I80X86 || CPU_FAMILY == PPC)
extern UCHAR sysInByte ();
extern USHORT sysInWord ();
extern ULONG sysInLong ();
extern void sysInWordString ();
extern void sysInLongString ();
extern void sysOutByte ();
extern void sysOutWord ();
extern void sysOutLong ();
extern void sysOutWordString ();
extern void sysOutLongString ();
extern void sysReboot ();
extern void sysDelay ();
extern void sysWait ();
extern void sysLoadGdt ();
extern STATUS sysIntDisablePIC ();
extern STATUS sysIntEnablePIC ();
#endif /* (CPU_FAMILY == I80X86 || CPU_FAMILY == PPC) */
#endif /* __STDC__ */
#endif /* _ASMLANGUAGE */
#ifdef __cplusplus
}
#endif
#endif /* __INCsysLibh */