Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / src / nas,5.n2.os.2 / lib / python / man / man3 / Tcl_InitStubs.3
CommitLineData
86530b38
AT
1'\"
2'\" Copyright (c) 1998-1999 Scriptics Corporation
3'\"
4'\" See the file "license.terms" for information on usage and redistribution
5'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
6'\"
7'\" RCS: @(#) $Id: InitStubs.3,v 1.8 2002/07/01 18:24:39 jenglish Exp $
8'\"
9'\" The definitions below are for supplemental macros used in Tcl/Tk
10'\" manual entries.
11'\"
12'\" .AP type name in/out ?indent?
13'\" Start paragraph describing an argument to a library procedure.
14'\" type is type of argument (int, etc.), in/out is either "in", "out",
15'\" or "in/out" to describe whether procedure reads or modifies arg,
16'\" and indent is equivalent to second arg of .IP (shouldn't ever be
17'\" needed; use .AS below instead)
18'\"
19'\" .AS ?type? ?name?
20'\" Give maximum sizes of arguments for setting tab stops. Type and
21'\" name are examples of largest possible arguments that will be passed
22'\" to .AP later. If args are omitted, default tab stops are used.
23'\"
24'\" .BS
25'\" Start box enclosure. From here until next .BE, everything will be
26'\" enclosed in one large box.
27'\"
28'\" .BE
29'\" End of box enclosure.
30'\"
31'\" .CS
32'\" Begin code excerpt.
33'\"
34'\" .CE
35'\" End code excerpt.
36'\"
37'\" .VS ?version? ?br?
38'\" Begin vertical sidebar, for use in marking newly-changed parts
39'\" of man pages. The first argument is ignored and used for recording
40'\" the version when the .VS was added, so that the sidebars can be
41'\" found and removed when they reach a certain age. If another argument
42'\" is present, then a line break is forced before starting the sidebar.
43'\"
44'\" .VE
45'\" End of vertical sidebar.
46'\"
47'\" .DS
48'\" Begin an indented unfilled display.
49'\"
50'\" .DE
51'\" End of indented unfilled display.
52'\"
53'\" .SO
54'\" Start of list of standard options for a Tk widget. The
55'\" options follow on successive lines, in four columns separated
56'\" by tabs.
57'\"
58'\" .SE
59'\" End of list of standard options for a Tk widget.
60'\"
61'\" .OP cmdName dbName dbClass
62'\" Start of description of a specific option. cmdName gives the
63'\" option's name as specified in the class command, dbName gives
64'\" the option's name in the option database, and dbClass gives
65'\" the option's class in the option database.
66'\"
67'\" .UL arg1 arg2
68'\" Print arg1 underlined, then print arg2 normally.
69'\"
70'\" RCS: @(#) $Id: man.macros,v 1.4 2000/08/25 06:18:32 ericm Exp $
71'\"
72'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
73.if t .wh -1.3i ^B
74.nr ^l \n(.l
75.ad b
76'\" # Start an argument description
77.de AP
78.ie !"\\$4"" .TP \\$4
79.el \{\
80. ie !"\\$2"" .TP \\n()Cu
81. el .TP 15
82.\}
83.ta \\n()Au \\n()Bu
84.ie !"\\$3"" \{\
85\&\\$1 \\fI\\$2\\fP (\\$3)
86.\".b
87.\}
88.el \{\
89.br
90.ie !"\\$2"" \{\
91\&\\$1 \\fI\\$2\\fP
92.\}
93.el \{\
94\&\\fI\\$1\\fP
95.\}
96.\}
97..
98'\" # define tabbing values for .AP
99.de AS
100.nr )A 10n
101.if !"\\$1"" .nr )A \\w'\\$1'u+3n
102.nr )B \\n()Au+15n
103.\"
104.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
105.nr )C \\n()Bu+\\w'(in/out)'u+2n
106..
107.AS Tcl_Interp Tcl_CreateInterp in/out
108'\" # BS - start boxed text
109'\" # ^y = starting y location
110'\" # ^b = 1
111.de BS
112.br
113.mk ^y
114.nr ^b 1u
115.if n .nf
116.if n .ti 0
117.if n \l'\\n(.lu\(ul'
118.if n .fi
119..
120'\" # BE - end boxed text (draw box now)
121.de BE
122.nf
123.ti 0
124.mk ^t
125.ie n \l'\\n(^lu\(ul'
126.el \{\
127.\" Draw four-sided box normally, but don't draw top of
128.\" box if the box started on an earlier page.
129.ie !\\n(^b-1 \{\
130\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
131.\}
132.el \}\
133\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
134.\}
135.\}
136.fi
137.br
138.nr ^b 0
139..
140'\" # VS - start vertical sidebar
141'\" # ^Y = starting y location
142'\" # ^v = 1 (for troff; for nroff this doesn't matter)
143.de VS
144.if !"\\$2"" .br
145.mk ^Y
146.ie n 'mc \s12\(br\s0
147.el .nr ^v 1u
148..
149'\" # VE - end of vertical sidebar
150.de VE
151.ie n 'mc
152.el \{\
153.ev 2
154.nf
155.ti 0
156.mk ^t
157\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
158.sp -1
159.fi
160.ev
161.\}
162.nr ^v 0
163..
164'\" # Special macro to handle page bottom: finish off current
165'\" # box/sidebar if in box/sidebar mode, then invoked standard
166'\" # page bottom macro.
167.de ^B
168.ev 2
169'ti 0
170'nf
171.mk ^t
172.if \\n(^b \{\
173.\" Draw three-sided box if this is the box's first page,
174.\" draw two sides but no top otherwise.
175.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
176.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
177.\}
178.if \\n(^v \{\
179.nr ^x \\n(^tu+1v-\\n(^Yu
180\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
181.\}
182.bp
183'fi
184.ev
185.if \\n(^b \{\
186.mk ^y
187.nr ^b 2
188.\}
189.if \\n(^v \{\
190.mk ^Y
191.\}
192..
193'\" # DS - begin display
194.de DS
195.RS
196.nf
197.sp
198..
199'\" # DE - end display
200.de DE
201.fi
202.RE
203.sp
204..
205'\" # SO - start of list of standard options
206.de SO
207.SH "STANDARD OPTIONS"
208.LP
209.nf
210.ta 5.5c 11c
211.ft B
212..
213'\" # SE - end of list of standard options
214.de SE
215.fi
216.ft R
217.LP
218See the \\fBoptions\\fR manual entry for details on the standard options.
219..
220'\" # OP - start of full description for a single option
221.de OP
222.LP
223.nf
224.ta 4c
225Command-Line Name: \\fB\\$1\\fR
226Database Name: \\fB\\$2\\fR
227Database Class: \\fB\\$3\\fR
228.fi
229.IP
230..
231'\" # CS - begin code excerpt
232.de CS
233.RS
234.nf
235.ta .25i .5i .75i 1i
236..
237'\" # CE - end code excerpt
238.de CE
239.fi
240.RE
241..
242.de UL
243\\$1\l'|0\(ul'\\$2
244..
245.TH Tcl_InitStubs 3 8.1 Tcl "Tcl Library Procedures"
246.BS
247.SH NAME
248Tcl_InitStubs \- initialize the Tcl stubs mechanism
249.SH SYNOPSIS
250.nf
251\fB#include <tcl.h>\fR
252.sp
253CONST char *
254\fBTcl_InitStubs\fR(\fIinterp, version, exact\fR)
255.SH ARGUMENTS
256.AS Tcl_Interp *interp in
257.AP Tcl_Interp *interp in
258Tcl interpreter handle.
259.AP "CONST char" *version in
260A version string consisting of one or more decimal numbers
261separated by dots.
262.AP int exact in
263Non-zero means that only the particular version specified by
264\fIversion\fR is acceptable.
265Zero means that versions newer than \fIversion\fR are also
266acceptable as long as they have the same major version number
267as \fIversion\fR.
268.BE
269.SH INTRODUCTION
270.PP
271The Tcl stubs mechanism defines a way to dynamically bind
272extensions to a particular Tcl implementation at run time.
273This provides two significant benefits to Tcl users:
274.IP 1) 5
275Extensions that use the stubs mechanism can be loaded into
276multiple versions of Tcl without being recompiled or
277relinked.
278.IP 2) 5
279Extensions that use the stubs mechanism can be dynamically
280loaded into statically-linked Tcl applications.
281.PP
282The stubs mechanism accomplishes this by exporting function tables
283that define an interface to the Tcl API. The extension then accesses
284the Tcl API through offsets into the function table, so there are no
285direct references to any of the Tcl library's symbols. This
286redirection is transparent to the extension, so an extension writer
287can continue to use all public Tcl functions as documented.
288.PP
289The stubs mechanism requires no changes to applications incorporating
290Tcl interpreters. Only developers creating C-based Tcl extensions
291need to take steps to use the stubs mechanism with their extensions.
292.PP
293Enabling the stubs mechanism for an extension requires the following
294steps:
295.IP 1) 5
296Call \fBTcl_InitStubs\fR in the extension before calling any other
297Tcl functions.
298.IP 2) 5
299Define the USE_TCL_STUBS symbol. Typically, you would include the
300-DUSE_TCL_STUBS flag when compiling the extension.
301.IP 3) 5
302Link the extension with the Tcl stubs library instead of the standard
303Tcl library. On Unix platforms, the library name is
304\fIlibtclstub8.1.a\fR; on Windows platforms, the library name is
305\fItclstub81.lib\fR.
306.PP
307If the extension also requires the Tk API, it must also call
308\fBTk_InitStubs\fR to initialize the Tk stubs interface and link
309with the Tk stubs libraries. See the \fBTk_InitStubs\fR page for
310more information.
311.SH DESCRIPTION
312\fBTcl_InitStubs\fR attempts to initialize the stub table pointers
313and ensure that the correct version of Tcl is loaded. In addition
314to an interpreter handle, it accepts as arguments a version number
315and a Boolean flag indicating whether the extension requires
316an exact version match or not. If \fIexact\fR is 0, then the
317extension is indicating that newer versions of Tcl are acceptable
318as long as they have the same major version number as \fIversion\fR;
319non-zero means that only the specified \fIversion\fR is acceptable.
320\fBTcl_InitStubs\fR returns a string containing the actual version
321of Tcl satisfying the request, or NULL if the Tcl version is not
322acceptable, does not support stubs, or any other error condition occurred.
323.SH "SEE ALSO"
324Tk_InitStubs
325.SH KEYWORDS
326stubs