/*
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#ifndef	_SYS_REBOOT_H
#define	_SYS_REBOOT_H

#pragma ident	"@(#)reboot.h	2.32	04/08/23 SMI"

#ifndef _ASM
#include <sys/types.h>
#endif

#ifdef	__cplusplus
extern "C" {
#endif

/*
 * Boot flags and flags to "reboot" system call.
 *
 * Not all of these necessarily apply to all machines.
 */
#define	RB_AUTOBOOT	0	/* flags for system auto-booting itself */

#define	RB_ASKNAME		0x00000001 /* prompt for boot file name */
#define	RB_SINGLE		0x00000002 /* reboot to single user only */
#define	RB_NOSYNC		0x00000004 /* dont sync before reboot */
#define	RB_HALT			0x00000008 /* don't reboot, just halt */
#define	RB_INITNAME		0x00000010 /* name given for /etc/init */
#define	RB_NOBOOTRC		0x00000020 /* don't run /etc/rc.boot */
#define	RB_DEBUG		0x00000040 /* being run under debugger */
#define	RB_DUMP			0x00000080 /* dump system core */
#define	RB_WRITABLE		0x00000100 /* mount root read/write */
#define	RB_STRING		0x00000200 /* pass boot args to prom monitor */
#define	RB_CONFIG		0x00000800 /* pass to init on a boot -c */
#define	RB_RECONFIG		0x00001000 /* pass to init on a boot -r */
#define	RB_VERBOSE		0x00002000 /* set for chatty boot */
#define	RB_FORTHDEBUG		0x00004000 /* load forthdebug module */
#define	RB_FORTHDEBUGDBP 	0x00008000 /* load forthdebug, enable def bpt */
#define	RB_KMDB			0x00020000 /* load kmdb during boot */
#define	RB_NOBOOTCLUSTER 	0x00040000 /* don't boot as a cluster */
#define	RB_DEBUGENTER		0x00080000 /* enter the debugger at boot */

#ifndef _ASM

#if defined(__STDC__)
extern int reboot(int, char *);
#else
extern int reboot();
#endif

#if defined(_KERNEL)

extern int boothowto;

#if defined(_BOOT)
extern void bootflags(char *, size_t);
#else
struct bootops;
extern void bootflags(struct bootops *);
#endif	/* _BOOT */

#endif	/* _KERNEL */

#endif	/* _ASM */

#ifdef	__cplusplus
}
#endif

#endif	/* _SYS_REBOOT_H */
