/**
 * @file   tlapidriver.h
 * @brief  Header file for calling driver
 *
 * Copyright (C) 2012 Giesecke & Devrient GmbH
 */

#ifndef __TLAPIDRIVER_H__
#define __TLAPIDRIVER_H__

/** tlApi function to call driver via IPC.
 * Function should be called only from customer specific TlApi library.
 * Sends a MSG_RQ message via IPC to a MobiCore driver.
 *
 * @param driverID The driver to send the IPC to.
 * @param pMarParam MPointer to marshaling parameters to send to the driver.
 *
 * @return TLAPI_OK
 * @return E_TLAPI_COM_ERROR in case of an IPC error.
 */
_TLAPI_EXTERN_C tlApiResult_t tlApi_callDriver(uint32_t driver_ID, void *pMarParam);

/** tlApi function to call driver via IPC.
 * Sends a MSG_RQ message via IPC to a MobiCore driver.
 *
 * @param driverID The driver to send the IPC to.
 * @param payload MPointer to marshaling parameters to send to the driver.
 * @param payloadSize the size of the payload that will be sent to the driver
 *
 * @return TLAPI_OK
 * @return E_TLAPI_COM_ERROR in case of an IPC error.
 */
_TLAPI_EXTERN_C tlApiResult_t tlApi_callDriverEx(
        uint32_t driver_ID,
        void* payload,
        uint32_t payloadSize);
#endif /* __TLAPIDRIVER_H__ */

/** @} */
