Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
/*** shape-entry.h --- Shape table entry ADT.
32
 *
33
 ** Author: Steve Folkes <smf@hermes.mod.uk>
34
 *
35
 *** Commentary:
36
 *
37
 * See the file "shape-entry.c" for more information.
38
 *
39
 *** Change Log:
40
 * $Log: shape-entry.h,v $
41
 * Revision 1.1.1.1  1998/01/17  15:57:20  release
42
 * First version to be checked into rolling release.
43
 *
44
 * Revision 1.2  1994/12/12  11:46:48  smf
45
 * Performing changes for 'CR94_178.sid+tld-update' - bringing in line with
46
 * OSSG C Coding Standards.
47
 *
48
 * Revision 1.1.1.1  1994/07/25  16:03:38  smf
49
 * Initial import of TDF linker 3.5 non shared files.
50
 *
51
**/
52
 
53
/****************************************************************************/
54
 
55
#ifndef H_SHAPE_ENTRY
56
#define H_SHAPE_ENTRY
57
 
58
#include "os-interface.h"
59
#include "dalloc.h"
60
#include "dstring.h"
61
#include "map-table.h"
62
#include "name-entry.h"
63
#include "name-table.h"
64
#include "tdf-write.h"
65
 
66
struct ShapeTableT;
67
struct UnitTableT;
68
 
69
/*--------------------------------------------------------------------------*/
70
 
71
typedef struct ShapeEntryT {
72
    struct ShapeEntryT	       *next;
73
    NStringT			key;
74
    NameTableP			names;
75
    unsigned			id_count;
76
    BoolT			non_empty;
77
    unsigned			num_lib_names;
78
    NameEntryP			head;
79
    NameEntryP		       *tail;
80
} ShapeEntryT, *ShapeEntryP;
81
 
82
typedef struct ShapeClosureT {
83
    MapTableP			table;
84
    TDFWriterP			writer;
85
} ShapeClosureT, *ShapeClosureP;
86
 
87
typedef struct ShapeLibClosureT {
88
    BoolT			did_define;
89
    struct ShapeTableT	       *lib_shapes;
90
    struct UnitTableT	       *units;
91
    struct ShapeTableT	       *shapes;
92
} ShapeLibClosureT, *ShapeLibClosureP;
93
 
94
/*--------------------------------------------------------------------------*/
95
 
96
extern ShapeEntryP		shape_entry_create
97
	PROTO_S ((NStringP));
98
extern ShapeEntryP		shape_entry_next
99
	PROTO_S ((ShapeEntryP));
100
extern ShapeEntryP	       *shape_entry_next_ref
101
	PROTO_S ((ShapeEntryP));
102
extern NStringP			shape_entry_key
103
	PROTO_S ((ShapeEntryP));
104
extern NameTableP		shape_entry_name_table
105
	PROTO_S ((ShapeEntryP));
106
extern unsigned			shape_entry_next_id
107
	PROTO_S ((ShapeEntryP));
108
extern void			shape_entry_set_non_empty
109
	PROTO_S ((ShapeEntryP));
110
extern BoolT			shape_entry_get_non_empty
111
	PROTO_S ((ShapeEntryP));
112
extern void			shape_entry_add_to_list
113
	PROTO_S ((ShapeEntryP, NameEntryP));
114
extern NameEntryP		shape_entry_get_from_list
115
	PROTO_S ((ShapeEntryP));
116
extern ShapeEntryP		shape_entry_deallocate
117
	PROTO_S ((ShapeEntryP));
118
 
119
extern void			shape_entry_do_count
120
	PROTO_S ((ShapeEntryP, GenericP));
121
extern void			shape_entry_write_shape
122
	PROTO_S ((ShapeEntryP, GenericP));
123
extern void			shape_entry_write_externs
124
	PROTO_S ((ShapeEntryP, GenericP));
125
extern void			shape_entry_compute_tld_size
126
	PROTO_S ((ShapeEntryP, GenericP));
127
extern void			shape_entry_write_tld
128
	PROTO_S ((ShapeEntryP, GenericP));
129
extern void			shape_entry_write_count
130
	PROTO_S ((ShapeEntryP, GenericP));
131
extern void			shape_entry_write_links
132
	PROTO_S ((ShapeEntryP, GenericP));
133
extern void			shape_entry_check_multi_defs
134
	PROTO_S ((ShapeEntryP, GenericP));
135
extern void			shape_entry_do_lib_count
136
	PROTO_S ((ShapeEntryP, GenericP));
137
extern void			shape_entry_do_lib_write
138
	PROTO_S ((ShapeEntryP, GenericP));
139
extern void			shape_entry_resolve_undefined
140
	PROTO_S ((ShapeEntryP, GenericP));
141
extern void			shape_entry_hide_all_defd
142
	PROTO_S ((ShapeEntryP, GenericP));
143
extern void			shape_entry_suppress_mult
144
	PROTO_S ((ShapeEntryP, GenericP));
145
extern void			shape_entry_lib_suppress_mult
146
	PROTO_S ((ShapeEntryP, GenericP));
147
extern void			shape_entry_show_content
148
	PROTO_S ((ShapeEntryP, GenericP));
149
 
150
#endif /* !defined (H_SHAPE_ENTRY) */
151
 
152
/*
153
 * Local variables(smf):
154
 * eval: (include::add-path-entry "../os-interface" "../library")
155
 * eval: (include::add-path-entry "../generated")
156
 * end:
157
**/