Difference between revisions of "Unit Network"

From Ultibo.org
Jump to: navigation, search
Line 629: Line 629:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Generic MII registers (Management Interface)''' <code> MII_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MII_BMCR = $00;</code>
 +
| Basic mode control register
 +
|-
 +
| <code>MII_BMSR = $01;</code>
 +
| Basic mode status register
 +
|-
 +
| <code>MII_PHYSID1 = $02;</code>
 +
| PHYS ID 1
 +
|-
 +
| <code>MII_PHYSID2 = $03;</code>
 +
| PHYS ID 2
 +
|-
 +
| <code>MII_ADVERTISE = $04;</code>
 +
| Advertisement control reg
 +
|-
 +
| <code>MII_LPA = $05;</code>
 +
| Link partner ability reg
 +
|-
 +
| <code>MII_EXPANSION = $06;</code>
 +
| Expansion register
 +
|-
 +
| <code>MII_CTRL1000 = $09;</code>
 +
| 1000BASE-T control
 +
|-
 +
| <code>MII_STAT1000 = $0a;</code>
 +
| 1000BASE-T status
 +
|-
 +
| <code>MII_MMD_CTRL = $0d;</code>
 +
| MMD Access Control Register
 +
|-
 +
| <code>MII_MMD_DATA = $0e;</code>
 +
| MMD Access Data Register
 +
|-
 +
| <code>MII_ESTATUS = $0f;</code>
 +
| Extended Status
 +
|-
 +
| <code>MII_DCOUNTER = $12;</code>
 +
| Disconnect counter
 +
|-
 +
| <code>MII_FCSCOUNTER = $13;</code>
 +
| False carrier counter
 +
|-
 +
| <code>MII_NWAYTEST = $14;</code>
 +
| N-way auto-neg test reg
 +
|-
 +
| <code>MII_RERRCOUNTER = $15;</code>
 +
| Receive error counter
 +
|-
 +
| <code>MII_SREVISION = $16;</code>
 +
| Silicon revision
 +
|-
 +
| <code>MII_RESV1 = $17;</code>
 +
| Reserved...
 +
|-
 +
| <code>MII_LBRERROR = $18;</code>
 +
| Lpback, rx, bypass error
 +
|-
 +
| <code>MII_PHYADDR = $19;</code>
 +
| PHY address
 +
|-
 +
| <code>MII_RESV2 = $1a;</code>
 +
| Reserved...
 +
|-
 +
| <code>MII_TPISTATUS = $1b;</code>
 +
| TPI status for 10mbps
 +
|-
 +
| <code>MII_NCONFIG = $1c;</code>
 +
| Network interface config
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Basic mode control register''' <code> BMCR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BMCR_RESV = $003f;</code>
 +
| Unused...
 +
|-
 +
| <code>BMCR_SPEED1000 = $0040;</code>
 +
| MSB of Speed (1000)
 +
|-
 +
| <code>BMCR_CTST = $0080;</code>
 +
| Collision test
 +
|-
 +
| <code>BMCR_FULLDPLX = $0100;</code>
 +
| Full duplex
 +
|-
 +
| <code>BMCR_ANRESTART = $0200;</code>
 +
| Auto negotiation restart
 +
|-
 +
| <code>BMCR_ISOLATE = $0400;</code>
 +
| Isolate data paths from MII
 +
|-
 +
| <code>BMCR_PDOWN = $0800;</code>
 +
| Enable low power state
 +
|-
 +
| <code>BMCR_ANENABLE = $1000;</code>
 +
| Enable auto negotiation
 +
|-
 +
| <code>BMCR_SPEED100 = $2000;</code>
 +
| Select 100Mbps
 +
|-
 +
| <code>BMCR_LOOPBACK = $4000;</code>
 +
| TXD loopback bits
 +
|-
 +
| <code>BMCR_RESET = $8000;</code>
 +
| Reset to default state
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Basic mode status register''' <code> BMSR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BMSR_ERCAP = $0001;</code>
 +
| Ext-reg capability
 +
|-
 +
| <code>BMSR_JCD = $0002;</code>
 +
| Jabber detected
 +
|-
 +
| <code>BMSR_LSTATUS = $0004;</code>
 +
| Link status
 +
|-
 +
| <code>BMSR_ANEGCAPABLE = $0008;</code>
 +
| Able to do auto-negotiation
 +
|-
 +
| <code>BMSR_RFAULT = $0010;</code>
 +
| Remote fault detected
 +
|-
 +
| <code>BMSR_ANEGCOMPLETE = $0020;</code>
 +
| Auto-negotiation complete
 +
|-
 +
| <code>BMSR_RESV = $00c0;</code>
 +
| Unused...
 +
|-
 +
| <code>BMSR_ESTATEN = $0100;</code>
 +
| Extended Status in R15
 +
|-
 +
| <code>BMSR_100HALF2 = $0200;</code>
 +
| Can do 100BASE-T2 HDX
 +
|-
 +
| <code>BMSR_100FULL2 = $0400;</code>
 +
| Can do 100BASE-T2 FDX
 +
|-
 +
| <code>BMSR_10HALF = $0800;</code>
 +
| Can do 10mbps, half-duplex
 +
|-
 +
| <code>BMSR_10FULL = $1000;</code>
 +
| Can do 10mbps, full-duplex
 +
|-
 +
| <code>BMSR_100HALF = $2000;</code>
 +
| Can do 100mbps, half-duplex
 +
|-
 +
| <code>BMSR_100FULL = $4000;</code>
 +
| Can do 100mbps, full-duplex
 +
|-
 +
| <code>BMSR_100BASE4 = $8000;</code>
 +
| Can do 100mbps, 4k packets
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Advertisement control register''' <code> ADVERTISE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ADVERTISE_SLCT = $001f;</code>
 +
| Selector bits
 +
|-
 +
| <code>ADVERTISE_CSMA = $0001;</code>
 +
| Only selector supported
 +
|-
 +
| <code>ADVERTISE_10HALF = $0020;</code>
 +
| Try for 10mbps half-duplex
 +
|-
 +
| <code>ADVERTISE_1000XFULL = $0020;</code>
 +
| Try for 1000BASE-X full-duplex
 +
|-
 +
| <code>ADVERTISE_10FULL = $0040;</code>
 +
| Try for 10mbps full-duplex
 +
|-
 +
| <code>ADVERTISE_1000XHALF = $0040;</code>
 +
| Try for 1000BASE-X half-duplex
 +
|-
 +
| <code>ADVERTISE_100HALF = $0080;</code>
 +
| Try for 100mbps half-duplex
 +
|-
 +
| <code>ADVERTISE_1000XPAUSE = $0080;</code>
 +
| Try for 1000BASE-X pause
 +
|-
 +
| <code>ADVERTISE_100FULL = $0100;</code>
 +
| Try for 100mbps full-duplex
 +
|-
 +
| <code>ADVERTISE_1000XPSE_ASYM = $0100;</code>
 +
| Try for 1000BASE-X asym pause
 +
|-
 +
| <code>ADVERTISE_100BASE4 = $0200;</code>
 +
| Try for 100mbps 4k packets
 +
|-
 +
| <code>ADVERTISE_PAUSE_CAP = $0400;</code>
 +
| Try for pause
 +
|-
 +
| <code>ADVERTISE_PAUSE_ASYM = $0800;</code>
 +
| Try for asymetric pause
 +
|-
 +
| <code>ADVERTISE_RESV = $1000;</code>
 +
| Unused...
 +
|-
 +
| <code>ADVERTISE_RFAULT = $2000;</code>
 +
| Say we can detect faults
 +
|-
 +
| <code>ADVERTISE_LPACK = $4000;</code>
 +
| Ack link partners response
 +
|-
 +
| <code>ADVERTISE_NPAGE = $8000;</code>
 +
| Next page bit
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>ADVERTISE_FULL = ADVERTISE_100FULL or ADVERTISE_10FULL or ADVERTISE_CSMA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ADVERTISE_ALL = ADVERTISE_10HALF or ADVERTISE_10FULL or ADVERTISE_100HALF or ADVERTISE_100FULL;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Link partner ability register''' <code> LPA_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LPA_SLCT = $001f;</code>
 +
| Same as advertise selector
 +
|-
 +
| <code>LPA_10HALF = $0020;</code>
 +
| Can do 10mbps half-duplex
 +
|-
 +
| <code>LPA_1000XFULL = $0020;</code>
 +
| Can do 1000BASE-X full-duplex
 +
|-
 +
| <code>LPA_10FULL = $0040;</code>
 +
| Can do 10mbps full-duplex
 +
|-
 +
| <code>LPA_1000XHALF = $0040;</code>
 +
| Can do 1000BASE-X half-duplex
 +
|-
 +
| <code>LPA_100HALF = $0080;</code>
 +
| Can do 100mbps half-duplex
 +
|-
 +
| <code>LPA_1000XPAUSE = $0080;</code>
 +
| Can do 1000BASE-X pause
 +
|-
 +
| <code>LPA_100FULL = $0100;</code>
 +
| Can do 100mbps full-duplex
 +
|-
 +
| <code>LPA_1000XPAUSE_ASYM = $0100;</code>
 +
| Can do 1000BASE-X pause asym
 +
|-
 +
| <code>LPA_100BASE4 = $0200;</code>
 +
| Can do 100mbps 4k packets
 +
|-
 +
| <code>LPA_PAUSE_CAP = $0400;</code>
 +
| Can pause
 +
|-
 +
| <code>LPA_PAUSE_ASYM = $0800;</code>
 +
| Can pause asymetrically
 +
|-
 +
| <code>LPA_RESV = $1000;</code>
 +
| Unused...
 +
|-
 +
| <code>LPA_RFAULT = $2000;</code>
 +
| Link partner faulted
 +
|-
 +
| <code>LPA_LPACK = $4000;</code>
 +
| Link partner acked us
 +
|-
 +
| <code>LPA_NPAGE = $8000;</code>
 +
| Next page bit
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>LPA_DUPLEX = LPA_10FULL or LPA_100FULL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LPA_100 = LPA_100FULL or LPA_100HALF or LPA_100BASE4;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Expansion register for auto-negotiation''' <code> EXPANSION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>EXPANSION_NWAY = $0001;</code>
 +
| Can do N-way auto-nego
 +
|-
 +
| <code>EXPANSION_LCWP = $0002;</code>
 +
| Got new RX page code word
 +
|-
 +
| <code>EXPANSION_ENABLENPAGE = $0004;</code>
 +
| This enables npage words
 +
|-
 +
| <code>EXPANSION_NPCAPABLE = $0008;</code>
 +
| Link partner supports npage
 +
|-
 +
| <code>EXPANSION_MFAULTS = $0010;</code>
 +
| Multiple faults detected
 +
|-
 +
| <code>EXPANSION_RESV = $ffe0;</code>
 +
| Unused...
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Estatus register''' <code> ESTATUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ESTATUS_1000_TFULL = $2000;</code>
 +
| Can do 1000BT Full
 +
|-
 +
| <code>ESTATUS_1000_THALF = $1000;</code>
 +
| Can do 1000BT Half
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''N-way test register''' <code> NWAYTEST_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NWAYTEST_RESV1 = $00ff;</code>
 +
| Unused...
 +
|-
 +
| <code>NWAYTEST_LOOPBACK = $0100;</code>
 +
| Enable loopback for N-way
 +
|-
 +
| <code>NWAYTEST_RESV2 = $fe00;</code>
 +
| Unused...
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''1000BASE-T control register''' <code> *_1000* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>ADVERTISE_1000FULL = $0200;</code>
 +
| Advertise 1000BASE-T full duplex
 +
|-
 +
| <code>ADVERTISE_1000HALF = $0100;</code>
 +
| Advertise 1000BASE-T half duplex
 +
|-
 +
| <code>CTL1000_AS_MASTER = $0800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CTL1000_ENABLE_MASTER = $1000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''1000BASE-T Status register''' <code> LPA_1000* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LPA_1000LOCALRXOK = $2000;</code>
 +
| Link partner local receiver status
 +
|-
 +
| <code>LPA_1000REMRXOK = $1000;</code>
 +
| Link partner remote receiver status
 +
|-
 +
| <code>LPA_1000FULL = $0800;</code>
 +
| Link partner 1000BASE-T full duplex
 +
|-
 +
| <code>LPA_1000HALF = $0400;</code>
 +
| Link partner 1000BASE-T half duplex
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Flow control flags''' <code> FLOW_CTRL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FLOW_CTRL_TX = $01;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FLOW_CTRL_RX = $02;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''MMD access control register fields''' <code> MII_MMD_CTRL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MII_MMD_CTRL_DEVAD_MASK = $1f;</code>
 +
| Mask MMD DEVAD
 +
|-
 +
| <code>MII_MMD_CTRL_ADDR = $0000;</code>
 +
| Address
 +
|-
 +
| <code>MII_MMD_CTRL_NOINCR = $4000;</code>
 +
| No post increment
 +
|-
 +
| <code>MII_MMD_CTRL_INCR_RDWT = $8000;</code>
 +
| Post increment on reads & writes
 +
|-
 +
| <code>MII_MMD_CTRL_INCR_ON_WT = $C000;</code>
 +
| Post increment on writes only
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div style="font-size: 14px; padding-left: 12px;">'''Service set''' <code> SERVICE_SET_* </code></div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Service set''' <code> SERVICE_SET_* </code></div>

Revision as of 06:21, 20 April 2017

Return to Unit Reference


Description


Ultibo Network interface unit

To be documented

Constants



[Expand]
Network specific constants NETWORK_*


[Expand]
Network device type NETWORK_TYPE_*


[Expand]
Network device state NETWORK_STATE_*


[Expand]
Network device status NETWORK_STATUS_*


[Expand]
Network device flag NETWORK_FLAG_*


[Expand]
Network device control code NETWORK_CONTROL_*


[Expand]
Network lock state NETWORK_LOCK_*


[Expand]
Network buffer size NETWORK_BUFFER_*


[Expand]
Network event NETWORK_EVENT_*


[Expand]
Network event signature NETWORK_EVENT_SIGNATURE*


[Expand]
Network event state NETWORK_EVENT_STATE_*


[Expand]
Network event flag NETWORK_EVENT_FLAG_*


[Expand]
Adapter type ADAPTER_TYPE_*


[Expand]
Adapter thread ADAPTER_THREAD_*


[Expand]
Adapter state ADAPTER_STATE_*


[Expand]
Adapter status ADAPTER_STATUS_*


[Expand]
Configuration type CONFIG_TYPE_*


[Expand]
Authentication type AUTH_TYPE_*


[Expand]
Frame type FRAME_TYPE_*


[Expand]
Configuration command CONFIG_*


[Expand]
Authentication command AUTH_COMMAND_*


[Expand]
Multicast addressing MAX_MULTICAST_*


[Expand]
Hardware addressing HARDWARE_ADDRESS_*


[Expand]
Media type MEDIA_TYPE_*


[Expand]
Packet type PACKET_TYPE_*


[Expand]
Ethernet network *_ETHERNET_PACKET


[Expand]
Ethernet 802.3 network LLC_HEADER_*


[Expand]
Ethernet SNAP network SNAP_HEADER_*


[Expand]
Generic MII registers (Management Interface) MII_*


[Expand]
Basic mode control register BMCR_*


[Expand]
Basic mode status register BMSR_*


[Expand]
Advertisement control register ADVERTISE_*


[Expand]
Link partner ability register LPA_*


[Expand]
Expansion register for auto-negotiation EXPANSION_*


[Expand]
Estatus register ESTATUS_*


[Expand]
N-way test register NWAYTEST_*


[Expand]
1000BASE-T control register *_1000*


[Expand]
1000BASE-T Status register LPA_1000*


[Expand]
Flow control flags FLOW_CTRL_*


[Expand]
MMD access control register fields MII_MMD_CTRL_*


[Expand]
Service set SERVICE_SET_*


[Expand]
Network logging NETWORK_LOG_*


[Expand]
Ethernet specific constants ETHERNET_*


[Expand]
Ethernet size ETHERNET_*_SIZE*


Type definitions



Hardware address

[Expand]

PHardwareAddress = ^THardwareAddress;

THardwareAddress = array[0..HARDWARE_ADDRESS_SIZE - 1] of Byte;

Hardware addresses

[Expand]

PHardwareAddresses = ^THardwareAddresses;

THardwareAddresses = array[0..0] of THardwareAddress;

Multicast addresses

[Expand]

PMulticastAddresses = ^TMulticastAddresses;

TMulticastAddresses = array[0..MAX_MULTICAST_ADDRESS - 1] of THardwareAddress;

Network packet

[Expand]

PNetworkPacket = ^TNetworkPacket;

TNetworkPacket = record

Network Buffer

[Expand]

PNetworkBuffer = ^TNetworkBuffer;

TNetworkBuffer = record

Network entry

[Expand]

PNetworkEntry = ^TNetworkEntry;

TNetworkEntry = record

Network queue

[Expand]

PNetworkQueue = ^TNetworkQueue;

TNetworkQueue = record

Network enumeration callback

TNetworkEnumerate = function(Network:PNetworkDevice; Data:Pointer):LongWord;

Network notification callback

TNetworkNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Network device open

TNetworkDeviceOpen = function(Network:PNetworkDevice):LongWord;

Network device close

TNetworkDeviceClose = function(Network:PNetworkDevice):LongWord;

Network device read

TNetworkDeviceRead = function(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;

Network device write

TNetworkDeviceWrite = function(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;

Network device control

TNetworkDeviceControl = function(Network:PNetworkDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;

Network buffer allocate

TNetworkBufferAllocate = function(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;

Network buffer release

TNetworkBufferRelease = function(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;

Network buffer receive

TNetworkBufferReceive = function(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;

Network buffer transmit

TNetworkBufferTransmit = function(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;

Network device types

[Expand]

PNetworkDevice = ^TNetworkDevice;

TNetworkDevice = record

Network event callback

TNetworkEventCallback = function(Data:Pointer; Event:LongWord):LongWord;

Network Event

[Expand]

PNetworkEvent = ^TNetworkEvent;

TNetworkEvent = record

Packet fragment

[Expand]

PPacketFragment = ^TPacketFragment;

TPacketFragment = packed record

Ethernet 802.3 network

[Expand]

PLLCHeader = ^TLLCHeader;

TLLCHeader = packed record

Ethernet SNAP network

[Expand]

PSNAPHeader = ^TSNAPHeader;

TSNAPHeader = packed record

Token ring network

[Expand]

PTokenRingAddress = ^TTokenRingAddress;

TTokenRingAddress = array[0..5] of Byte;

Token ring header

[Expand]

PTokenRingHeader = ^TTokenRingHeader;

TTokenRingHeader = packed record

Adapter params

[Expand]

PAdapterParams = ^TAdapterParams;

TAdapterParams = packed record

Network params

[Expand]

PNetworkParams = ^TNetworkParams;

TNetworkParams = packed record

Adapter statistics

[Expand]

PAdapterStatistics = ^TAdapterStatistics;

TAdapterStatistics = record

Ethernet address

[Expand]

PEthernetAddress = ^TEthernetAddress;

TEthernetAddress = array[0..ETHERNET_ADDRESS_SIZE - 1] of Byte;

Ethernet header

[Expand]

PEthernetHeader = ^TEthernetHeader;

TEthernetHeader = packed record

Adapter callback

TAdapterCallback = function(AAdapter:TNetworkAdapter):Boolean of object;

Adapter packet handler

TAdapterPacketHandler = function(AHandle:THandle; ASource,ADest,APacket:Pointer; ASize:Integer; ABroadcast:Boolean):Boolean of object;

Adapter monitor handler

TAdapterMonitorHandler = function(AHandle:THandle; APacket:Pointer; ASize:Integer; AStatus:Pointer):Boolean of object;

Adapter authenticator handler

TAdapterAuthenticatorHandler = function(AHandle:THandle; ACommand:Word):Boolean of object;


Class definitions



Adapter manager

[Expand]

TAdapterManager = class(TObject)

Adapter transport

[Expand]

TAdapterTransport = class(TListObject)

Adapter binding

[Expand]

TAdapterBinding = class(TListObject)

Adapter monitor

[Expand]

TAdapterMonitor = class(TListObject)

Adapter authenticator

[Expand]

TAdapterAuthenticator = class(TListObject)

Network list

[Expand]

TNetworkList = class(TLinkedObjList)

Network adapter

[Expand]

TNetworkAdapter = class(TListObject)

Adapter thread

[Expand]

TAdapterThread = class(TThread)

Adapter buffer

[Expand]

TAdapterBuffer = class(TObject)

Wired adapter

[Expand]

TWiredAdapter = class(TNetworkAdapter)

Network setting

[Expand]

TNetworkSetting = class(TListObject)

Network settings

[Expand]

TNetworkSettings = class(TObject)

Service set

[Expand]

TServiceSet = class(TListObject)


Public variables



Network logging

NETWORK_DEFAULT_LOG_LEVEL:LongWord = NETWORK_LOG_LEVEL_DEBUG; Minimum level for Network messages. Only messages with level greater than or equal to this will be printed.
NETWORK_LOG_ENABLED:Boolean;


Function declarations


Initialization functions

[Expand]
procedure NetworkInit;
Description: To be documented


[Expand]
function NetworkStart:LongWord;
Description: To be documented


[Expand]
function NetworkStop:LongWord;
Description: To be documented


[Expand]
function NetworkStartCompleted:Boolean;
Description: To be documented


Network functions

[Expand]
function NetworkDeviceOpen(Network:PNetworkDevice):LongWord;
Description: To be documented


[Expand]
function NetworkDeviceClose(Network:PNetworkDevice):LongWord;
Description: To be documented


[Expand]
function NetworkDeviceRead(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
Description: To be documented


[Expand]
function NetworkDeviceWrite(Network:PNetworkDevice; Buffer:Pointer; Size:LongWord; var Length:LongWord):LongWord;
Description: To be documented


[Expand]
function NetworkDeviceControl(Network:PNetworkDevice; Request:Integer; Argument1:PtrUInt; var Argument2:PtrUInt):LongWord;
Description: To be documented


[Expand]
function NetworkBufferAllocate(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
Description: Allocate a transmit buffer from the specified network device, the returned entry will include a buffer for writing data to as well as an offfset value to allow the driver data to be written to the start of the buffer. When the data has been copied to the buffer, pass the entry to NetworkBufferTransmit.


[Expand]
function NetworkBufferRelease(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
Description: Release a receive buffer to the specified network device, the entry must have been returned from NetworkBufferReceive


[Expand]
function NetworkBufferReceive(Network:PNetworkDevice; var Entry:PNetworkEntry):LongWord;
Description: Receive a completed receive buffer from the specified network device. The returned entry will contain a one or more packets of data to read from. When the data has been processed pass the returned buffer to NetworkBufferRelease.


[Expand]
function NetworkBufferTransmit(Network:PNetworkDevice; Entry:PNetworkEntry):LongWord;
Description: Transmit a completed transmit buffer to the specified network device. The entry must have been allocated using NetworkBufferAllocate.


[Expand]
function NetworkDeviceSetState(Network:PNetworkDevice; State:LongWord):LongWord;
Description: Set the state of the specified network and send a notification


[Expand]
function NetworkDeviceSetStatus(Network:PNetworkDevice; Status:LongWord):LongWord;
Description: Set the status of the specified network and send a notification


[Expand]
function NetworkDeviceCreate:PNetworkDevice;
Description: Create a new Network entry


[Expand]
function NetworkDeviceCreateEx(Size:LongWord):PNetworkDevice;
Description: Create a new Network entry


[Expand]
function NetworkDeviceDestroy(Network:PNetworkDevice):LongWord;
Description: Destroy an existing Network entry


[Expand]
function NetworkDeviceRegister(Network:PNetworkDevice):LongWord;
Description: Register a new Network in the Network table


[Expand]
function NetworkDeviceDeregister(Network:PNetworkDevice):LongWord;
Description: Deregister a Network from the Network table


[Expand]
function NetworkDeviceFind(NetworkId:LongWord):PNetworkDevice;
Description: To be documented


[Expand]
function NetworkDeviceFindByName(const Name:String):PNetworkDevice; inline;
Description: To be documented


[Expand]
function NetworkDeviceFindByDescription(const Description:String):PNetworkDevice; inline;
Description: To be documented


[Expand]
function NetworkDeviceEnumerate(Callback:TNetworkEnumerate; Data:Pointer):LongWord;
Description: To be documented


[Expand]
function NetworkDeviceNotification(Network:PNetworkDevice; Callback:TNetworkNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented


[Expand]
function NetworkEventAllocate(Callback:TNetworkEventCallback; Data:Pointer; Event:LongWord):PNetworkEvent;
Description: Create and Register a new Event entry in the Event table


[Expand]
function NetworkEventRelease(Event:PNetworkEvent):LongWord;
Description: Deregister and Destroy a Event from the Event table


[Expand]
function NetworkEventRegister(Callback:TNetworkEventCallback; Data:Pointer; Event:LongWord):THandle;
Description: Register a callback for one or more network events


[Expand]
function NetworkEventDeregister(Handle:THandle):LongWord;
Description: Deregister a network event callback


[Expand]
function NetworkEventNotify(Event:LongWord):LongWord;
Description: To be documented


RTL network functions

[Expand]
function SysHostGetName:String;
Description: To be documented


[Expand]
function SysHostSetName(const AName:String):Boolean;
Description: To be documented


[Expand]
function SysHostGetDomain:String;
Description: To be documented


[Expand]
function SysHostSetDomain(const ADomain:String):Boolean;
Description: To be documented


Network helper functions

[Expand]
function NetworkGetCount:LongWord; inline;
Description: Get the current network count


[Expand]
function NetworkDeviceCheck(Network:PNetworkDevice):PNetworkDevice;
Description: Check if the supplied Network is in the network table


[Expand]
function NetworkDeviceTypeToString(NetworkType:LongWord):String;
Description: To be documented


[Expand]
function NetworkDeviceStateToString(NetworkState:LongWord):String;
Description: To be documented


[Expand]
function NetworkDeviceStatusToString(NetworkStatus:LongWord):String;
Description: To be documented


[Expand]
function NetworkDeviceStateToNotification(State:LongWord):LongWord;
Description: Convert a Network state value into the notification code for device notifications


[Expand]
function NetworkDeviceStatusToNotification(Status:LongWord):LongWord;
Description: Convert a Network status value into the notification code for device notifications


[Expand]
function NetworkEventCheck(Event:PNetworkEvent):PNetworkEvent;
Description: Check if the supplied Event is in the event table


[Expand]
procedure NetworkLog(Level:LongWord; Network:PNetworkDevice; const AText:String);
Description: To be documented


[Expand]
procedure NetworkLogInfo(Network:PNetworkDevice; const AText:String);
Description: To be documented


[Expand]
procedure NetworkLogError(Network:PNetworkDevice; const AText:String);
Description: To be documented


[Expand]
procedure NetworkLogDebug(Network:PNetworkDevice; const AText:String);
Description: To be documented


[Expand]
function HardwareAddressToString(const AAddress:THardwareAddress):String;
Description: To be documented


[Expand]
function StringToHardwareAddress(const AAddress:String):THardwareAddress;
Description: To be documented


[Expand]
function CompareHardwareAddress(const AAddress1,AAddress2:THardwareAddress):Boolean;
Description: To be documented


[Expand]
function CompareHardwareDefault(const AAddress:THardwareAddress):Boolean;
Description: To be documented


[Expand]
function CompareHardwareBroadcast(const AAddress:THardwareAddress):Boolean;
Description: To be documented


[Expand]
function CompareHardwareMulticast(const AAddress:THardwareAddress):Boolean;
Description: To be documented


[Expand]
function AdapterTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function AdapterModeToString(AMode:Word):String;
Description: To be documented


[Expand]
function AdapterConfigToString(AConfig:Word):String;
Description: To be documented


[Expand]
function AdapterStateToString(AState:Integer):String;
Description: To be documented


[Expand]
function AdapterStatusToString(AStatus:Integer):String;
Description: To be documented


[Expand]
function FrameTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function MediaTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function PacketTypetoString(AType:Word):String;
Description: To be documented


[Expand]
function ConfigTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function ConfigCommandToString(ACommand:Word):String;
Description: To be documented


[Expand]
function AuthTypeToString(AType:Word):String;
Description: To be documented


[Expand]
function AuthCommandToString(ACommand:Word):String;
Description: To be documented


Return to Unit Reference