Reactos
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
4 * FILE: include/ports.h
5 * PURPOSE: Port allocation
6 * PROGRAMMERS: arty (ayerkes@speakeasy.net)
7 * REVISIONS:
8 * arty 20041114 Created
9 */
10
11#pragma once
12
13typedef struct _PORT_SET {
14 RTL_BITMAP ProtoBitmap;
15 PVOID ProtoBitBuffer;
16 UINT StartingPort;
17 UINT PortsToOversee;
18 KSPIN_LOCK Lock;
19} PORT_SET, *PPORT_SET;
20
21NTSTATUS PortsStartup( PPORT_SET PortSet,
22 UINT StartingPort,
23 UINT PortsToManage );
24VOID PortsShutdown( PPORT_SET PortSet );
25VOID DeallocatePort( PPORT_SET PortSet, ULONG Port );
26BOOLEAN AllocatePort( PPORT_SET PortSet, ULONG Port );
27ULONG AllocateAnyPort( PPORT_SET PortSet );
28ULONG AllocatePortFromRange( PPORT_SET PortSet, ULONG Lowest, ULONG Highest );