;
; dllblock.sh
;
; Definition of a Dynamic Link Library header
;
;  1994-1998 Straylight
;

;----- Licensing note -------------------------------------------------------
;
; This file is part of Straylight's Dynamic Linking System (SDLS)
;
; SDLS is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2, or (at your option)
; any later version.
;
; SDLS 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 General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with SDLS.  If not, write to the Free Software Foundation,
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

dl_MAGIC	EQU	&004C4C44		;The magic file number
dl_VERSION	EQU	101			;The format version known

		^	0			;Start at 0!

dl_next		#	4			;Link to next DLL
dl_prev		#	4			;Link to previous DLL
dl_wspace	#	0			;Workspace for non-shared DLL
dl_clients	#	4			;Number of DLL clients
dl_shared	#	4			;DLL's shared workspace ptr
dl_extra	#	0			;Size of extra info

; Note that dl_wspace and dl_clients share the same address.  dl_wspace is
; present if and only  if dl_next==-1.  This is set up by DLL_Load as
; necessary.  Also, the top bit of the clients field is used to indicate
; that the count is `tentative' -- i.e. that all the associated DLLs have not
; been found yet.

dl_magic	#	4			;Magic DLL identification
dl_bversion	#	4			;Version number of binder
dl_name		#	4			;Address of DLL name string
dl_copyright	#	4			;Address of copyright string
dl_version	#	4			;DLL's version number
dl_relocate	#	4			;Branch to relocation code
dl_stubs	#	4			;Offset of CLib entry points
dl_entries	#	4			;Number of entry points
dl_enames	#	4			;Names of the entry points
dl_eveneer	#	4			;Entry points of the veneers
dl_dllBase	#	4			;Base of external DLL defs
dl_dllLimit	#	4			;Limit of external DLL defs
dl_instBase	#	4			;Base of DLL instance defs
dl_instLimit	#	4			;Limit of DLL instance defs

; --- Extra bits added in file format version 1.01 ---

dl_zinitBase	#	4			;Pointer to zero-init base
dl_zinitLimit	#	4			;Pointer to zero-init limit
dl_appStubs	#	4			;Pointer to app entry stubs
dl_appStubNames	#	4			;Pointer to app name table

dl_strSize	#	0			;Size of this structure

dl_tentative	EQU	&80000000		;Tentative flag value

; --- DLL entry point type bits, added in file format 1.01a ---

dl_shortEntries	EQU	(1<<31)			;Short non-APCS entry points
dl_noNames	EQU	(1<<30)			;Name table is omitted

		END
