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  * Copyright 2015 Nexenta Systems, Inc. All rights reserved.
  24  */
  25 
  26 #ifndef _DCONF_H
  27 #define _DCONF_H
  28 
  29 #include <sys/types.h>
  30 #include <sys/param.h>
  31 #include <stdio.h>
  32 
  33 #ifdef  __cplusplus
  34 extern "C" {
  35 #endif
  36 
  37 typedef struct dumpconf {
  38         char dc_device[MAXPATHLEN];     /* Dump device path */
  39         char dc_savdir[MAXPATHLEN];     /* Savecore dir path */
  40         int dc_cflags;                  /* Config flags (see <sys/dumpadm.h>) */
  41         int dc_enable;                  /* Run savecore on boot? (see below) */
  42         int dc_csave;                   /* Save dump compressed? (see below) */
  43         int dc_mode;                    /* Mode flags (see below) */
  44         FILE *dc_conf_fp;               /* File pointer for config file */
  45         int dc_conf_fd;                 /* File descriptor for config file */
  46         int dc_dump_fd;                 /* File descriptor for dump device */
  47         boolean_t dc_readonly;          /* Readonly conf file */
  48 } dumpconf_t;
  49 
  50 /*
  51  * Values for dc_enable (run savecore on boot) property:
  52  */
  53 #define DC_OFF          0               /* Savecore disabled */
  54 #define DC_ON           1               /* Savecore enabled */
  55 
  56 /*
  57  * Values for dc_csave (savecore compressed) property:
  58  */
  59 #define DC_UNCOMPRESSED 0               /* Savecore uncompresses the dump */
  60 #define DC_COMPRESSED   1               /* Savecore leaves dump compressed */
  61 
  62 /*
  63  * Values for dconf_open mode:
  64  */
  65 #define DC_CURRENT      1               /* Kernel overrides file settings */
  66 #define DC_OVERRIDE     2               /* File+defaults override kernel */
  67 
  68 extern int dconf_open(dumpconf_t *, const char *, const char *, int);
  69 extern int dconf_getdev(dumpconf_t *);
  70 extern int dconf_close(dumpconf_t *);
  71 extern int dconf_write(dumpconf_t *);
  72 extern int dconf_update(dumpconf_t *, int);
  73 extern void dconf_print(dumpconf_t *, FILE *);
  74 extern int dconf_write_uuid(dumpconf_t *);
  75 extern int dconf_get_dumpsize(dumpconf_t *);
  76 
  77 extern int dconf_str2device(dumpconf_t *, char *);
  78 extern int dconf_str2savdir(dumpconf_t *, char *);
  79 extern int dconf_str2content(dumpconf_t *, char *);
  80 extern int dconf_str2enable(dumpconf_t *, char *);
  81 extern int dconf_str2csave(dumpconf_t *, char *);
  82 
  83 #ifdef  __cplusplus
  84 }
  85 #endif
  86 
  87 #endif  /* _DCONF_H */