| /* |
| * |
| * Copyright (c) 2012-2013 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 toolchain- |
| * specific constants and types required for building |
| * LwIP against DARWIN. |
| * |
| */ |
| |
| #ifndef NL_LWIP_DARWIN_ARCH_CC_H |
| #define NL_LWIP_DARWIN_ARCH_CC_H |
| |
| #include <errno.h> |
| #include <stdlib.h> |
| #include <stddef.h> |
| #include <stdint.h> |
| #include <stdio.h> |
| |
| #include <sys/time.h> |
| #include <sys/types.h> |
| |
| typedef int8_t s8_t; |
| typedef uint8_t u8_t; |
| typedef int16_t s16_t; |
| typedef uint16_t u16_t; |
| typedef int32_t s32_t; |
| typedef uint32_t u32_t; |
| |
| typedef ptrdiff_t mem_ptr_t; |
| |
| typedef u32_t sys_prot_t; |
| |
| #ifndef LWIP_NOASSERT |
| #define LWIP_PLATFORM_ASSERT(message) do { puts(message); } while (0) |
| #else |
| #define LWIP_PLATFORM_ASSERT(message) |
| #endif |
| |
| /* Darwin defines BYTE_ORDER to definitions that should be identical |
| * to those LwIP has defined for LITTLE_ENDIAN and BIG_ENDIAN. Ensure |
| * that's the case. |
| */ |
| #if !defined(BYTE_ORDER) |
| # if defined(__LITTLE_ENDIAN__) |
| # define BYTE_ORDER LITTLE_ENDIAN |
| # elif defined(__BIG_ENDIAN__) |
| # define BYTE_ORDER BIG_ENDIAN |
| # endif |
| #else |
| # if defined(__LITTLE_ENDIAN__) && (BYTE_ORDER != LITTLE_ENDIAN) |
| # error "Darwin's BYTE_ORDER is inconsistent with LwIP's LITTLE_ENDIAN." |
| # elif defined(__BIG_ENDIAN__) && (BYTE_ORDER != BIG_ENDIAN) |
| # error "Darwin's BYTE_ORDER is inconsistent with LwIP's BIG_ENDIAN." |
| # endif |
| #endif |
| |
| /* LwIP Debug Output Formatting and Function Calls */ |
| |
| #define U16_F "hu" |
| #define S16_F "hd" |
| #define X16_F "hx" |
| #define U32_F "u" |
| #define S32_F "d" |
| #define X32_F "x" |
| #define SZT_F "zu" |
| |
| #define PACK_STRUCT_STRUCT __attribute__ ((__packed__)) |
| #define PACK_STRUCT_FIELD(x) x |
| |
| #define LWIP_PLATFORM_DIAG(x) \ |
| do { \ |
| printf x; \ |
| } while (0) |
| |
| #endif /* NL_LWIP_DARWIN_ARCH_CC_H */ |