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 */