/*
 *
 *    Copyright (c) 2012 Nest Labs, Inc.
 *    All rights reserved.
 *
 *    This document is the property of Nest. It is considered
 *    confidential and proprietary information.
 *
 *    This document may not be reproduced or transmitted in any form,
 *    in whole or in part, without the express written permission of
 *    Nest.
 *
 *    Description:
 *      This file defines processor-architecture- and operating
 *      system- specific constants and types required for building
 *      LwIP against FreeRTOS.
 *
 */

#ifndef NL_LWIP_FREERTOS_ARCH_SYS_ARCH_H
#define NL_LWIP_FREERTOS_ARCH_SYS_ARCH_H

#include "FreeRTOS.h"
#include "queue.h"
#include "semphr.h"
#include "task.h"

typedef xQueueHandle sys_mbox_t;
typedef xSemaphoreHandle sys_mutex_t;
typedef xSemaphoreHandle sys_sem_t;
typedef xTaskHandle sys_thread_t;

#endif /* NL_LWIP_FREERTOS_ARCH_SYS_ARCH_H */
