1 #ifdef RCSID
2 static char RCSid[] =
3 "$Header: d:/cvsroot/tads/tads3/vmbifreg.cpp,v 1.2 1999/05/17 02:52:29 MJRoberts Exp $";
4 #endif
5 
6 /*
7  *   Copyright (c) 1998, 2002 Michael J. Roberts.  All Rights Reserved.
8  *
9  *   Please see the accompanying license file, LICENSE.TXT, for information
10  *   on using and copying this software.
11  */
12 /*
13 Name
14   vmbifreg.cpp - built-in function set registry
15 Function
16   Defines the built-in functions that are linked in to this implementation
17   of the VM.
18 
19   This file is dependent on the host application environment configuration.
20   This particular file includes a table for the base set of T3 VM
21   built-in functions.  Some host application environments may provide
22   additional function sets; if you're building a host system with its own
23   extra function sets, do the following:
24 
25   1.  Make a copy of this file (DO NOT MODIFY THE ORIGINAL).
26 
27   2.  Remove this file (and/or derived files, such as object files) from
28       your makefile, and add your modified version instead.
29 
30   3.  In the table below, add an entry for each of your extra function
31       sets.  (Of course, for each of your added function sets, you must
32       implement the function set and link the implementation into your
33       host application executable.)
34 
35 Notes
36 
37 Modified
38   12/05/98 MJRoberts  - Creation
39 */
40 
41 #include "vmbifreg.h"
42 
43 /* ------------------------------------------------------------------------ */
44 /*
45  *   Include the function set vector definitions.  Define
46  *   VMBIF_DEFINE_VECTOR so that the headers all generate vector
47  *   definitions.
48  */
49 #define VMBIF_DEFINE_VECTOR
50 
51 #include "vmbiftad.h"
52 #include "vmbiftio.h"
53 #include "vmbift3.h"
54 
55 // !!! INCLUDE HOST-SPECIFIC FUNCTION SET HEADERS HERE ("vmbifxxx.h")
56 
57 /* done with the vector definition */
58 #undef VMBIF_DEFINE_VECTOR
59 
60 #define MAKE_ENTRY(entry_name, entry_table) \
61     { entry_name, sizeof(entry_table)/sizeof(entry_table[0]), entry_table }
62 
63 /* ------------------------------------------------------------------------ */
64 /*
65  *   The function set registration table.  Each entry in the table
66  *   provides the definition of one function set, keyed by the function
67  *   set's universally unique identifier.
68  */
69 vm_bif_entry_t G_bif_reg_table[] =
70 {
71     /* T3 VM system function set, v1 */
72     MAKE_ENTRY("t3vm/010004", G_bif_t3),
73 
74     /* T3 VM Testing interface, v1 */
75     MAKE_ENTRY("t3vmTEST/010000", G_bif_t3_test),
76 
77     /* TADS generic data manipulation functions */
78     MAKE_ENTRY("tads-gen/030006", G_bif_tadsgen),
79 
80     /* TADS input/output functions */
81     MAKE_ENTRY("tads-io/030007", G_bif_tadsio),
82 
83     // !!! ADD ANY HOST-SPECIFIC FUNCTION SETS HERE
84 
85     /* end of table marker */
86     { 0, 0, 0 }
87 };
88 
89 /* we don't need the MAKE_ENTRY macro any longer */
90 #undef MAKE_ENTRY
91 
92