text: /*
   * Copyright (c) 2015-2017 Qualcomm Technologies, Inc.
   * All Rights Reserved.
   */
  // Copyright (c) 2018 Qualcomm Technologies, Inc.
  // All rights reserved.
  // Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) 
  // provided that the following conditions are met:
  // Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  // Redistributions in binary form must reproduce the above copyright notice, 
  // this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  // Neither the name of Qualcomm Technologies, Inc. nor the names of its contributors may be used to endorse or promote products derived 
  // from this software without specific prior written permission.
  // NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. 
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
  // IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 
  // OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
  // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
  // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  #ifndef __QCLI_H__   // [
  #define __QCLI_H__
  
  /*-------------------------------------------------------------------------
   * Include Files
   *-----------------------------------------------------------------------*/
  
  #include "qapi_types.h"
  
  /*-------------------------------------------------------------------------
   * Preprocessor Definitions and Constants
   *-----------------------------------------------------------------------*/
  
  /*-------------------------------------------------------------------------
   * Type Declarations
   *-----------------------------------------------------------------------*/
  
  /*-------------------------------------------------------------------------
   * Function Declarations and Documentation
   *-----------------------------------------------------------------------*/
  
  /**
     @brief This function is used to initialize the QCLI module.
  
     This function must be called before any other QCLI functions.
  
     @return
      - true if QCLI was initialized successfully.
      - false if initialization failed.
  */
  qbool_t QCLI_Initialize(void);
  
  /**
     @brief This function handles Mode Switch Prepare indications.
  
     @param Next_Mode is the mode the chip will be transitioning to.
  
     @return
      - true if the mode switch can occur.
      - false if the mode-switch should be aborted.
  */
  qbool_t QCLI_Prepare_Mode_Switch(Operating_Mode_t Next_Mode);
  
  /**
     @brief This function handles the mode switch cancel indications.
  */
  void QCLI_Cancel_Mode_Switch(void);
  
  /**
     @brief This function handles the mode exit callback indications.
  
     @param Next_Mode is the mode the chip is transitioning to.
  */
  void QCLI_Exit_Mode(Operating_Mode_t Next_Mode);
  
  /**
     @brief This function is intended to restore the state of QCLI after a warm
            boot.  It should be called after all demo applications have
            initialized.
  */
  void QCLI_Restore_State(void);
  
  /**
     @brief This function passes characters input from the command line to
            the QCLI module for processing.
  
     @param Length is the number of bytes in the provided buffer.
     @param Buffer is a pointer to the buffer containing the inputted data.
  
     @return
      - true if QCLI was initialized successfully.
      - false if initialization failed.
  */
  void QCLI_Process_Input_Data(uint32_t Length, char *Buffer);
  
  /**
     @brief This function displays the current command list.
  
     It is intended to provide a means for the initial command list to be
     displayed once platform initialization is complete.
  */
  void QCLI_Display_Command_List(void);
  
  #endif // ] #ifndef __QCLI_H__
  
  