.ad 8
.bm 8
.fm 4
.bt $Copyright by   Software AG, 1993$$Page %$
.tm 12
.hm 6
.hs 3
.tt 1 $NME$Project Distributed Database System$vos00spc$
.tt 2 $$$
.tt 3 $R.Roedling$RTE OS/2 and WIN32 SP include module$1997-05-23$
***********************************************************
.nf


    ========== licence begin LGPL
    Copyright (C) 2002 SAP AG

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    ========== licence end

.fo
.nf
.sp
Module  : RTE_OS/2_and_WIN32_SP_include_module
=========
.sp
Purpose :
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :

.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :

.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :

.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : R.Roedling
.sp
.cp 3
Created : 1992-10-10
.sp
.cp 3
Version : 1994-01-27
.sp
.cp 3
Release :  6.2 	 Date : 1997-05-23
.br
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:

.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:

.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:

.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
/*PRETTY*/

#ifndef  VSP_ALREADY_INCLUDED
#define VSP_ALREADY_INCLUDED

// ========================== INCLUDE BLOCK ===================================


// --- INCLUDES ---------------------------------------------------------------

// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
//                                                                 //
//  #define FD_SETSIZE   (MAX_USERS + ((MAXLOCATIONS - 1) * 2))    //
//                                                                 //
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//

// #define FD_SETSIZE   (1024 + ((2048 - 1) * 2))


#if !defined(_WIN32)
 #include        <windows.h>
 #ifdef VIO_KBD
   #define            INCL_VIO
   #define            INCL_AVIO
   #define            INCL_MOU
   #define            INCL_KBD
   #define            INCL_WINSHELLDATA
 #endif
 #if defined(WINDOWCOMPAT)
  #define          INCL_WIN
  #define          INCL_GPI
  #define          INCL_WINTIMER
  #define          INCL_WININPUT
  #define          INCL_WINSHELLDATA
  #define          INCL_WINBUTTONS
  #define          INCL_WINDIALOGS
  #define          INCL_WINMESSAGEMGR
  #define          INCL_WINWINDOWMGR
  #define          INCL_WINMENUS
  #define          INCL_WINFRAMEMGR
  #define          INCL_WINSTDDRAG
 #endif

 #define           INCL_DOSDEVIOCTL
 #define           INCL_DOSEXCEPTIONS   /* Exception values */
 #define           INCL_DOSFILEMGR      /* File Manager values */
 #define           INCL_DOSMEMMGR       /* Memory Manager values */
 #define           INCL_DOSPROCESS      // starting of other programs
 #define           INCL_DOS
 #define           INCL_ERRORS
 #define           INCL_SUB

 #define LINE      _LINE
 #include          <os2.h>
 #undef LINE
#endif


// ========================== DEFINE BLOCK ====================================


// -------------------------- COMMON - DEFINES --------------------------------


#define MX_LINE                 132     /*vsp00*/
#define MX_PRLINE               256     /*vin00*/
#define MX_DBNAME               18      /*vsp00*/
#define MX_SQLPW                18      /*vsp00*/
#define MX_NODEID               64      /*vsp00*/


#define MAXARGLINELENGTH        132
#define MAXBUFFERLENGTH         4096
#define MAXERRORTEXT            40
#define MAXNAMELENGTH           18
#define MAXUSERIDLENGTH         18
#define MAXDEVNAMELENGTH        40
#define MAXVFNLENGTH            64

#define MAXINT4                 2147483647



// --- Disk IO ----------------------------------------------------------------

#define DEV_READ                0
#define DEV_WRITE               1

#define V2_OK                   0
#define V2_NOTOK                1
#define V2_NOSUPPORT            2

#define V2_DEV1                 0
#define V2_DEV2                 1
#define V2_DEV1_2               2

// --- VPTYPE -----------------------------------------------------------------

#define PT_RTE                  0
#define PT_UTILITY              1
#define PT_TIMEOUT              2
#define PT_USER                 3
#define PT_LOGWRITER1           4
#define PT_LOGWRITER2           5
#define PT_BUFWRITER            6
#define PT_SENDER               7
#define PT_RECEIVER             8
#define PT_SERVER               9
#define PT_BUFREADER            10

// --- VSHUTDOWN --------------------------------------------------------------

#define SHUTDOWN_KILL           0
#define SHUTDOWN_NORMAL         1
#define SHUTDOWN_REINIT         2


// -- VCOLD_RESULT ------------------------------------------------------------
#define VCOLD_OK                0


// -------------------------- KERNEL - DEFINES --------------------------------


// -------------------------- USER - DEFINES ----------------------------------

// --- Initialization ---------------------------------------------------------

#define OS_OS2                  4
#define OS_WIN32                3

// --- virtual terminal constants ---------------------------------------------

#define VT_MAX_SCREEN_CHARS     32767   // 0x7FFF
#define VT_MAX_SCREEN_LINES     32767   // 0x7FFF
#define VT_MAX_LINELENGTH       32767   // 0x7FFF

#define VT_LABEL_SIZE           8
#define VT_SK_NUMBER            9

// --- virtual terminal graphic constants -------------------------------------

#define VTG_VERTICAL_BAR        0x08
#define VTG_HORIZONTAL_BAR      0x14
#define VTG_L_RIGHT_CORNER      0x0B
#define VTG_U_RIGHT_CORNER      0x0C
#define VTG_L_LEFT_CORNER       0x10
#define VTG_U_LEFT_CORNER       0x11
#define VTG_LEFT_T              0x12
#define VTG_RIGHT_T             0x13
#define VTG_BOTTOM_T            0x1C
#define VTG_TOP_T               0x1D
#define VTG_CROSSING_LINES      0x1E
#define VTG_BLANK               ' '

// --- virtual terminal keystrokes -- pascal type VT_KEY ----------------------
enum {
  VT_UNKNOWN_KEY,
  VT_CHARACTER_KEY,
  VT_ENTER,
  VT_PF01,
  VT_PF02,
  VT_PF03,
  VT_PF04,
  VT_PF05,
  VT_PF06,
  VT_PF07,
  VT_PF08,
  VT_PF09,
  VT_PF10,
  VT_PF11,
  VT_PF12,
  VT_CLEAR,
  VT_DO_KEY,
  VT_SK01,
  VT_SK02,
  VT_SK03,
  VT_SK04,
  VT_SK05,
  VT_SK06,
  VT_SK07,
  VT_SK08,
  VT_SK09,
  VT_HELP_KEY,
  VT_UP_KEY,
  VT_DOWN_KEY,
  VT_LEFT_KEY,
  VT_RIGHT_KEY,
  VT_CMD_KEY,
  VT_PICK_KEY,
  VT_PUT_KEY,
  VT_MARK_KEY,
  VT_SELECT_KEY,
  VT_MOVE_KEY,
  VT_COPY_KEY,
  VT_INSERT_KEY,
  VT_DELETE_KEY,
  VT_TOP_KEY,
  VT_BOTTOM_KEY,
  VT_CANCEL_KEY,
  VT_UNDO_KEY,
  VT_END_KEY,
  VT_ESCAPE_KEY,
  VT_FILL,
  VT_FILE_OPEN,
  VT_FILE_SAVE,
  VT_EXIT,
  VT_PRINT,
  VT_FIND,
  VT_REPLACE,
  VT_CURSOR_UP,
  VT_CURSOR_DOWN,
  VT_CURSOR_RIGHT,
  VT_CURSOR_LEFT,
  VT_CURSOR_HOME,
  VT_CURSOR_END,
  VT_NEXT_FIELD,
  VT_PREV_FIELD,
  VT_INSERT_CHAR,
  VT_DELETE_CHAR,
  VT_RUBOUT,
  VT_DEL_EOF,
  VT_MOUSE_DOWN,
  VT_MOUSE_UP,
  VT_MOUSE_MOVE,
  VT_MOUSE_DBL,
  VT_HSCROLL,
  VT_VSCROLL,
  VT_CONTROL_KEY,
  VT_CURSOR_BOL,
  VT_CURSOR_EOL,
  VT_LAST_KEY
  };

// --- virtual terminal attributes -- pascal type VT_MODE ---------------------

enum {
  VT_BRIGHT,
  VT_INVERSE,
  VT_UNDERLINE,
  VT_BLINK,
  VT_INVISIBLE,
  VT_MIXED,
  VT_GRAYED,
  VT_LAST_MODE
  };

// --- virtual terminal colors -- pascal type VT_COLOR ------------------------

enum {
  VT_DEFAULT_COLOR,
  VT_WHITE,
  VT_BLACK,
  VT_RED,
  VT_GREEN,
  VT_YELLOW,
  VT_BLUE,
  VT_PINK,
  VT_LIGHT_BLUE,
  VT_LAST_COLOR
  };

// --- virtual terminal usage mode -- pascal type VT_USAGE_MODE ---------------

enum {
  VT_FORM,
  VT_EDIT
  };

// --- virtual terminal softkey types -- pascal type SK_LABEL_TYPE ------------

enum {
  NO_SK_LABELS,
  SHORT_SK_LABELS,
  LONG_SK_LABELS
  };

// --- Virtual file --- OPCODES ------------------------------------------------

#define VREAD                   0
#define VWRITE                  1
#define VAPPEND                 2
#define VOVERWRITE              3
#define VREAD_ORA               4

// --- Virtual file --- VF_FORMAT ---------------------------------------------

#define VF_PLAINTEXT            0
#define VF_RECORD               1
#define VF_STREAM               2
#define VF_UNKNOWN              3
#define VF_4K_BLOCK             4

// --- Virtual file --- VF_RETURN ---------------------------------------------

#define VF_OK                   0
#define VF_NOTOK                1
#define VF_EOF                  2
#define VF_NOSEEK               3

// --- Virtual file --- VF_RESOURCE -------------------------------------------

#define VF_STACK                0
#define VF_BUFFERPOOL           1

// --- math --- ---------------------------------------------------------------

typedef char                            tsp_num_error ;
#define         num_ok                  0
#define         num_trunc               1
#define         num_overflow            2
#define         num_invalid             3
#define         num_incompatible        4
#define         num_missing_addr        5

// --- ASYNC_IO ------- VA_RETURN ---------------------------------------------
#define VA_OK                   0
#define VA_NOTOK                1
#define VA_EOF                  2
#define VA_WAIT_FIRST           3

// --- Virtual printer --------------------------------------------------------

#define VP_NOLF                0
#define VP_ONELF               1
#define VP_TWOLF               2
#define VP_THREELF             3
#define VP_PAGE                4

// --- SQLEXEC ----------------------------------------------------------------

#define SQLEXEC_QUEUE_NAME      "\\QUEUES\\SQLEXEC"

#define ASYNC                   0
#define SYNC_NEW_SESSION        1
#define SYNC_SAME_SESSION       2

#define E_OK                    0
#define E_NOTOK                 1
#define E_NO_EXEC               2
#define E_NO_ASYNC              3
#define E_NO_SYNC               4
#define E_NO_SYNC_NEW           5
#define E_NO_SYNC_SAME          6

#define MX_EXECPROG             64
#define MX_EXECLINE             512


// --- Components defines -----------------------------------------------------

#define COMP_PRECOMPILER        0
#define COMP_PC_RUNTIME         1
#define COMP_EASY               2
#define COMP_QUERY              3
#define COMP_DIALOG             4
#define COMP_APPL               5
#define COMP_LOAD               6
#define COMP_UTILITY            7
#define COMP_AUDIT              8
#define COMP_USER               9
#define COMP_PARAM              10


// --- Crypt defines ----------------------------------------------------------

#define MAX_CRYPT               6
#define MAXCRYPTNAMELENGTH      6
#define MAXCRYPTPWLENGTH        24



// --- SQLUSER ----------------------------------------------------------------

#define DEFAULT_USER            "DEFAULT           "
#define INFO_XUSER_PAGE         0
#define EOF_XUSER_PAGE          -99
#define MX_XUSER_ENTRIES        32
#define INFO_OK                 0
#define INFO_ILLEGAL_USER       1
#define INFO_ILLEGAL_COMPONENT  2


// ========================== MACRO BLOCK =====================================


// -------------------------- COMMON - MACROS ---------------------------------


// -------------------------- KERNEL - MACROS ---------------------------------


// -------------------------- USER - MACROS -----------------------------------


// ========================== TYPES BLOCK =====================================


// -------------------------- COMMON - TYPES ----------------------------------

typedef unsigned                CINT;
typedef char                    INT1;
typedef char*                   PINT1;         // Markus
typedef unsigned char           UINT1;
typedef unsigned char*          PUINT1;
typedef short                   INT2;
typedef short*                  PINT2;          // Markus
typedef unsigned short          UINT2;
typedef long                    INT4;
typedef INT4*                   PINT4;
typedef unsigned long           UINT4;
typedef unsigned char           BOOLEAN;
typedef BOOLEAN                 *PBOOLEAN;
typedef unsigned char           enum1;
typedef float                   FLOAT4;
typedef double                  FLOAT8;
typedef FLOAT4                  tsp_shortreal ;
typedef FLOAT8                  tsp_longreal ;
typedef char                    C1    [ 1   ];
typedef char                    C2    [ 2   ];
typedef char                    C3    [ 3   ];
typedef char                    C4    [ 4   ];
typedef char                    C8    [ 8   ];
typedef char                    C8C   [ 9   ];
typedef char                    C9    [ 9   ];
typedef char                    C10   [ 10  ];
typedef char                    C12   [ 12  ];
typedef char                    C16   [ 16  ];
typedef char                    C18   [ 18  ];
typedef char                    C18C  [ 19  ];
typedef char                    C19   [ 19  ];
typedef char                    C20   [ 20  ];
typedef char                    C24   [ 24  ];
typedef char                    C40   [ 40  ];
typedef char                    C40C  [ 41  ];
typedef char                    C64   [ 64  ];
typedef char                    C64C  [ 65  ];
typedef char                    C80   [ 80  ];
typedef char                    C80C  [ 81  ];
typedef char                    C132  [ 132 ];
typedef char                    C132C [ 133 ];
typedef char                    C256  [ 256 ];
typedef char                    C256C [ 257 ];
typedef char                    argline [ MAXARGLINELENGTH ];
typedef CHAR                    BUFFER [ MAXBUFFERLENGTH ];
typedef char                    ERRORTEXT [ MAXERRORTEXT ];
typedef char                    LINE  [ MX_LINE ];
typedef char                    NAME  [ MAXNAMELENGTH ];
typedef char                    NAMEC [ MAXNAMELENGTH + 1 ];
typedef char                    SQL_DBNAME  [ MX_DBNAME ];
typedef char                    SQL_DBNAMEC [ MX_DBNAME + 1 ];
typedef char                    SQL_NODEID  [ MX_NODEID ];
typedef char                    SQL_NODEIDC [ MX_NODEID + 1 ];
typedef char                    SQL_PASSWORD  [ MX_SQLPW ];         /*vsp00*/
typedef char                    SQL_PASSWORDC [ MX_SQLPW + 1 ];     /*vsp00*/


// --- Disk IO ----------------------------------------------------------------

typedef enum1                   IO_OP_CODE;
typedef enum1                   V2_RETURN;
typedef enum1                   V2_DEVNO;
typedef INT4                    PAGE_NO;

typedef IO_OP_CODE              tsp_io_op_code;
typedef V2_RETURN               tsp_v2_return;
typedef V2_DEVNO                tsp_v2_devno;
typedef PAGE_NO                 tsp_page_no;

// --- VPTYPE -----------------------------------------------------------------

typedef enum1                   PROCESS_TYPE;

// --- VSHUTDOWN --------------------------------------------------------------

typedef enum1                   SHUTDOWN_MODE;

// --- VCOLD ------------------------------------------------------------------

typedef enum1                   VCOLD_RESULT;


// -------------------------- KERNEL - TYPES ----------------------------------

// --- kernel communication ---------------------------------------------------

typedef enum1                           tsp_comm_error;
#define         SQLOK                   0
#define         SQLNOTOK                1
#define         SQLTASKLIMIT            2
#define         SQLTIMEOUT              3
#define         SQLCRASH                4
#define         SQLSTART_REQUIRED       5
#define         SQLSHUTDOWN             6
#define         SQLSEND_LINE_DOWN       7
#define         SQLRECEIVE_LINE_DOWN    8
#define         SQLPACKETLIMIT          9
#define         SQLRELEASED             10
#define         SQLWOULDBLOCK           11

typedef enum1                           SQL_SERVICE;
#define         SQL_USER                0
#define         SQL_ASYNC_USER          1
#define         SQL_UTILITY             2
#define         SQL_DISTRIBUTION        3
#define         SQL_CONTROL             4

typedef SQL_SERVICE                     *PSQL_SERVICE;

typedef struct rte_comm_record
  {
  BOOLEAN                       to_cancel;
  BOOLEAN                       rte_fill1;
  INT2                          rte_fill2;
  INT4                          file_root;
  INT4                          file_record_cnt;
  } RTE_COMM_REC;

typedef RTE_COMM_REC            *PRTE_COMM_REC;

// --- inline console ---------------------------------------------------------

typedef enum1                           PROCESS_STATE;
#define         PS_SESSION_WAIT         0
#define         PS_COMMAND_WAIT         1
#define         PS_IO_WAIT              2
#define         PS_SYSTEM_RESOURCE_WAIT 3
#define         PS_USER_LOCK_WAIT       4
#define         PS_REGION_WAIT          5
#define         PS_RUNNING              6
#define         PS_SLEEPING             7

typedef enum1                           DATABASE_STATE;
#define         COLD                    0
#define         WARM                    1

// --- kernel task relocation record ------------------------------------------

typedef struct rte_relocation_record
  {
  INT4                            acv_pointer;
  INT4                            tak_pointer;
  INT4                            relocationvalue;
  BOOLEAN                         relocated;
  BOOLEAN                         rel_fill;
  INT2                            rel_fill1;
  INT4                            rte_swap1_start;
  INT4                            rte_swap1_length;
  INT4                            rte_swap2_start;
  } RTE_RELOCATION_REC;

typedef RTE_RELOCATION_REC      *PRTE_RELOCATION_REC;


// -------------------------- USER - TYPES ------------------------------------

// --- SQL_CHARSETNAME --------------------------------------------------------

typedef C18                     SQL_CHARSETNAME;

// --- Initialization ---------------------------------------------------------

typedef enum1                   SQL_OS;
typedef C64                     SQL_COMP_NAME;

// --- Crypt types ------------------------------------------------------------

typedef INT4                    CRYPTNAME [ MAX_CRYPT ];
typedef CRYPTNAME*              PCRYPTNAME;
typedef CHAR                    CRYPTPW   [ MAXCRYPTPWLENGTH ];
typedef CHAR                    CRYPTPWC  [ MAXCRYPTPWLENGTH + 1 ];

// --- XPARAM --> XP_ ---------------------------------------------------------
#define  XP_FLUSH               1

typedef unsigned char           XP_RETURNCODE;
typedef XP_RETURNCODE*          XP_PRETURNCODE;

typedef INT4                    XP_HFILE;
typedef INT4*                   XP_PHFILE;

// --- Virtual terminal -------------------------------------------------------

typedef enum1                   VT_KEY;
typedef enum1                   VT_LOCAL_FUNCTION;
typedef enum1                   VT_MODE;
typedef enum1                   VT_USAGE_MODE;
typedef enum1                   VT_COLOR;
typedef enum1                   VT_MARK;
typedef enum1                   VT_SK_LABEL_TYPE;
typedef enum1                   VT_DBCS_TYPE;

typedef char                    VT_LABEL  [ VT_LABEL_SIZE ];
typedef char                    VT_LABELC [ VT_LABEL_SIZE + 1 ];

// --- Virtual file -----------------------------------------------------------

typedef enum1                   OPCODES;
typedef enum1                   VF_FORMAT;
typedef enum1                   VF_RETURN;
typedef enum1                   VF_RESOURCE;
typedef enum1                   tsp_vf_type ;

typedef OPCODES                 tsp_opcodes;
typedef VF_FORMAT               tsp_vf_format;
typedef VF_RETURN               tsp_vf_return;
typedef VF_RESOURCE             tsp_vf_resource;

typedef BUFFER                  VF_BLOCK;
typedef CHAR                    * VF_BUFFERADDRESS;
typedef CHAR                    VF_FILENAME  [ MAXVFNLENGTH ];

// --- ASYNC_IO ---------------------------------------------------------------

typedef CHAR                    VFILENAME[ MAXVFNLENGTH ];
typedef CHAR                    VFILENAMEC[ MAXVFNLENGTH + 1 ];
typedef enum1                   VA_RETURN;

// --- Virtual printer --------------------------------------------------------

typedef enum1                   VP_LINEFEEDS;
typedef char                    PRLINE [ MX_PRLINE ];
typedef C64                     PRINTERNAME;
typedef C64C                    PRINTERNAMEC;

// --- SQLEXEC ----------------------------------------------------------------

typedef enum1                   EXEC_MODE;
typedef enum1                   EXEC_RETURN;
typedef enum1*                  PEXEC_RETURN;
typedef char                    EXEC_LINE      [ MX_EXECLINE ];
typedef char                    EXEC_LINEC     [ MX_EXECLINE + 1 ];
typedef char                    EXEC_PROGNAMEC [ MX_EXECPROG + 1 ];

// --- Dynamic Storage Management ---------------------------------------------

typedef char*                   OBJECT;
typedef OBJECT*                 POBJECT;

// ========================== PROTOTYPES BLOCK ================================


// -------------------------- PROTOTYPES - KERNEL -----------------------------

// --- VOS50KC ----------------------------------------------------------------

VOID                   vabort            ( BOOLEAN write_crash_dump );
VOID                   _vabort           ( BOOLEAN write_crash_dump, ULONG ulLine, PSZ pszModule );

// --- VOS51KC ----------------------------------------------------------------

VOID                   vinitok           ( VOID );

VOID                   vgetpid           ( PROCESS_ID          *pid );
VOID                   vptype            ( PROCESS_ID          pid,
                                           PROCESS_TYPE        *proc_type );
VOID                   vversion          ( C40                 kernelversion,
                                           C40                 lzuversion );
VOID                   vos               ( UINT1               *os );
VOID                   vinit             ( PRTE_COMM_REC       *rte_comm_ptr,
                                           INT2                len );
VOID                   vrestart          ( PROCESS_ID          pid,
                                           tsp2_devnameC       sysdevspace );
VOID                   vbrelease         ( PROCESS_ID          pid );
VOID                   vfinish           ( VOID );
VOID                   vshutdown         ( PROCESS_ID          pid,
                                           SHUTDOWN_MODE       mode );

// --- VOS52KC ----------------------------------------------------------------

VOID                   vclock            ( tsp_int4        *Sec,
                                           tsp_int4        *MicroSec);
VOID                   vtimestamp        ( CHAR            *pStamp);
VOID                   vdattime          ( PCHAR           pDate,
                                           PCHAR           pTime );
// --- VOS53KC ----------------------------------------------------------------

VOID                   vconnect          ( PROCESS_ID      pid,
                                           tsp_int4        * max_data_len,
                                           tsp_comm_error  * returncode );

tsp_int4               vcmd_wait_time    ( PROCESS_ID      pid );

VOID                   vreceive          ( PROCESS_ID     pid,
                                           tsp_int4       timeout,
                                           char           ** rcv_packet_ptr,
                                           tsp_int4       * rcv_packet_length,
                                           char           ** rpl_packet_ptr,
                                           tsp_int4       * rpl_packet_size,
                                           tsp_comm_error * returncode );

VOID                   vreply            ( PROCESS_ID      pid,
                                           char            * res_packet_ptr,
                                           tsp_int4        res_packet_length,
                                           tsp_comm_error  * returncode );

VOID                   vrelease          ( PROCESS_ID      pid );

// --- VOS54KC ----------------------------------------------------------------
#ifndef NEW
typedef                signed char  tsp2_dev_type ;
#endif

VOID                   vdevsize          ( tsp_int4       type_spec_devno,
                                           tsp2_dev_type  devtype,
                                           tsp_int4        *devcapacity,
                                           tsp_errtext     errtext,
                                           BOOLEAN         *ok );

VOID                   v2info            ( tsp_int4        devno1,
                                           tsp_int4        devno2,
                                           tsp_errtext     errtext,
                                           V2_RETURN       *rtc );

VOID                   vattach           ( tsp_int4       type_spec_devno,
                                           tsp2_dev_type  devtype,
                                           tsp_int4       * devno,
                                           PROCESS_ID     pid,
                                           tsp_errtext    errtext,
                                           BOOLEAN        * ok );

VOID                   vdetach           ( tsp_int4        devno,
                                           PROCESS_ID      pid );

VOID                   v2blckio          ( tsp_int4        devno1,
                                           tsp_int4        devno2,
                                           PAGE_NO         devpno,
                                           IO_OP_CODE      op_code,
                                           BUFFERADDRESS   bufadr,
                                           INT2            buf_count,
                                           PROCESS_ID      pid,
                                           V2_DEVNO        * read_dev,
                                           V2_DEVNO        * error_dev,
                                           tsp_errtext     errtext1,
                                           tsp_errtext     errtext2,
                                           BOOLEAN         * ok );

VOID                   vblockio          ( tsp_int4        devno,
                                           PAGE_NO         devpno,
                                           IO_OP_CODE      op_code,
                                           BUFFERADDRESS   bufadr,
                                           INT2            buf_count,
                                           PROCESS_ID      pid,
                                           tsp_errtext     errtext,
                                           BOOLEAN         * ok );

VOID                   vmark_bad_dev     ( INT4              devno,
                                           PAGE_NO           devpno ) ;

tsp_int4               vget_data_io_cnt  ( VOID ) ;
VOID                   vdump_rte         ( VOID );

// --- VOS55KC ----------------------------------------------------------------

VOID                   vsemaphid         ( C8              semaname,
                                           REGION_ID       *sid );

BOOLEAN                visexcl           ( PROCESS_ID      pid,
                                           REGION_ID       sid );

VOID                   vbegexcl          ( PROCESS_ID      pid,
                                           REGION_ID       sid );

VOID                   vendexcl          ( PROCESS_ID      pid,
                                           REGION_ID       sid );

// --- VOS56KC ----------------------------------------------------------------

VOID                   vsuspend          ( PROCESS_ID      pid,
                                           INT1            suspend_level,
                                           INT2            suspend_reason );
VOID                   vresume           ( PROCESS_ID      pid,
                                           INT1            suspend_level);
VOID                   vwait             ( PROCESS_ID      pid,
                                           BOOLEAN         *ok );
VOID                   vsignal           ( PROCESS_ID      pid,
                                           BOOLEAN         ok );
VOID                   vsleep            ( PROCESS_ID      pid,
                                           INT2            limit );


// --- VOS57KC ----------------------------------------------------------------

VOID                   vnewbuf           ( tsp_int4        count,
                                           tsp_int4        *available,
                                           BUFFERADDRESS   *bufptr,
                                           BOOLEAN         *ok );

VOID                   vallocat          ( tsp_int4        length,
                                           PUCHAR          *objptr,
                                           BOOLEAN         *ok);

VOID                   vmalloc           ( tsp_int4        length,
                                           PUCHAR          *objptr,
                                           BOOLEAN         *ok );

VOID                   vmfree            ( PUCHAR          objptr );

VOID                   vmnewbuf          ( tsp_int4        count,
                                           BUFFERADDRESS   *bufptr,
                                           BOOLEAN         *ok );

VOID                   vmfreebuf         ( BUFFERADDRESS   bufptr );

// --- VOS58KC ----------------------------------------------------------------

VOID                   vdiaginit         ( BOOLEAN         *traceflag,
                                           BOOLEAN         *dumpflag,
                                           tsp2_devnameC   vtracename,
                                           tsp_int4        *vtracesize,
                                           VF_FILENAME     vdumpname );

// --- VOS59KC ----------------------------------------------------------------

VOID                   vexec             ( EXEC_LINE     command,
                                           EXEC_RETURN   *exec_ret,
                                           tsp_errtext   err_text );

// --- VOS60KC ----------------------------------------------------------------

VOID                   vopmsg            ( INT2            prio,
                                           INT2            msgtype,
                                           tsp_int4        npar1,
                                           tsp_int4        npar2,
                                           C64             spar,
                                           C64             msgline );

// --- VOS62KC ----------------------------------------------------------------

VOID                   vcreate           ( PROCESS_TYPE    proc_type,
                                           PROCESS_ID      *pid,
                                           BOOLEAN         *ok );

VOID                   vkill             ( PROCESS_ID      pid );

// --- VOS63KC ----------------------------------------------------------------

VOID                   vnrestart         ( PROCESS_ID       pid );


VOID                   vnshutdown        ( PROCESS_ID       pid );

VOID                   vnreceive         ( PROCESS_ID       pid,
                                           tsp_int4         * pathid,
                                           char             ** rcv_packet_ptr,
                                           tsp_int4         * rcv_packet_length,
                                           tsp_int4         rcv_timeout,
                                           tsp_comm_error   * returncode,
                                           tsp_errtext      errtext );
VOID                   vnclear           ( PROCESS_ID       pid,
                                           tsp_int4         pathid );

VOID                   vnopen            ( PROCESS_ID       pid,
                                           SQL_NODEID       target_node,
                                           SQL_DBNAME       target_db,
                                           tsp_int4         * max_data_len,
                                           char             ** req_packet_ptr,
                                           tsp_int4         * pathid,
                                           tsp_comm_error   * returncode,
                                           tsp_errtext      errtext );
VOID                   vnrequest         ( PROCESS_ID       pid,
                                           tsp_int4         pathid,
                                           PCHAR            req_packet_ptr,
                                           tsp_int4         req_packet_length,
                                           tsp_comm_error   *returncode,
                                           tsp_errtext      errtext );
VOID                   vnclose           ( PROCESS_ID       pid,
                                           tsp_int4         pathid,
                                           tsp_comm_error   * returncode,
                                           tsp_errtext      errtext );

// --- VOS64KC ----------------------------------------------------------------

VOID                   vdelay_lw         ( PROCESS_ID      pid );

VOID                   vprio             ( PROCESS_ID      pid,
                                           BYTE            prio,
                                           BOOLEAN         set_prio );

// --- VOS65KC ----------------------------------------------------------------

VOID                   vasynopen         ( VFILENAME       hostfile,
                                           BOOLEAN         is_devspace,
                                           BOOLEAN         for_writing,
                                           tsp_vf_type     filetype,
                                           tsp_int4        block_size,
                                           tsp_int4        * max_blockcount,
                                           tsp_int4        * hostfileno,
                                           VA_RETURN       * error,
                                           tsp_errtext     errtext );

VOID                   vasynclose        ( tsp_int4        hostfileno,
                                           BOOLEAN         rewind,
                                           BOOLEAN         nxt_in_autoloader,
                                           VF_RETURN       * nxt_tape_available,
                                           VA_RETURN       * error,
                                           tsp_errtext     errtext );

VOID                   vasynio           ( tsp_int4        hostfileno,
                                           tsp_int4        io_id,
                                           tsp_int4        file_pos,
                                           tsp_int4        io_block_cnt,
                                           BUFFERADDRESS   io_block_ptr,
                                           VA_RETURN       * error,
                                           tsp_errtext     errtext );

VOID                   vasynwait         ( tsp_int4        hostfileno,
                                           tsp_int4        * io_id,
                                           tsp_int4        * io_block_cnt,
                                           VA_RETURN       * error,
                                           tsp_errtext     errtext );

VOID                   vasyninit_tape    ( tsp_int4        deviceno,
                                           BOOLEAN         destructive, 
                                           tsp_vf_type     * filetype,
                                           VA_RETURN       * error,
                                           tsp_errtext     errtext );
// --- VOS66KC ----------------------------------------------------------------

VOID                   xcancel           ( PROCESS_ID          pid );

VOID                   xkill             ( PROCESS_ID          pid );

VOID                   xio               ( tsp2_devnameC       devspace,
                                           tsp_int4            * size,
                                           tsp_int4            * readcount,
                                           tsp_int4            * writecount );

VOID                   xstorage          ( tsp_int4            * codesize,
                                           tsp_int4            * datasize,
                                           tsp_int4            * stacksize,
                                           tsp_int4            * taskcount,
                                           tsp_int4            * unused );

VOID                   xprocess          ( PROCESS_ID          pid,
                                           PROCESS_ID          * uid,
                                           PROCESS_TYPE        * ptype,
                                           PROCESS_STATE       * pstate,
                                           C8                  semaname,
                                           tsp_int4            * timeout,
                                           tsp_int4            * commandcount,
                                           tsp_int4            * file_root,
                                           tsp_int4            * file_record_cnt );

VOID                   xversion          ( C40                 kernelversion,
                                           C40                 runtimeversion );

VOID                   xregions          ( REGION_ID           sid,
                                           C8                  semaname,
                                           tsp_int4            * semcalls,
                                           tsp_int4            * collisions );

VOID                   xstate            ( DATABASE_STATE      * dbstate );

// --- VOS69KC ----------------------------------------------------------------

VOID                   vcinit            ( PROCESS_ID      pid );

VOID                   vccheck           ( PROCESS_ID      pid,
                                           tsp_int4        *time );

VOID                   vioinit           ( PROCESS_ID      pid );

VOID                   viocheck          ( PROCESS_ID      pid,
                                           tsp_int4        *no );

VOID                   vsinit            ( VOID );

VOID                   vscheck           ( tsp_int4        *stackused);

VOID                   vmonitor          ( PROCESS_ID      pid,
                                           tsp_int4        *phys_ios,
                                           tsp_int4        *suspends,
                                           tsp_int4        *waits );

// -------------------------- PROTOTYPES - USER -------------------------------

// --- VOS01UC - ( Initialization ) -------------------------------------------

VOID sqlinit             ( SQL_COMP_NAME             psComponent,
                           PBOOLEAN                  pbCancelAddress );

VOID sqlfinish           ( BOOLEAN                   bTerminate );

VOID sqluid              ( PROCESS_ID*               uid );

VOID sqlos               ( PUINT1                    pOS );

VOID sqlresult           ( UINT1                     uResult );

VOID sqlsleep            ( INT2                      limit );

VOID sqlgetenv           ( C64                       envname,
                           C64                       envvalue,
                           BOOLEAN                   *envfound );

// --- VOS03UC - ( Communication ) --------------------------------------------

VOID sqlaconnect         ( PROCESS_ID                pid,
                           SQL_NODEID                servernode,
                           SQL_DBNAME                serverdb,
                           SQL_SERVICE               service,
                           INT4                      packet_cnt,
                           INT4                      *reference,
                           INT4                      *sql_packet_size,
                           PVOID                     sql_packet_list[],
                           ERRORTEXT                 errtext,
                           tsp_comm_error            *returncode );

VOID sqlarelease         ( INT4                      reference );

VOID sqlarequest         ( INT4                      reference,
                           PVOID                     sql_packet_addr,
                           INT4                      sql_packet_length,
                           ERRORTEXT                 errtext,
                           tsp_comm_error            * returncode );

VOID sqlareplyavailable  ( INT4                      reference,
                           ERRORTEXT                 errtext,
                           tsp_comm_error            * returncode );

VOID sqlareceive         ( INT4                      reference,
                           PVOID                     * res_packet_ptr,
                           INT4                      * res_packet_length,
                           ERRORTEXT                 errtext,
                           tsp_comm_error            * returncode );

VOID sqlacancel          ( INT4                      reference );


VOID sqladump            ( VOID );


// --- VOS05UC - ( Virtual Printer ) ------------------------------------------

VOID    sqlpon      (   PRINTERNAME     printer,
                        BOOLEAN*        vpok        );

VOID    sqlprint    (   PRLINE          line,
                        INT2            length,
                        VP_LINEFEEDS    lfeeds,
                        tsp_errtext     errtext,
                        BOOLEAN*        vpok        );

VOID    sqlpoff     (   BOOLEAN*        print,
                        tsp_errtext     errtext,
                        BOOLEAN*        vpok        );

// --- VOS06UC ----------------------------------------------------------------

VOID    sqlfinit    (   INT2                buf_pool_size,
                        tsp_int4            *poolptr,
                        BOOLEAN*            ok              );

VOID    sqlfopen    (   VF_FILENAME         vf_filename,
                        OPCODES             direction,
                        VF_RESOURCE         resource,
                        tsp_int4            *hostfileno,
                        VF_FORMAT*          format,
                        tsp_int4            *rec_len,
                        tsp_int4            poolptr,
                        INT2                buf_count,
                        VF_BUFFERADDRESS*   block,
                        VF_RETURN*          error,
                        tsp_errtext         errtext         );

VOID    sqlfclose   (   tsp_int4            *hostfileno,
                        BOOLEAN             erase,
                        tsp_int4            poolptr,
                        INT2                buf_count,
                        VF_BUFFERADDRESS    block,
                        VF_RETURN*          error,
                        tsp_errtext         errtext         );

VOID    sqlfread    (   tsp_int4            *hostfileno,
                        VF_BUFFERADDRESS    block,
                        tsp_int4            *length,
                        VF_RETURN*          error,
                        tsp_errtext         errtext         );

VOID    sqlfwrite   (   tsp_int4            *hostfileno,
                        VF_BUFFERADDRESS    block,
                        tsp_int4            length,
                        VF_RETURN*          error,
                        tsp_errtext         errtext         );

VOID    sqlfseek    (   PINT4               plHostFileNo,
                        tsp_int4            lFilePos,
                        VF_RETURN*          peError,
                        tsp_errtext         acErrorText     );

VOID    sqlferase   (   VF_FILENAME         acFileName,
                        VF_RETURN*          peError,
                        tsp_errtext         acErrorText     );

// --- VOS08UC - ( SQLEXEC ) --------------------------------------------------

VOID    sqlexec (   EXEC_LINE       pszCommand,
                    EXEC_MODE       eMode,
                    PEXEC_RETURN    eResult,
                    tsp_errtext     psErrMsg,
                    PINT2           fProgResult     );

// --- VOS11UC - XPARAM Modul -------------------------------------------------

void    sqlxpopenxparam     (   SQL_DBNAME      acServerDB,
                                tsp_int4        MaxParams,
                                XP_PHFILE       plXParamFd,
                                tsp_errtext     acErrorText,
                                PBOOLEAN        pbOk                );
void    sqlxpclosexparam    (   XP_HFILE        lXParamFd,
                                BOOLEAN         fFlush,
                                tsp_errtext     acErrorText,
                                PBOOLEAN        pbOk                );
void    sqlputxparam        (   XP_HFILE        lXParamFd,
                                XP_KEY_TYPE     acXParamKey,
                                XP_PVALUE_REC   prcXParamValue,
                                tsp_errtext     acErrorText,
                                XP_PRETURNCODE  pucXParamReturnCode );
void    sqlgetxparam        (   XP_HFILE        lXParamFd,
                                XP_KEY_TYPE     acXParamKey,
                                XP_PVALUE_REC   prcXParamValue,
                                tsp_errtext     acErrorText,
                                XP_PRETURNCODE  pucXParamReturnCode );
void    sqlgnextxparam      (   XP_HFILE        lXParamFd,
                                XP_KEY_TYPE     acXParamKey,
                                XP_KEY_TYPE     acXParamNextKey,
                                XP_PVALUE_REC   prcXParamValue,
                                tsp_errtext     acErrorText,
                                XP_PRETURNCODE  pucXParamReturnCode );
void    sqldelxparam        (   XP_HFILE        lXParamFd,
                                XP_KEY_TYPE     acXParamKey,
                                tsp_errtext     acErrorText,
                                XP_PRETURNCODE  pucXParamReturnCode );

// --- VOS21 - ( CRYPT ) ------------------------------------------------------

VOID    sql21put_name       (   C18         acToCryptName,
                                CRYPTNAME   alCryptName     );

VOID    sql21write_crypt    (   tsp_int4    lZahl,
                                C20         acErgebnis      );

INT4    sql21read_crypt     (   C20         acReCryptName   );

// --- VOS40UC - ( Abort and Exit Functions ) ---------------------------------

VOID    sqlabort    (   VOID    );

// --- VOS69UC - ( accounting ) -----------------------------------------------

VOID    vcinit      (   PROCESS_ID  pid   );
VOID    vccheck     (   PROCESS_ID  pid, INT4 *cputime   );

VOID    vsinit      (   VOID   );

VOID    vscheck     (   INT4 *stackused   );


// ============================== ENDE ========================================

#endif // --- VSP_ALREADY_INCLUDED
.CM *-END-* code ----------------------------------------
.SP 2
***********************************************************
.PA
