open-insight/SYSPROG/STPROCINS/STRUCT_EQUATES.txt
2024-03-25 15:17:34 -07:00

151 lines
6.7 KiB
Plaintext

compile insert Struct_Equates
/*
** Copyright (C) 1992-2017 Revelation Software Inc. All Rights Reserved **
Author cp
Date 21 Nov 1994
Purpose Equates for use with C-structure functions
Comments
========
Amended Date Reason
======= ==== ======
Mr C 01 Dec 21 Added STRUCT_FLD_COMMENTS$
Mr C 28 Jun 17 Added STRUCT_FLD_ALIGNMENT$
Mr C 30 Mar 17 Fixed bad type equate
bzs 24 Mar 17 Added fields for alignment
Mr C 17 Feb 17 Updated for v10
cp 15 Oct 97 Updated for 3.5
cp 28 Jan 96 Updated for Hoffa project
*/
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _STRUCT_EQUATES_
#define _STRUCT_EQUATES_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
* structure functions
declare function Struct_Def ;* def = Struct_Def(name)
declare subroutine Struct_Flush ;* Struct_Flush(name) or Struct_Flush()
declare function Struct_Len ;* len = Struct_Len(name)
declare function Blank_Struct ;* struct = Blank_Struct(name)
declare function Build_Struct ;* struct = Build_Struct(name, ...)
declare subroutine Parse_Struct ;* Parse_Struct(struct, name, ...)
declare function Var_To_Struct ;* struct = Var_To_Struct(var, name)
declare function Struct_To_Var ;* var = Struct_To_Var(struct, name)
declare function Define_Struct ;* ret = Define_Struct(instruction, ...)
declare subroutine Define_Struct ;* Define_Struct(instruction, ...)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
common /%%_struct_com%%/ structInit@, structHashTable@, structVar2@, structVar3@
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
* fields in each structure record
equ STRUCT_TOT_LEN$ to 1 ;* length (in bytes) of the structure
equ STRUCT_FLD_CNT$ to 2 ;* number of fields in the structure
equ STRUCT_FLD_DEF$ to 3 ;* intrinsic types of each field (@vm delim)
equ STRUCT_FLD_LEN$ to 4 ;* lengths of each field (@vm delim)
// equ STRUCT_TMP_DEF$ to 5 ;* mangled on load; types without @vm delim - no longer used - clever trick if you have < 10 types ;).
equ STRUCT_FLD_VARNAMES$ to 6 ;* variable names of each field (@vm delim)
equ STRUCT_FLD_VARTYPES$ to 7 ;* variable types of each field (@vm delim)
equ STRUCT_FLD_ALIGNMENT$ to 8 ;* Specific data alignment value
equ STRUCT_FLD_COMMENTS$ to 9 ;* @tm'd free text field
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
* structure definition codes
equ T_SIGNED_CHAR$ to 0
equ T_UNSIGNED_CHAR$ to 1 ;* (Byte)
equ T_SIGNED_SHORT$ to 2
equ T_UNSIGNED_SHORT$ to 3
equ T_SIGNED_LONG$ to 4
equ T_UNSIGNED_LONG$ to 5
equ T_FLOAT$ to 6
equ T_DOUBLE$ to 7
equ T_POINTER$ to 8
equ T_CHAR_ARRAY$ to 9 ;* size of array is stored in "struct_fld_len$"
// v10+
equ T_WCHAR_ARRAY$ to 10 ;* size of array is stored in "struct_fld_len$"
equ T_BINARY$ to 11 ;* (Byte-array) size of array is stored in "struct_fld_len$"
equ T_SIGNED_INT$ to 12
equ T_UNSIGNED_INT$ to 13
equ T_SIGNED_INT64$ to 14 ;* 64-bit only
equ T_UNSIGNED_INT64$ to 15 ;* 64-bit only
equ T_SIGNED_INTPTR$ to 16
equ T_UNSIGNED_INTPTR$ to 17
equ T_SIZET$ to 18
equ T_HANDLE$ to 19
equ T_LPBYTE$ to 20
equ T_LPUBYTE$ to 21
equ T_LPSHORT$ to 22
equ T_LPUSHORT$ to 23
equ T_LPLONG$ to 24
equ T_LPULONG$ to 25
equ T_LPINT$ to 26
equ T_LPUINT$ to 27
equ T_LPINT64$ to 28
equ T_LPUINT64$ to 29
equ T_LPINTPTR$ to 30
equ T_LPUINTPTR$ to 31
equ T_LPSIZET$ to 32
equ T_LPFLOAT$ to 33
equ T_LPDOUBLE$ to 34
equ T_LPACHAR$ to 35
equ T_LPWCHAR$ to 36
equ T_LPASTR$ to 37
equ T_LPWSTR$ to 38
equ T_LPBINARY$ to 39
equ T_LPHANDLE$ to 40
equ T_PADDING$ to 41 ;* bzs 032417
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
* define struct
equ DS_ENUM$ to 1 ;* list = Define_Struct(DS_ENUM$)
equ DS_PUT$ to 2 ;* success = Define_Struct(DS_PUT$, name, def)
equ DS_DELETE$ to 3 ;* success = Define_Struct(DS_DELETE$, name)
equ DS_REINDEX$ to 4 ;* success = Define_Struct(DS_REINDEX$)
equ DS_DIALOG$ to 5 ;* Define_Struct(DS_DIALOG$) (default)
equ DS_DLG_CREATE$ to 6 ;* reserved
equ DS_DLG_CLOSE$ to 7 ;* reserved
equ DS_DLG_GETDEF$ to 8 ;* reserved
equ DS_DLG_PUTDEF$ to 9 ;* reserved
equ DS_DLG_READ$ to 10 ;* reserved
equ DS_DLG_SAVE$ to 11 ;* reserved
equ DS_DLG_NEW$ to 12 ;* reserved
equ DS_DLG_COPY$ to 13 ;* reserved
equ DS_DLG_DELETE$ to 14 ;* reserved
equ DS_DLG_CHANGEKEY$ to 15 ;* reserved
equ DS_DLG_ETINSERT$ to 16 ;* reserved
equ DS_DLG_ETDELETE$ to 17 ;* reserved
equ DS_DLG_ETOPTIONS$ to 18 ;* reserved
equ DS_DLG_ETGOTFOCUS$ to 19 ;* reserved
equ DS_DLG_ETPOSCHANGE$ to 20 ;* reserved
equ DS_DLG_ETLOSTFOCUS$ to 21 ;* reserved
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
* miscellaneous
equ STRUCT_FILE$ to "SYSOBJ"
equ STRUCT_KEY_PREFIX$ to "STRUCT_"
equ STRUCT_INDEX$ to "!STRUCT"
equ STRUCT_DIALOG$ to "DEFINE_STRUCT"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////