📄 v32cftbl.h
字号:
/***************************************************************************
*
* Copyright (c) 1993 READY SYSTEMS CORPORATION.
*
* All rights reserved. READY SYSTEMS' source code is an unpublished
* work and the use of a copyright notice does not imply otherwise.
* This source code contains confidential, trade secret material of
* READY SYSTEMS. Any attempt or participation in deciphering, decoding,
* reverse engineering or in any way altering the source code is
* strictly prohibited, unless the prior written consent of
* READY SYSTEMS is obtained.
*
*
* Module Name: %M%
*
* Identification: %Z% %I% %M%
*
* Date: %G% %U%
*
****************************************************************************
*/
/* VRTX32 emulator configuration table */
/* This header file is an internal file of VRTXsa;
* the external file intended to be used by SYSLIB, SYSINIT, etc.
* is in rtl/include/vrtxvisi.h, type CFTBL.
*/
#ifndef _V32CFTBL_H
#define _V32CFTBL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ansiprot.h>
#ifdef INTELx86
typedef struct
{
unsigned long offset;
unsigned short selector;
} CVT_PTR386;
#endif
/* Declare forward reference to VRTX32 emulator task control block */
struct v32_task;
struct v32_cvt {
unsigned char ready_max; /* highest Ready Systems component ID */
unsigned char user_max; /* highest use component ID */
short reserved1;
#ifdef INTELx86
unsigned long reserved2[5]; /* reserved */
struct {
CVT_PTR386 code_address;
CVT_PTR386 ws_address ;
} iox, fmx, rtl, component5, mpv, ifx, component8, component9, tnx;
#else
long reserved2[3];
struct {
char *codespace; /* component codespace address */
char *workspace; /* component workspace address */
} iox, fmx, rtl, component5, mpv, ifx, component8, component9, tnx;
#endif
};
struct v32_config {
#ifdef I386
unsigned short cfwssel; /* VRTX workspace selector */
char *cfwsaddr; /* workspace address */
unsigned cfwssize; /* VRTX workspace size */
unsigned short cfsstksz; /* system stack size per task */
unsigned short cfistksz; /* interrupt stack size */
unsigned short cfcbcount; /* maximum no. of control blks*/
unsigned short cfpartcount; /* partition count */
/* was reserved, must be zero */
unsigned short cfidle; /* idle task stack size */
unsigned short cfquecount; /* queue count */
short cfdislev; /* Reserved, must be 0 */
unsigned short cfustksz; /* user stack size per task */
unsigned short cfmaxtid; /* maximum task ID */
unsigned short cftarget; /* target type */
unsigned short cfutskct; /* user task count */
unsigned short cfoptions; /* configuration options */
void (*cftxrdy)(_ANSIPROT1(int /*char*/)); /* txrdy driver address */
unsigned short cftxrdy_sel; /* txrdy driver selector */
void (*cftcreate)(_ANSIPROT2(struct v32_task *, struct v32_task *));
/* hook routine address */
unsigned short cftcreate_sel;
void (*cftdelete)(_ANSIPROT2(struct v32_task *, struct v32_task *));
/* hook routine address */
unsigned short cftdelete_sel;
void (*cftswitch)(_ANSIPROT2(struct v32_task *, struct v32_task *));
unsigned short cftswitch_sel;
char *cfcvtaddr; /* component vector tbl ptr */
unsigned short cfcvtaddr_sel;
void (*cfdalo)(ANSIPROT0); /* descriptor allocation routine
pointer */
unsigned short cfdalo_sel;
#else
char *cfwsaddr; /* workspace address */
unsigned cfwssize; /* workspace size */
unsigned short cfsstksz; /* system stack size */
unsigned short cfistksz; /* interrupt stack size */
unsigned short cfcbcount; /* control block count */
unsigned short cfpartcount; /* partition count */
/* was reserved, must be zero */
unsigned short cfidle; /* idle task stack size */
unsigned short cfquecount; /* queue count */
/* was reserved, must be zero */
short cfdislev; /* component disable level */
unsigned short cfustksz; /* user stack size */
unsigned short cfmaxtid; /* maximum task ID */
unsigned short cftarget; /* target type */
unsigned short cfutskct; /* user task count */
unsigned short cfoptions; /* configuration options */
void (*cftxrdy)(_ANSIPROT1(int /*char*/)); /* txrdy driver address */
void (*cftcreate)(_ANSIPROT2(struct v32_task *, struct v32_task *));
/* hook routine address */
void (*cftdelete)(_ANSIPROT2(struct v32_task *, struct v32_task *));
/* hook routine address */
void (*cftswitch)(_ANSIPROT2(struct v32_task *, struct v32_task *));
/* hook routine address */
struct v32_cvt *cfcvtaddr; /* component vector table address */
short cfarsrvd; /* ARTX reserved field */
unsigned short cfentct; /* ARTX number of entries allocated per task */
unsigned short cfetbct; /* ARTX number of tasks using entry tables */
unsigned short cfmfrct; /* ARTX master frame control block count */
#endif
};
/* Configuration options */
#define V32_OPTION_PUTC 1 /* strict sc_putc compatibility */
#define V32_OPTION_MULTIKERNEL 2 /* run in multiple kernel environment */
#define V32_OPTION_C_TXRDY 4 /* txrdy driver written in C */
#define V32_OPTION_C_HOOKS 8 /* task create, delete, switch hooks written in C */
/* Mask of all supported configuration options */
#define V32_OPTION_ALL (V32_OPTION_PUTC|V32_OPTION_MULTIKERNEL|V32_OPTION_C_TXRDY|V32_OPTION_C_HOOKS)
#ifdef __cplusplus
}
#endif
#endif /* !_V32CFTBL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -