blob: d89bb20178fd4a5b8b328022cc1c46e68a4b5692 [file] [log] [blame]
/************************************************************************************
* Copyright (c) 2017 fortiss GmbH
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Milan Vathoopan - initial API and implementation and/or initial documentation
************************************************************************************/
#ifndef SRC_ARCH_FREERTOS_FORTE_INIT_H_
#define SRC_ARCH_FREERTOS_FORTE_INIT_H_
/* When moving this file to the outside of the architecture,
* the corresponding defines for exporting in windows or other platform
* must be added here
*
*/
#ifndef FORTE_SHARED_PREFIX
# define FORTE_SHARED_PREFIX
#endif
#ifndef FORTE_SHARED_CALL
# define FORTE_SHARED_CALL
#endif
#ifdef __cplusplus
extern "C" {
#endif
enum FORTE_STATUS {
FORTE_OK,
FORTE_DEVICE_ALREADY_STARTED,
FORTE_WRONG_ENDIANESS,
FORTE_WRONG_PARAMETERS,
FORTE_ARCHITECTURE_NOT_READY,
};
typedef void* TForteInstance;
/**
* \brief Start forte instance
* @param paPort The port on which to forte will listen. Use 0 for default (normally 61499)
* @param paResultInstance Address of an instance of forte where the new instance is stored
* @return FORTE_OK if no error occurred, other values otherwise
*/
FORTE_SHARED_PREFIX int FORTE_SHARED_CALL forteStartInstance(unsigned int paPort, TForteInstance* paResultInstance);
/**
* \brief Start forte instance with possibilities of more arguments
* @param paArgc Number of arguments in arg
* @param paArgv Arguments
* @param paResultInstance Address of an instance of forte where the new instance is stored
* @return FORTE_OK if no error occurred, other values otherwise
*/
FORTE_SHARED_PREFIX int FORTE_SHARED_CALL forteStartInstanceGeneric(int paArgc, char *paArgv[], TForteInstance* paResultInstance);
/**
* \brief Terminates a Forte instance
* @param paSignal Signal value to terminate instance
* @param paInstance Instance to terminate
*/
FORTE_SHARED_PREFIX void FORTE_SHARED_CALL forteStopInstance(int paSignal, TForteInstance paInstance);
/**
* \brief Terminates a Forte instance
* @param paInstance Instance to terminate
*/
FORTE_SHARED_PREFIX void FORTE_SHARED_CALL forteJoinInstance(TForteInstance paInstance);
/**
* \brief Initializes the architecture. Prepare all resources needed by the Forte's instances. Must be called once before the first Forte instance is started
*/
FORTE_SHARED_PREFIX void FORTE_SHARED_CALL forteGlobalInitialize(void);
/**
* \brief Deinitializes the architecture. Frees all resources used by Forte's instances. Must be called after the last instance is ended
*/
FORTE_SHARED_PREFIX void FORTE_SHARED_CALL forteGlobalDeinitialize(void);
#ifdef __cplusplus
}
#endif
#endif /* SRC_ARCH_FREERTOS_FORTE_INIT_H_ */