1 #ifndef _sw_interface_h 2 #define _sw_interface_h 3 4 /* 5 * Copyright 2003, 2004 Porchdog Software. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without modification, 8 * are permitted provided that the following conditions are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright notice, 11 * this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY PORCHDOG SOFTWARE ``AS IS'' AND ANY 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 * IN NO EVENT SHALL THE HOWL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 24 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 25 * OF THE POSSIBILITY OF SUCH DAMAGE. 26 * 27 * The views and conclusions contained in the software and documentation are those 28 * of the authors and should not be interpreted as representing official policies, 29 * either expressed or implied, of Porchdog Software. 30 */ 31 32 #include <salt/address.h> 33 34 struct _sw_network_interface; 35 typedef struct _sw_network_interface * sw_network_interface; 36 37 38 typedef enum _sw_network_interface_state 39 { 40 SW_NETWORK_INTERFACE_RUNNING = 0x1, 41 } sw_network_interface_state; 42 43 44 typedef struct _sw_mac_address 45 { 46 sw_uint8 m_id[6]; 47 } sw_mac_address; 48 49 50 sw_result HOWL_API 51 sw_network_interfaces( 52 sw_uint32 * count, 53 sw_network_interface ** netifs); 54 55 56 sw_result HOWL_API 57 sw_network_interfaces_fina( 58 sw_uint32 count, 59 sw_network_interface * netifs); 60 61 62 sw_result HOWL_API 63 sw_network_interface_fina( 64 sw_network_interface netif); 65 66 67 sw_result HOWL_API 68 sw_network_interface_by_name( 69 sw_string name, 70 sw_network_interface * netif); 71 72 73 sw_result HOWL_API 74 sw_network_interface_name( 75 sw_network_interface netif, 76 sw_string name, 77 sw_uint32 len); 78 79 80 sw_result HOWL_API 81 sw_network_interface_mac_address( 82 sw_network_interface netif, 83 sw_mac_address * addr); 84 85 86 sw_result HOWL_API 87 sw_network_interface_ipv4_address( 88 sw_network_interface netif, 89 sw_ipv4_address * addr); 90 91 92 sw_result HOWL_API 93 sw_network_interface_set_ipv4_address( 94 sw_network_interface netif, 95 sw_ipv4_address addr); 96 97 98 sw_result HOWL_API 99 sw_network_interface_index( 100 sw_network_interface netif, 101 sw_uint32 * index); 102 103 104 sw_result HOWL_API 105 sw_network_interface_linked( 106 sw_network_interface netif, 107 sw_bool * linked); 108 109 110 sw_result HOWL_API 111 sw_network_interface_up( 112 sw_network_interface netif); 113 114 115 #endif 116