1/* 2 * Common ioctl functions. 3 * Copyright (C) 1998 Kunihiro Ishiguro 4 * 5 * This file is part of GNU Zebra. 6 * 7 * GNU Zebra is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the 9 * Free Software Foundation; either version 2, or (at your option) any 10 * later version. 11 * 12 * GNU Zebra is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with GNU Zebra; see the file COPYING. If not, write to the Free 19 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 20 * 02111-1307, USA. 21 */ 22 23#ifndef _ZEBRA_IOCTL_H 24#define _ZEBRA_IOCTL_H 25 26/* Prototypes. */ 27extern void ifreq_set_name (struct ifreq *, struct interface *); 28extern int if_ioctl (u_long, caddr_t); 29 30extern int if_set_flags (struct interface *, uint64_t); 31extern int if_unset_flags (struct interface *, uint64_t); 32extern void if_get_flags (struct interface *); 33 34extern int if_set_prefix (struct interface *, struct connected *); 35extern int if_unset_prefix (struct interface *, struct connected *); 36 37extern void if_get_metric (struct interface *); 38extern void if_get_mtu (struct interface *); 39 40#ifdef HAVE_IPV6 41extern int if_prefix_add_ipv6 (struct interface *, struct connected *); 42extern int if_prefix_delete_ipv6 (struct interface *, struct connected *); 43#endif /* HAVE_IPV6 */ 44 45#ifdef SOLARIS_IPV6 46extern int if_ioctl_ipv6(u_long, caddr_t); 47extern struct connected *if_lookup_linklocal( struct interface *); 48 49#define AF_IOCTL(af, request, buffer) \ 50 ((af) == AF_INET? if_ioctl(request, buffer) : \ 51 if_ioctl_ipv6(request, buffer)) 52#else /* SOLARIS_IPV6 */ 53 54#define AF_IOCTL(af, request, buffer) if_ioctl(request, buffer) 55 56#endif /* SOLARIS_IPV6 */ 57 58#endif /* _ZEBRA_IOCTL_H */ 59