]> git.meshlink.io Git - catta/blobdiff - avahi-compat-howl/include/salt/platform.h
Merge branch 'release/0.0.1'
[catta] / avahi-compat-howl / include / salt / platform.h
diff --git a/avahi-compat-howl/include/salt/platform.h b/avahi-compat-howl/include/salt/platform.h
deleted file mode 100644 (file)
index 6bb9dcc..0000000
+++ /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 <vxworks.h>
-#      include <sysLib.h>
-
-#      define sw_snooze(SECS)          taskDelay(sysClkRateGet() * SECS)
-
-#elif defined(WIN32)
-
-#      define WIN32_LEAN_AND_MEAN
-#      define HOWL_API __stdcall
-#      pragma warning(disable:4127)
-#      include <windows.h>
-#      include <stdlib.h>
-
-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 <howl_config.h>
-#      endif
-#      include <sys/types.h>
-#      include <stdlib.h>
-#      include <unistd.h>
-
-#      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 <string.h>
-
-#      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 <string.h>
-
-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 <StringMgr.h>
-
-#      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 <string.h>
-
-#      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 <vxworks.h>
-#      include <hostLib.h>
-#      include <sockLib.h>
-#      include <ioLib.h>
-#      include <inetLib.h>
-
-typedef int                                                    sw_sockdesc_t;
-typedef socklen_t                                      sw_socklen_t;
-
-#elif defined(WIN32)
-
-#      include <winsock2.h>
-
-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 <unistd.h>
-
-#      endif
-
-#      include <sys/types.h>
-#      include <signal.h>
-
-#      if defined(__Lynx__)
-
-#              include <socket.h>
-
-#      else
-
-#              include <sys/socket.h>
-
-#      endif
-
-#      include <netinet/in.h>
-#      include <netinet/tcp.h>
-#      include <netdb.h>
-#      include <arpa/inet.h>
-#      include <stdlib.h>
-#      include <unistd.h>
-#      include <sys/ioctl.h>
-#      include <stdio.h>
-#      include <errno.h>
-
-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