sysinstall.h revision 66263
136285Sbrian/*
236285Sbrian * The new sysinstall program.
336285Sbrian *
436285Sbrian * This is probably the last attempt in the `sysinstall' line, the next
536285Sbrian * generation being slated to essentially a complete rewrite.
636285Sbrian *
736285Sbrian * $FreeBSD: head/usr.sbin/sysinstall/sysinstall.h 66263 2000-09-22 19:12:41Z jkh $
836285Sbrian *
936285Sbrian * Copyright (c) 1995
1036285Sbrian *	Jordan Hubbard.  All rights reserved.
1136285Sbrian *
1236285Sbrian * Redistribution and use in source and binary forms, with or without
1336285Sbrian * modification, are permitted provided that the following conditions
1436285Sbrian * are met:
1536285Sbrian * 1. Redistributions of source code must retain the above copyright
1636285Sbrian *    notice, this list of conditions and the following disclaimer,
1736285Sbrian *    verbatim and that no modifications are made prior to this
1836285Sbrian *    point in the file.
1936285Sbrian * 2. Redistributions in binary form must reproduce the above copyright
2036285Sbrian *    notice, this list of conditions and the following disclaimer in the
2136285Sbrian *    documentation and/or other materials provided with the distribution.
2236285Sbrian *
2336285Sbrian * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
2436285Sbrian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2536285Sbrian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2650479Speter * ARE DISCLAIMED.  IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
2736285Sbrian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2836285Sbrian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2943313Sbrian * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
3036285Sbrian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
3136285Sbrian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3236285Sbrian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3381634Sbrian * SUCH DAMAGE.
3436285Sbrian *
3536285Sbrian */
3636285Sbrian
37102500Sbrian#ifndef _SYSINSTALL_H_INCLUDE
3836285Sbrian#define _SYSINSTALL_H_INCLUDE
3936285Sbrian
4036285Sbrian#include <sys/types.h>
4136285Sbrian#include <sys/wait.h>
4236285Sbrian#include <errno.h>
4336285Sbrian#include <setjmp.h>
4446686Sbrian#include <stdio.h>
4536285Sbrian#include <stdlib.h>
4636285Sbrian#include <string.h>
4736285Sbrian#include <unistd.h>
4836285Sbrian#include <dialog.h>
4936285Sbrian#include "ui_objects.h"
5036285Sbrian#include "dir.h"
5136285Sbrian#include "colors.h"
5236285Sbrian#include "libdisk.h"
5363484Sbrian#include "dist.h"
5436285Sbrian
5536285Sbrian/*** Defines ***/
5636285Sbrian
5736285Sbrian/* device limits */
5836285Sbrian#define DEV_NAME_MAX		64	/* The maximum length of a device name	*/
5936285Sbrian#define DEV_MAX			100	/* The maximum number of devices we'll deal with */
6036285Sbrian#define INTERFACE_MAX		50	/* Maximum number of network interfaces we'll deal with */
6181634Sbrian#define IO_ERROR		-2	/* Status code for I/O error rather than normal EOF */
6236285Sbrian
6336285Sbrian/* Number of seconds to wait for data to come off even the slowest media */
6436285Sbrian#define MEDIA_TIMEOUT		300
6543313Sbrian
6643313Sbrian/*
6743313Sbrian * I make some pretty gross assumptions about having a max of 50 chunks
6881634Sbrian * total - 8 slices and 42 partitions.  I can't easily display many more
6981634Sbrian * than that on the screen at once!
7036285Sbrian *
7136285Sbrian * For 2.1 I'll revisit this and try to make it more dynamic, but since
7236285Sbrian * this will catch 99.99% of all possible cases, I'm not too worried.
7336285Sbrian */
7446686Sbrian#define MAX_CHUNKS	40
7536285Sbrian
7636285Sbrian/* Internal environment variable names */
7736285Sbrian#define DISK_PARTITIONED		"_diskPartitioned"
7838174Sbrian#define DISK_LABELLED			"_diskLabelled"
7936285Sbrian#define DISK_SELECTED			"_diskSelected"
8036285Sbrian#define SYSTEM_STATE			"_systemState"
8136285Sbrian#define RUNNING_ON_ROOT			"_runningOnRoot"
82134789Sbrian#define TCP_CONFIGURED			"_tcpConfigured"
83136375Sbrian
8436285Sbrian/* Ones that can be tweaked from config files */
8536285Sbrian#define VAR_BLANKTIME			"blanktime"
8636285Sbrian#define VAR_BOOTMGR			"bootManager"
8736285Sbrian#define VAR_BROWSER_BINARY		"browserBinary"
8836285Sbrian#define VAR_BROWSER_PACKAGE		"browserPackage"
8936285Sbrian#define VAR_CPIO_VERBOSITY		"cpioVerbose"
9044468Sbrian#define VAR_DEBUG			"debug"
9136285Sbrian#define VAR_DESKSTYLE			"_deskStyle"
9259084Sbrian#define VAR_DISK			"disk"
9336285Sbrian#define VAR_DISTS			"dists"
9436285Sbrian#define VAR_DIST_MAIN			"distMain"
9544261Sbrian#define VAR_DIST_CRYPTO			"distCRYPTO"
9636285Sbrian#define VAR_DIST_SRC			"distSRC"
9736285Sbrian#define VAR_DIST_X11			"distX11"
9844261Sbrian#define VAR_DIST_XSERVER		"distXserver"
9944261Sbrian#define VAR_DIST_XFONTS			"distXfonts"
10044468Sbrian#define VAR_DEDICATE_DISK		"dedicateDisk"
10185362Sbrian#define VAR_DOMAINNAME			"domainname"
10285362Sbrian#define VAR_EDITOR			"editor"
10385362Sbrian#define VAR_EXTRAS			"ifconfig_"
10485362Sbrian#define VAR_COMMAND			"command"
10585362Sbrian#define VAR_CONFIG_FILE			"configFile"
10685362Sbrian#define VAR_FIXIT_TTY			"fixitTty"
10785362Sbrian#define VAR_FTP_DIR			"ftpDirectory"
10885362Sbrian#define VAR_FTP_PASS			"ftpPass"
10985362Sbrian#define VAR_FTP_PATH			"_ftpPath"
11085362Sbrian#define VAR_FTP_PORT			"ftpPort"
11144261Sbrian#define VAR_FTP_STATE			"ftpState"
11236285Sbrian#define VAR_FTP_USER			"ftpUser"
11336285Sbrian#define VAR_FTP_HOST			"ftpHost"
11436285Sbrian#define VAR_HTTP_PATH			"_httpPath"
11536285Sbrian#define VAR_HTTP_PORT			"httpPort"
11636285Sbrian#define VAR_HTTP_HOST			"httpHost"
11736285Sbrian#define VAR_HTTP_FTP_MODE		"httpFtpMode"
11846686Sbrian#define VAR_GATEWAY			"defaultrouter"
11946686Sbrian#define VAR_GEOMETRY			"geometry"
12036285Sbrian#define VAR_HOSTNAME			"hostname"
12136285Sbrian#define VAR_IFCONFIG			"ifconfig_"
12236285Sbrian#define VAR_INTERFACES			"network_interfaces"
12336285Sbrian#define VAR_INSTALL_CFG			"installConfig"
12454055Sbrian#define VAR_INSTALL_ROOT		"installRoot"
12546686Sbrian#define VAR_IPADDR			"ipaddr"
12636285Sbrian#define VAR_IPV6_ENABLE			"ipv6_enable"
12736285Sbrian#define VAR_IPV6ADDR			"ipv6addr"
12838174Sbrian#define VAR_KEYMAP			"keymap"
12938174Sbrian#define VAR_KGET			"kget"
13038174Sbrian#define VAR_LABEL			"label"
13138174Sbrian#define VAR_LABEL_COUNT			"labelCount"
13238174Sbrian#define VAR_LINUX_ENABLE		"linux_enable"
13338174Sbrian#define VAR_MEDIA_TYPE			"mediaType"
13438174Sbrian#define VAR_MEDIA_TIMEOUT		"MEDIA_TIMEOUT"
13538174Sbrian#define VAR_MOUSED			"moused_enable"
13644468Sbrian#define VAR_MOUSED_FLAGS                "moused_flags"
13744468Sbrian#define VAR_MOUSED_PORT			"moused_port"
13838174Sbrian#define VAR_MOUSED_TYPE			"moused_type"
13938174Sbrian#define VAR_NAMESERVER			"nameserver"
14038174Sbrian#define VAR_NETINTERACTIVE		"netInteractive"
14138174Sbrian#define VAR_NETMASK			"netmask"
14238174Sbrian#define VAR_NETWORK_DEVICE		"netDev"
14344468Sbrian#define VAR_NEWFS_ARGS			"newfsArgs"
14438174Sbrian#define VAR_NFS_PATH			"nfs"
14538174Sbrian#define VAR_NFS_HOST			"nfsHost"
14638174Sbrian#define VAR_NFS_SECURE			"nfs_reserved_port_only"
14738174Sbrian#define VAR_NFS_SERVER			"nfs_server_enable"
14838174Sbrian#define VAR_NO_CONFIRM			"noConfirm"
14952412Sbrian#define VAR_NO_ERROR			"noError"
15052412Sbrian#define VAR_NO_WARN			"noWarn"
15145385Sbrian#define VAR_NO_USR			"noUsr"
15238174Sbrian#define VAR_NONINTERACTIVE		"nonInteractive"
15336285Sbrian#define VAR_NOVELL			"novell"
15444468Sbrian#define VAR_NTPDATE_FLAGS		"ntpdate_flags"
15536465Sbrian#define VAR_PACKAGE			"package"
15636285Sbrian#define VAR_PARTITION			"partition"
15744468Sbrian#define VAR_PCNFSD			"pcnfsd"
15844468Sbrian#define VAR_PKG_TMPDIR			"PKG_TMPDIR"
15936285Sbrian#define VAR_PORTS_PATH			"ports"
16036285Sbrian#define VAR_PPP_ENABLE			"ppp_enable"
16158455Sbrian#define VAR_PPP_PROFILE			"ppp_profile"
16258455Sbrian#define VAR_RELNAME			"releaseName"
16344468Sbrian#define VAR_ROOT_SIZE			"rootSize"
16436285Sbrian#define VAR_ROUTER			"router"
16536285Sbrian#define VAR_ROUTER_ENABLE		"router_enable"
16652412Sbrian#define VAR_ROUTERFLAGS			"router_flags"
16752412Sbrian#define VAR_SERIAL_SPEED		"serialSpeed"
16845385Sbrian#define VAR_SLOW_ETHER			"slowEthernetCard"
16944468Sbrian#define VAR_SWAP_SIZE			"swapSize"
17036285Sbrian#define VAR_TAPE_BLOCKSIZE		"tapeBlocksize"
17144468Sbrian#define VAR_TRY_DHCP			"tryDHCP"
17244468Sbrian#define VAR_TRY_RTSOL			"tryRTSOL"
17336285Sbrian#define VAR_UFS_PATH			"ufs"
17459084Sbrian#define VAR_USR_SIZE			"usrSize"
17559084Sbrian#define VAR_VAR_SIZE			"varSize"
17659084Sbrian#define VAR_XF86_CONFIG			"_xf86config"
17759084Sbrian
17836285Sbrian#define DEFAULT_TAPE_BLOCKSIZE	"20"
17936285Sbrian
18044468Sbrian/* One MB worth of blocks */
18136285Sbrian#define ONE_MEG				2048
18236285Sbrian#define ONE_GIG				(ONE_MEG * 1024)
18359084Sbrian
18436285Sbrian/* Which selection attributes to use */
18536285Sbrian#define ATTR_SELECTED			(ColorDisplay ? item_selected_attr : item_attr)
18636285Sbrian#define ATTR_TITLE	button_active_attr
18736285Sbrian
18849472Sbrian/* Handy strncpy() macro */
18936285Sbrian#define SAFE_STRCPY(to, from)	sstrncpy((to), (from), sizeof (to) - 1)
19036285Sbrian
19136285Sbrian/*** Types ***/
19236285Sbriantypedef unsigned int Boolean;
19336285Sbriantypedef struct disk Disk;
19436285Sbriantypedef struct chunk Chunk;
19536285Sbrian
19636285Sbrian/* Bitfields for menu options */
19748003Sbrian#define DMENU_NORMAL_TYPE	0x1     /* Normal dialog menu           */
19848003Sbrian#define DMENU_RADIO_TYPE	0x2     /* Radio dialog menu            */
19936285Sbrian#define DMENU_CHECKLIST_TYPE	0x4     /* Multiple choice menu         */
20036285Sbrian#define DMENU_SELECTION_RETURNS 0x8     /* Immediate return on item selection */
20136285Sbrian
20236285Sbriantypedef struct _dmenu {
20336285Sbrian    int type;				/* What sort of menu we are	*/
20436285Sbrian    char *title;			/* Our title			*/
20536285Sbrian    char *prompt;			/* Our prompt			*/
20659084Sbrian    char *helpline;			/* Line of help at bottom	*/
20736285Sbrian    char *helpfile;			/* Help file for "F1"		*/
20836285Sbrian    dialogMenuItem items[0];		/* Array of menu items		*/
20936285Sbrian} DMenu;
21036285Sbrian
21136285Sbrian/* An rc.conf variable */
21236285Sbriantypedef struct _variable {
21354055Sbrian    struct _variable *next;
21452488Sbrian    char *name;
21598243Sbrian    char *value;
21644468Sbrian    int dirty;
21744468Sbrian} Variable;
21836285Sbrian
21946686Sbrian#define NO_ECHO_OBJ(type)	((type) | (DITEM_NO_ECHO << 16))
22044468Sbrian#define TYPE_OF_OBJ(type)	((type) & 0xff)
22136285Sbrian#define ATTR_OF_OBJ(type)	((type) >> 16)
22298243Sbrian
22352488Sbrian/* A screen layout structure */
22454914Sbriantypedef struct _layout {
22554914Sbrian    int         y;              /* x & Y co-ordinates */
22636285Sbrian    int         x;
22747061Sbrian    int         len;            /* The size of the dialog on the screen */
22836285Sbrian    int         maxlen;         /* How much the user can type in ... */
22936285Sbrian    char        *prompt;        /* The string for the prompt */
23046686Sbrian    char        *help;          /* The display for the help line */
23136285Sbrian    void        *var;           /* The var to set when this changes */
23236285Sbrian    int         type;           /* The type of the dialog to create */
23336285Sbrian    void        *obj;           /* The obj pointer returned by libdialog */
23444468Sbrian} Layout;
23544468Sbrian
23636285Sbriantypedef enum {
23736285Sbrian    DEVICE_TYPE_NONE,
23891623Sbrian    DEVICE_TYPE_DISK,
23936285Sbrian    DEVICE_TYPE_FLOPPY,
24036285Sbrian    DEVICE_TYPE_FTP,
24136285Sbrian    DEVICE_TYPE_NETWORK,
24236285Sbrian    DEVICE_TYPE_CDROM,
24336285Sbrian    DEVICE_TYPE_TAPE,
24436285Sbrian    DEVICE_TYPE_DOS,
24536285Sbrian    DEVICE_TYPE_UFS,
24636285Sbrian    DEVICE_TYPE_NFS,
24736285Sbrian    DEVICE_TYPE_ANY,
24836285Sbrian    DEVICE_TYPE_HTTP,
24936285Sbrian} DeviceType;
25036285Sbrian
25158028Sbrian/* CDROM mount codes */
25236285Sbrian#define CD_UNMOUNTED		0
25336285Sbrian#define CD_ALREADY_MOUNTED	1
25436285Sbrian#define CD_WE_MOUNTED_IT	2
25536285Sbrian
25636285Sbrian/* A "device" from sysinstall's point of view */
25736285Sbriantypedef struct _device {
25836285Sbrian    char name[DEV_NAME_MAX];
25936285Sbrian    char *description;
26053830Sbrian    char *devname;
26153830Sbrian    DeviceType type;
26247863Sbrian    Boolean enabled;
26336285Sbrian    Boolean (*init)(struct _device *dev);
26436465Sbrian    FILE * (*get)(struct _device *dev, char *file, Boolean probe);
26553830Sbrian    void (*shutdown)(struct _device *dev);
26653830Sbrian    void *private;
26753830Sbrian    unsigned int flags;
26836285Sbrian} Device;
26936285Sbrian
27036285Sbrian/* Some internal representations of partitions */
27136285Sbriantypedef enum {
272102413Scharnier    PART_NONE,
27336285Sbrian    PART_SLICE,
27436285Sbrian    PART_SWAP,
27544468Sbrian    PART_FILESYSTEM,
27644468Sbrian    PART_FAT,
27744468Sbrian} PartType;
278134789Sbrian
27938200Sbrian/* The longest newfs command we'll hand to system() */
28038200Sbrian#define NEWFS_CMD_MAX	256
28138200Sbrian
28236285Sbriantypedef struct _part_info {
28336285Sbrian    Boolean newfs;
28454914Sbrian    char mountpoint[FILENAME_MAX];
28554914Sbrian    char newfs_cmd[NEWFS_CMD_MAX];
28654914Sbrian} PartInfo;
28754914Sbrian
28836465Sbrian/* An option */
28936285Sbriantypedef struct _opt {
29036285Sbrian    char *name;
29144468Sbrian    char *desc;
29236285Sbrian    enum { OPT_IS_STRING, OPT_IS_INT, OPT_IS_FUNC, OPT_IS_VAR } type;
29336285Sbrian    void *data;
29451978Sbrian    void *aux;
29541830Sbrian    char *(*check)();
29636285Sbrian} Option;
29736465Sbrian
29836285Sbrian/* Weird index nodey things we use for keeping track of package information */
29946686Sbriantypedef enum { PACKAGE, PLACE } node_type;	/* Types of nodes */
30044468Sbrian
30136285Sbriantypedef struct _pkgnode {	/* A node in the reconstructed hierarchy */
30246686Sbrian    struct _pkgnode *next;	/* My next sibling			*/
30336285Sbrian    node_type type;		/* What am I?				*/
30436285Sbrian    char *name;			/* My name				*/
30536465Sbrian    char *desc;			/* My description (Hook)		*/
30644468Sbrian    struct _pkgnode *kids;	/* My little children			*/
30736285Sbrian    void *data;			/* A place to hang my data		*/
30836285Sbrian} PkgNode;
30944468Sbriantypedef PkgNode *PkgNodePtr;
31038200Sbrian
31138200Sbrian/* A single package */
31236285Sbriantypedef struct _indexEntry {	/* A single entry in an INDEX file */
31336285Sbrian    char *name;			/* name				*/
31438200Sbrian    char *path;			/* full path to port		*/
31544468Sbrian    char *prefix;		/* port prefix			*/
31644468Sbrian    char *comment;		/* one line description		*/
31744468Sbrian    char *descrfile;		/* path to description file	*/
31859084Sbrian    char *deps;			/* packages this depends on	*/
31938200Sbrian    int  depc;			/* how many depend on me	*/
32044261Sbrian    int  installed;		/* indicates if it is installed */
32138200Sbrian    char *maintainer;		/* maintainer			*/
32236285Sbrian} IndexEntry;
32336285Sbriantypedef IndexEntry *IndexEntryPtr;
32436285Sbrian
32536285Sbriantypedef int (*commandFunc)(char *key, void *data);
32649472Sbrian
32749472Sbrian#define HOSTNAME_FIELD_LEN	128
32849472Sbrian#define IPADDR_FIELD_LEN	16
32949472Sbrian#define EXTRAS_FIELD_LEN	128
33049472Sbrian
33149472Sbrian/* This is the structure that Network devices carry around in their private, erm, structures */
33249472Sbriantypedef struct _devPriv {
33349472Sbrian    int use_rtsol;
33451978Sbrian    int use_dhcp;
33551978Sbrian    char ipaddr[IPADDR_FIELD_LEN];
33654914Sbrian    char netmask[IPADDR_FIELD_LEN];
33754914Sbrian    char extras[EXTRAS_FIELD_LEN];
33851978Sbrian} DevInfo;
33951978Sbrian
34049472Sbrian
34149472Sbrian/*** Externs ***/
34249472Sbrianextern jmp_buf		BailOut;		/* Used to get the heck out */
34349472Sbrianextern int		DebugFD;		/* Where diagnostic output goes			*/
34498243Sbrianextern Boolean		Fake;			/* Don't actually modify anything - testing	*/
34551978Sbrianextern Boolean		SystemWasInstalled;	/* Did we install it?				*/
34654914Sbrianextern Boolean		RunningAsInit;		/* Are we running stand-alone?			*/
34754914Sbrianextern Boolean		DialogActive;		/* Is the dialog() stuff up?			*/
34853070Sbrianextern Boolean		ColorDisplay;		/* Are we on a color display?			*/
34953070Sbrianextern Boolean		OnVTY;			/* On a syscons VTY?				*/
35051978Sbrianextern Variable		*VarHead;		/* The head of the variable chain		*/
35153070Sbrianextern Device		*mediaDevice;		/* Where we're getting our distribution from	*/
35253070Sbrianextern unsigned int	Dists;			/* Which distributions we want			*/
35349472Sbrianextern unsigned int	CRYPTODists;		/* Which naughty distributions we want		*/
35449472Sbrianextern unsigned int	SrcDists;		/* Which src distributions we want		*/
35536285Sbrianextern unsigned int	XF86Dists;		/* Which XFree86 dists we want			*/
35636285Sbrianextern unsigned int	XF86ServerDists;	/* The XFree86 servers we want			*/
35752488Sbrianextern unsigned int	XF86FontDists;		/* The XFree86 fonts we want			*/
35836285Sbrianextern int		BootMgr;		/* Which boot manager to use 			*/
35936285Sbrianextern int		StatusLine;		/* Where to print our status messages		*/
36036285Sbrianextern DMenu		MenuInitial;		/* Initial installation menu			*/
36136285Sbrianextern DMenu		MenuFixit;		/* Fixit repair menu				*/
36236285Sbrianextern DMenu		MenuMBRType;		/* Type of MBR to write on the disk		*/
36336285Sbrianextern DMenu		MenuConfigure;		/* Final configuration menu			*/
36436285Sbrianextern DMenu		MenuDocumentation;	/* Documentation menu				*/
36536285Sbrianextern DMenu		MenuFTPOptions;		/* FTP Installation options			*/
36636285Sbrianextern DMenu		MenuIndex;		/* Index menu					*/
36736285Sbrianextern DMenu		MenuOptions;		/* Installation options				*/
36849472Sbrianextern DMenu		MenuOptionsLanguage;	/* Language options menu			*/
36936285Sbrianextern DMenu		MenuMedia;		/* Media type menu				*/
37052488Sbrianextern DMenu		MenuMouse;		/* Mouse type menu				*/
37152488Sbrianextern DMenu		MenuMediaCDROM;		/* CDROM media menu				*/
37252488Sbrianextern DMenu		MenuMediaDOS;		/* DOS media menu				*/
37354914Sbrianextern DMenu		MenuMediaFloppy;	/* Floppy media menu				*/
37454914Sbrianextern DMenu		MenuMediaFTP;		/* FTP media menu				*/
37552488Sbrianextern DMenu		MenuMediaTape;		/* Tape media menu				*/
37636285Sbrianextern DMenu		MenuNetworkDevice;	/* Network device menu				*/
37742390Sbrianextern DMenu		MenuNTP;		/* NTP time server menu				*/
37836285Sbrianextern DMenu		MenuSecurityProfile;	/* Security profile menu			*/
37942905Sbrianextern DMenu		MenuStartup;		/* Startup services menu			*/
38036285Sbrianextern DMenu		MenuSyscons;		/* System console configuration menu		*/
38136285Sbrianextern DMenu		MenuSysconsFont;	/* System console font configuration menu	*/
38236285Sbrianextern DMenu		MenuSysconsKeymap;	/* System console keymap configuration menu	*/
38336285Sbrianextern DMenu		MenuSysconsKeyrate;	/* System console keyrate configuration menu	*/
38436285Sbrianextern DMenu		MenuSysconsSaver;	/* System console saver configuration menu	*/
38536285Sbrianextern DMenu		MenuSysconsScrnmap;	/* System console screenmap configuration menu	*/
38636285Sbrianextern DMenu		MenuNetworking;		/* Network configuration menu			*/
38736285Sbrianextern DMenu		MenuInstallCustom;	/* Custom Installation menu			*/
38836285Sbrianextern DMenu		MenuDistributions;	/* Distribution menu				*/
38936285Sbrianextern DMenu		MenuDiskDevices;	/* Disk type devices				*/
39052488Sbrianextern DMenu		MenuSubDistributions;	/* Custom distribution menu			*/
39136285Sbrianextern DMenu		MenuSrcDistributions;	/* Source distribution menu			*/
39236285Sbrianextern DMenu		MenuXF86;		/* XFree86 main menu				*/
39352488Sbrianextern DMenu		MenuXF86Select;		/* XFree86 distribution selection menu		*/
39454914Sbrianextern DMenu		MenuXF86SelectCore;	/* XFree86 core distribution menu		*/
39554914Sbrianextern DMenu		MenuXF86SelectServer;	/* XFree86 server distribution menu		*/
39636285Sbrianextern DMenu		MenuXF86SelectPC98Server; /* XFree86 server distribution menu		*/
39736285Sbrianextern DMenu		MenuXF86SelectFonts;	/* XFree86 font selection menu			*/
39836285Sbrianextern DMenu		MenuXF86SelectFonts;	/* XFree86 font selection menu			*/
39936285Sbrianextern DMenu		MenuXDesktops;		/* Disk devices menu				*/
40036285Sbrianextern DMenu		MenuHTMLDoc;		/* HTML Documentation menu			*/
40136285Sbrianextern DMenu		MenuUsermgmt;		/* User management menu				*/
40236285Sbrianextern DMenu		MenuFixit;		/* Fixit floppy/CDROM/shell menu		*/
40336285Sbrianextern DMenu		MenuXF86Config;		/* Select XFree86 configuration type		*/
40436285Sbrianextern int              FixItMode;              /* FixItMode starts shell onc urrent device (ie Serial port) */
40538174Sbrian
40636285Sbrian/* Stuff from libdialog which isn't properly declared outside */
40743888Sbrianextern void display_helpfile(void);
40843888Sbrianextern void display_helpline(WINDOW *w, int y, int width);
40936285Sbrian
41036285Sbrian/*** Prototypes ***/
41136285Sbrian
41236285Sbrian/* anonFTP.c */
41336285Sbrianextern int	configAnonFTP(dialogMenuItem *self);
41436285Sbrian
41536285Sbrian/* cdrom.c */
41636285Sbrianextern Boolean	mediaInitCDROM(Device *dev);
41736285Sbrianextern FILE	*mediaGetCDROM(Device *dev, char *file, Boolean probe);
41836285Sbrianextern void	mediaShutdownCDROM(Device *dev);
41936285Sbrian
42036285Sbrian/* command.c */
42158028Sbrianextern void	command_clear(void);
42236285Sbrianextern void	command_sort(void);
42336285Sbrianextern void	command_execute(void);
42436285Sbrianextern void	command_shell_add(char *key, char *fmt, ...);
42536285Sbrianextern void	command_func_add(char *key, commandFunc func, void *data);
42636285Sbrian
42736285Sbrian/* config.c */
42836285Sbrianextern void	configEnvironmentRC_conf(void);
42936285Sbrianextern void	configEnvironmentResolv(char *config);
43036285Sbrianextern void	configRC_conf(void);
43136285Sbrianextern int	configFstab(dialogMenuItem *self);
43252488Sbrianextern int	configRC(dialogMenuItem *self);
43336285Sbrianextern int	configResolv(dialogMenuItem *self);
43436285Sbrianextern int	configPackages(dialogMenuItem *self);
43536285Sbrianextern int	configSaver(dialogMenuItem *self);
43636285Sbrianextern int	configSaverTimeout(dialogMenuItem *self);
43736285Sbrianextern int	configLinux(dialogMenuItem *self);
43836285Sbrianextern int	configNTP(dialogMenuItem *self);
43938174Sbrianextern int	configUsers(dialogMenuItem *self);
44036285Sbrianextern int	configXSetup(dialogMenuItem *self);
44143888Sbrianextern int	configXDesktop(dialogMenuItem *self);
44243888Sbrianextern int	configRouter(dialogMenuItem *self);
44336285Sbrianextern int	configPCNFSD(dialogMenuItem *self);
44436285Sbrianextern int	configNFSServer(dialogMenuItem *self);
44536285Sbrianextern int	configWriteRC_conf(dialogMenuItem *self);
44636285Sbrianextern int	configSecurityProfile(dialogMenuItem *self);
44736285Sbrianextern int	configSecurityFascist(dialogMenuItem *self);
44858028Sbrianextern int	configSecurityModerate(dialogMenuItem *self);
44936285Sbrianextern int	configSecurityLiberal(dialogMenuItem *self);
45036285Sbrian
45136285Sbrian/* crc.c */
45236285Sbrianextern int	crc(int, unsigned long *, unsigned long *);
45336285Sbrian
45436285Sbrian/* devices.c */
45536285Sbrianextern DMenu	*deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)(dialogMenuItem *d),
45636285Sbrian				  int (*check)(dialogMenuItem *d));
45736285Sbrianextern void	deviceGetAll(void);
45836285Sbrianextern void	deviceReset(void);
45952488Sbrianextern void	deviceRescan(void);
46036285Sbrianextern Device	**deviceFind(char *name, DeviceType type);
46136285Sbrianextern Device	**deviceFindDescr(char *name, char *desc, DeviceType class);
46236285Sbrianextern int	deviceCount(Device **devs);
46336285Sbrianextern Device	*new_device(char *name);
46436285Sbrianextern Device	*deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
46536285Sbrian				Boolean (*init)(Device *mediadev),
46636285Sbrian				FILE * (*get)(Device *dev, char *file, Boolean probe),
46738174Sbrian				void (*shutDown)(Device *mediadev),
46836285Sbrian				void *private);
46943888Sbrianextern Boolean	dummyInit(Device *dev);
47043888Sbrianextern FILE	*dummyGet(Device *dev, char *dist, Boolean probe);
47143888Sbrianextern void	dummyShutdown(Device *dev);
47243888Sbrian
47336285Sbrian/* dhcp.c */
47436285Sbrianextern int	dhcpParseLeases(char *file, char *hostname, char *domain, char *nameserver,
47536285Sbrian				char *ipaddr, char *gateway, char *netmask);
47636285Sbrian
47737141Sbrian/* disks.c */
47867912Sbrianextern int	diskPartitionEditor(dialogMenuItem *self);
47967912Sbrianextern int	diskPartitionWrite(dialogMenuItem *self);
48036285Sbrianextern int	diskGetSelectCount(Device ***devs);
48136285Sbrianextern void	diskPartition(Device *dev);
48237141Sbrian
48336285Sbrian/* dispatch.c */
48436285Sbrianextern int	dispatchCommand(char *command);
48536285Sbrianextern int	dispatch_load_floppy(dialogMenuItem *self);
48636285Sbrianextern int	dispatch_load_file_int(int);
48736285Sbrianextern int	dispatch_load_file(dialogMenuItem *self);
48836285Sbrian
48936285Sbrian
49036285Sbrian/* dist.c */
49152488Sbrianextern int	distReset(dialogMenuItem *self);
49236285Sbrianextern int	distConfig(dialogMenuItem *self);
49393418Sbrianextern int	distSetCustom(dialogMenuItem *self);
49493418Sbrianextern int	distUnsetCustom(dialogMenuItem *self);
49593418Sbrianextern int	distSetDeveloper(dialogMenuItem *self);
49693418Sbrianextern int	distSetXDeveloper(dialogMenuItem *self);
49736285Sbrianextern int	distSetKernDeveloper(dialogMenuItem *self);
49836285Sbrianextern int	distSetXKernDeveloper(dialogMenuItem *self);
49936285Sbrianextern int	distSetUser(dialogMenuItem *self);
50036285Sbrianextern int	distSetXUser(dialogMenuItem *self);
50136285Sbrianextern int	distSetMinimum(dialogMenuItem *self);
50238174Sbrianextern int	distSetEverything(dialogMenuItem *self);
50336285Sbrianextern int	distSetSrc(dialogMenuItem *self);
50443888Sbrianextern int	distSetXF86(dialogMenuItem *self);
50593418Sbrianextern int	distExtractAll(dialogMenuItem *self);
50693418Sbrian
50793418Sbrian/* dmenu.c */
50893418Sbrianextern int	dmenuDisplayFile(dialogMenuItem *tmp);
50993418Sbrianextern int	dmenuSubmenu(dialogMenuItem *tmp);
51093418Sbrianextern int	dmenuSystemCommand(dialogMenuItem *tmp);
51193418Sbrianextern int	dmenuSystemCommandBox(dialogMenuItem *tmp);
51243888Sbrianextern int	dmenuExit(dialogMenuItem *tmp);
51393418Sbrianextern int	dmenuISetVariable(dialogMenuItem *tmp);
51493418Sbrianextern int	dmenuSetVariable(dialogMenuItem *tmp);
51593418Sbrianextern int	dmenuSetKmapVariable(dialogMenuItem *tmp);
51693418Sbrianextern int	dmenuSetVariables(dialogMenuItem *tmp);
51793418Sbrianextern int	dmenuToggleVariable(dialogMenuItem *tmp);
51893418Sbrianextern int	dmenuSetFlag(dialogMenuItem *tmp);
51993418Sbrianextern int	dmenuSetValue(dialogMenuItem *tmp);
52036285Sbrianextern Boolean	dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max, Boolean buttons);
52136285Sbrianextern Boolean	dmenuOpenSimple(DMenu *menu, Boolean buttons);
52237141Sbrianextern int	dmenuVarCheck(dialogMenuItem *item);
52337141Sbrianextern int	dmenuVarsCheck(dialogMenuItem *item);
52436285Sbrianextern int	dmenuFlagCheck(dialogMenuItem *item);
52536285Sbrianextern int	dmenuRadioCheck(dialogMenuItem *item);
52693418Sbrian
52737007Sbrian/* doc.c */
52836285Sbrianextern int	docBrowser(dialogMenuItem *self);
52971970Sbrianextern int	docShowDocument(dialogMenuItem *self);
53036285Sbrian
53171970Sbrian/* dos.c */
53271970Sbrianextern Boolean	mediaCloseDOS(Device *dev, FILE *fp);
53371970Sbrianextern Boolean	mediaInitDOS(Device *dev);
53471970Sbrianextern FILE	*mediaGetDOS(Device *dev, char *file, Boolean probe);
53571970Sbrianextern void	mediaShutdownDOS(Device *dev);
53671970Sbrian
53771970Sbrian/* floppy.c */
53871970Sbrianextern int	getRootFloppy(void);
53971970Sbrianextern Boolean	mediaInitFloppy(Device *dev);
54047061Sbrianextern FILE	*mediaGetFloppy(Device *dev, char *file, Boolean probe);
54137007Sbrianextern void	mediaShutdownFloppy(Device *dev);
54237007Sbrian
54346686Sbrian/* ftp_strat.c */
54436285Sbrianextern Boolean	mediaCloseFTP(Device *dev, FILE *fp);
54552488Sbrianextern Boolean	mediaInitFTP(Device *dev);
54652488Sbrianextern FILE	*mediaGetFTP(Device *dev, char *file, Boolean probe);
54754914Sbrianextern void	mediaShutdownFTP(Device *dev);
54854914Sbrian
54952488Sbrian/* http.c */
55052488Sbrianextern Boolean	mediaInitHTTP(Device *dev);
55154914Sbrianextern FILE	*mediaGetHTTP(Device *dev, char *file, Boolean probe);
55254914Sbrian
55352488Sbrian/* globals.c */
55436285Sbrianextern void	globalsInit(void);
55536285Sbrian
55636285Sbrian/* index.c */
55736285Sbrianint		index_read(FILE *fp, PkgNodePtr papa);
55836285Sbrianint		index_menu(PkgNodePtr root, PkgNodePtr top, PkgNodePtr plist, int *pos, int *scroll);
55936285Sbrianvoid		index_init(PkgNodePtr top, PkgNodePtr plist);
56036285Sbrianvoid		index_node_free(PkgNodePtr top, PkgNodePtr plist);
56136285Sbrianvoid		index_sort(PkgNodePtr top);
56236285Sbrianvoid		index_print(PkgNodePtr top, int level);
56336285Sbrianint		index_extract(Device *dev, PkgNodePtr top, PkgNodePtr who, Boolean depended);
56436285Sbrianint		index_initialize(char *path);
56536285SbrianPkgNodePtr	index_search(PkgNodePtr top, char *str, PkgNodePtr *tp);
56636285Sbrian
56736285Sbrian/* install.c */
56836285Sbrianextern Boolean	checkLabels(Boolean whinge, Chunk **rdev, Chunk **sdev, Chunk **udev, Chunk **vdev);
56936285Sbrianextern int	installCommit(dialogMenuItem *self);
57036285Sbrianextern int	installCustomCommit(dialogMenuItem *self);
57136285Sbrianextern int	installExpress(dialogMenuItem *self);
57236285Sbrianextern int	installStandard(dialogMenuItem *self);
57336285Sbrianextern int	installFixitHoloShell(dialogMenuItem *self);
57444106Sbrianextern int	installFixitCDROM(dialogMenuItem *self);
57536285Sbrianextern int	installFixitFloppy(dialogMenuItem *self);
57636285Sbrianextern int	installFixupBin(dialogMenuItem *self);
57743693Sbrianextern int	installFixupXFree(dialogMenuItem *self);
57844106Sbrianextern int	installUpgrade(dialogMenuItem *self);
57944106Sbrianextern int	installFilesystems(dialogMenuItem *self);
58044106Sbrianextern int	installVarDefaults(dialogMenuItem *self);
58145350Sbrianextern void	installEnvironment(void);
58236285Sbrianextern int	installX11package(dialogMenuItem *self);
58336285Sbrianextern Boolean	copySelf(void);
58444106Sbrian
58544106Sbrian/* kget.c */
58644106Sbrianextern int	kget(char *out);
58743693Sbrian
58844106Sbrian/* keymap.c */
58943693Sbrianextern int	loadKeymap(const char *lang);
59036285Sbrian
59136285Sbrian/* label.c */
59279165Sbrianextern int	diskLabelEditor(dialogMenuItem *self);
59379165Sbrianextern int	diskLabelCommit(dialogMenuItem *self);
59436285Sbrian
59536285Sbrian/* lndir.c */
59644094Sbrianextern int	lndir(char *from, char *to);
59744094Sbrian
59844094Sbrian/* makedevs.c (auto-generated) */
59944094Sbrianextern const char	termcap_ansi[];
60044094Sbrianextern const char	termcap_vt100[];
60144094Sbrianextern const char	termcap_cons25w[];
60244094Sbrianextern const char	termcap_cons25[];
60344094Sbrianextern const char	termcap_cons25_m[];
60436285Sbrianextern const char	termcap_cons25r[];
60543693Sbrianextern const char	termcap_cons25r_m[];
60636285Sbrianextern const char	termcap_cons25l1[];
60743693Sbrianextern const char	termcap_cons25l1_m[];
60843693Sbrianextern const char	termcap_xterm[];
60936285Sbrianextern const u_char	font_iso_8x16[];
61036285Sbrianextern const u_char	font_cp850_8x16[];
61136285Sbrianextern const u_char	font_cp866_8x16[];
61238174Sbrianextern const u_char	koi8_r2cp866[];
61336285Sbrianextern u_char		default_scrnmap[];
61437320Sbrian
61536310Sbrian/* media.c */
61636285Sbrianextern char	*cpioVerbosity(void);
61736285Sbrianextern void	mediaClose(void);
61836285Sbrianextern int	mediaTimeout(void);
61936285Sbrianextern int	mediaSetCDROM(dialogMenuItem *self);
62036285Sbrianextern int	mediaSetFloppy(dialogMenuItem *self);
62136285Sbrianextern int	mediaSetDOS(dialogMenuItem *self);
62236285Sbrianextern int	mediaSetTape(dialogMenuItem *self);
62336285Sbrianextern int	mediaSetFTP(dialogMenuItem *self);
62438174Sbrianextern int	mediaSetFTPActive(dialogMenuItem *self);
62549434Sbrianextern int	mediaSetFTPPassive(dialogMenuItem *self);
626102413Scharnierextern int	mediaSetHTTP(dialogMenuItem *self);
62736285Sbrianextern int	mediaSetUFS(dialogMenuItem *self);
62836285Sbrianextern int	mediaSetNFS(dialogMenuItem *self);
62936310Sbrianextern int	mediaSetFTPUserPass(dialogMenuItem *self);
63049434Sbrianextern int	mediaSetCPIOVerbosity(dialogMenuItem *self);
63136285Sbrianextern int	mediaGetType(dialogMenuItem *self);
63236285Sbrianextern Boolean	mediaExtractDist(char *dir, char *dist, FILE *fp);
63336285Sbrianextern Boolean	mediaExtractDistBegin(char *dir, int *fd, int *zpid, int *cpic);
63436285Sbrianextern Boolean	mediaExtractDistEnd(int zpid, int cpid);
63536285Sbrianextern Boolean	mediaVerify(void);
63636285Sbrianextern FILE	*mediaGenericGet(char *base, const char *file);
63736285Sbrian
63837160Sbrian/* misc.c */
63949434Sbrianextern Boolean	file_readable(char *fname);
64037160Sbrianextern Boolean	file_executable(char *fname);
64136285Sbrianextern Boolean	directory_exists(const char *dirname);
64236285Sbrianextern char	*root_bias(char *path);
64336285Sbrianextern char	*itoa(int value);
64481634Sbrianextern char	*string_concat(char *p1, char *p2);
64538174Sbrianextern char	*string_concat3(char *p1, char *p2, char *p3);
64636285Sbrianextern char	*string_prune(char *str);
64736285Sbrianextern char	*string_skipwhite(char *str);
64837320Sbrianextern char	*string_copy(char *s1, char *s2);
64937320Sbrianextern char	*pathBaseName(const char *path);
65037320Sbrianextern void	safe_free(void *ptr);
65137320Sbrianextern void	*safe_malloc(size_t size);
65236285Sbrianextern void	*safe_realloc(void *orig, size_t size);
65336285Sbrianextern dialogMenuItem *item_add(dialogMenuItem *list, char *prompt, char *title,
65436285Sbrian				int (*checked)(dialogMenuItem *self),
65536285Sbrian				int (*fire)(dialogMenuItem *self),
65636285Sbrian				void (*selected)(dialogMenuItem *self, int is_selected),
65736285Sbrian				void *data, int aux, int *curr, int *max);
65838174Sbrianextern void	items_free(dialogMenuItem *list, int *curr, int *max);
65938174Sbrianextern int	Mkdir(char *);
66038174Sbrianextern int	Mount(char *, void *data);
66144094Sbrianextern WINDOW	*openLayoutDialog(char *helpfile, char *title, int x, int y, int width, int height);
66238174Sbrianextern ComposeObj *initLayoutDialog(WINDOW *win, Layout *layout, int x, int y, int *max);
66338174Sbrianextern int	layoutDialogLoop(WINDOW *win, Layout *layout, ComposeObj **obj,
66438174Sbrian				 int *n, int max, int *cbutton, int *cancel);
66538174Sbrian
66638174Sbrianextern WINDOW	*savescr(void);
66738174Sbrianextern void	restorescr(WINDOW *w);
66838174Sbrianextern char	*sstrncpy(char *dst, const char *src, int size);
66938174Sbrian
67038174Sbrian/* mouse.c */
67138174Sbrianextern int	mousedTest(dialogMenuItem *self);
67238174Sbrianextern int	mousedDisable(dialogMenuItem *self);
67338174Sbrianextern int      setMouseFlags(dialogMenuItem *self);
67438174Sbrian
67542600Sbrian/* msg.c */
67642600Sbrianextern Boolean	isDebug(void);
67742600Sbrianextern void	msgInfo(char *fmt, ...);
67842600Sbrianextern void	msgYap(char *fmt, ...);
67942600Sbrianextern void	msgWarn(char *fmt, ...);
68042600Sbrianextern void	msgDebug(char *fmt, ...);
68142600Sbrianextern void	msgError(char *fmt, ...);
68238174Sbrianextern void	msgFatal(char *fmt, ...);
68338174Sbrianextern void	msgConfirm(char *fmt, ...);
68438174Sbrianextern void	msgNotify(char *fmt, ...);
68542600Sbrianextern void	msgWeHaveOutput(char *fmt, ...);
68638174Sbrianextern int	msgYesNo(char *fmt, ...);
68738174Sbrianextern char	*msgGetInput(char *buf, char *fmt, ...);
68844094Sbrianextern int	msgSimpleConfirm(char *);
68938174Sbrianextern int	msgSimpleNotify(char *);
69038174Sbrian
69138174Sbrian/* network.c */
69238174Sbrianextern Boolean	mediaInitNetwork(Device *dev);
69338174Sbrianextern void	mediaShutdownNetwork(Device *dev);
69438174Sbrian
69538174Sbrian/* nfs.c */
69638174Sbrianextern Boolean	mediaInitNFS(Device *dev);
69738174Sbrianextern FILE	*mediaGetNFS(Device *dev, char *file, Boolean probe);
69838174Sbrianextern void	mediaShutdownNFS(Device *dev);
69938174Sbrian
70038174Sbrian/* options.c */
70138174Sbrianextern int	optionsEditor(dialogMenuItem *self);
70238174Sbrian
70338174Sbrian/* package.c */
70438174Sbrianextern int	packageAdd(dialogMenuItem *self);
70538174Sbrianextern int	package_add(char *name);
70638174Sbrianextern int	package_extract(Device *dev, char *name, Boolean depended);
70738174Sbrianextern Boolean	package_exists(char *name);
70838174Sbrian
70938174Sbrian/* pccard.c */
71038174Sbrianextern void	pccardInitialize(void);
71138174Sbrian
71238174Sbrian/* system.c */
71344094Sbrianextern void	systemInitialize(int argc, char **argv);
71438174Sbrianextern void	systemShutdown(int status);
71538174Sbrianextern int	execExecute(char *cmd, char *name);
71638174Sbrianextern int	systemExecute(char *cmd);
71738174Sbrianextern void	systemSuspendDialog(void);
71838174Sbrianextern void	systemResumeDialog(void);
71938174Sbrianextern int	systemDisplayHelp(char *file);
72038174Sbrianextern char	*systemHelpFile(char *file, char *buf);
72138174Sbrianextern void	systemChangeFont(const u_char font[]);
72238174Sbrianextern void	systemChangeLang(char *lang);
72338174Sbrianextern void	systemChangeTerminal(char *color, const u_char c_termcap[], char *mono, const u_char m_termcap[]);
72438174Sbrianextern void	systemChangeScreenmap(const u_char newmap[]);
72538174Sbrianextern void	systemCreateHoloshell(void);
72644094Sbrianextern int	vsystem(char *fmt, ...);
72738174Sbrian
72838174Sbrian/* tape.c */
72938174Sbrianextern char	*mediaTapeBlocksize(void);
73038174Sbrianextern Boolean	mediaInitTape(Device *dev);
73138174Sbrianextern FILE	*mediaGetTape(Device *dev, char *file, Boolean probe);
73238174Sbrianextern void	mediaShutdownTape(Device *dev);
73338174Sbrian
73444094Sbrian/* tcpip.c */
73538174Sbrianextern int	tcpOpenDialog(Device *dev);
73638174Sbrianextern int	tcpMenuSelect(dialogMenuItem *self);
73738174Sbrianextern Device	*tcpDeviceSelect(void);
73838174Sbrian
73938174Sbrian/* termcap.c */
74038174Sbrianextern int	set_termcap(void);
74136285Sbrian
74236285Sbrian/* ufs.c */
74336285Sbrianextern void	mediaShutdownUFS(Device *dev);
74444094Sbrianextern Boolean	mediaInitUFS(Device *dev);
74536285Sbrianextern FILE	*mediaGetUFS(Device *dev, char *file, Boolean probe);
74636285Sbrian
74736285Sbrian/* usb.c */
74836285Sbrianextern void	usbInitialize(void);
74936285Sbrian
75036285Sbrian/* user.c */
75136285Sbrianextern int	userAddGroup(dialogMenuItem *self);
75236285Sbrianextern int	userAddUser(dialogMenuItem *self);
75336285Sbrian
75436285Sbrian/* variable.c */
75536285Sbrianextern void	variable_set(char *var, int dirty);
75636285Sbrianextern void	variable_set2(char *name, char *value, int dirty);
75736285Sbrianextern char 	*variable_get(char *var);
75837060Sbrianextern int 	variable_cmp(char *var, char *value);
75936928Sbrianextern void	variable_unset(char *var);
76036285Sbrianextern char	*variable_get_value(char *var, char *prompt, int dirty);
761102413Scharnierextern int 	variable_check(char *data);
76236285Sbrianextern int	dump_variables(dialogMenuItem *self);
76338174Sbrian
76438174Sbrian/* wizard.c */
76538174Sbrianextern void	slice_wizard(Disk *d);
766102413Scharnier
76738174Sbrian#endif
76836285Sbrian/* _SYSINSTALL_H_INCLUDE */
76936285Sbrian