0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-26 00:32:35 +01:00

ircd/rb: Move some remaining macros to rb.

This commit is contained in:
Jason Volk 2016-07-24 13:21:34 -07:00
parent 02119375b1
commit 78ad65f386
3 changed files with 51 additions and 64 deletions

View file

@ -76,12 +76,13 @@
* - Dianora * - Dianora
*/ */
#ifndef _WIN32
#include <netdb.h>
#endif
#include <rb/rb.h> #include <rb/rb.h>
#ifndef _WIN32 #ifndef _WIN32
#include <netdb.h>
typedef struct addrinfo rb_addrinfo; typedef struct addrinfo rb_addrinfo;
#else #else

View file

@ -22,64 +22,4 @@
*/ */
#include <rb/rb.h> #include <rb/rb.h>
#include "defaults.h" /* Needed for some reasons here -- dwr */ #include "defaults.h"
/* AIX requires this to be the first thing in the file. */
#ifdef __GNUC__
#undef alloca
#define alloca __builtin_alloca
#else
# ifdef _MSC_VER
# include <malloc.h>
# define alloca _alloca
# else
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
char *alloca ();
# endif
# endif
# endif
# endif
#endif
#ifdef HAVE_ERRNO_H
#else
extern int errno;
#endif
#if defined(__INTEL_COMPILER) || defined(__GNUC__)
# ifdef __unused
# undef __unused
# endif
# ifdef __printf
# undef __printf
# endif
# ifdef __noreturn
# undef __noreturn
# endif
# define __unused __attribute__((__unused__))
# define __printf(x) __attribute__((__format__ (__printf__, x, x + 1)))
# define __noreturn __attribute__((__noreturn__))
#else
# define __unused
# define __printf
# define __noreturn
#endif
#ifdef strdupa
#define LOCAL_COPY(s) strdupa(s)
#else
#if defined(__INTEL_COMPILER) || defined(__GNUC__)
# define LOCAL_COPY(s) __extension__({ char *_s = (char *)alloca(strlen(s) + 1); strcpy(_s, s); _s; })
#else
# define LOCAL_COPY(s) strcpy((char *)alloca(strlen(s) + 1), s)
#endif /* defined(__INTEL_COMPILER) || defined(__GNUC__) */
#endif /* strdupa */

View file

@ -92,6 +92,41 @@ char *alloca();
#define rb_unlikely(x) (x) #define rb_unlikely(x) (x)
#endif #endif
#if defined(__INTEL_COMPILER) || defined(__GNUC__)
#ifdef __unused
#undef __unused
#endif
#ifdef __printf
#undef __printf
#endif
#ifdef __noreturn
#undef __noreturn
#endif
#define __unused __attribute__((__unused__))
#define __printf(x) __attribute__((__format__ (__printf__, x, x + 1)))
#define __noreturn __attribute__((__noreturn__))
#else
#ifndef __unused
#define __unused
#endif
#ifndef __printf
#define __printf
#endif
#ifndef __noreturn
#define __noreturn
#endif
#endif
#ifdef _WIN32 #ifdef _WIN32
#define rb_get_errno() do { errno = WSAGetLastError(); WSASetLastError(errno); } while(0) #define rb_get_errno() do { errno = WSAGetLastError(); WSASetLastError(errno); } while(0)
typedef SOCKET rb_platform_fd_t; typedef SOCKET rb_platform_fd_t;
@ -321,6 +356,17 @@ while(0)
#endif #endif
#ifdef strdupa
#define LOCAL_COPY(s) strdupa(s)
#else
#if defined(__INTEL_COMPILER) || defined(__GNUC__)
#define LOCAL_COPY(s) __extension__({ char *_s = (char *)alloca(strlen(s) + 1); strcpy(_s, s); _s; })
#else
#define LOCAL_COPY(s) strcpy((char *)alloca(strlen(s) + 1), s)
#endif
#endif
#ifdef __cplusplus #ifdef __cplusplus
} // extern "C" } // extern "C"
#endif #endif