39c39
< * $FreeBSD: head/sys/security/mac/mac_internal.h 104524 2002-10-05 17:18:43Z rwatson $
---
> * $FreeBSD: head/sys/security/mac/mac_internal.h 104527 2002-10-05 17:38:45Z rwatson $
1046,1059d1045
< int
< mac_init_mbuf(struct mbuf *m, int flag)
< {
< KASSERT(m->m_flags & M_PKTHDR, ("mac_init_mbuf on non-header mbuf"));
<
< mac_init_label(&m->m_pkthdr.label);
<
< MAC_PERFORM(init_mbuf_label, &m->m_pkthdr.label, flag);
< #ifdef MAC_DEBUG
< atomic_add_int(&nmacmbufs, 1);
< #endif
< return (0);
< }
<
1061c1047
< mac_destroy_mbuf(struct mbuf *m)
---
> mac_init_bpfdesc(struct bpf_d *bpf_d)
1064,1065c1050,1051
< MAC_PERFORM(destroy_mbuf_label, &m->m_pkthdr.label);
< mac_destroy_label(&m->m_pkthdr.label);
---
> mac_init_label(&bpf_d->bd_label);
> MAC_PERFORM(init_bpfdesc_label, &bpf_d->bd_label);
1067c1053
< atomic_subtract_int(&nmacmbufs, 1);
---
> atomic_add_int(&nmacbpfdescs, 1);
1083c1069
< mac_destroy_cred(struct ucred *cr)
---
> mac_init_devfsdirent(struct devfs_dirent *de)
1086,1087c1072,1073
< MAC_PERFORM(destroy_cred_label, &cr->cr_label);
< mac_destroy_label(&cr->cr_label);
---
> mac_init_label(&de->de_label);
> MAC_PERFORM(init_devfsdirent_label, &de->de_label);
1089c1075
< atomic_subtract_int(&nmaccreds, 1);
---
> atomic_add_int(&nmacdevfsdirents, 1);
1105c1091
< mac_destroy_ifnet(struct ifnet *ifp)
---
> mac_init_ipq(struct ipq *ipq)
1108,1109c1094,1095
< MAC_PERFORM(destroy_ifnet_label, &ifp->if_label);
< mac_destroy_label(&ifp->if_label);
---
> mac_init_label(&ipq->ipq_label);
> MAC_PERFORM(init_ipq_label, &ipq->ipq_label);
1111c1097
< atomic_subtract_int(&nmacifnets, 1);
---
> atomic_add_int(&nmacipqs, 1);
1114a1101,1114
> int
> mac_init_mbuf(struct mbuf *m, int flag)
> {
> KASSERT(m->m_flags & M_PKTHDR, ("mac_init_mbuf on non-header mbuf"));
>
> mac_init_label(&m->m_pkthdr.label);
>
> MAC_PERFORM(init_mbuf_label, &m->m_pkthdr.label, flag);
> #ifdef MAC_DEBUG
> atomic_add_int(&nmacmbufs, 1);
> #endif
> return (0);
> }
>
1116c1116
< mac_init_ipq(struct ipq *ipq)
---
> mac_init_mount(struct mount *mp)
1119,1120c1119,1122
< mac_init_label(&ipq->ipq_label);
< MAC_PERFORM(init_ipq_label, &ipq->ipq_label);
---
> mac_init_label(&mp->mnt_mntlabel);
> mac_init_label(&mp->mnt_fslabel);
> MAC_PERFORM(init_mount_label, &mp->mnt_mntlabel);
> MAC_PERFORM(init_mount_fs_label, &mp->mnt_fslabel);
1122c1124
< atomic_add_int(&nmacipqs, 1);
---
> atomic_add_int(&nmacmounts, 1);
1127c1129
< mac_destroy_ipq(struct ipq *ipq)
---
> mac_init_pipe(struct pipe *pipe)
1128a1131
> struct label *label;
1130,1131c1133,1137
< MAC_PERFORM(destroy_ipq_label, &ipq->ipq_label);
< mac_destroy_label(&ipq->ipq_label);
---
> label = malloc(sizeof(struct label), M_MACPIPELABEL, M_ZERO|M_WAITOK);
> mac_init_label(label);
> pipe->pipe_label = label;
> pipe->pipe_peer->pipe_label = label;
> MAC_PERFORM(init_pipe_label, pipe->pipe_label);
1133c1139
< atomic_subtract_int(&nmacipqs, 1);
---
> atomic_add_int(&nmacpipes, 1);
1150,1151c1156,1157
< void
< mac_destroy_socket(struct socket *socket)
---
> static void
> mac_init_temp(struct label *label)
1154,1157c1160,1161
< MAC_PERFORM(destroy_socket_label, &socket->so_label);
< MAC_PERFORM(destroy_socket_peer_label, &socket->so_peerlabel);
< mac_destroy_label(&socket->so_label);
< mac_destroy_label(&socket->so_peerlabel);
---
> mac_init_label(label);
> MAC_PERFORM(init_temp_label, label);
1159c1163
< atomic_subtract_int(&nmacsockets, 1);
---
> atomic_add_int(&nmactemp, 1);
1164c1168
< mac_init_pipe(struct pipe *pipe)
---
> mac_init_vnode(struct vnode *vp)
1166d1169
< struct label *label;
1168,1172c1171,1172
< label = malloc(sizeof(struct label), M_MACPIPELABEL, M_ZERO|M_WAITOK);
< mac_init_label(label);
< pipe->pipe_label = label;
< pipe->pipe_peer->pipe_label = label;
< MAC_PERFORM(init_pipe_label, pipe->pipe_label);
---
> mac_init_label(&vp->v_label);
> MAC_PERFORM(init_vnode_label, &vp->v_label);
1174c1174
< atomic_add_int(&nmacpipes, 1);
---
> atomic_add_int(&nmacvnodes, 1);
1179c1179
< mac_destroy_pipe(struct pipe *pipe)
---
> mac_destroy_bpfdesc(struct bpf_d *bpf_d)
1182,1184c1182,1183
< MAC_PERFORM(destroy_pipe_label, pipe->pipe_label);
< mac_destroy_label(pipe->pipe_label);
< free(pipe->pipe_label, M_MACPIPELABEL);
---
> MAC_PERFORM(destroy_bpfdesc_label, &bpf_d->bd_label);
> mac_destroy_label(&bpf_d->bd_label);
1186c1185
< atomic_subtract_int(&nmacpipes, 1);
---
> atomic_subtract_int(&nmacbpfdescs, 1);
1191c1190
< mac_init_bpfdesc(struct bpf_d *bpf_d)
---
> mac_destroy_cred(struct ucred *cr)
1194,1195c1193,1194
< mac_init_label(&bpf_d->bd_label);
< MAC_PERFORM(init_bpfdesc_label, &bpf_d->bd_label);
---
> MAC_PERFORM(destroy_cred_label, &cr->cr_label);
> mac_destroy_label(&cr->cr_label);
1197c1196
< atomic_add_int(&nmacbpfdescs, 1);
---
> atomic_subtract_int(&nmaccreds, 1);
1202c1201
< mac_destroy_bpfdesc(struct bpf_d *bpf_d)
---
> mac_destroy_devfsdirent(struct devfs_dirent *de)
1205,1206c1204,1205
< MAC_PERFORM(destroy_bpfdesc_label, &bpf_d->bd_label);
< mac_destroy_label(&bpf_d->bd_label);
---
> MAC_PERFORM(destroy_devfsdirent_label, &de->de_label);
> mac_destroy_label(&de->de_label);
1208c1207
< atomic_subtract_int(&nmacbpfdescs, 1);
---
> atomic_subtract_int(&nmacdevfsdirents, 1);
1213c1212
< mac_init_mount(struct mount *mp)
---
> mac_destroy_ifnet(struct ifnet *ifp)
1216,1219c1215,1216
< mac_init_label(&mp->mnt_mntlabel);
< mac_init_label(&mp->mnt_fslabel);
< MAC_PERFORM(init_mount_label, &mp->mnt_mntlabel);
< MAC_PERFORM(init_mount_fs_label, &mp->mnt_fslabel);
---
> MAC_PERFORM(destroy_ifnet_label, &ifp->if_label);
> mac_destroy_label(&ifp->if_label);
1221c1218
< atomic_add_int(&nmacmounts, 1);
---
> atomic_subtract_int(&nmacifnets, 1);
1226c1223
< mac_destroy_mount(struct mount *mp)
---
> mac_destroy_ipq(struct ipq *ipq)
1229,1232c1226,1227
< MAC_PERFORM(destroy_mount_label, &mp->mnt_mntlabel);
< MAC_PERFORM(destroy_mount_fs_label, &mp->mnt_fslabel);
< mac_destroy_label(&mp->mnt_fslabel);
< mac_destroy_label(&mp->mnt_mntlabel);
---
> MAC_PERFORM(destroy_ipq_label, &ipq->ipq_label);
> mac_destroy_label(&ipq->ipq_label);
1234c1229
< atomic_subtract_int(&nmacmounts, 1);
---
> atomic_subtract_int(&nmacipqs, 1);
1238,1239c1233,1234
< static void
< mac_init_temp(struct label *label)
---
> void
> mac_destroy_mbuf(struct mbuf *m)
1242,1243c1237,1238
< mac_init_label(label);
< MAC_PERFORM(init_temp_label, label);
---
> MAC_PERFORM(destroy_mbuf_label, &m->m_pkthdr.label);
> mac_destroy_label(&m->m_pkthdr.label);
1245c1240
< atomic_add_int(&nmactemp, 1);
---
> atomic_subtract_int(&nmacmbufs, 1);
1249,1250c1244,1245
< static void
< mac_destroy_temp(struct label *label)
---
> void
> mac_destroy_mount(struct mount *mp)
1253,1254c1248,1251
< MAC_PERFORM(destroy_temp_label, label);
< mac_destroy_label(label);
---
> MAC_PERFORM(destroy_mount_label, &mp->mnt_mntlabel);
> MAC_PERFORM(destroy_mount_fs_label, &mp->mnt_fslabel);
> mac_destroy_label(&mp->mnt_fslabel);
> mac_destroy_label(&mp->mnt_mntlabel);
1256c1253
< atomic_subtract_int(&nmactemp, 1);
---
> atomic_subtract_int(&nmacmounts, 1);
1261c1258
< mac_init_vnode(struct vnode *vp)
---
> mac_destroy_pipe(struct pipe *pipe)
1264,1265c1261,1263
< mac_init_label(&vp->v_label);
< MAC_PERFORM(init_vnode_label, &vp->v_label);
---
> MAC_PERFORM(destroy_pipe_label, pipe->pipe_label);
> mac_destroy_label(pipe->pipe_label);
> free(pipe->pipe_label, M_MACPIPELABEL);
1267c1265
< atomic_add_int(&nmacvnodes, 1);
---
> atomic_subtract_int(&nmacpipes, 1);
1272c1270
< mac_destroy_vnode(struct vnode *vp)
---
> mac_destroy_socket(struct socket *socket)
1275,1276c1273,1276
< MAC_PERFORM(destroy_vnode_label, &vp->v_label);
< mac_destroy_label(&vp->v_label);
---
> MAC_PERFORM(destroy_socket_label, &socket->so_label);
> MAC_PERFORM(destroy_socket_peer_label, &socket->so_peerlabel);
> mac_destroy_label(&socket->so_label);
> mac_destroy_label(&socket->so_peerlabel);
1278c1278
< atomic_subtract_int(&nmacvnodes, 1);
---
> atomic_subtract_int(&nmacsockets, 1);
1282,1283c1282,1283
< void
< mac_init_devfsdirent(struct devfs_dirent *de)
---
> static void
> mac_destroy_temp(struct label *label)
1286,1287c1286,1287
< mac_init_label(&de->de_label);
< MAC_PERFORM(init_devfsdirent_label, &de->de_label);
---
> MAC_PERFORM(destroy_temp_label, label);
> mac_destroy_label(label);
1289c1289
< atomic_add_int(&nmacdevfsdirents, 1);
---
> atomic_subtract_int(&nmactemp, 1);
1294c1294
< mac_destroy_devfsdirent(struct devfs_dirent *de)
---
> mac_destroy_vnode(struct vnode *vp)
1297,1298c1297,1298
< MAC_PERFORM(destroy_devfsdirent_label, &de->de_label);
< mac_destroy_label(&de->de_label);
---
> MAC_PERFORM(destroy_vnode_label, &vp->v_label);
> mac_destroy_label(&vp->v_label);
1300c1300
< atomic_subtract_int(&nmacdevfsdirents, 1);
---
> atomic_subtract_int(&nmacvnodes, 1);
< * $FreeBSD: head/sys/security/mac/mac_internal.h 104524 2002-10-05 17:18:43Z rwatson $
---
> * $FreeBSD: head/sys/security/mac/mac_internal.h 104527 2002-10-05 17:38:45Z rwatson $
1046,1059d1045
< int
< mac_init_mbuf(struct mbuf *m, int flag)
< {
< KASSERT(m->m_flags & M_PKTHDR, ("mac_init_mbuf on non-header mbuf"));
<
< mac_init_label(&m->m_pkthdr.label);
<
< MAC_PERFORM(init_mbuf_label, &m->m_pkthdr.label, flag);
< #ifdef MAC_DEBUG
< atomic_add_int(&nmacmbufs, 1);
< #endif
< return (0);
< }
<
1061c1047
< mac_destroy_mbuf(struct mbuf *m)
---
> mac_init_bpfdesc(struct bpf_d *bpf_d)
1064,1065c1050,1051
< MAC_PERFORM(destroy_mbuf_label, &m->m_pkthdr.label);
< mac_destroy_label(&m->m_pkthdr.label);
---
> mac_init_label(&bpf_d->bd_label);
> MAC_PERFORM(init_bpfdesc_label, &bpf_d->bd_label);
1067c1053
< atomic_subtract_int(&nmacmbufs, 1);
---
> atomic_add_int(&nmacbpfdescs, 1);
1083c1069
< mac_destroy_cred(struct ucred *cr)
---
> mac_init_devfsdirent(struct devfs_dirent *de)
1086,1087c1072,1073
< MAC_PERFORM(destroy_cred_label, &cr->cr_label);
< mac_destroy_label(&cr->cr_label);
---
> mac_init_label(&de->de_label);
> MAC_PERFORM(init_devfsdirent_label, &de->de_label);
1089c1075
< atomic_subtract_int(&nmaccreds, 1);
---
> atomic_add_int(&nmacdevfsdirents, 1);
1105c1091
< mac_destroy_ifnet(struct ifnet *ifp)
---
> mac_init_ipq(struct ipq *ipq)
1108,1109c1094,1095
< MAC_PERFORM(destroy_ifnet_label, &ifp->if_label);
< mac_destroy_label(&ifp->if_label);
---
> mac_init_label(&ipq->ipq_label);
> MAC_PERFORM(init_ipq_label, &ipq->ipq_label);
1111c1097
< atomic_subtract_int(&nmacifnets, 1);
---
> atomic_add_int(&nmacipqs, 1);
1114a1101,1114
> int
> mac_init_mbuf(struct mbuf *m, int flag)
> {
> KASSERT(m->m_flags & M_PKTHDR, ("mac_init_mbuf on non-header mbuf"));
>
> mac_init_label(&m->m_pkthdr.label);
>
> MAC_PERFORM(init_mbuf_label, &m->m_pkthdr.label, flag);
> #ifdef MAC_DEBUG
> atomic_add_int(&nmacmbufs, 1);
> #endif
> return (0);
> }
>
1116c1116
< mac_init_ipq(struct ipq *ipq)
---
> mac_init_mount(struct mount *mp)
1119,1120c1119,1122
< mac_init_label(&ipq->ipq_label);
< MAC_PERFORM(init_ipq_label, &ipq->ipq_label);
---
> mac_init_label(&mp->mnt_mntlabel);
> mac_init_label(&mp->mnt_fslabel);
> MAC_PERFORM(init_mount_label, &mp->mnt_mntlabel);
> MAC_PERFORM(init_mount_fs_label, &mp->mnt_fslabel);
1122c1124
< atomic_add_int(&nmacipqs, 1);
---
> atomic_add_int(&nmacmounts, 1);
1127c1129
< mac_destroy_ipq(struct ipq *ipq)
---
> mac_init_pipe(struct pipe *pipe)
1128a1131
> struct label *label;
1130,1131c1133,1137
< MAC_PERFORM(destroy_ipq_label, &ipq->ipq_label);
< mac_destroy_label(&ipq->ipq_label);
---
> label = malloc(sizeof(struct label), M_MACPIPELABEL, M_ZERO|M_WAITOK);
> mac_init_label(label);
> pipe->pipe_label = label;
> pipe->pipe_peer->pipe_label = label;
> MAC_PERFORM(init_pipe_label, pipe->pipe_label);
1133c1139
< atomic_subtract_int(&nmacipqs, 1);
---
> atomic_add_int(&nmacpipes, 1);
1150,1151c1156,1157
< void
< mac_destroy_socket(struct socket *socket)
---
> static void
> mac_init_temp(struct label *label)
1154,1157c1160,1161
< MAC_PERFORM(destroy_socket_label, &socket->so_label);
< MAC_PERFORM(destroy_socket_peer_label, &socket->so_peerlabel);
< mac_destroy_label(&socket->so_label);
< mac_destroy_label(&socket->so_peerlabel);
---
> mac_init_label(label);
> MAC_PERFORM(init_temp_label, label);
1159c1163
< atomic_subtract_int(&nmacsockets, 1);
---
> atomic_add_int(&nmactemp, 1);
1164c1168
< mac_init_pipe(struct pipe *pipe)
---
> mac_init_vnode(struct vnode *vp)
1166d1169
< struct label *label;
1168,1172c1171,1172
< label = malloc(sizeof(struct label), M_MACPIPELABEL, M_ZERO|M_WAITOK);
< mac_init_label(label);
< pipe->pipe_label = label;
< pipe->pipe_peer->pipe_label = label;
< MAC_PERFORM(init_pipe_label, pipe->pipe_label);
---
> mac_init_label(&vp->v_label);
> MAC_PERFORM(init_vnode_label, &vp->v_label);
1174c1174
< atomic_add_int(&nmacpipes, 1);
---
> atomic_add_int(&nmacvnodes, 1);
1179c1179
< mac_destroy_pipe(struct pipe *pipe)
---
> mac_destroy_bpfdesc(struct bpf_d *bpf_d)
1182,1184c1182,1183
< MAC_PERFORM(destroy_pipe_label, pipe->pipe_label);
< mac_destroy_label(pipe->pipe_label);
< free(pipe->pipe_label, M_MACPIPELABEL);
---
> MAC_PERFORM(destroy_bpfdesc_label, &bpf_d->bd_label);
> mac_destroy_label(&bpf_d->bd_label);
1186c1185
< atomic_subtract_int(&nmacpipes, 1);
---
> atomic_subtract_int(&nmacbpfdescs, 1);
1191c1190
< mac_init_bpfdesc(struct bpf_d *bpf_d)
---
> mac_destroy_cred(struct ucred *cr)
1194,1195c1193,1194
< mac_init_label(&bpf_d->bd_label);
< MAC_PERFORM(init_bpfdesc_label, &bpf_d->bd_label);
---
> MAC_PERFORM(destroy_cred_label, &cr->cr_label);
> mac_destroy_label(&cr->cr_label);
1197c1196
< atomic_add_int(&nmacbpfdescs, 1);
---
> atomic_subtract_int(&nmaccreds, 1);
1202c1201
< mac_destroy_bpfdesc(struct bpf_d *bpf_d)
---
> mac_destroy_devfsdirent(struct devfs_dirent *de)
1205,1206c1204,1205
< MAC_PERFORM(destroy_bpfdesc_label, &bpf_d->bd_label);
< mac_destroy_label(&bpf_d->bd_label);
---
> MAC_PERFORM(destroy_devfsdirent_label, &de->de_label);
> mac_destroy_label(&de->de_label);
1208c1207
< atomic_subtract_int(&nmacbpfdescs, 1);
---
> atomic_subtract_int(&nmacdevfsdirents, 1);
1213c1212
< mac_init_mount(struct mount *mp)
---
> mac_destroy_ifnet(struct ifnet *ifp)
1216,1219c1215,1216
< mac_init_label(&mp->mnt_mntlabel);
< mac_init_label(&mp->mnt_fslabel);
< MAC_PERFORM(init_mount_label, &mp->mnt_mntlabel);
< MAC_PERFORM(init_mount_fs_label, &mp->mnt_fslabel);
---
> MAC_PERFORM(destroy_ifnet_label, &ifp->if_label);
> mac_destroy_label(&ifp->if_label);
1221c1218
< atomic_add_int(&nmacmounts, 1);
---
> atomic_subtract_int(&nmacifnets, 1);
1226c1223
< mac_destroy_mount(struct mount *mp)
---
> mac_destroy_ipq(struct ipq *ipq)
1229,1232c1226,1227
< MAC_PERFORM(destroy_mount_label, &mp->mnt_mntlabel);
< MAC_PERFORM(destroy_mount_fs_label, &mp->mnt_fslabel);
< mac_destroy_label(&mp->mnt_fslabel);
< mac_destroy_label(&mp->mnt_mntlabel);
---
> MAC_PERFORM(destroy_ipq_label, &ipq->ipq_label);
> mac_destroy_label(&ipq->ipq_label);
1234c1229
< atomic_subtract_int(&nmacmounts, 1);
---
> atomic_subtract_int(&nmacipqs, 1);
1238,1239c1233,1234
< static void
< mac_init_temp(struct label *label)
---
> void
> mac_destroy_mbuf(struct mbuf *m)
1242,1243c1237,1238
< mac_init_label(label);
< MAC_PERFORM(init_temp_label, label);
---
> MAC_PERFORM(destroy_mbuf_label, &m->m_pkthdr.label);
> mac_destroy_label(&m->m_pkthdr.label);
1245c1240
< atomic_add_int(&nmactemp, 1);
---
> atomic_subtract_int(&nmacmbufs, 1);
1249,1250c1244,1245
< static void
< mac_destroy_temp(struct label *label)
---
> void
> mac_destroy_mount(struct mount *mp)
1253,1254c1248,1251
< MAC_PERFORM(destroy_temp_label, label);
< mac_destroy_label(label);
---
> MAC_PERFORM(destroy_mount_label, &mp->mnt_mntlabel);
> MAC_PERFORM(destroy_mount_fs_label, &mp->mnt_fslabel);
> mac_destroy_label(&mp->mnt_fslabel);
> mac_destroy_label(&mp->mnt_mntlabel);
1256c1253
< atomic_subtract_int(&nmactemp, 1);
---
> atomic_subtract_int(&nmacmounts, 1);
1261c1258
< mac_init_vnode(struct vnode *vp)
---
> mac_destroy_pipe(struct pipe *pipe)
1264,1265c1261,1263
< mac_init_label(&vp->v_label);
< MAC_PERFORM(init_vnode_label, &vp->v_label);
---
> MAC_PERFORM(destroy_pipe_label, pipe->pipe_label);
> mac_destroy_label(pipe->pipe_label);
> free(pipe->pipe_label, M_MACPIPELABEL);
1267c1265
< atomic_add_int(&nmacvnodes, 1);
---
> atomic_subtract_int(&nmacpipes, 1);
1272c1270
< mac_destroy_vnode(struct vnode *vp)
---
> mac_destroy_socket(struct socket *socket)
1275,1276c1273,1276
< MAC_PERFORM(destroy_vnode_label, &vp->v_label);
< mac_destroy_label(&vp->v_label);
---
> MAC_PERFORM(destroy_socket_label, &socket->so_label);
> MAC_PERFORM(destroy_socket_peer_label, &socket->so_peerlabel);
> mac_destroy_label(&socket->so_label);
> mac_destroy_label(&socket->so_peerlabel);
1278c1278
< atomic_subtract_int(&nmacvnodes, 1);
---
> atomic_subtract_int(&nmacsockets, 1);
1282,1283c1282,1283
< void
< mac_init_devfsdirent(struct devfs_dirent *de)
---
> static void
> mac_destroy_temp(struct label *label)
1286,1287c1286,1287
< mac_init_label(&de->de_label);
< MAC_PERFORM(init_devfsdirent_label, &de->de_label);
---
> MAC_PERFORM(destroy_temp_label, label);
> mac_destroy_label(label);
1289c1289
< atomic_add_int(&nmacdevfsdirents, 1);
---
> atomic_subtract_int(&nmactemp, 1);
1294c1294
< mac_destroy_devfsdirent(struct devfs_dirent *de)
---
> mac_destroy_vnode(struct vnode *vp)
1297,1298c1297,1298
< MAC_PERFORM(destroy_devfsdirent_label, &de->de_label);
< mac_destroy_label(&de->de_label);
---
> MAC_PERFORM(destroy_vnode_label, &vp->v_label);
> mac_destroy_label(&vp->v_label);
1300c1300
< atomic_subtract_int(&nmacdevfsdirents, 1);
---
> atomic_subtract_int(&nmacvnodes, 1);