chiark / gitweb /
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