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, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 * 26 * Copyright 2020 Joyent, Inc. 27 */ 28 29 #ifndef _SVCS_H 30 #define _SVCS_H 31 32 #include <libscf.h> 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 extern ssize_t max_scf_fmri_length; 39 extern ssize_t max_scf_name_length; 40 extern ssize_t max_scf_value_length; 41 extern char *locale; 42 extern int exit_status; 43 44 #ifndef NDEBUG 45 #define scfdie() do_scfdie(__FILE__, __LINE__) 46 47 void do_scfdie(const char *, int); 48 #else 49 void scfdie(void); 50 #endif 51 52 void *safe_malloc(size_t); 53 char *safe_strdup(const char *); 54 55 /* Flags for pg_get_single_val() */ 56 #define EMPTY_OK 0x01 57 #define MULTI_OK 0x02 58 59 int pg_get_single_val(scf_propertygroup_t *, const char *, scf_type_t, void *, 60 size_t, uint_t); 61 int inst_get_single_val(scf_instance_t *, const char *, const char *, 62 scf_type_t, void *, size_t, uint_t, int, int); 63 64 void explain(int, int, char **); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 70 #endif /* _SVCS_H */ 71