1*90b80121SDavid van Moolenbroek /* $NetBSD: af_inetany.h,v 1.4 2008/07/02 07:44:14 dyoung Exp $ */ 2*90b80121SDavid van Moolenbroek 3*90b80121SDavid van Moolenbroek /*- 4*90b80121SDavid van Moolenbroek * Copyright (c) 2008 David Young. All rights reserved. 5*90b80121SDavid van Moolenbroek * 6*90b80121SDavid van Moolenbroek * Redistribution and use in source and binary forms, with or without 7*90b80121SDavid van Moolenbroek * modification, are permitted provided that the following conditions 8*90b80121SDavid van Moolenbroek * are met: 9*90b80121SDavid van Moolenbroek * 1. Redistributions of source code must retain the above copyright 10*90b80121SDavid van Moolenbroek * notice, this list of conditions and the following disclaimer. 11*90b80121SDavid van Moolenbroek * 2. Redistributions in binary form must reproduce the above copyright 12*90b80121SDavid van Moolenbroek * notice, this list of conditions and the following disclaimer in the 13*90b80121SDavid van Moolenbroek * documentation and/or other materials provided with the distribution. 14*90b80121SDavid van Moolenbroek * 15*90b80121SDavid van Moolenbroek * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16*90b80121SDavid van Moolenbroek * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17*90b80121SDavid van Moolenbroek * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18*90b80121SDavid van Moolenbroek * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19*90b80121SDavid van Moolenbroek * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20*90b80121SDavid van Moolenbroek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21*90b80121SDavid van Moolenbroek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22*90b80121SDavid van Moolenbroek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23*90b80121SDavid van Moolenbroek * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24*90b80121SDavid van Moolenbroek * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25*90b80121SDavid van Moolenbroek * SUCH DAMAGE. 26*90b80121SDavid van Moolenbroek */ 27*90b80121SDavid van Moolenbroek 28*90b80121SDavid van Moolenbroek #ifndef _IFCONFIG_AF_INETANY_H 29*90b80121SDavid van Moolenbroek #define _IFCONFIG_AF_INETANY_H 30*90b80121SDavid van Moolenbroek 31*90b80121SDavid van Moolenbroek #include <sys/types.h> 32*90b80121SDavid van Moolenbroek #include <prop/proplib.h> 33*90b80121SDavid van Moolenbroek 34*90b80121SDavid van Moolenbroek #define IFADDR_PARAM(__arg) {.cmd = (__arg), .desc = #__arg} 35*90b80121SDavid van Moolenbroek #define BUFPARAM(__arg) {.buf = &(__arg), .buflen = sizeof(__arg)} 36*90b80121SDavid van Moolenbroek 37*90b80121SDavid van Moolenbroek struct apbuf { 38*90b80121SDavid van Moolenbroek void *buf; 39*90b80121SDavid van Moolenbroek size_t buflen; 40*90b80121SDavid van Moolenbroek }; 41*90b80121SDavid van Moolenbroek 42*90b80121SDavid van Moolenbroek struct afparam { 43*90b80121SDavid van Moolenbroek struct { 44*90b80121SDavid van Moolenbroek char *buf; 45*90b80121SDavid van Moolenbroek size_t buflen; 46*90b80121SDavid van Moolenbroek } name[2]; 47*90b80121SDavid van Moolenbroek struct apbuf dgaddr, addr, brd, dst, mask, req, dgreq, defmask, 48*90b80121SDavid van Moolenbroek pre_aifaddr_arg; 49*90b80121SDavid van Moolenbroek struct { 50*90b80121SDavid van Moolenbroek unsigned long cmd; 51*90b80121SDavid van Moolenbroek const char *desc; 52*90b80121SDavid van Moolenbroek } aifaddr, difaddr, gifaddr; 53*90b80121SDavid van Moolenbroek int (*pre_aifaddr)(prop_dictionary_t, const struct afparam *); 54*90b80121SDavid van Moolenbroek }; 55*90b80121SDavid van Moolenbroek 56*90b80121SDavid van Moolenbroek void commit_address(prop_dictionary_t, prop_dictionary_t, 57*90b80121SDavid van Moolenbroek const struct afparam *); 58*90b80121SDavid van Moolenbroek 59*90b80121SDavid van Moolenbroek #endif /* _IFCONFIG_AF_INETANY_H */ 60