source: svn/newcon3bcm2_21bu/nexus/build/tools/common/nexus_struct_check.pl

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 3.7 KB
Line 
1#!/usr/bin/perl
2#     (c)2003-2011 Broadcom Corporation
3#
4#  This program is the proprietary software of Broadcom Corporation and/or its licensors,
5#  and may only be used, duplicated, modified or distributed pursuant to the terms and
6#  conditions of a separate, written license agreement executed between you and Broadcom
7#  (an "Authorized License").  Except as set forth in an Authorized License, Broadcom grants
8#  no license (express or implied), right to use, or waiver of any kind with respect to the
9#  Software, and Broadcom expressly reserves all rights in and to the Software and all
10#  intellectual property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU
11#  HAVE NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY
12#  NOTIFY BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
13#
14#  Except as expressly set forth in the Authorized License,
15#
16#  1.     This program, including its structure, sequence and organization, constitutes the valuable trade
17#  secrets of Broadcom, and you shall use all reasonable efforts to protect the confidentiality thereof,
18#  and to use this information only in connection with your use of Broadcom integrated circuit products.
19#
20#  2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
21#  AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
22#  WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
23#  THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND ALL IMPLIED WARRANTIES
24#  OF TITLE, MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE,
25#  LACK OF VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION
26#  OR CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF
27#  USE OR PERFORMANCE OF THE SOFTWARE.
28#
29#  3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR ITS
30#  LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR
31#  EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO YOUR
32#  USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF
33#  THE POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT
34#  ACTUALLY PAID FOR THE SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
35#  LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF
36#  ANY LIMITED REMEDY.
37#
38# $brcm_Workfile: nexus_struct_check.pl $
39# $brcm_Revision: 1 $
40# $brcm_Date: 9/14/11 11:26a $
41#
42# File Description:
43#
44# Revision History:
45#
46# $brcm_Log: /nexus/build/tools/common/nexus_struct_check.pl $
47#
48# 1   9/14/11 11:26a erickson
49# SWDEPRECATED-2425: add tool
50#
51#############################################################################
52use strict;
53use lib '../build/tools/common';
54use bapi_parse_c;
55
56# usage:
57#
58# place nexus_struct_check in nexus/examples
59# cd nexus/examples
60# ls -d ../modules/*/7405/include >output.txt
61# edit output.txt and remove modules you don't want to scan
62# cd examples
63# DIRS=`cat output.txt`
64# FILES=`for i in $DIRS; do ls $i/*.h; done`
65# perl nexus_struct_check.pl $FILES >test.c
66# make test
67# run "nexus test" on the settop
68
69
70print "/* nexus struct check */\n";
71print "#include <stdio.h>\n";
72my $file;
73if ($#ARGV == -1) {
74    print "Usage: nexus_struct_check.pl file1.h file2.h ...\n";
75    exit;
76}
77for $file (@ARGV) {
78    my ($include_file) = $file =~ /\/([\w_]+\.h)$/;
79    print "#include \"$include_file\"\n";
80}
81print "int main(void) {\n";
82for $file (@ARGV) {
83    if ($file =~ /\.h$/) {
84        my $structs = bapi_parse_c::parse_struct $file;
85        my $struct;
86        for $struct (keys %$structs) {
87            print "  printf(\"$struct = %d\\n\", sizeof($struct));\n";
88        }
89    }
90}
91print "  return 0;\n";
92print "}\n";
Note: See TracBrowser for help on using the repository browser.