OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Sat, 01 Nov 2008 10:41:55 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of LINKBLK
Quick Links

Download

SCTP

SIGTRAN

SS7

Hardware

STREAMS

Asterisk

Related

Package

Manual

FAQ

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Manpage of LINKBLK

Description: Manual Page

Keywords: ss7 ss7/ip ss7 over ip ss7 mtp ss7 sccp ss7 tcap sigtran mtp sccp tcap openss7 acb56 linux telephony pstn linux telephony linux nebs linux compactpci


LINKBLK

Section: Linux Fast-STREAMS DDI/DKI (9)
Updated: 2008-10-31
Index Return to Main Contents

NAME

linkblk - STREAMS link block structure

SYNOPSIS


#include <sys/stream.h>
struct linkblk {
    struct queue *l_qtop;       /* upper write queue */
    struct queue *l_qbot;       /* lower write queue */
    int l_index;                /* multiplexor index */
    char __pad[4 * sizeof(int) + sizeof(size_t) + sizeof(mblk_t *)];
};

MEMBERS

The linkblk structure contains the following members:

l_qtop
points to the write queue of the Stream on the upper multiplex.
l_qbot
points to the write queue of the Stream on the lower multiplex.
l_index
An index uniqely identifying the link within an entire GNU/Linux system on a host.
__pad
padding to size the structure to the size from SVR 4.2.

INTERFACE

STREAMS.

DESCRIPTION

The linkblk structure is used in the data portion of an M_IOCTL(9) message containing an I_LINK(7), I_PLINK(7), I_UNLINK(7), or I_PUNLINK(7), streamio(7) command. These M_IOCTL(9) message are sent to a multiplexing driver by the Stream head to allow a multiplexing driver to perform the necessary initialization, configuration, resource allocation or release, associated with linking one Stream beneath another via the multiplexing driver.

The members of the linkblk structure are interpreted as follows:

l_qtop
is a pointer to the write queue of the Stream end queue pair at the upper multiplex. This identifies the queue pair at the multiplexing driver, on the upper multiplex, that terminates the control Stream.
l_qbot
is a pointer to the write queue of the Stream head queue pair at the lower mutliplex This identifies the queue pair at the mutliplexing driver, on the lower mutliplex, that terminates the linked Stream.
l_index
is a unique index that identifies the link relation within the entire GNU/Linux system for a host.

When STREAMS receives a valid I_LINK(7) or I_PLINK(7) streamio(7) call from the user, it allocates an populates a linkblk structure. STREAMS finds the queue pair at the Stream end (diametrically opposite the Stream head on the Stream for which the streamio(7) was issued) and places a pointer to the write queue of the pair in l_qtop. Note that, although `top' appears in the name of this member, the write queue is at the bottom of the Stream attached to the upper multiplex.

STREAMS locates the Stream head queue pointer associated with the Stream that was passed as a file descriptor in the arg argument to the ioctl(2s) call issuing the I_LINK(7) or I_PLINK(7) command: a pointer to the write queue of the pair is placed in l_qbot. Note that, although `bot' appears in the name of this member, the write queue is at the top of the Stream to be linked to the lower multiplex.

A unique index number used to identify the link relation is assigned and placed into l_index. (See also COMPATIBILITY , below.)

STREAMS then formulates an M_IOCTL (9) message, attaches the linkblk structure in an M_DATA(9) message block and sends the control downstream like any other I_STR(7)-based M_IOCTL(9) message. See M_IOCTL(9), M_IOCACK(9), M_IOCNAK(9), for more information on processing of input-output controls under STREAMS.

When STREAMS receives a valid I_UNLINK(7) or I_PUNLINK(7) call from the user, it allocates and populates a linblk structure to be attached to a M_IOCTL(9) message in a similar manner to that described above. The difference is that the l_index and l_qbot members are populated from the link block located using the arg argument to the ioctl(2s) call issuing the I_LINK(7) or I_PLINK(7) command.

USAGE

STREAMS drivers and modules should only use the linkblk structure definition for accessing the data block of a M_IOCTL(9) message perforing an I_LINK(7), I_PLINK(7), I_UNLINK(7), or I_PUNLINK(7), operation.

CONTEXT

Direct access of the linkblk structure should only be made to the data part of an M_IOCTL(9) message containing a I_LINK(7), I_PLINK(7), I_UNLINK(7), or I_PUNLINK(7), command, as part of an input-output control operation to which a multiplexing driver is responding in the context of a qi_putp(9) or qi_srvp(9) procedure for the driver.

MP-STREAMS

When delivered in the M_IOCTL(9) message, the receiver of the message has exclusive access to the message and the contained linkblk structure.

NOTICES

When the data structure is present in the M_IOCTL(9) message, it should be considered as read-only. That is, it is not proper returning altered values in an M_IOCACK(9) message with a non-zero ioc_count member in the iocblk(9) control structure.

SEE ALSO

M_IOCTL(9), I_LINK(7), I_PLINK(7), I_UNLINK(7), I_PUNLINK(7), streamio(7), ioctl(2s), M_DATA(9), I_STR(7), M_IOCACK(9), M_IOCNAK(9), iocblk(9), qi_putp(9), qi_srvp(9), STREAMS(9).

COMPATIBILITY

The linkblk structure is compatible with SVR 4.2 MP EFT[1], and implementations based on SVR 4.2[2], with the following portability considerations:

---
The linkblk structure is very consistent over the wide range of availble implementations and, because of the restricted context in which it is used, there are no considerable portability issues.
---
Because the data elements involved have different representations on different architectures (e.g., pointers), binary compatibility is not guaranteed.

See STREAMS(9) for additional compatibility information.

CONFORMANCE

SVR 4.2 EFT STREAMS[3].

HISTORY

The linkblk structure was first introduced in SVR 3[4].

REFERENCES

[1]
USL DDI/DKI, Device Driver Interface/Driver-Kernel Interface (DDI/DKI) Reference Manual for Intel Processors, 1992, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[2]
SVR 4.2, UNIX® System V Release 4.2 Programmer's Manual, 1992, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[3]
SVR 4.2, STREAMS Programmer's Guide, 1992, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[4]
SVR 3, UNIX® System V Release 3 Programmer's Manual, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.

TRADEMARKS

OpenSS7tm
is a trademark of OpenSS7 Corporation.
Linux®
is a registered trademark of Linus Torvalds.
UNIX®
is a registered trademark of The Open Group.
Solaris®
is a registered trademark of Sun Microsystems.

Other trademarks are the property of their respective owners.

IDENTIFICATION


Linux Fast-STREAMS: Package streams version 0.9.2.4 released 2008-10-31.

Copyright©1997-2008OpenSS7 Corp. All Rights Reserved.
(See roff source for permission notice.)



Index

NAME
SYNOPSIS
MEMBERS
INTERFACE
DESCRIPTION
USAGE
CONTEXT
MP-STREAMS
NOTICES
SEE ALSO
COMPATIBILITY
CONFORMANCE
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 13:23:32 GMT, May 18, 2013
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of LINKBLK
Last modified: Sat, 01 Nov 2008 10:41:55 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.