1*ed3c877eSjmcneill /* $NetBSD: module.h,v 1.1 2020/06/21 17:24:26 jmcneill Exp $ */ 2*ed3c877eSjmcneill 3*ed3c877eSjmcneill /*- 4*ed3c877eSjmcneill * Copyright (c) 2020 Jared McNeill <jmcneill@invisible.ca> 5*ed3c877eSjmcneill * All rights reserved. 6*ed3c877eSjmcneill * 7*ed3c877eSjmcneill * Redistribution and use in source and binary forms, with or without 8*ed3c877eSjmcneill * modification, are permitted provided that the following conditions 9*ed3c877eSjmcneill * are met: 10*ed3c877eSjmcneill * 1. Redistributions of source code must retain the above copyright 11*ed3c877eSjmcneill * notice, this list of conditions and the following disclaimer. 12*ed3c877eSjmcneill * 2. Redistributions in binary form must reproduce the above copyright 13*ed3c877eSjmcneill * notice, this list of conditions and the following disclaimer in the 14*ed3c877eSjmcneill * documentation and/or other materials provided with the distribution. 15*ed3c877eSjmcneill * 16*ed3c877eSjmcneill * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17*ed3c877eSjmcneill * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*ed3c877eSjmcneill * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*ed3c877eSjmcneill * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20*ed3c877eSjmcneill * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*ed3c877eSjmcneill * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*ed3c877eSjmcneill * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*ed3c877eSjmcneill * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*ed3c877eSjmcneill * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*ed3c877eSjmcneill * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*ed3c877eSjmcneill * SUCH DAMAGE. 27*ed3c877eSjmcneill */ 28*ed3c877eSjmcneill 29*ed3c877eSjmcneill /* module.c */ 30*ed3c877eSjmcneill extern int module_enabled; 31*ed3c877eSjmcneill extern char module_prefix[]; 32*ed3c877eSjmcneill void module_init(const char *); 33*ed3c877eSjmcneill void module_foreach(void (*)(const char *)); 34*ed3c877eSjmcneill void module_enable(int); 35*ed3c877eSjmcneill void module_add(const char *); 36*ed3c877eSjmcneill void module_remove(const char *); 37*ed3c877eSjmcneill void module_remove_all(void); 38