1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
  23  */
  24 
  25 #ifndef _DCONF_H
  26 #define _DCONF_H
  27 
  28 #include <sys/types.h>
  29 #include <sys/param.h>
  30 #include <stdio.h>
  31 
  32 #ifdef  __cplusplus
  33 extern "C" {
  34 #endif
  35 
  36 typedef struct dumpconf {
  37         char dc_device[MAXPATHLEN];     /* Dump device path */
  38         char dc_savdir[MAXPATHLEN];     /* Savecore dir path */
  39         int dc_cflags;                  /* Config flags (see <sys/dumpadm.h>) */
  40         int dc_enable;                  /* Run savecore on boot? (see below) */
  41         int dc_csave;                   /* Save dump compressed? (see below) */
  42         int dc_mode;                    /* Mode flags (see below) */
  43         FILE *dc_conf_fp;               /* File pointer for config file */
  44         int dc_conf_fd;                 /* File descriptor for config file */
  45         int dc_dump_fd;                 /* File descriptor for dump device */
  46         boolean_t dc_readonly;          /* Readonly conf file */
  47 } dumpconf_t;
  48 
  49 /*
  50  * Values for dc_enable (run savecore on boot) property:
  51  */
  52 #define DC_OFF          0               /* Savecore disabled */
  53 #define DC_ON           1               /* Savecore enabled */
  54 
  55 /*
  56  * Values for dc_csave (savecore compressed) property:
  57  */
  58 #define DC_UNCOMPRESSED 0               /* Savecore uncompresses the dump */
  59 #define DC_COMPRESSED   1               /* Savecore leaves dump compressed */
  60 
  61 /*
  62  * Values for dconf_open mode:
  63  */
  64 #define DC_CURRENT      1               /* Kernel overrides file settings */
  65 #define DC_OVERRIDE     2               /* File+defaults override kernel */
  66 
  67 extern int dconf_open(dumpconf_t *, const char *, const char *, int);
  68 extern int dconf_getdev(dumpconf_t *);
  69 extern int dconf_close(dumpconf_t *);
  70 extern int dconf_write(dumpconf_t *);
  71 extern int dconf_update(dumpconf_t *, int);
  72 extern void dconf_print(dumpconf_t *, FILE *);
  73 extern int dconf_write_uuid(dumpconf_t *);
  74 
  75 extern int dconf_str2device(dumpconf_t *, char *);
  76 extern int dconf_str2savdir(dumpconf_t *, char *);
  77 extern int dconf_str2content(dumpconf_t *, char *);
  78 extern int dconf_str2enable(dumpconf_t *, char *);
  79 extern int dconf_str2csave(dumpconf_t *, char *);
  80 
  81 #ifdef  __cplusplus
  82 }
  83 #endif
  84 
  85 #endif  /* _DCONF_H */