--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../aros.css' --->
void AbortNIPCEvent(
struct NIPCEvent * event );
Deliver a pending event now instead of at its time.
void AbortTransaction(
struct Transaction * transaction );
Abort a transaction started with BeginTransaction() if it is still a request: it returns to the source entity with ENVOYERR_ABORTED. Follow with WaitTransaction(). Nothing is sent on the wire.
BOOL AddRoute(
ULONG network,
ULONG gateway,
UWORD hops,
WORD ttl );
Route creation through this interface is not supported on AROS. The call leaves the routing table unchanged.
network - Ignored. gateway - Ignored. hops - Ignored. ttl - Ignored.
Always FALSE.
Configure routes through the TCP/IP stack.
APTR AllocateIPProtocolA(
UWORD protonr,
APTR input,
APTR cleanup,
struct TagItem * tags );
APTR AllocateIPProtocol(
UWORD protonr,
APTR input,
APTR cleanup,
TAG tag, ... );
Private IP protocol allocation is not supported on AROS. No handler is created and no callback is installed.
protonr - Ignored. input - Ignored; may be NULL. cleanup - Ignored; may be NULL. tags - Ignored; may be NULL.
Always NULL.
Callback pointers are neither invoked nor retained. The tag list is not read. No storage is allocated.
APTR AllocateUDPPortA(
LONG localport,
APTR datain,
struct TagItem * tags );
APTR AllocateUDPPort(
LONG localport,
APTR datain,
TAG tag, ... );
Private UDP port allocation is not supported on AROS. No port is reserved and no receive callback is installed.
localport - Ignored. datain - Ignored; may be NULL. tags - Ignored; may be NULL.
Always NULL.
The callback is neither invoked nor retained. The tag list is not read. No storage is allocated.
struct NIPCBuff * AllocNIPCBuff(
ULONG entries );
Allocate a buffer with the given number of (empty) entries.
struct NIPCBuffEntry * AllocNIPCBuffEntry();
Allocate an empty buffer entry; the caller supplies nbe_Data.
struct NIPCBuffEntry * AllocNIPCBuffEntryWithMem(
ULONG size );
Allocate an entry together with size bytes of data memory, freed with the entry.
struct NIPCEvent * AllocNIPCEvent(
ULONG eventcode,
APTR eventdata,
struct MsgPort * eventport );
Allocate an event that will be delivered to eventport.
struct MsgPort * AllocNIPCEventPort();
A message port for events (CreateMsgPort()).
struct Transaction * AllocTransactionA(
struct TagItem * tags );
struct Transaction * AllocTransaction(
TAG tag, ... );
Allocate a transaction. TRN_AllocReqBuffer / TRN_AllocRespBuffer (sizes) also allocate the buffers; TRN_ReqDataNIPCBuff / TRN_RespDataNIPCBuff declare that the caller's buffers are struct NIPCBuff.
void AppendNIPCBuff(
struct NIPCBuff * first,
struct NIPCBuff * second );
Move the entries of second to the end of first; second is left empty (and still to be freed).
BOOL BeginTransaction(
struct Entity * dest_entity,
struct Entity * src_entity,
struct Transaction * transaction );
Start a transaction from src_entity to dest_entity. The structure belongs to the library until it returns to the source entity as TYPE_RESPONSE. A local destination receives the structure itself; a remote one receives the request data over the link, and the response is written back into the response buffer. Unlike the original, this implementation never blocks the caller while the link's transmit window is full: fragments are queued and sent as the window opens.
UWORD CalcNIPCChecksum(
APTR data,
ULONG length,
UWORD startsum );
16-bit one's complement sum of a byte range, continuing from startsum (not complemented).
void CancelNIPCEvent(
struct NIPCEvent * event );
Take a pending event out of the queue without delivering it.
ULONG CheckNIPCEvent(
struct NIPCEvent * event );
1 while the event is pending, 0 otherwise.
BOOL CheckTransaction(
struct Transaction * transaction );
TRUE if the transaction is complete, failed, or was never sent.
ULONG CopyFromNIPCBuff(
struct NIPCBuff * src_buff,
UBYTE * dest_data,
ULONG srcoffset,
ULONG length );
Copy bytes out of a buffer into memory.
Bytes copied.
ULONG CopyNIPCBuff(
struct NIPCBuff * src_buff,
struct NIPCBuff * dest_buff,
ULONG srcoffset,
ULONG dstoffset,
ULONG length );
Copy between buffers.
Bytes copied.
ULONG CopyToNIPCBuff(
UBYTE * src_data,
struct NIPCBuff * dest_buff,
ULONG dstoffset,
ULONG length );
Copy memory into a buffer's existing entries (within their nbe_PhysicalLength; nbe_Length grows as needed).
Bytes copied.
struct Entity * CreateEntityA(
struct TagItem * tags );
struct Entity * CreateEntity(
TAG tag, ... );
Create an entity, one end of a communication path.
ENT_Name (STRPTR), ENT_Public (BOOL; needs a name, which must be unique among public entities of this machine), ENT_Signal (ULONG bit number) or ENT_AllocSignal (ULONG *).
The entity, or NULL.
void DeleteEntity(
struct Entity * entity );
Delete an entity made with CreateEntityA(). It stops being findable at once; connections of clients that found it are reset and queued requests are returned to them with ENVOYERR_CANTDELIVER; the memory goes when the last reference does.
APTR DeleteRoute(
ULONG network );
Route deletion through this interface is not supported on AROS. The call leaves the routing table unchanged.
network - Ignored.
Always NULL. No route object is returned.
Configure routes through the TCP/IP stack.
ULONG DoTransaction(
struct Entity * dest_entity,
struct Entity * src_entity,
struct Transaction * transaction );
BeginTransaction() followed by WaitTransaction().
trans_Error.
struct Entity * FindEntity(
CONST_STRPTR hostname,
CONST_STRPTR entityname,
struct Entity * src_entity,
ULONG * detailerror );
Find a public entity on a host and open a path to it from src_entity. hostname NULL (or this machine's name or address) means the local machine: the entity itself is returned and no network is involved. Otherwise the host is located, its resolver asked for the entity, and a connection opened; the returned link stands for the remote entity. Every successful call needs a LoseEntity().
The entity or link, or NULL with *detailerror set to ENVOYERR_UNKNOWNHOST, UNKNOWNENTITY, NORESOLVER or NORESOURCES.
void FreeIPProtocol(
APTR handle );
Perform no operation. AROS does not allocate private IP protocol handles through this interface.
handle - Ignored; may be NULL.
None. No storage is freed and no callback is invoked.
The handle is not dereferenced. This call cannot release storage allocated through another interface.
void FreeNIPCBuff(
struct NIPCBuff * buff );
Free a buffer and its entries. A buffer locked with LockNIPCBuff() survives one FreeNIPCBuff() per lock.
void FreeNIPCBuffEntry(
struct NIPCBuffEntry * entry );
Free an entry (not its data unless AllocNIPCBuffEntryWithMem() provided it). The entry must not be in a buffer.
void FreeNIPCEvent(
struct NIPCEvent * event );
Free an event in any state; a pending one is cancelled silently.
void FreeNIPCEventPort(
struct MsgPort * eventport );
Free an event port (DeleteMsgPort()). Free or abort its events first.
APTR FreeTransaction(
struct Transaction * transaction );
Free a transaction and the buffers AllocTransactionA() allocated.
void FreeUDPPort(
APTR handle );
Perform no operation. AROS does not allocate private UDP port handles through this interface.
handle - Ignored; may be NULL.
None. No storage is freed and no callback is invoked.
The handle is not dereferenced. This call cannot release storage allocated through another interface.
ULONG GetEntityAttrsA(
struct Entity * entity,
struct TagItem * tagList );
ULONG GetEntityAttrs(
struct Entity * entity,
TAG tag, ... );
Read attributes: ENT_Name (with ENT_NameLength), ENT_Public, ENT_Signal (-1 = none). ti_Data points to where the value goes.
Number of attributes filled in.
BOOL GetEntityName(
struct Entity * entity,
STRPTR string,
ULONG maxlen );
Copy the entity's name; "UNNAMED ENTITY" if it has none.
BOOL GetHostName(
struct Entity * entity,
STRPTR string,
ULONG maxlen );
The name of the host an entity is on: for a link the peer's own
name as it reported it ("realm:host" or "host"); for NULL or a
local entity this machine's name.
FALSE if the buffer is too small.
struct NIPCEvent * GetNIPCEvent(
struct MsgPort * eventport );
The next delivered event at the port, or NULL.
ULONG GetNIPCEventCode(
struct NIPCEvent * event );
Field of an event.
APTR GetNIPCEventData(
struct NIPCEvent * event );
Field of an event.
ULONG GetNIPCEventTime(
struct NIPCEvent * event,
struct timeval * tv,
BOOL remaining );
For a pending event: the time it was scheduled, or (remaining) the time left until it is due.
TRUE if the event was pending and tv was filled in.
struct Transaction * GetTransaction(
struct Entity * entity );
Take the next transaction off an entity: a request (returned as TYPE_SERVICING) or one of the entity's own returning transactions (TYPE_RESPONSE).
void LockNIPCBuff(
struct NIPCBuff * buff );
Defer the next FreeNIPCBuff() of this buffer.
void LoseEntity(
struct Entity * entity );
Give up a path obtained with FindEntity(). For a remote link the connection is closed and transactions still pending on it complete with ENVOYERR_ABORTED.
ULONG NIPCBuffLength(
struct NIPCBuff * buff );
Total data length of a buffer.
UBYTE * NIPCBuffPointer(
struct NIPCBuff * buff,
struct NIPCBuffEntry ** beptr,
ULONG offset );
Address of the byte at offset within the buffer; *beptr receives the entry that holds it. NULL if the offset is beyond the data.
void NIPCControlA(
struct TagItem * taglist );
void NIPCControl(
TAG tag, ... );
Get and set the library's tunables. The RDP settings take effect for all connections at once. The IP, ARP and fragment settings are stored and read back but have no effect, since the host stack handles those layers. NIPCTAG_GetMTUforIP asks the stack for the MTU of the interface that routes to an address.
BOOL NIPCInquiryA(
struct Hook * hook,
ULONG maxTime,
ULONG maxResponses,
struct TagItem * tagList );
BOOL NIPCInquiry(
struct Hook * hook,
ULONG maxTime,
ULONG maxResponses,
TAG tag, ... );
Start a network inquiry: the QUERY_#? / MATCH_#? tags are sent to the hosts of the local network (or, in a realm, through the Realm Server), repeated once a second for maxTime seconds. The hook is called for every answer with the answering host's tag list as the message and the calling task as the object, and once more with a NULL message when the inquiry ends (after maxTime seconds, after maxResponses answers, or when the hook returned FALSE). The hook runs in the library's own process. With maxTime 0 the oldest pending inquiry using the same hook is aborted.
TRUE if the inquiry was started (or aborted).
ULONG PingEntity(
struct Entity * pingtarget,
ULONG maxTime );
Round-trip time to a remote entity (a link), in microseconds; 0 for a local entity; 0xFFFFFFFF if no answer within maxTime microseconds.
BOOL RegisterIPProtocol(
APTR handle );
Private IP protocol registration is not supported on AROS. No protocol handler is registered.
handle - Ignored; may be NULL.
Always FALSE.
The handle is neither dereferenced nor retained.
BOOL RegisterUDPPort(
APTR handle );
Private UDP port registration is not supported on AROS. No port is registered.
handle - Ignored; may be NULL.
Always FALSE.
The handle is neither dereferenced nor retained.
void ReplyTransaction(
struct Transaction * transaction );
Return a serviced transaction to its sender, with the response data and trans_Error. For a request that came over the network the library sends the response and frees the transaction; do not touch it afterwards.
void ScheduleNIPCEvent(
struct NIPCEvent * event,
ULONG seconds,
ULONG micros );
Deliver the event after the given time (immediately if both are 0). Rescheduling replaces an earlier schedule.
ULONG SendICMPMessageA(
UWORD typeandcode,
ULONG magicid,
APTR iphdr,
ULONG sourceip,
ULONG destip,
APTR data,
ULONG datalen,
struct TagItem * iptags );
ULONG SendICMPMessage(
UWORD typeandcode,
ULONG magicid,
APTR iphdr,
ULONG sourceip,
ULONG destip,
APTR data,
ULONG datalen,
TAG tag, ... );
ICMP transmission through this interface is not supported on AROS. No message is queued or transmitted.
typeandcode - Ignored. magicid - Ignored. iphdr - Ignored; may be NULL. sourceip - Ignored. destip - Ignored. data - Ignored; may be NULL. datalen - Ignored. iptags - Ignored; may be NULL.
Always zero. This value does not indicate that a message was sent.
The header, payload and tag list are neither read nor retained. Their storage is not freed; ownership remains with the caller.
void SendIPPacketA(
struct NIPCBuff * data,
ULONG srcip,
ULONG destip,
UBYTE protocol,
struct TagItem * iptags );
void SendIPPacket(
struct NIPCBuff * data,
ULONG srcip,
ULONG destip,
UBYTE protocol,
TAG tag, ... );
Discard an IP packet by calling FreeNIPCBuff() on its buffer. No packet is queued or transmitted.
data - Buffer obtained from AllocNIPCBuff(), or NULL. srcip - Ignored. destip - Ignored. protocol - Ignored. iptags - Ignored; may be NULL.
None. The call provides no transmission status.
An unlocked buffer and its entries are freed before return; do not access them afterward. Data allocated with an entry is freed with that entry. Separately supplied entry data remains caller-owned. If the buffer has outstanding LockNIPCBuff() calls, one lock is consumed and the buffer survives this call. These locks defer freeing; they do not provide mutual exclusion. Prevent concurrent access to the buffer while this call runs. NULL has no effect. The tag list is not read or retained. Call from task context.
void SendUDPPacketA(
APTR dataptr,
UWORD length,
ULONG destip,
UWORD srcport,
UWORD dstport,
struct TagItem * iptags );
void SendUDPPacket(
APTR dataptr,
UWORD length,
ULONG destip,
UWORD srcport,
UWORD dstport,
TAG tag, ... );
UDP transmission through this interface is not supported on AROS. No packet is queued or transmitted.
dataptr - Ignored; may be NULL. length - Ignored. destip - Ignored. srcport - Ignored. dstport - Ignored. iptags - Ignored; may be NULL.
None. The call provides no transmission status.
The payload and tag list are neither read nor retained. Their storage is not freed; ownership remains with the caller.
BOOL SetDeviceIPAddressA(
CONST_STRPTR devicename,
ULONG unit,
ULONG ipaddress,
ULONG mask,
struct TagItem * tags );
BOOL SetDeviceIPAddress(
CONST_STRPTR devicename,
ULONG unit,
ULONG ipaddress,
ULONG mask,
TAG tag, ... );
Interface configuration through this interface is not supported on AROS. No device is opened and no address or mask is changed.
devicename - Ignored; may be NULL. unit - Ignored. ipaddress - Ignored. mask - Ignored. tags - Ignored; may be NULL.
Always FALSE.
The device name and tag list are neither read nor retained. Configure interfaces through the TCP/IP stack.
void SetEntityAttrsA(
struct Entity * entity,
struct TagItem * tagList );
void SetEntityAttrs(
struct Entity * entity,
TAG tag, ... );
Change attributes: ENT_Public, ENT_Release, ENT_Inherit, ENT_Signal, ENT_AllocSignal, ENT_TimeoutLinks.
void WaitEntity(
struct Entity * entity );
Wait until a transaction arrives at the entity.
ULONG WaitTransaction(
struct Transaction * transaction );
Wait until the transaction has completed, then remove it from the source entity and return trans_Error. Returns at once for a transaction that was never sent.