1    /* --COPYRIGHT--,ESD
     2     *  Copyright (c) 2008 Texas Instruments. All rights reserved. 
     3     *  This program and the accompanying materials are made available under the 
     4     *  terms of the Eclipse Public License v1.0 and Eclipse Distribution License
     5     *  v. 1.0 which accompanies this distribution. The Eclipse Public License is
     6     *  available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse
     7     *  Distribution License is available at 
     8     *  http://www.eclipse.org/org/documents/edl-v10.php.
     9     *
    10     *  Contributors:
    11     *      Texas Instruments - initial implementation
    12     * --/COPYRIGHT--*/
    13    /*
    14     *  ======== GateThread.xdc ========
    15     */
    16    
    17    import xdc.runtime.IGateProvider;
    18    import xdc.runtime.knl.IGateThreadSupport;
    19    
    20    /*!
    21     *  ======== GateThread ========
    22     *  Provides protection of critical sections across threads. [EXPERIMENTAL]
    23     *
    24     *  This module provides services through its proxy 
    25     *  IGateThreadSupport interface. It has a module wide config parameter 
    26     *  {@link #Proxy} which needs to be bound to an OS specific delegate before 
    27     *  this module can be used.
    28     *  
    29     *  Here is an example showing how the proxy is bound to an BIOS 6.x specific 
    30     *  delegate.
    31     *
    32     *  var GateThread = xdc.useModule('xdc.runtime.knl.GateThread');
    33     *  GateThread.Proxy = 
    34     *      xdc.useModule('ti.sysbios.xdcruntime.GateThreadSupport');
    35     *
    36     *  Typically the package containing the delegates have a Settings module that 
    37     *  will bind all {@link xdc.runtime.knl} proxies. The following
    38     *  example sets up all the xdc.runtime.knl proxies.
    39     *  
    40     *  xdc.useModule("ti.sysbios.xdcruntime.Settings");
    41     *  
    42     */
    43     
    44    @InstanceInitError      /* because initialization can fail */
    45    @InstanceFinalize       /* have to Gate_Proxy_delete(sem) on delete */
    46    
    47    module GateThread inherits IGateProvider
    48    {
    49        /*! Proxy that needs to be bound to an OS specific delegate. */
    50        proxy Proxy inherits IGateThreadSupport;
    51    
    52    internal:
    53    
    54        struct Instance_State {
    55            Proxy.Handle proxyHandle;
    56        }
    57    
    58    }
    59    
    60    /*
    61     *! Revision History
    62     *! ================
    63     *! 17-Apr-2009 nitya    Review updates
    64     */
    65    /*
    66     *  @(#) xdc.runtime.knl; 1, 0, 0,24; 9-3-2009 11:42:01; /db/ztree/library/trees/xdc-t57x/src/packages/
    67     */
    68