1    /* 
     2     * Copyright (c) 2010, Texas Instruments Incorporated
     3     * All rights reserved.
     4     *
     5     * Redistribution and use in source and binary forms, with or without
     6     * modification, are permitted provided that the following conditions
     7     * are met:
     8     *
     9     * *  Redistributions of source code must retain the above copyright
    10     *    notice, this list of conditions and the following disclaimer.
    11     *
    12     * *  Redistributions in binary form must reproduce the above copyright
    13     *    notice, this list of conditions and the following disclaimer in the
    14     *    documentation and/or other materials provided with the distribution.
    15     *
    16     * *  Neither the name of Texas Instruments Incorporated nor the names of
    17     *    its contributors may be used to endorse or promote products derived
    18     *    from this software without specific prior written permission.
    19     *
    20     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    21     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    22     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    23     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    24     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    25     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    26     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    27     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    28     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    29     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    30     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    31     * */
    32    /*!
    33     *  ======== GROUPUTILS ========
    34     *  Framework Components Edma3 specific IRES Resman and Protocol Implementation
    35     *
    36     */
    37    @Template("./GROUPUTILS.xdt")
    38    
    39    metaonly module GROUPUTILS {
    40    
    41        /*!
    42         *  ======== ipcKeyBase ========
    43         *  Linux only. Base value of keys of Linux IPC objects used by
    44         *  GROUPUTILS. The IPC objects created by GROUPUTILS will use keys starting 
    45         *  at this
    46         *  value, and incrementing with each new object. There are currently
    47         *  three IPC objects, so keys in the range of ipcKeyBase to ipcKeyBase + 2
    48         *  will be reserved for GROUPUTILS. The default value of ipcKeyBase is
    49         *  ascii code for "SLIT".
    50         *
    51         *  WARNING: This value should only be changed if it conflicts with
    52         *  another IPC key in the system that cannot be changed. If this value
    53         *  is changed, all programs using GROUPUTILS that will be run simultaneously
    54         *  must have the ipcKeyBase configured to the new value.
    55         *  @_nodoc
    56         */
    57        config UInt ipcKeyBase = 0x534C4954;
    58    
    59        /*  @_nodoc */
    60        const Bool autoRegister = true;
    61    
    62        /* @_nodoc */
    63        config bool debug = false;
    64    
    65        /* @_nodoc */
    66        config bool trace = false;
    67    
    68        /* @_nodoc */
    69        config String lockScratchGroupFxn = null; 
    70    
    71        /* @_nodoc */
    72        config String unlockScratchGroupFxn = null; 
    73    
    74        /* We also need a package-name that implements these functions*/ 
    75        config String scratchFxnPackage = null; 
    76    
    77        /*!
    78         *  ======== semCreateFxn ========
    79         * Function to create semaphores used by various individual resource
    80         * manager(s) registered with RMAN.
    81         *
    82         *  Function signature is:
    83         *  @p(code)
    84         * Void * _semCreate(Int key, Int count);
    85         */
    86        config String semCreateFxn = null;
    87     
    88        /*!
    89         *  ======== semDeleteFxn ========
    90         * Function to delete semaphores used by various individual resource
    91         * manager(s) registered with RMAN.
    92         *
    93         *  Function signature is:
    94         *  @p(code)
    95         *  Void _semDelete(Void * sem);
    96         */
    97        config String semDeleteFxn = null;
    98      
    99        /*!
   100         *  ======== semPendFxn ========
   101         * Function to pend on semaphores used by various resource manager(s)
   102         * registered with RMAN.
   103         *
   104         *  Function signature is:
   105         *  @p(code)
   106         *  Int _semPend(Void * sem, UInt32 timeout);
   107         */
   108        config String semPendFxn = null;
   109      
   110        /*!
   111         *  ======== semPostFxn ========
   112         * Function to post on Semaphores used by various resource manager(s)
   113         * registered with RMAN.
   114         *
   115         *  Function signature is:
   116         *  @p(code)
   117         * Void _semPost(Void * sem);
   118         */
   119        config String semPostFxn = null;
   120    }
   121    
   122    /*
   123     *  @(#) ti.sdo.fc.ires.grouputils; 1, 0, 0,20; 7-2-2010 18:59:17; /db/atree/library/trees/fc/fc-l07x/src/
   124     */
   125