1 /* 2 * virportallocator.h: Allocate & track TCP port allocations 3 * 4 * Copyright (C) 2013 Red Hat, Inc. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library. If not, see 18 * <http://www.gnu.org/licenses/>. 19 * 20 */ 21 22 #pragma once 23 24 #include "internal.h" 25 #include "virobject.h" 26 27 typedef struct _virPortAllocatorRange virPortAllocatorRange; 28 29 virPortAllocatorRange * 30 virPortAllocatorRangeNew(const char *name, 31 unsigned short start, 32 unsigned short end); 33 34 void virPortAllocatorRangeFree(virPortAllocatorRange *range); 35 36 int virPortAllocatorAcquire(const virPortAllocatorRange *range, 37 unsigned short *port); 38 39 int virPortAllocatorRelease(unsigned short port); 40 41 int virPortAllocatorSetUsed(unsigned short port); 42