📄 ssi.x
字号:
/********************************************************************20**
Name: system services interface
Type: C include file
Desc: Structures, variables and typedefs required by the
System Services service user.
File: ssi.x
Sid: ssi.x 2.31 - 10/14/98 14:38:22
Prg: nkk
*********************************************************************21*/
#ifndef __SSIX__
#define __SSIX__
/*
* The structures and variables declared in this file
* correspond to structures and variables used by
* the following TRILLIUM software:
*
* part no. description
* -------- ----------------------------------------------
* 1000011 Multiprocessor Operating System
* 1000035 68302 MOS/SCC
*
*/
/*
* This software may be combined with the following TRILLIUM
* software:
*
* part no. description
* -------- ----------------------------------------------
* 1000001 Physical Layer - SCC
* 1000002 Data Link Layer - LAPB
* 1000003 Data Link Layer - LAPD
* 1000005 Data Link Layer - LAPB & LAPD
* 1000006 Network Layer - X.25 Intermediate System
* 1000007 Network Layer - X.25 End System
* 1000008 Network Layer - X.75
* 1000009 Network Layer - Q.930/Q.931
* 1000010 Application Layer - Asynchronous PAD
* 1000011 Multiprocessor Operating System (MOS)
* 1000014 Network Layer - X.25 End & Intermediate System
* 1000017 Data Link Layer - Basic Frame Relay
* 1000018 Data Link Layer - Extended Frame Relay
* 1000023 Network Layer - X.31
* 1000024 Signalling System 7 (SS7)
* 1000026 TCP/IP
* 1000027 Signalling System 7 - MTP Level 2
* 1000028 Signalling System 7 - MTP Level 3
* 1000029 Signalling System 7 - ISUP
* 1000030 Signalling System 7 - SCCP
* 1000031 Signalling System 7 - TCAP
* 1000034 Physical Layer - ISAC-S
* 1000040 UDP/IP
* 1000041 ESCC
* 1000042 Signalling System 7 - TUP
* 1000043 Network Layer - Q.93B
* 1000044 Data Link Layer - Q.SAAL
*
*/
#ifdef __cplusplus
extern "C" {
#endif
#include "ss_dep.h"
/* typedefs */
typedef S16 Status; /* status */
typedef U32 Ticks; /* system clock ticks */
#ifdef LONG_MSG
typedef S32 MsgLen; /* message length */
#else
typedef S16 MsgLen; /* message length */
#endif
typedef S16 Order; /* message or queue order */
#ifdef DOS
typedef U16 Size; /* size (for number of bytes per region or per s-pool) */
#else
typedef U32 Size; /* size (for number of bytes per region or per s-pool) */
typedef S32 PtrOff; /* signed pointer offset */
#endif
typedef U32 QLen; /* queue length */
typedef QLen BufQLen; /* buffer queue length */
typedef S16 RegSize; /* region size (for number of regions per processor) */
typedef S16 DPoolSize; /* dynamic pool size (for number of buffers per d-pool) */
typedef U16 Random; /* random number */
typedef S16 Seq; /* sequence */
/* Error */
typedef U32 ErrCls; /* Error Class */
typedef U32 ErrCode; /* Error Code */
typedef U32 ErrVal; /* Error Value */
typedef S16 VectNmb; /* vector number */
typedef S16 Ttype; /* task type */
typedef S8 Sema; /* semaphore */
/* post */
/*
This section contains specific typedefs, structures and
prototypes for the following operating systems:
MOS - MOSVER
MOS, v2 - MSVER2
psos - PS
vrtxsa - VX
vxworks - VW
sslib - system service library for elvis
other -
The defines PORTVER, MOSVER and MSVER2 are mutually exclusive. The define PORTVER
must be set in conjunction with the define PS, VX, VW or other.
*/
#ifdef MOSVER /* mos version */
/* mos typedefs, structures and prototypes */
/* forward definitions */
#ifndef CMFILE_REORG_1
typedef struct ss_buffer Buffer; /* forward definition - buffer */
#endif
typedef struct ss_queue Queue; /* forward definition - queue */
/* chain */
typedef struct chn /* chain */
{
Buffer *fwd; /* forward */
Buffer *bck; /* backward */
} Chn;
typedef Chn Chain; /* chain */
/* queue - typdef'd earlier */
struct ss_queue /* queue - typdef'd earlier */
{
Chn chn; /* chain */
QLen crntSize; /* current size */
QLen maxSize; /* maximum size */
};
/* buffer - typedef'd earlier */
struct ss_buffer /* buffer - typdef'd earlier */
{
Chn chn; /* chain */
Mem mem; /* memory */
S8 bufType; /* buffer type */
union
{
struct
{
MsgLen strtIdx; /* start index */
MsgLen endIdx; /* end index */
MsgLen size; /* size */
Data data[DSIZE]; /* data */
} dat; /* data buffer */
struct
{
Queue bq; /* buffer queue */
MsgLen msgLen; /* message length */
S16 refCnt; /* reference count */
Pst pst; /* post (optional) */
U32 wsU32[2]; /* workspace unsigned 32 bit values (optional) */
U16 wsU16[1]; /* workspace unsigned 16 bit values (optional) */
U8 wsU8[2]; /* workspace unsigned 8 bit values (optional) */
} msg; /* message buffer */
struct
{
Buffer *entry[MAXEXTENT];/* entry */
} ext; /* extension buffer */
struct
{
Size size; /* size */
} stc; /* static buffer */
struct
{
MsgLen strtIdx; /* start index */
MsgLen endIdx; /* end index */
MsgLen size; /* size */
Data *data; /* data pointer */
} dma; /* dma buffer */
} t;
};
EXTERN S16 msOptInd;
EXTERN S8 *msOptArg;
EXTERN Txt **msArgv;
EXTERN S16 msArgc;
#else
#ifdef MSVER2 /* mos version 2 */
/* forward definitions */
#ifndef CMFILE_REORG_1
typedef struct ss_buffer Buffer; /* forward definition - buffer */
#endif
typedef struct sBuf SBuf; /* forward definition - static buffer */
typedef struct ss_queue Queue; /* forward definition - queue */
/* buffer identifier */
/* dynamic chain (4b ALIGNED) */
typedef struct dChn /* dynamic chain */
{
Buffer *prev; /* previous */
Buffer *crnt; /* current */
Buffer *next; /* next */
} DChn;
/* static chain (4b ALIGNED)*/
typedef struct sChn /* static chain */
{
SBuf *fwd; /* forward */
} SChn;
/* buffer queue (4b ALIGNED) */
typedef struct bufQ /* buffer queue */
{
DChn dChn; /* dynamic chain */
BufQLen crntSize; /* current size */
} BufQ;
/* queue (4b ALIGNED) */
struct ss_queue /* queue - typdef'd earlier */
{
DChn dChn; /* dynamic chain */
QLen crntSize; /* current size */
};
/* 4Byte aligned */
typedef struct ss_dat /* data buffer */
{
MsgLen strtIdx; /* start index (2b) */
MsgLen endIdx; /* end index (2b) */
MsgLen size; /* size (2b) */
Pool pool; /* size (1b); Not used for MOS as of now */
U8 spare; /* spare for alignment (1b) */
Data data[DSIZE]; /* data (4b) */
} Dat;
/* 4Byte aligned */
typedef struct ss_msg /* message buffer */
{
Queue bufQ; /* buffer queue */
Buffer *nxtDBuf; /* next DBuf */
MsgLen msgLen; /* message length */
Pool pool; /* size (1b); Not used for MOS as of now */
U8 spare; /* spare for alingment */
} Msg;
/* buffer - typedef'd earlier */
struct ss_buffer /* buffer - typedef'd earlier */
{
DChn dChn; /* dynamic chain */
S8 bufType; /* buffer type */
U8 spare1; /* spare for alignment */
U16 spare2; /* spare for alignment */
union
{
Dat dat; /* data buffer */
Msg msg; /* message buffer */
} t;
};
/* static buffer - typedef'd earlier */
struct sBuf /* static buffer - typedef'd earlier */
{
SChn sChn; /* static chain */
Size size; /* size */
S8 bufType; /* buffer type */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -