1de6f3704SJamie Gritton /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 35e53a4f9SPedro F. Giffuni * 4de6f3704SJamie Gritton * Copyright (c) 2009 James Gritton. 5de6f3704SJamie Gritton * All rights reserved. 6de6f3704SJamie Gritton * 7de6f3704SJamie Gritton * Redistribution and use in source and binary forms, with or without 8de6f3704SJamie Gritton * modification, are permitted provided that the following conditions 9de6f3704SJamie Gritton * are met: 10de6f3704SJamie Gritton * 1. Redistributions of source code must retain the above copyright 11de6f3704SJamie Gritton * notice, this list of conditions and the following disclaimer. 12de6f3704SJamie Gritton * 2. Redistributions in binary form must reproduce the above copyright 13de6f3704SJamie Gritton * notice, this list of conditions and the following disclaimer in the 14de6f3704SJamie Gritton * documentation and/or other materials provided with the distribution. 15de6f3704SJamie Gritton * 16de6f3704SJamie Gritton * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17de6f3704SJamie Gritton * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18de6f3704SJamie Gritton * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19de6f3704SJamie Gritton * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20de6f3704SJamie Gritton * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21de6f3704SJamie Gritton * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22de6f3704SJamie Gritton * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23de6f3704SJamie Gritton * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24de6f3704SJamie Gritton * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25de6f3704SJamie Gritton * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26de6f3704SJamie Gritton * SUCH DAMAGE. 27de6f3704SJamie Gritton */ 28de6f3704SJamie Gritton 29de6f3704SJamie Gritton #ifndef _JAIL_H 30de6f3704SJamie Gritton #define _JAIL_H 31de6f3704SJamie Gritton 32de6f3704SJamie Gritton #define JP_RAWVALUE 0x01 33de6f3704SJamie Gritton #define JP_BOOL 0x02 34de6f3704SJamie Gritton #define JP_NOBOOL 0x04 357cbf7213SJamie Gritton #define JP_JAILSYS 0x08 36de6f3704SJamie Gritton 37de6f3704SJamie Gritton #define JAIL_ERRMSGLEN 1024 38de6f3704SJamie Gritton 39de6f3704SJamie Gritton extern char jail_errmsg[]; 40de6f3704SJamie Gritton 41de6f3704SJamie Gritton struct jailparam { 42de6f3704SJamie Gritton char *jp_name; 43de6f3704SJamie Gritton void *jp_value; 44de6f3704SJamie Gritton size_t jp_valuelen; 45de6f3704SJamie Gritton size_t jp_elemlen; 46de6f3704SJamie Gritton int jp_ctltype; 47de6f3704SJamie Gritton int jp_structtype; 48de6f3704SJamie Gritton unsigned jp_flags; 49de6f3704SJamie Gritton }; 50de6f3704SJamie Gritton 51de6f3704SJamie Gritton __BEGIN_DECLS 52de6f3704SJamie Gritton extern int jail_getid(const char *name); 53de6f3704SJamie Gritton extern char *jail_getname(int jid); 54de6f3704SJamie Gritton extern int jail_setv(int flags, ...); 55de6f3704SJamie Gritton extern int jail_getv(int flags, ...); 56de6f3704SJamie Gritton extern int jailparam_all(struct jailparam **jpp); 57de6f3704SJamie Gritton extern int jailparam_init(struct jailparam *jp, const char *name); 58de6f3704SJamie Gritton extern int jailparam_import(struct jailparam *jp, const char *value); 59de6f3704SJamie Gritton extern int jailparam_import_raw(struct jailparam *jp, void *value, 60de6f3704SJamie Gritton size_t valuelen); 61de6f3704SJamie Gritton extern int jailparam_set(struct jailparam *jp, unsigned njp, int flags); 62de6f3704SJamie Gritton extern int jailparam_get(struct jailparam *jp, unsigned njp, int flags); 63de6f3704SJamie Gritton extern char *jailparam_export(struct jailparam *jp); 64de6f3704SJamie Gritton extern void jailparam_free(struct jailparam *jp, unsigned njp); 65de6f3704SJamie Gritton __END_DECLS 66de6f3704SJamie Gritton 67de6f3704SJamie Gritton #endif /* _JAIL_H */ 68de6f3704SJamie Gritton 69de6f3704SJamie Gritton 70