151 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| ///////////////////////////////////////////////////////////////////////////////
 |