1 /* Copyright 2003. David Abrahams 2 * Distributed under the Boost Software License, Version 1.0. 3 * (See accompanying file LICENSE_1_0.txt or copy at 4 * http://www.boost.org/LICENSE_1_0.txt) 5 */ 6 7 #ifndef NATIVE_H_VP_2003_12_09 8 #define NATIVE_H_VP_2003_12_09 9 10 #include "config.h" 11 #include "function.h" 12 #include "frames.h" 13 #include "lists.h" 14 #include "object.h" 15 16 typedef struct native_rule_t 17 { 18 OBJECT * name; 19 FUNCTION * procedure; 20 21 /* Version of the interface that the native rule provides. It is possible 22 * that we want to change the set parameter for existing native rule. In 23 * that case, version number should be incremented so B2 can check 24 * for the version it relies on. 25 * 26 * Versions are numbered from 1. 27 */ 28 int version; 29 } native_rule_t; 30 /* MSVC debugger gets confused unless the native_rule_t typedef is provided. */ 31 32 void declare_native_rule( char const * module, char const * rule, 33 char const * * args, LIST * (*f)( FRAME *, int ), int version ); 34 35 #endif 36