/*
 * Copyright (c) 2003, 2009 Bob Deblier
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

#ifndef _BEECRYPT_GNU_H
#define _BEECRYPT_GNU_H

#if __MINGW32__
# define _REENTRANT
# if !defined(_WIN32_WINNT)
#  define _WIN32_WINNT 0x0400
# endif
# include <windows.h>
#endif

#include <inttypes.h>
#include <stdint.h>


#include <pthread.h>
#include <semaphore.h>
#include <sched.h>
#include <stdio.h>
#include <stdlib.h>

#include <string.h>
#include <unistd.h>
#include <dlfcn.h>

typedef pthread_cond_t bc_cond_t;
typedef pthread_mutex_t bc_mutex_t;
typedef pthread_t bc_thread_t;
typedef pthread_t bc_threadid_t;













#if defined(__GNUC__)
# if !defined(__GNUC_PREREQ__)
#  define __GNUC_PREREQ__(maj, min) (__GNUC__ > (maj) || __GNUC__ == (maj) && __GNUC_MINOR__ >= (min))
# endif
#else
# define __GNUC__ 0
# define __GNUC_PREREQ__(maj, min) 0
#endif

/* WARNING: overriding this value is dangerous; some assembler routines
 * make assumptions about the size set by the configure script
 */
#if !defined(MP_WBITS)
# define MP_WBITS	32U
#endif

#endif
