JZsdk_Osal.h 2.6 KB
/**
 ********************************************************************
 * @file   JZsdk_Osal.h
 *          JZsdk_Osal.c 的头文件
 *
 *********************************************************************
 */

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef JZSDK_OSAL_H
#define JZSDK_OSAL_H

/* Includes ------------------------------------------------------------------*/
#include "../JZsdk_Code/JZsdk_Code.h"

#include "./JZsdk_CheckSum/JZsdk_CheckSum.h"
#include "./JZsdk_FileSystm/JZsdk_FileSystm.h"
#include "./JZsdk_MemoryAdapter/JZsdk_MemoryAdapter.h"
#include "./JZsdk_Mutex/JZsdk_Mutex.h"
#include "./JZsdk_Semaphore/JZsdk_Semaphore.h"
#include "./JZsdk_Task/JZsdk_Task.h"
#include "./JZsdk_Timer/JZsdk_Timer.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/

/****************
 * 
 *  osal权柄
 * 
 * 
 * ******************/
typedef struct {
    T_JZsdkReturnCode (*TaskCreate)(const char *name, void *(*taskFunc)(void *),
                                  unsigned int stackSize, void *arg, T_JZTaskHandle *task);

    T_JZsdkReturnCode (*TaskDestroy)(T_JZTaskHandle task);

    T_JZsdkReturnCode (*TaskSleepMs)(U32_t timeMs);

    T_JZsdkReturnCode (*MutexCreate)(T_JZsdkMutexHandle *mutex);

    T_JZsdkReturnCode (*MutexDestroy)(T_JZsdkMutexHandle mutex);

    T_JZsdkReturnCode (*MutexLock)(T_JZsdkMutexHandle mutex);

    T_JZsdkReturnCode (*MutexUnlock)(T_JZsdkMutexHandle mutex);

    T_JZsdkReturnCode (*SemaphoreCreate)(U32_t initValue, T_JZsdkSemaHandle *semaphore);

    T_JZsdkReturnCode (*SemaphoreDestroy)(T_JZsdkSemaHandle semaphore);

    T_JZsdkReturnCode (*SemaphoreWait)(T_JZsdkSemaHandle semaphore);

    T_JZsdkReturnCode (*SemaphoreTimedWait)(T_JZsdkSemaHandle semaphore, U32_t waitTimeMs);

    T_JZsdkReturnCode (*SemaphorePost)(T_JZsdkSemaHandle semaphore);

    T_JZsdkReturnCode (*GetTimeMs)(U32_t *ms);

    T_JZsdkReturnCode (*GetTimeUs)(U64_t *us);

    T_JZsdkReturnCode (*GetRandomNum)(U16_t *randomNum);

    void *(*Malloc)(U32_t size);

    void (*Free)(void *ptr);
} T_JZsdkOsalHandler;



/* Exported macro ------------------------------------------------------------*/


/* Exported types ------------------------------------------------------------*/


/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode JZsdk_OsalInit();
T_JZsdkOsalHandler *JZsdk_Platform_GetOsalHandler(void);


#ifdef __cplusplus
}
#endif

#endif 
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/