1*fcf3ce44SJohn Forte /* 2*fcf3ce44SJohn Forte * CDDL HEADER START 3*fcf3ce44SJohn Forte * 4*fcf3ce44SJohn Forte * The contents of this file are subject to the terms of the 5*fcf3ce44SJohn Forte * Common Development and Distribution License (the "License"). 6*fcf3ce44SJohn Forte * You may not use this file except in compliance with the License. 7*fcf3ce44SJohn Forte * 8*fcf3ce44SJohn Forte * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*fcf3ce44SJohn Forte * or http://www.opensolaris.org/os/licensing. 10*fcf3ce44SJohn Forte * See the License for the specific language governing permissions 11*fcf3ce44SJohn Forte * and limitations under the License. 12*fcf3ce44SJohn Forte * 13*fcf3ce44SJohn Forte * When distributing Covered Code, include this CDDL HEADER in each 14*fcf3ce44SJohn Forte * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*fcf3ce44SJohn Forte * If applicable, add the following below this CDDL HEADER, with the 16*fcf3ce44SJohn Forte * fields enclosed by brackets "[]" replaced with your own identifying 17*fcf3ce44SJohn Forte * information: Portions Copyright [yyyy] [name of copyright owner] 18*fcf3ce44SJohn Forte * 19*fcf3ce44SJohn Forte * CDDL HEADER END 20*fcf3ce44SJohn Forte */ 21*fcf3ce44SJohn Forte /* 22*fcf3ce44SJohn Forte * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*fcf3ce44SJohn Forte * Use is subject to license terms. 24*fcf3ce44SJohn Forte */ 25*fcf3ce44SJohn Forte 26*fcf3ce44SJohn Forte #ifndef _NSCTL_H 27*fcf3ce44SJohn Forte #define _NSCTL_H 28*fcf3ce44SJohn Forte 29*fcf3ce44SJohn Forte #ifdef __cplusplus 30*fcf3ce44SJohn Forte extern "C" { 31*fcf3ce44SJohn Forte #endif 32*fcf3ce44SJohn Forte 33*fcf3ce44SJohn Forte #include <sys/nsctl/nsctl.h> 34*fcf3ce44SJohn Forte 35*fcf3ce44SJohn Forte 36*fcf3ce44SJohn Forte /* 37*fcf3ce44SJohn Forte * External file descriptor. 38*fcf3ce44SJohn Forte */ 39*fcf3ce44SJohn Forte 40*fcf3ce44SJohn Forte #ifndef _LIBNSCTL_H 41*fcf3ce44SJohn Forte #ifndef _KMEMUSER 42*fcf3ce44SJohn Forte typedef struct nsc_fd_s { int x; } nsc_fd_t; 43*fcf3ce44SJohn Forte #endif 44*fcf3ce44SJohn Forte #endif 45*fcf3ce44SJohn Forte 46*fcf3ce44SJohn Forte 47*fcf3ce44SJohn Forte /* 48*fcf3ce44SJohn Forte * Runtime Solaris release checking. 49*fcf3ce44SJohn Forte * 50*fcf3ce44SJohn Forte * nsc_check_release() is called with the string build release 51*fcf3ce44SJohn Forte * (BUILD_REV_STR) and an optional array of nsc_release_t. The array 52*fcf3ce44SJohn Forte * defines a map of build release to acceptable runtime release for the 53*fcf3ce44SJohn Forte * component. The build release is always an acceptable runtime 54*fcf3ce44SJohn Forte * release and need not be included in the map. 55*fcf3ce44SJohn Forte * 56*fcf3ce44SJohn Forte * build - the build release (e.g. "5.7") 57*fcf3ce44SJohn Forte * runtime - comma &/or space separated list of acceptable runtime 58*fcf3ce44SJohn Forte * releases (e.g. "5.7, 5.8") 59*fcf3ce44SJohn Forte */ 60*fcf3ce44SJohn Forte 61*fcf3ce44SJohn Forte typedef struct nsc_release { 62*fcf3ce44SJohn Forte const char *build; /* build release */ 63*fcf3ce44SJohn Forte const char *runtime; /* runtime release(s) */ 64*fcf3ce44SJohn Forte } nsc_release_t; 65*fcf3ce44SJohn Forte 66*fcf3ce44SJohn Forte #ifdef __STDC__ 67*fcf3ce44SJohn Forte extern void _nsc_nocheck(void); 68*fcf3ce44SJohn Forte extern nsc_fd_t *nsc_open(char *, int, int); 69*fcf3ce44SJohn Forte extern nsc_fd_t *nsc_fdopen(int, char *, int); 70*fcf3ce44SJohn Forte extern int nsc_close(nsc_fd_t *); 71*fcf3ce44SJohn Forte extern int nsc_fileno(nsc_fd_t *); 72*fcf3ce44SJohn Forte extern int nsc_reserve(nsc_fd_t *); 73*fcf3ce44SJohn Forte extern int nsc_release(nsc_fd_t *); 74*fcf3ce44SJohn Forte extern int nsc_partsize(nsc_fd_t *, nsc_size_t *); 75*fcf3ce44SJohn Forte extern int nsc_freeze(char *path); 76*fcf3ce44SJohn Forte extern int nsc_unfreeze(char *path); 77*fcf3ce44SJohn Forte extern int nsc_isfrozen(char *path); 78*fcf3ce44SJohn Forte extern int nsc_getsystemid(int *id); 79*fcf3ce44SJohn Forte extern int nsc_name_to_id(char *name, int *id); 80*fcf3ce44SJohn Forte extern int nsc_id_to_name(char **name, int id); 81*fcf3ce44SJohn Forte extern int nsc_check_release(const char *, nsc_release_t *, char **); 82*fcf3ce44SJohn Forte #else 83*fcf3ce44SJohn Forte extern void _nsc_nocheck(); 84*fcf3ce44SJohn Forte extern nsc_fd_t *nsc_open(); 85*fcf3ce44SJohn Forte extern nsc_fd_t *nsc_fdopen(); 86*fcf3ce44SJohn Forte extern int nsc_close(); 87*fcf3ce44SJohn Forte extern int nsc_fileno(); 88*fcf3ce44SJohn Forte extern int nsc_reserve(); 89*fcf3ce44SJohn Forte extern int nsc_release(); 90*fcf3ce44SJohn Forte extern int nsc_partsize(); 91*fcf3ce44SJohn Forte extern int nsc_freeze(); 92*fcf3ce44SJohn Forte extern int nsc_unfreeze(); 93*fcf3ce44SJohn Forte extern int nsc_isfrozen(); 94*fcf3ce44SJohn Forte extern int nsc_getsystemid(); 95*fcf3ce44SJohn Forte extern int nsc_name_to_id(); 96*fcf3ce44SJohn Forte extern int nsc_id_to_name(); 97*fcf3ce44SJohn Forte extern int nsc_check_release(); 98*fcf3ce44SJohn Forte #endif 99*fcf3ce44SJohn Forte 100*fcf3ce44SJohn Forte #ifdef __cplusplus 101*fcf3ce44SJohn Forte } 102*fcf3ce44SJohn Forte #endif 103*fcf3ce44SJohn Forte 104*fcf3ce44SJohn Forte #endif /* _NSCTL_H */ 105