cfad47cfa3/tads3/vmbifreg.cpp

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
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/010005", 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