blob: 36fba6b19eec59f957b5204158fcb95f7937cc0c [file] [log] [blame]
/*
* Copyright (c) 2020 Project CHIP Authors
* Copyright (c) 2018-2019 Google LLC.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* Description:
* LwIP sys_arch definitions for use with FreeRTOS.
*
*/
#ifndef CHIP_LWIP_FREERTOS_ARCH_SYS_ARCH_H
#define CHIP_LWIP_FREERTOS_ARCH_SYS_ARCH_H
#include "FreeRTOS.h"
#include "queue.h"
#include "semphr.h"
#include "task.h"
#define SYS_MBOX_NULL ((xQueueHandle) NULL)
#define SYS_SEM_NULL ((xSemaphoreHandle) NULL)
#define SYS_DEFAULT_THREAD_STACK_DEPTH configMINIMAL_STACK_SIZE
#define SYS_MESG_QUEUE_LENGTH ((UBaseType_t) 6)
#define SYS_POST_BLOCK_TIME_MS 10000
typedef QueueHandle_t sys_mbox_t;
typedef xSemaphoreHandle sys_mutex_t;
typedef xSemaphoreHandle sys_sem_t;
typedef TaskHandle_t sys_thread_t;
typedef UBaseType_t sys_prot_t;
#include "arch/sys_arch.h"
#include "lwip/opt.h"
#include "lwip/sys.h"
#define sys_sem_valid(sem) (((sem) != NULL) && (*(sem) != NULL))
#define sys_sem_set_invalid(sem) \
do \
{ \
if ((sem) != NULL) \
{ \
*(sem) = NULL; \
} \
} while (0)
#define sys_mutex_valid(mutex) (((mutex) != NULL) && (*(mutex) != NULL))
#define sys_mutex_set_invalid(mutex) \
do \
{ \
if ((mutex) != NULL) \
{ \
*(mutex) = NULL; \
} \
} while (0)
#define sys_mbox_valid(mbox) (((mbox) != NULL) && (*(mbox) != NULL))
#define sys_mbox_set_invalid(mbox) \
do \
{ \
if ((mbox) != NULL) \
{ \
*(mbox) = NULL; \
} \
} while (0)
#define sys_profile_interval_set_pbuf_highwatermark(...)
#endif /* CHIP_LWIP_FREERTOS_ARCH_SYS_ARCH_H */