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