merge with 0.30.213
[util-vserver.git] / lib / syscall_netremove-net.hc
1 // $Id: syscall_netremove-net.hc 2249 2006-01-18 23:40:15Z ensc $    --*- c -*--
2
3 // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 //  
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; version 2 of the License.
8 //  
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //  
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18
19 #ifdef HAVE_CONFIG_H
20 #  include <config.h>
21 #endif
22
23 static inline ALWAYSINLINE int
24 vc_net_remove_net(nid_t nid, struct vc_net_nx const *info)
25 {
26   struct vcmd_net_addr_v0               k_info;
27   size_t                                i;
28
29   k_info.type      = NETTYPE_USER2KERNEL(info->type);
30   k_info.count     = info->count;
31   for (i = 0; i < sizeof(k_info.ip) / sizeof(*k_info.ip); i++)
32     k_info.ip[i]   = info->ip[i];
33   for (i = 0; i < sizeof(k_info.mask) / sizeof(*k_info.mask); i++)
34     k_info.mask[i] = info->mask[i];
35   
36   return vserver(VCMD_net_remove, NID_USER2KERNEL(nid), &k_info);
37 }