2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 00:52:16 +00:00
Files
build/v2/engine/native.c
2012-08-25 01:29:47 +00:00

35 lines
1001 B
C

/* Copyright 2003. Vladimir Prus
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
#include "native.h"
#include "hash.h"
#include <assert.h>
void declare_native_rule( char const * module, char const * rule,
char const * * args, LIST * (*f)( FRAME *, int ), int version )
{
OBJECT * const module_obj = module ? object_new( module ) : 0 ;
module_t * m = bindmodule( module_obj );
if ( module_obj )
object_free( module_obj );
if ( !m->native_rules )
m->native_rules = hashinit( sizeof( native_rule_t ), "native rules" );
{
OBJECT * const name = object_new( rule );
int found;
native_rule_t * const np = (native_rule_t *)hash_insert(
m->native_rules, name, &found );
np->name = name;
assert( !found );
np->procedure = function_builtin( f, 0, args );
np->version = version;
}
}