source: svn/newcon3bcm2_21bu/nexus/build/tools/common/bapi_util.pm

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

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

  • Property svn:executable set to *
File size: 4.2 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: bapi_util.pm $
39# $brcm_Revision: 1 $
40# $brcm_Date: 12/7/11 10:41a $
41#
42# File Description:
43#
44# Revision History:
45#
46# $brcm_Log: /nexus/build/tools/common/bapi_util.pm $
47#
48# 1   12/7/11 10:41a erickson
49# SW7420-2141: merge as much duplicated kernelmode proxy/usermode ipc
50#  perl code as possible
51#
52#############################################################################
53use strict;
54
55package bapi_util;
56
57sub print_code
58{
59    my $file = shift;
60    my $code = shift;
61    my $ident = shift;
62
63    if(defined $code) {
64        for(@$code) {
65            print $file "$ident$_\n";
66        }
67    }
68}
69
70sub header
71{
72    my $module = shift;
73    return <<ENDHEADER;
74/**************************************************************
75 *                                                            *
76 * This file is autogenerated by the Nexus Platform makefile. *
77 *                                                            *
78 **************************************************************/
79
80
81ENDHEADER
82}
83
84# return structure Id, e.g. structure number
85sub struct_id {
86    my $structs = shift;
87    my $struct = shift;
88    my $id = 0;
89    my $key;
90
91    foreach $key (keys %$structs) {
92        $id++;
93        if($key eq $struct) {
94            return $id;
95        }
96    }
97    return 0;
98}
99
100sub func_id {
101    my $funcs = shift;
102    my $func = shift;
103    my $id = 0;
104    foreach (@$funcs) {
105        $id++;
106        if($_ == $func) {
107           return $id;
108        }
109    }
110    return 0;
111}
112
113sub append_code {
114    my $dest = shift;
115    my $code = shift;
116    my $ident = shift;
117
118    for(@$code) {
119        push @$dest, "$ident$_";
120    }
121}
122
123sub append_if {
124    my $dest = shift;
125    my $test = shift;
126    my $code = shift;
127
128    if(scalar @$code) {
129        push @$dest, "if($test) {";
130        append_code $dest,$code,"    ";
131        push @$dest, "}";
132    }
133}
134
135sub call
136{
137    my $function = shift;
138    return $function . ' ( ' . (join( ' , ', @_ )) . ' ) ';
139}
140
1411;
Note: See TracBrowser for help on using the repository browser.