root/stand/common/rbx.h
/*-
 * Copyright (c) 1998 Robert Nordier
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms are freely
 * permitted provided that the above copyright notice and this
 * paragraph and the following disclaimer are duplicated in all
 * such forms.
 *
 * This software is provided "AS IS" and without any express or
 * implied warranties, including, without limitation, the implied
 * warranties of merchantability and fitness for a particular
 * purpose.
 */

#ifndef _RBX_H_
#define _RBX_H_

#define RBX_ASKNAME     0x0     /* -a */
#define RBX_SINGLE      0x1     /* -s */
/* 0x2 is reserved for log2(RB_NOSYNC). */
/* 0x3 is reserved for log2(RB_HALT). */
/* 0x4 is reserved for log2(RB_INITNAME). */
#define RBX_DFLTROOT    0x5     /* -r */
#define RBX_KDB         0x6     /* -d */
/* 0x7 is reserved for log2(RB_RDONLY). */
/* 0x8 is reserved for log2(RB_DUMP). */
/* 0x9 is reserved for log2(RB_MINIROOT). */
#define RBX_CONFIG      0xa     /* -c */
#define RBX_VERBOSE     0xb     /* -v */
#define RBX_SERIAL      0xc     /* -h */
#define RBX_CDROM       0xd     /* -C */
/* 0xe is reserved for log2(RB_POWEROFF). */
#define RBX_GDB         0xf     /* -g */
#define RBX_MUTE        0x10    /* -m */
/* 0x11 is reserved for log2(RB_SELFTEST). */
/* 0x12 is reserved for boot programs. */
/* 0x13 is reserved for boot programs. */
#define RBX_PAUSE       0x14    /* -p */
#define RBX_QUIET       0x15    /* -q */
#define RBX_NOINTR      0x1c    /* -n */
/* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */
#define RBX_DUAL        0x1d    /* -D */
/* 0x1f is reserved for log2(RB_BOOTINFO). */

/* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */
#define RBX_MASK        (OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \
                        OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \
                        OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \
                        OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \
                        OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \
                        OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL))

#define OPT_SET(opt)    (1 << (opt))
#define OPT_CHECK(opt)  ((opts) & OPT_SET(opt))

extern uint32_t opts;

#endif  /* !_RBX_H_ */