X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-compat-howl%2Finclude%2Fsalt%2Fplatform.h;fp=avahi-compat-howl%2Finclude%2Fsalt%2Fplatform.h;h=0000000000000000000000000000000000000000;hb=f1de9dcaab953757252d51b4725cbfa36daa10a5;hp=6bb9dcc55f89796baf0a1b184d2d622f4fea6170;hpb=7a5b2f69af7d36d6cd4153142f125fa011784e03;p=catta diff --git a/avahi-compat-howl/include/salt/platform.h b/avahi-compat-howl/include/salt/platform.h deleted file mode 100644 index 6bb9dcc..0000000 --- a/avahi-compat-howl/include/salt/platform.h +++ /dev/null @@ -1,438 +0,0 @@ -#ifndef _sw_platform_h -#define _sw_platform_h - -/* - * Copyright 2003, 2004 Porchdog Software, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY PORCHDOG SOFTWARE ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE HOWL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those - * of the authors and should not be interpreted as representing official policies, - * either expressed or implied, of Porchdog Software, Inc. - */ - - -#ifdef __cplusplus -extern "C" -{ -#endif - - -#if defined(__VXWORKS__) - -# define HOWL_API -# include -# include - -# define sw_snooze(SECS) taskDelay(sysClkRateGet() * SECS) - -#elif defined(WIN32) - -# define WIN32_LEAN_AND_MEAN -# define HOWL_API __stdcall -# pragma warning(disable:4127) -# include -# include - -typedef signed char int8_t; -typedef unsigned char u_int8_t; -typedef signed short int16_t; -typedef unsigned short u_int16_t; -typedef signed long int32_t; -typedef unsigned long u_int32_t; -typedef _int64 int64_t; -typedef _int64 u_int64_t; - -# define sw_snooze(SECS) Sleep(SECS * 1000) - -#else - -# define HOWL_API -# if defined(HOWL_KERNEL) -# include -# endif -# include -# include -# include - -# define sw_snooze(SECS) sleep(SECS) - -#endif - -#if defined(__sun) - -# define u_int8_t uint8_t -# define u_int16_t uint16_t -# define u_int32_t uint32_t -# define u_int64_t uint64_t - -#endif - -typedef void * sw_opaque; -typedef void * sw_opaque_t; -typedef int8_t sw_int8; -typedef u_int8_t sw_uint8; -typedef u_int8_t sw_bool; -typedef int16_t sw_int16; -typedef u_int16_t sw_uint16; -typedef int32_t sw_int32; -typedef u_int32_t sw_uint32; -typedef int64_t sw_int64; -typedef u_int64_t sw_uint64; -typedef char * sw_string; -typedef sw_uint8 * sw_octets; -#if !defined(__VXWORKS__) || defined(__cplusplus) -typedef const char * sw_const_string; -typedef const u_int8_t * sw_const_octets; -#else -typedef char * sw_const_string; -typedef u_int8_t * sw_const_octets; -#endif -typedef size_t sw_size_t; -typedef int sw_result; - - - -/* -------------------------------------------------------- - * - * Endian-osity - * - * SW_ENDIAN is 0 for big endian platforms, 1 - * for little endian platforms. - * - * The macro WORDS_BIGENDIAN will be defined - * by autoconf. If you are using Howl on - * a platform that doesn't have autoconf, define - * SW_ENDIAN directly - * -------------------------------------------------------- - */ - -#if !defined(SW_ENDIAN) - -# if defined(WORDS_BIGENDIAN) && WORDS_BIGENDIAN == 1 - -# define SW_ENDIAN 0 - -# else - -# define SW_ENDIAN 1 - -# endif - -#endif - - -/* -------------------------------------------------------- - * - * Strings - * - * These macros supports cross platform string functions - * for the following OSes - * - * Win32 - * *NIX - * PalmOS - * VxWorks - * - * -------------------------------------------------------- - */ - -#if defined(WIN32) - -# include - -# define sw_memset(ARG1, ARG2, ARG3) memset((char*) ARG1, ARG2, ARG3) -# define sw_memcpy(ARG1, ARG2, ARG3) memmove((char*) ARG1, (char*) ARG2, ARG3) -# define sw_memcmp(ARG1, ARG2, ARG3) memcmp((char*) ARG1, ARG2, ARG3) -# define sw_strcasecmp(ARG1, ARG2) stricmp(ARG1, ARG2) -# define sw_strncasecmp(ARG1, ARG2) strnicmp(ARG1, ARG2) -# define sw_strcat(ARG1, ARG2) strcat(ARG1, ARG2) -# define sw_strncat(ARG1, ARG2) strncat(ARG1, ARG2) -# define sw_strchr(ARG1, ARG2) strchr(ARG1, ARG2) -# define sw_strcmp(ARG1, ARG2) strcmp(ARG1, ARG2) -# define sw_strncmp(ARG1, ARG2) strncmp(ARG1, ARG2) -# define sw_strcoll(ARG1, ARG2) strcoll(ARG1, ARG2) -# define sw_strcpy(ARG1, ARG2) (ARG2) ? strcpy(ARG1, ARG2) : strcpy(ARG1, "") -# define sw_strncpy(ARG1, ARG2, N) (ARG2) ? strncpy(ARG1, ARG2, N) : strcpy(ARG1, "") -# define sw_strcspn(ARG1, ARG2) strcspn(ARG1, ARG2) -# define sw_strlen(ARG1) strlen(ARG1) -# define sw_strstr(ARG1, ARG2) strstr(ARG1, ARG2) -# define sw_strtok_r(ARG1, ARG2, ARG3) strtok_r(ARG1, ARG2, ARG3) - -#elif defined(__VXWORKS__) - -# include - -extern sw_int32 -sw_strcasecmp( - sw_const_string arg1, - sw_const_string arg2); - -extern sw_int32 -sw_strncasecmp( - sw_const_string arg1, - sw_const_string arg2, - sw_len n); - -extern sw_string -sw_strtok_r( - sw_string arg1, - sw_const_string arg2, - sw_string * lasts); - -# define sw_memset(ARG1, ARG2, ARG3) memset((char*) ARG1, ARG2, ARG3) -# define sw_memcpy(ARG1, ARG2, ARG3) memcpy((char*) ARG1, (char*) ARG2, ARG3) -# define sw_memcmp(ARG1, ARG2, ARG3) memcmp((char*) ARG1, ARG2, ARG3) -# define sw_strcat(ARG1, ARG2) strcat(ARG1, ARG2) -# define sw_strncat(ARG1, ARG2) strncat(ARG1, ARG2) -# define sw_strchr(ARG1, ARG2) strchr(ARG1, ARG2) -# define sw_strcmp(ARG1, ARG2) strcmp(ARG1, ARG2) -# define sw_strncmp(ARG1, ARG2) strncmp(ARG1, ARG2) -# define sw_strcoll(ARG1, ARG2) strcoll(ARG1, ARG2) -# define sw_strcpy(ARG1, ARG2) ARG2 ? strcpy(ARG1, ARG2) : strcpy(ARG1, "") -# define sw_strncpy(ARG1, ARG2, N) ARG2 ? strncpy(ARG1, ARG2, N) : strcpy(ARG1, "") -# define sw_strcspn(ARG1, ARG2) strcspn(ARG1, ARG2) -# define sw_strlen(ARG1) strlen(ARG1) -# define sw_strstr(ARG1, ARG2) strstr(ARG1, ARG2) - -#elif defined(__PALMOS__) - -# include - -# define sw_strcasecmp(ARG1, ARG2) strcasecmp(ARG1, ARG2) -# define sw_strncasecmp(ARG1, ARG2) strncasecmp(ARG1, ARG2) -# define sw_strcat(ARG1, ARG2) StrCat(ARG1, ARG2) -# define sw_strncat(ARG1, ARG2) StrNCat(ARG1, ARG2) -# define sw_strchr(ARG1, ARG2) StrChr(ARG1, ARG2) -# define sw_strcmp(ARG1, ARG2) StrCampare(ARG1, ARG2) -# define sw_strncmp(ARG1, ARG2) StrNCompare(ARG1, ARG2) -# define sw_strcoll(ARG1, ARG2) strcoll(ARG1, ARG2) -# define sw_strcpy(ARG1, ARG2) ARG2 ? StrCopy(ARG1, ARG2) : StrCopy(ARG1, "") -# define sw_strncpy(ARG1, ARG2, N) ARG2 ? StrNCopy(ARG1, ARG2, N) : StrCopy(ARG1, "") -# define sw_strcspn(ARG1, ARG2) strcspn(ARG1, ARG2) -# define sw_strlen(ARG1) StrLen(ARG1) -# define sw_strstr(ARG1, ARG2) strstr(ARG1, ARG2) -# define sw_strtok_r(ARG1, ARG2, ARG3) strtok_r(ARG1, ARG2, ARG3) - -#else - -# include - -# if defined(__Lynx__) - char * strchr(char*, int); -# endif - -# define sw_memset(ARG1, ARG2, ARG3) memset((char*) ARG1, ARG2, ARG3) -# define sw_memcpy(ARG1, ARG2, ARG3) memcpy((char*) ARG1, (char*) ARG2, ARG3) -# define sw_memcmp(ARG1, ARG2, ARG3) memcmp((char*) ARG1, ARG2, ARG3) -# define sw_strcasecmp(ARG1, ARG2) strcasecmp(ARG1, ARG2) -# define sw_strncasecmp(ARG1, ARG2) strncasecmp(ARG1, ARG2) -# define sw_strcat(ARG1, ARG2) strcat(ARG1, ARG2) -# define sw_strncat(ARG1, ARG2) strncat(ARG1, ARG2) -# define sw_strchr(ARG1, ARG2) strchr(ARG1, ARG2) -# define sw_strcmp(ARG1, ARG2) strcmp(ARG1, ARG2) -# define sw_strncmp(ARG1, ARG2) strncmp(ARG1, ARG2) -# define sw_strcoll(ARG1, ARG2) strcoll(ARG1, ARG2) -# define sw_strcpy(ARG1, ARG2) ARG2 ? strcpy(ARG1, ARG2) : strcpy(ARG1, "") -# define sw_strncpy(ARG1, ARG2, N) ARG2 ? strncpy(ARG1, ARG2, N) : strcpy(ARG1, "") -# define sw_strcspn(ARG1, ARG2) strcspn(ARG1, ARG2) -# define sw_strlen(ARG1) strlen(ARG1) -# define sw_strstr(ARG1, ARG2) strstr(ARG1, ARG2) -# define sw_strtok_r(ARG1, ARG2, ARG3) strtok_r(ARG1, ARG2, ARG3) - -#endif - - -sw_string -sw_strdup( - sw_const_string str); - - -/* -------------------------------------------------------- - * - * Memory - * - * These macros support cross platform heap functions. - * When compiling with DEBUG, some extra checking is - * done which can aid in tracking down heap corruption - * problems - * - * -------------------------------------------------------- - */ - -#if defined(NDEBUG) - -# define sw_malloc(SIZE) malloc(SIZE) -# define sw_realloc(MEM,SIZE) realloc(MEM, SIZE) -# define sw_free(MEM) if (MEM) free(MEM) - -#else - -# define sw_malloc(SIZE) _sw_debug_malloc(SIZE, __SW_FUNCTION__, __FILE__, __LINE__) -# define sw_realloc(MEM,SIZE) _sw_debug_realloc(MEM, SIZE, __SW_FUNCTION__, __FILE__, __LINE__) -# define sw_free(MEM) if (MEM) _sw_debug_free(MEM, __SW_FUNCTION__, __FILE__, __LINE__) - -#endif - - -sw_opaque HOWL_API -_sw_debug_malloc( - sw_size_t size, - sw_const_string function, - sw_const_string file, - sw_uint32 line); - - -sw_opaque HOWL_API -_sw_debug_realloc( - sw_opaque_t mem, - sw_size_t size, - sw_const_string function, - sw_const_string file, - sw_uint32 line); - - -void HOWL_API -_sw_debug_free( - sw_opaque_t mem, - sw_const_string function, - sw_const_string file, - sw_uint32 line); - - - -/* -------------------------------------------------------- - * - * Sockets - * - * These macros and APIs support cross platform socket - * calls. I am relying on BSD APIs, but even with those - * there are subtle and not so subtle platform differences - * - * -------------------------------------------------------- - */ - -#if defined(__VXWORKS__) - -# include -# include -# include -# include -# include - -typedef int sw_sockdesc_t; -typedef socklen_t sw_socklen_t; - -#elif defined(WIN32) - -# include - -typedef SOCKET sw_sockdesc_t; -typedef int sw_socklen_t; - -# define SW_E_WOULDBLOCK WSAEWOULDBLOCK -# define SW_INVALID_SOCKET INVALID_SOCKET -# define SW_SOCKET_ERROR SOCKET_ERROR - -# define sw_close_socket(X) closesocket(X) - -#else - -# if defined(sun) - -# include - -# endif - -# include -# include - -# if defined(__Lynx__) - -# include - -# else - -# include - -# endif - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -typedef sw_int32 sw_sockdesc_t; -typedef socklen_t sw_socklen_t; - -# define SW_E_WOULDBLOCK EWOULDBLOCK -# define SW_INVALID_SOCKET -1 -# define SW_SOCKET_ERROR -1 - -# define sw_close_socket(X) close(X) - -#endif - - -/* -------------------------------------------------------- - * - * strerror() - * - * This function will print a string rep of a system error - * code - * - * -------------------------------------------------------- - */ - -sw_const_string -sw_strerror(); - - -/* - * Obsolete types and macros. - * - * These are here for backwards compatibility, but will - * be removed in the future - */ -#define sw_char sw_int8 -#define sw_uchar sw_uint8 -#define sw_octet sw_uint8 -#define sw_short sw_int16 -#define sw_ushort sw_uint16 -#define sw_long sw_int32 -#define sw_ulong sw_uint32 - - -#define SW_TRY(EXPR) { sw_result result; if ((result = EXPR) != SW_OKAY) return result; } ((void) 0) -#define SW_TRY_GOTO(EXPR) { if ((result = EXPR) != SW_OKAY) goto exit; } ((void) 0) - - -#ifdef __cplusplus -} -#endif - - -#endif