# Copyright (c) 2001, Stanford University
# All rights reserved.
#
# See the file LICENSE.txt for information on redistributing this software.
import sys
import apiutil
apiutil.CopyrightC()
print """#include <stdio.h>
#include "cr_error.h"
#include "cr_string.h"
#include "cr_spu.h"
#include "passthroughspu.h"
"""
keys = apiutil.GetDispatchedFunctions(sys.argv[1]+"/APIspec.txt")
print 'SPUNamedFunctionTable _cr_passthrough_table[%d];' % ( len(keys) + 1 )
print """
static void __fillin( int offset, char *name, SPUGenericFunction func )
{
_cr_passthrough_table[offset].name = crStrdup( name );
_cr_passthrough_table[offset].fn = func;
}
void BuildPassthroughTable( SPU *child )
{"""
for index in range(len(keys)):
func_name = keys[index]
print '\t__fillin( %3d, "%s", (SPUGenericFunction) child->dispatch_table.%s );' % (index, func_name, func_name )
print '\t__fillin( %3d, NULL, NULL );' % len(keys)
print '}'