100 lines
2.6 KiB
C
Executable File
100 lines
2.6 KiB
C
Executable File
#pragma ident "@(#)addrem.h 1.6 95/01/12 SMI"
|
|
|
|
/*
|
|
* Copyright (c) 1993 by Sun Microsystems, Inc.
|
|
*/
|
|
|
|
/* defines for adddrv.c and remdrv.c */
|
|
|
|
#define SUCCESS 0
|
|
#define FAILURE -1
|
|
#define NOERR 0
|
|
#define ERROR -1
|
|
#define UNIQUE 0
|
|
#define NOT_UNIQUE -1
|
|
|
|
#define MAX_CMD_LINE 256
|
|
#define MAX_N2M_ALIAS_LINE FILENAME_MAX + FILENAME_MAX + 1
|
|
#define MAXLEN_NAM_TO_MAJ_ENT FILENAME_MAX + MAX_STR_MAJOR + 1
|
|
#define OPT_LEN 128
|
|
#define CADDR_HEX_STR 16
|
|
#define UINT_STR 10
|
|
#define MODLINE_ENT_MAX (4 * UINT_STR) + CADDR_HEX_STR + MODMAXNAMELEN
|
|
#define MAX_STR_MAJOR UINT_STR
|
|
#define STR_LONG 10
|
|
#define PERM_STR 4
|
|
#define MAX_PERM_ENTRY (2 * STR_LONG) + PERM_STR + (2 * FILENAME_MAX) + 1
|
|
#define MAX_DBFILE_ENTRY MAX_PERM_ENTRY
|
|
|
|
#define CLEAN_MINOR_PERM 0x00000001
|
|
#define CLEAN_DRV_ALIAS 0x00000002
|
|
#define CLEAN_NAM_MAJ 0x00000004
|
|
#define CLEAN_DRV_CLASSES 0x00000010
|
|
#define CLEAN_ALL (CLEAN_MINOR_PERM | CLEAN_DRV_ALIAS | \
|
|
CLEAN_NAM_MAJ | CLEAN_DRV_CLASSES)
|
|
|
|
/* add_drv/rem_drv database files */
|
|
#define DRIVER_ALIAS "/etc/driver_aliases"
|
|
#define DRIVER_CLASSES "/etc/driver_classes"
|
|
#define MINOR_PERM "/etc/minor_perm"
|
|
#define NAM_TO_MAJ "/etc/name_to_major"
|
|
#define REM_NAM_TO_MAJ "/etc/rem_name_to_major"
|
|
|
|
#define ADD_REM_LOCK "/tmp/AdDrEm.lck"
|
|
#define TMPHOLD "/etc/TmPhOlD"
|
|
|
|
/* pointers to add_drv/rem_drv database files */
|
|
char *driver_aliases;
|
|
char *driver_classes;
|
|
char *minor_perm;
|
|
char *name_to_major;
|
|
char *rem_name_to_major;
|
|
char *add_rem_lock;
|
|
char *tmphold;
|
|
|
|
/* devfs root string */
|
|
char *devfs_root;
|
|
|
|
/* names of things: directories, commands, files */
|
|
#define KERNEL_DRV "/kernel/drv"
|
|
#define USR_KERNEL_DRV "/usr/kernel/drv"
|
|
#define DRVCONFIG_PATH "/usr/sbin/drvconfig"
|
|
#define DRVCONFIG "drvconfig"
|
|
#define DEVFS_ROOT "/devices"
|
|
|
|
#define RECONFIGURE "/reconfigure"
|
|
#define DEVLINKS_PATH "/usr/sbin/devlinks"
|
|
#define DISKS_PATH "/usr/sbin/disks"
|
|
#define PORTS_PATH "/usr/sbin/ports"
|
|
#define TAPES_PATH "/usr/sbin/tapes"
|
|
#define MODUNLOAD_PATH "/usr/sbin/modunload"
|
|
|
|
void remove_entry(int, char *);
|
|
char *get_next_entry(char *, char *);
|
|
char *get_perm_entry(char *, char *);
|
|
int some_checking(int, int);
|
|
void err_exit();
|
|
void exit_unlock();
|
|
char *get_entry(char *, char *, char);
|
|
int build_filenames(char *);
|
|
int append_to_file(char *, char *, char *, char, char *);
|
|
int get_file_entry(char *, char *, char *, int *);
|
|
int delete_entry(char *oldfile, char *driver_name, char *marker);
|
|
|
|
|
|
/* modctl() not defined */
|
|
extern int modctl(int, ...);
|
|
|
|
/* drvsubr.c */
|
|
#define XEND ".XXXXXX"
|
|
|
|
/*
|
|
* XXX
|
|
* define for maximum length of modules paths - we need
|
|
* a common symbol with kbi folks for this
|
|
*/
|
|
#define MAXMODPATHS 1024
|
|
|
|
/* module path list separators */
|
|
#define MOD_SEP " :"
|