#!/usr/bin/perl ############################################################################# # # Copyright (c) 2003-2007, Broadcom Corporation. # All rights reserved. # Confidential Property of Broadcom Corporation. # # THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE # AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR # EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. # # $brcm_Workfile: bapi_build.pl $ # $brcm_Revision: 3 $ # $brcm_Date: 7/9/07 1:30p $ # # File Description: # # Revision History: # # $brcm_Log: /BSEAV/api/build/proxy/bapi_build.pl $ # # 3 7/9/07 1:30p erickson # PR32377: autogen the thunk layer # # 2 3/10/06 10:49a erickson # PR17108: added warning to capture incorrect execution # # 1 2/7/05 6:55p dlwin # Merge down for release 2005_REFSW_MERGETOMAIN: # # Irvine_BSEAVSW_Devel/2 8/12/04 9:28a erickson # PR11135: reworked bhandle_mgr autogen code to be data driven and close # down in correct order # # Irvine_BSEAVSW_Devel/1 5/17/04 11:14a erickson # PR11135: added initial linux proxy impl # ############################################################################# use strict; use bapi_parse_c; use bapi_ioctl_def; use bapi_usercall; use bapi_driver_ioctl; use bapi_thunks; my $file; my @funcs; if ($#ARGV == -1) { print "You must run autogen to build proxy layer\n"; return 1; } # Process all files on the command line for $file (@ARGV) { push @funcs, bapi_parse_c::get_func_prototypes $file; } # Build the perl datastructure my @funcrefs = bapi_parse_c::parse_funcs @funcs; # Print out the perl datastructure #bapi_parse_c::print_api @funcrefs; print "Autogenerating code...\n"; # Build kernelmode proxy layer for Settop API bapi_ioctl_def::parse "bsettop_autogen_ioctl.h", @funcrefs; bapi_usercall::parse "bsettop_autogen_usercall.c", @funcrefs; bapi_driver_ioctl::parse "bsettop_autogen_driver.c", @funcrefs; bapi_driver_ioctl::build_closelist "bsettop_autogen_closelist.c", @funcrefs; # Build thunk layer for Settop API bapi_thunks::build_thunks "bsettop_autogen_thunks.c", @funcrefs; bapi_thunks::build_remapping "bsettop_autogen_thunks.h", @funcrefs; # Build Linux kernel driver export list bapi_thunks::build_kernel_export "bsettop_autogen_kernel_export.c", @funcrefs; print "Done\n";