OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Mon, 28 Apr 2008 16:47:02 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manual Page
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

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


AIXCOMPAT

Section: The OpenSS7 Project DDI/DKI (9)
Updated: Wed, 18 Oct 2017 07:04:32 GMT
Index Return to Main Contents

NAME

aixcompat - AIX STREAMS Compatibility

SYNOPSIS

#define _AIX_SOURCE
#include <sys/ddi.h>

OVERVIEW

The OpenSS7 Project provides a compatibility module, streams-aixcompat that provides compatibility functions that smooth porting of drivers from the AIX 5L Version 5.1 STREAMS environment to The OpenSS7 Project. The functions provided by this compatibility module are described here.

DESCRIPTION

Many of the functions that are provided by AIX® are also provided by the core streams kernel module of The OpenSS7 Project. Other AIX®-specific functions are provided by the streams-aixcompat compatibility kernel module.

Kernel Functions

Kernel functions available in AIX® that are already available in Linux are as follows:

atoi(3)-
convert a string to an integer
bcmp(3)-
compare byte strings
bcopy(3)-
copy byte strings
bzero(3)-
write zeros to a byte string
lbolt(9)-
time in ticks since reboot
memccpy(3)-
copy memory area
memchr(3)-
scan memory for a character
memcmp(3)-
compare memory areas
memcpy(3)-
copy memory area
memmove(3)-
copy memory area
memset(3)-
fill memory with a constant byte
ovbcopy(3)-
overlapping byte copy
splx(9)-
restore priority levels
strcat(3)-
concatenate two strings
strchr(3)-
locate character in string
strcmp(3)-
compare two strings
strcspn(3)-
search a string for a set of characters
strlen(3)-
calculate the length of a string
strncat(3)-
concatenate two strings
strncmp(3)-
compare two strings
strncpy(3)-
copy a string
strpbrk(3)-
search a string for any of a set of characters
strrchr(3)-
locate character in string
strspn(3)-
search a string for a set of characters
strstr(3)-
locate a substring
strtok(3)-
extract tokens from strings
time(9)-
time in seconds since epoch

STREAMS Functions

STREAMS functions that are already available in The OpenSS7 Project (in the core streams kernel module) are as follows:

adjmsg(9)-
trim bytes from the front or back of a STREAMS message
allocb(9)-
allocate a STREAMS message and data block
backq(9)-
find the upstream or downstream queue
bcanput(9)-
test flow control on a STREAMS message queue
bufcall(9)-
install a buffer callback
canput(9)-
test flow control on a message queue
copyb(9)-
copy a STREAMS message block
copymsg(9)-
copy a STREAMS message
datamsg(9)-
tests a STREAMS message type for data
dupb(9)-
duplicate a STREAMS message block
dupmsg(9)-
duplicate a STREAMS message
enableok(9)-
allows a STREAMS message queue to be scheduled
esballoc(9)-
allocate a STREAMS message and data block with a caller supplied data buffer
flushband(9)-
flushes band STREAMS messages from a message queue
flushq(9)-
flushes messages from a STREAMS message queue
freeb(9)-
frees a STREAMS message block
freemsg(9)-
frees a STREAMS message
getadmin(9)-
get the administration function pointer for a STREAMS module
getmid(9)-
get the STREAMS module id for a name
getq(9)-
gets a message from a STREAMS message queue
insq(9)-
inserts a message into a STREAMS message queue
linkb(9)-
link a message block to a STREAMS message
msgdsize(9)-
calculate the size of the data in a STREAMS message
noenable(9)-
disables a STREAMS message queue from being scheduled
OTHERQ(9)-
return the other queue of a STREAMS queue pair
pullupmsg(9)-
pull up the bytes in a STREAMS message
putbq(9)-
put a message back on a STREAMS message queue
putctl1(9)-
put a 1 byte control message on a STREAMS message queue
putctl(9)-
put a control message on a STREAMS message queue
putnext(9)-
put a message on the downstream STREAMS message queue
putq(9)-
put a message on a STREAMS message queue
qenable(9)-
schedules a STREAMS message queue service routine
qreply(9)-
replys to a message from a STREAMS message queue
qsize(9)-
return the number of messages on a queue
RD(9)-
return the read queue of a STREAMS queue pair
rmvb(9)-
remove a message block from a STREAMS message
rmvq(9)-
remove a message from a STREAMS message queue
splstr(9)-
set priority levels
splx(9)-
restore priority levels
strlog(9)-
pass a message to the STREAMS logger
strqget(9)-
gets information about a STREAMS message queue
testb(9)-
test if a STREAMS message can be allocated
timeout(9)-
start a timer
unbufcall(9)-
removes a STREAMS buffer callback
unlinkb(9)-
unlink a message block from a STREAMS message
untimeout(9)-
stop a timer
unweldq(9)-
unweld two queues
weldq(9)-
weld two (or four) queues together
WR(9)-
return the write queue of a STREAMS queue pair

MPS® Functions

AIX® exposes a number of symbols from the underlying Mentat MPS® implementation that are also documented in the AIX® documentation. STREAMS functions that are available to AIX® in the The OpenSS7 Project MPS® compatibility module, streams-mpscompat, are as follows:

mi_bufcall(9)-
reliable alternative to bufcall(9)
mi_close_comm(9)-STREAMS common minor device close utility
mi_next_ptr(9)-STREAMS minor device list traversal
mi_open_comm(9)-STREAMS common minor device open utility
mi_prev_ptr(9)-STREAMS minor device list traversal

Specific STREAMS Functions

STREAMS
functions that are available in the The OpenSS7 Project AIX® compatibility module, streams-aixcompat, are as follows:

wantio(9)-
perform direct I/O from a STREAMS driver
wantmsg(9)-
provide a filter of wanted message for a STREAMS module

STREAMS Configuration and Registration Functions

Module and driver configuration functions that are available in the The OpenSS7 Project AIX® compatibility module, streams-aixcompat, are as follows:

str_install(9)-
install or uninstall a STREAMS driver or module
str_install_AIX(9)-
install or uninstall a STREAMS driver or module

MPS® Transport Functions

AIX® exposes a number of symbols from the underlying Mentat MPS® TCP/IP implementation that are also documented in the AIX® documentation. These transport functions are not part of the The OpenSS7 Project package:

mi_tpi_ack_alloc(9)-
allocate a T_OK_ACK(7) or T_ERROR_ACK(7)
mi_tpi_conn_con(9)-
generate a T_CONN_CON(7)
mi_tpi_conn_ind(9)-
generate a T_CONN_IND(7)
mi_tpi_conn_req(9)-
generate a T_CONN_REQ(7)
mi_tpi_data_ind(9)-
generate a T_DATA_IND(7)
mi_tpi_data_req(9)-
generate a T_DATA_REQ(7)
mi_tpi_discon_ind(9)-
generate a T_DISCON_IND(7)
mi_tpi_discon_req(9)-
generate a T_DISCON_REQ(7)
mi_tpi_err_ack_alloc(9)-
allocate a T_ERROR_ACK(7)
mi_tpi_exdata_ind(9)-
generate a T_EXDATA_IND(7)
mi_tpi_exdata_req(9)-
generate a T_EXDATA_REQ(7)
mi_tpi_info_req(9)-
generate a T_INFO_REQ(7)
mi_tpi_ok_ack_alloc(9)-
allocate a T_OK_ACK(7)
mi_tpi_ordrel_ind(9)-
generate a T_ORDREL_IND(7)
mi_tpi_ordrel_req(9)-
generate a T_ORDREL_REQ(7)
mi_tpi_uderror_ind(9)-
generate a T_UDERROR_IND(7)
mi_tpi_unitdata_ind(9)-
generate a T_UNITDATA_IND(7)
mi_tpi_unitdata_req(9)-
generate a T_UNITDATA_REQ(7)

USAGE

For usage an example of the various functions, see the individual manual pages.

CONTEXT

These functions can be executed from various contexts as described in each separate manual page.

MP-STREAMS

Most of these functions are MP-safe; however, AIX® does not provide many of the SVR 4.2 MP functions, such as:

bcanputnext(9)-
test flow control on a STREAMS message queue
canputnext(9)-
test flow control on a STREAMS message queue
esbbcall(9)-
install a buffer callback for an extended STREAMS message block
freezestr(9)-
freeze the state of a stream queue
msgpullup(9)-
pull up bytes in a STREAMS message
put(9)-
invoke the put procedure for a STREAMS driver or module with a STREAMS message
putnextctl1(9)-
put a 1 byte control message on the downstream STREAMS message queue
putnextctl(9)-
put a control message on the downstream STREAMS message queue
qprocsoff(9)-
disables STREAMS message queue processing for multi-processing
qprocson(9)-
enables a STREAMS message queue for multi-processing
SAMESTR(9)-
test for STREAMS pipe or fifo
unfreezestr(9)-
thaw the state of a stream queue

Lack of these functions can make Multiprocessor (MP) support problematic. Ported AIX® STREAMS drivers and modules should always be loaded under The OpenSS7 Project with multiprocessing disabled for safety.

NOTICES

_AIX_SOURCE must be defined before including DDI/DKI include files to expose AIX®-specific symbols. To use AIX®-specific functions, The OpenSS7 Project must also have been compiled with CONFIG_STREAMS_COMPAT_AIX or CONFIG_STREAMS_COMPAT_AIX_MODULE defined. When compiled with CONFIG_STREAMS_COMPAT_AIX defined, AIX® compatibility will become part of the The OpenSS7 Project streams kernel module. When compiled with CONFIG_STREAMS_COMPAT_AIX_MODULE defined, AIX® compatibility will be placed in a separate streams-aixcompat kernel module that will demand load when any STREAMS driver or module that uses the AIX®-specific functions loads.

MPS® functions used by AIX® are only be available from the streams-mpscompat compatibility module. See mpscompat(9) for more information on this module.

IMPLEMENTATION

Core functions are implemented within the The OpenSS7 Project framework. AIX®-specific functions are implemented as described in the separate manual pages describing each facility.

All AIX®-specific functions are implemented.

SEE ALSO

Core functions: adjmsg(9), allocb(9), backq(9), bcanput(9), bufcall(9), canput(9), copyb(9), copymsg(9), datamsg(9), dupb(9), dupmsg(9), enableok(9), esballoc(9), flushband(9), flushq(9), freeb(9), freemsg(9), getadmin(9), getmid(9), getq(9), insq(9), linkb(9), msgdsize(9), noenable(9), OTHERQ(9), pullupmsg(9), putbq(9), putctl1(9), putctl(9), putnext(9), putq(9), qenable(9), qreply(9), qsize(9), RD(9), rmvb(9), rmvq(9), splstr(9), splx(9), strlog(9), strqget(9), testb(9), timeout(9), unbufcall(9), unlinkb(9), untimeout(9), unweldq(9), weldq(9), WR(9).

Compatibility functions: mi_bufcall(9), mi_close_comm(9), mi_next_ptr(9), mi_open_comm(9), mi_prev_ptr(9), wantio(9), wantmsg(9).

Configuration and Registration functions: str_install(9), str_install_AIX(9).

Transport functions: mi_tpi_ack_alloc(9), mi_tpi_conn_con(9), mi_tpi_conn_ind(9), mi_tpi_conn_req(9), mi_tpi_data_ind(9), mi_tpi_data_req(9), mi_tpi_discon_ind(9), mi_tpi_discon_req(9), mi_tpi_err_ack_alloc(9), mi_tpi_exdata_ind(9), mi_tpi_exdata_req(9), mi_tpi_info_req(9), mi_tpi_ok_ack_alloc(9), mi_tpi_ordrel_ind(9), mi_tpi_ordrel_req(9), mi_tpi_uderror_ind(9), mi_tpi_unitdata_ind(9), mi_tpi_unitdata_req(9), mps_become_writer(9), mps_intr_disable(9), mps_intr_enable(9).

General: STREAMS(9).

BUGS

The AIX® compatibility suite has no known bugs.

COMPATIBILITY

These functions are compatible with AIX® with the following portability considerations:

---
Neither AIX®-specific, nor MPS®, functions should be used by portable STREAMS drivers and modules. The more common SVR 4.2 MP functions should be used in their stead.
---
AIX®-specific functions are provided for source level compatibility with AIX® for the purpose of porting AIX® drivers to Linux. Because internal structures and definitions for The OpenSS7 Project[1] differ from that of AIX®, binaries are incompatible.
---
AIX®-specific functions only provide functionality comparable to AIX® for use by STREAMS drivers and modules. Any and all functionality provided by AIX®-specific functions in support of non-STREAMS devices are not supported.

See STREAMS(9) for additional compatibility considerations.

CONFORMANCE

AIX® DDI documentation[2, 3].

HISTORY

Most of these functions first appeared in AIX®; except functions with a name starting with mi_. Those starting with mi_ are MPS® functions dating back to pre-OSF/1 STREAMS implementations.

REFERENCES

[1]
TCI, Transaction Component Interface (TCI) Specification, Revision 0.9.2, Draft 2, July 15, 2007, (Edmonton, Alberta), TheOpenSS7Project, OpenSS7Corporation. Distributed with package strss7-0.9.2. <http://www.openss7.org/docs/tci.pdf>
[2]
AIX® 5L Version 5.1, AIX 5L Version 5.1 Documentation, 2001, (Boulder, Colorado), Internatonal Business Machines Corp., IBM. <http://publibn.boulder.ibm.com/>
[3]
AIX® 5L Version 5.1, AIX STREAMS Programmers Guide, 2001, (Boulder, Colorado), Internatonal Business Machines Corp., IBM. <http://publibn.boulder.ibm.com/>

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

The OpenSS7 Project: Package OpenSS7 version 0.9.2 released Wed, 18 Oct 2017 07:04:32 GMT.

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



Index

NAME
SYNOPSIS
OVERVIEW
DESCRIPTION
Kernel Functions
STREAMS Functions
MPS® Functions
Specific STREAMS Functions
STREAMS Configuration and Registration Functions
MPS® Transport Functions
USAGE
CONTEXT
MP-STREAMS
NOTICES
IMPLEMENTATION
SEE ALSO
BUGS
COMPATIBILITY
CONFORMANCE
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 07:04:32 GMT, October 18, 2017
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manual Page
Last modified: Mon, 28 Apr 2008 16:47:02 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.