Initial revision
[ssr] / StraySrc / SDLS / DLLManager / sh / dllblock
1 ;
2 ; dllblock.sh
3 ;
4 ; Definition of a Dynamic Link Library header
5 ;
6 ; © 1994-1998 Straylight
7 ;
8
9 ;----- Licensing note -------------------------------------------------------
10 ;
11 ; This file is part of Straylight's Dynamic Linking System (SDLS)
12 ;
13 ; SDLS is free software; you can redistribute it and/or modify
14 ; it under the terms of the GNU General Public License as published by
15 ; the Free Software Foundation; either version 2, or (at your option)
16 ; any later version.
17 ;
18 ; SDLS is distributed in the hope that it will be useful,
19 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ; GNU General Public License for more details.
22 ;
23 ; You should have received a copy of the GNU General Public License
24 ; along with SDLS. If not, write to the Free Software Foundation,
25 ; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26
27 dl_MAGIC EQU &004C4C44 ;The magic file number
28 dl_VERSION EQU 101 ;The format version known
29
30 ^ 0 ;Start at 0!
31
32 dl_next # 4 ;Link to next DLL
33 dl_prev # 4 ;Link to previous DLL
34 dl_wspace # 0 ;Workspace for non-shared DLL
35 dl_clients # 4 ;Number of DLL clients
36 dl_shared # 4 ;DLL's shared workspace ptr
37 dl_extra # 0 ;Size of extra info
38
39 ; Note that dl_wspace and dl_clients share the same address. dl_wspace is
40 ; present if and only if dl_next==-1. This is set up by DLL_Load as
41 ; necessary. Also, the top bit of the clients field is used to indicate
42 ; that the count is `tentative' -- i.e. that all the associated DLLs have not
43 ; been found yet.
44
45 dl_magic # 4 ;Magic DLL identification
46 dl_bversion # 4 ;Version number of binder
47 dl_name # 4 ;Address of DLL name string
48 dl_copyright # 4 ;Address of copyright string
49 dl_version # 4 ;DLL's version number
50 dl_relocate # 4 ;Branch to relocation code
51 dl_stubs # 4 ;Offset of CLib entry points
52 dl_entries # 4 ;Number of entry points
53 dl_enames # 4 ;Names of the entry points
54 dl_eveneer # 4 ;Entry points of the veneers
55 dl_dllBase # 4 ;Base of external DLL defs
56 dl_dllLimit # 4 ;Limit of external DLL defs
57 dl_instBase # 4 ;Base of DLL instance defs
58 dl_instLimit # 4 ;Limit of DLL instance defs
59
60 ; --- Extra bits added in file format version 1.01 ---
61
62 dl_zinitBase # 4 ;Pointer to zero-init base
63 dl_zinitLimit # 4 ;Pointer to zero-init limit
64 dl_appStubs # 4 ;Pointer to app entry stubs
65 dl_appStubNames # 4 ;Pointer to app name table
66
67 dl_strSize # 0 ;Size of this structure
68
69 dl_tentative EQU &80000000 ;Tentative flag value
70
71 ; --- DLL entry point type bits, added in file format 1.01a ---
72
73 dl_shortEntries EQU (1<<31) ;Short non-APCS entry points
74 dl_noNames EQU (1<<30) ;Name table is omitted
75
76 END