Links

GitHub

Open HUB

Quick Links

Download

STREAMS

SIGTRAN

SS7

Hardware

SCTP

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


MPSCOMPAT

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

NAME

mpscompat - MPS STREAMS Compatibility

SYNOPSIS

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

OVERVIEW

OpenSS7 STREAMS Compatibility provides a compatibility module, streams-mpscompat.o, that provides compatibility functions that smooth porting of drivers from the Mentat Portable STREAMS environment to OpenSS7 STREAMS Compatibility.

Version of the Mentat Portable STREAMS environment, or at least the MPS API for use by Mentat TCP/IP implementation, appears in AIX®[1], MacOT®[2], Solaris®[3], VxWorks®[4], and other STREAMS implementations containing Mentat TCP/IP implementation, either historically or currently. Versions of these functions can also likely be found in OSF/1®[5], and HP-UX®[6]. Any STREAMS implementation still using Lachman TCP/IP implementation will likely not have these functions.

DESCRIPTION

Many of the functions that are provided by MPS® are also provided by the core streams.o and streams-svr4compat.o kernel modules of OpenSS7 STREAMS Compatibility. Other MPS®-specific functions are provided by the streams-mpscompat.o compatibility kernel module.

Core Functions

Functions that are already available in OpenSS7 STREAMS Compatibility are as follows:

Specific Functions

Functions that are available in the OpenSS7 STREAMS Compatibility MPS® compatibility module, streams-mpscompat.o, are as follows:

mi_alloc(9)-
allocate and free kernel memory without later regard to size
mi_allocq(9)-allocq(9)
replacement
mi_alloc_sleep(9)-kmem_alloc(9)
replacement
mi_attach(9)-
associate instance data with a STREAMS queue
mi_bcmp(9)-
compate two binary memory extents
mi_bufcall(9)-
reliable alternative to bufcall(9)
mi_close_comm(9)-STREAMS common minor device close utility
mi_close_detached(9)-
release instance data from the STREAMS queue and perform close cleanup
mi_close_free(9)-
free a STREAMS driver or module instance on close
mi_close_unlink(9)-
unlink a STREAMS driver or module instance from a Stream
mi_copy_done(9)-ioctl(2) complete
mi_copyin(9)-
copy data from a user buffer
mi_copyin_n(9)-
copy data from a user buffer
mi_copyout(9)-
copy data from a user buffer
mi_copyout_alloc(9)-
allocate a buffer to be copied out using mi_copyout(9)
mi_copy_set_rval(9)-
set return value for input-output control
mi_copy_state(9)-
current state of the input-output control process
mi_detach(9)-
disassociate instance data from the STREAMS queue
mi_first_dev_ptr(9)-
obtain first device instance pointer
mi_first_ptr(9)-
obtain first instance pointer
mi_free(9)-kmem_free(9)
replacement
mi_freeq(9)-freeq(9)
replacement
mi_mpprintf(9)-
print a formatted string to a message buffer
mi_mpprintf_nr(9)-
continue to print a formatted string to a message buffer
mi_next_dev_ptr(9)-
obtain next device instance pointer
mi_next_ptr(9)-STREAMS minor device list traversal
mi_offset_param(9)-
obtain parameter location within STREAMS message block
mi_offset_paramc(9)-
obtain parameter location within STREAMS message block chain
mi_open_alloc(9)-
allocate a STREAMS driver or module instance
mi_open_alloc_sleep(9)-
allocate a STREAMS driver or module instance (may sleep)
mi_open_comm(9)-STREAMS common minor device open utility
mi_open_detached(9)-STREAMS create detached instance data
mi_open_link(9)-
link a STREAMS driver or modules instance on open
mi_prev_ptr(9)-STREAMS minor device list traversal
mi_timer_q_switch(9)-
switch STREAMS queues for a timer message
mi_reallocb(9)-
reallocate a STREAMS message block
mi_reuse_proto(9)-
reuse a STREAMS protocol message block
mi_set_sth_copyopt(9)-
set the STREAMS stream head copy options
mi_set_sth_hiwat(9)-
set the STREAMS stream head high water mark
mi_set_sth_lowat(9)-
set the STREAMS stream head low water mark
mi_set_sth_maxblk(9)-
set the STREAMS stream head maximum block size
mi_set_sth_wroff(9)-
set the STREAMS stream head write offset
mi_sprintf(9)-sprintf(3)
replacement.
mi_sprintf_putc(9)-
put a character in an sprintf buffer
mi_strcmp(9)-strcmp(3)
replacement
mi_strlen(9)-strlen(3)
replacement
mi_strlog(9)-strlog(9)
replacement
mi_strtol(9)-strtol(3)
replacement
mi_timer(9)-
process a STREAMS timer
mi_timer_alloc(9)-
allocate a STREAMS timer
mi_timer_cancel(9)-
cancel a STREAMS timer
mi_timer_free(9)-
free a STREAMS timer
mi_timer_move(9)-
move a STREAMS timer
mi_timer_q_switch(9)-
switch queues for STREAMS timer
mi_timer_stop(9)-
stop a STREAMS timer
mi_timer_valid(9)-
check a STREAMS timer
mi_zalloc(9)-kmem_zalloc(9)
replacement
mi_zalloc_sleep(9)-kmem_zalloc(9)
replacement

MPS® Transport Functions

MPS® exposes a number of symbols from the underlying Mentat MPS® TCP/IP implementation that are also documented in the MPS® documentation. These transport functions are not part of the OpenSS7 STREAMS Compatibility 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, see the separate manual pages for each specific function.

NOTICES

These are MPS®-specific functions: _MPS_SOURCE must be defined before including DDI/DKI include files to expose these symbols. OpenSS7 STREAMS Compatibility must also have been compiled with CONFIG_STREAMS_COMPAT_MPS or CONFIG_STREAMS_COMPAT_MPS_MODULE defined. When compiled with CONFIG_STREAMS_COMPAT_MPS defined, MPS® compatibility will become part of the OpenSS7 STREAMS Compatibility streams kernel module. When compiled with CONFIG_STREAMS_COMPAT_MPS_MODULE defined, MPS® compatibility will be placed in a separate streams-mpscompat kernel module that will demand load when any STREAMS driver or module that uses the MPS®-specific functions loads.

IMPLEMENTATION

Core functions are implemented within the OpenSS7 STREAMS Compatibility framework. MPS®-specific functions are implemented as described in the separate manual pages describing each facility.

All MPS®-specific functions are implemented with the exception of the MPS® 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).

SEE ALSO

Core functions:

Compatibility functions: mi_alloc(9), mi_allocq(9), mi_alloc_sleep(9), mi_attach(9), mi_bcmp(9), mi_bufcall(9), mi_close_comm(9), mi_close_detached(9), mi_close_free(9), mi_close_unlink(9), mi_copy_done(9), mi_copyin(9), mi_copyin_n(9), mi_copyout(9), mi_copyout_alloc(9), mi_copy_set_rval(9), mi_copy_state(9), mi_detach(9), mi_first_dev_ptr(9), mi_first_ptr(9), mi_free(9), mi_freeq(9), mi_mpprintf(9), mi_mpprintf_nr(9), mi_next_dev_ptr(9), mi_next_ptr(9), mi_offset_param(9), mi_offset_paramc(9), mi_open_alloc(9), mi_open_alloc_sleep(9), mi_open_comm(9), mi_open_detached(9), mi_open_link(9), mi_prev_ptr(9), mi_timer_q_switch(9), mi_reallocb(9), mi_reuse_proto(9), mi_set_sth_copyopt(9), mi_set_sth_hiwat(9), mi_set_sth_lowat(9), mi_set_sth_maxblk(9), mi_set_sth_wroff(9), mi_sprintf(9), mi_sprintf_putc(9), mi_strcmp(9), mi_strlen(9), mi_strlog(9), mi_strtol(9), mi_timer(9), mi_timer_alloc(9), mi_timer_cancel(9), mi_timer_free(9), mi_timer_move(9), mi_timer_stop(9), mi_timer_valid(9), mi_zalloc(9), mi_zalloc_sleep(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).

General: STREAMS(9).

BUGS

The MPS® compatibility suite has no known bugs.

COMPATIBILITY

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

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

See STREAMS(9) for additional compatibility considerations.

CONFORMANCE

MPS® DDI documentation[8, 9].

HISTORY

Most of these functions first appeared in MPS®. Functions with name starting with mi_ are Mentat, Inc. functions that goe all the way back to the pre-OSF/1 Mentat implementations.

REFERENCES

[1]
AIX® 5L Version 5.1, AIX STREAMS Programmers Guide, 2001, (Boulder, Colorado), Internatonal Business Machines Corp., IBM. <http://publibn.boulder.ibm.com/>
[2]
Revision 1.5d2, Open Transport Module Developer Note, June 18, 1996, (Cupertino, California), Apple Computer, Inc., Apple. <http://developer.apple.com/macos/opentransport/>
[3]
Solaris® 8, STREAMS Programming Guide, August 1999, (Palo Alto, California), Sun Microsystems, Inc., Sun. [Part No: 805-7478-05] <http://docs-pdf.sun.com/>
[4]
VxWorks® 5.4 Tornadotm II, WindNet STREAMS for Tornado, Component Release Supplement, 1998, (Almeda, California), Wind River Systems, Inc., Wind River. <http://www.windriver.com/>
[5]
Digital® UNIX (OSF/1.2), Digital UNIX: Network Programmers Guide, 1996, (Palo Alto, California), Digital Equipment Corporation, Hewlett-Packard Company. <http://www.true64unix.compaq.com/docs/>
[6]
HP-UX STREAMS, STREAMS Programmer's Guide -- HP 9000 and Integrity Server Computer Systems, October 2005, (Palo Alto, California), Hewlett-Packard Development Company L.P., HP. <http://docs.hp.com/>
[7]
strcompat-0.9.2, STREAMS Compatibility Modules (strcompat) 0.9.2 Source Code, Brian Bidulock, ed., OpenSS7 Corporation. <http://www.openss7.org/>
[8]
SVR 4 DDI/DKI, UNIX® System V Release 4 Device Driver Interface/Driver-Kernel Interface (DDI/DKI) Reference Manual, 1990, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[9]
SVR 4, UNIX® System V Release 4 STREAMS Programmer's Guide, 1990, (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


OpenSS7 STREAMS Compatibility: Package strcompat version 0.9.2.7 released 2008-10-31.

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



Index

NAME
SYNOPSIS
OVERVIEW
DESCRIPTION
Core Functions
Specific 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: 02:14:58 GMT, October 22, 2014
Last modified: Sat, 01 Nov 2008 10:42:03 GMT  
Copyright © 2014 OpenSS7 Corporation All Rights Reserved.