1    /*
     2     * Copyright (c) 2014-2019, 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     *  ======== SecondsCallback.xdc ========
    34     *
    35     */
    36    package ti.sysbios.hal;
    37    
    38    /*!
    39     *  ======== SecondsCallback ========
    40     *  A Seconds module that calls user-supplied callbacks
    41     *
    42     *  ISeconds implementation that uses user callback functions
    43     *  This module provides a implementation of the `{@link ISystemSupport}`
    44     *  interface that simply calls back the user defined functions to enable the
    45     *  System module's functionality.
    46     *
    47     *  Configuration is as shown below.
    48     *  @p(code)
    49     *
    50     *  var SecondsCallback = xdc.useModule('xdc.runtime.SecondsCallback');
    51     *  SecondsCallback.getFxn = "&userGetSeconds";
    52     *  SecondsCallback.setFxn = "&userSetSeconds";
    53     *  SecondsCallback.getTimeFxn = "&userGetTime";
    54     *  SecondsCallback.setTimeFxn = "&userSetTime";
    55     *
    56     *  @p
    57     */
    58    module SecondsCallback inherits ti.sysbios.interfaces.ISeconds
    59    {
    60        /*!
    61         *  ======== GetFxn ========
    62         *  'get' function signature
    63         */
    64        typedef UInt32 (*GetFxn)();
    65    
    66        /*!
    67         *  ======== SetFxn ========
    68         *  'set' function signature
    69         */
    70        typedef Void (*SetFxn)(UInt32);
    71    
    72        /*!
    73         *  ======== GetTimeFxn ========
    74         *  'getTime' function signature
    75         */
    76        typedef UInt32 (*GetTimeFxn)(SecondsCallback.Time *);
    77    
    78        /*!
    79         *  ======== SetFxn ========
    80         *  'set' function signature
    81         */
    82        typedef UInt32 (*SetTimeFxn)(SecondsCallback.Time *);
    83    
    84        /*!
    85         *  ======== getFxn =========
    86         *  User supplied 'get' function
    87         *
    88         *  This function is called when the application calls
    89         *  `{@link Seconds#get()}` function.
    90         *
    91         *  By default, this function is configured with a default function
    92         *  that returns 0.
    93         */
    94        config GetFxn getFxn = "&ti_sysbios_hal_SecondsCallback_defaultGet";
    95    
    96        /*!
    97         *  ======== setFxn =========
    98         *  User supplied 'set' function
    99         *
   100         *  This function is called when the application calls
   101         *  `{@link Seconds#set()}` function.
   102         *
   103         *  By default, this function is configured with a default function
   104         *  that does nothing.
   105         */
   106        config SetFxn setFxn = "&ti_sysbios_hal_SecondsCallback_defaultSet";
   107    
   108        /*!
   109         *  ======== getTimeFxn =========
   110         *  User supplied 'getTime' function
   111         *
   112         *  This function is called when the application calls
   113         *  `{@link Seconds#getTime()}` function.
   114         *
   115         *  By default, this function is configured with a default function
   116         *  that returns 0.
   117         */
   118        config GetTimeFxn getTimeFxn = "&ti_sysbios_hal_SecondsCallback_defaultGetTime";
   119    
   120        /*!
   121         *  ======== setTimeFxn =========
   122         *  User supplied 'set' function
   123         *
   124         *  This function is called when the application calls
   125         *  `{@link Seconds#setTime()}` function.
   126         *
   127         *  By default, this function is configured with a default function
   128         *  that returns 0.
   129         */
   130        config SetTimeFxn setTimeFxn = "&ti_sysbios_hal_SecondsCallback_defaultSetTime";
   131    }