2003-08-13 05:53:07 +04:00
# ifndef _INCLUDES_H
# define _INCLUDES_H
/*
Unix SMB / CIFS implementation .
Machine customisation and include handling
Copyright ( C ) Andrew Tridgell 1994 - 1998
Copyright ( C ) 2002 by Martin Pool < mbp @ samba . org >
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program 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 General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# ifndef NO_CONFIG_H /* for some tests */
# include "config.h"
2004-05-13 14:20:53 +04:00
# include "smb_build.h"
2003-08-13 05:53:07 +04:00
# endif
# include "local.h"
2004-09-08 02:02:44 +04:00
# if (__GNUC__ >= 3)
2003-08-13 05:53:07 +04:00
/** Use gcc attribute to check printf fns. a1 is the 1-based index of
* the parameter containing the format , and a2 the index of the first
2004-09-08 02:02:44 +04:00
* argument . Note that some gcc 2. x versions don ' t handle this
* properly * */
2003-08-13 05:53:07 +04:00
# define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
# else
# define PRINTF_ATTRIBUTE(a1, a2)
# endif
# ifdef __GNUC__
/** gcc attribute used on function parameters so that it does not emit
* warnings about them being unused . * */
# define UNUSED(param) param __attribute__ ((unused))
# else
# define UNUSED(param) param
/** Feel free to add definitions for other compilers here. */
# endif
# include <sys/types.h>
# include <stdio.h>
2004-11-02 04:42:45 +03:00
# include <stdlib.h>
2004-11-02 05:57:18 +03:00
# include <stddef.h>
2005-02-11 13:50:54 +03:00
# include <sys/time.h>
2003-08-13 05:53:07 +04:00
2004-11-02 04:42:45 +03:00
# ifdef HAVE_STDINT_H
# include <stdint.h>
2003-08-13 05:53:07 +04:00
# endif
# ifdef HAVE_STRING_H
# include <string.h>
# endif
# include <signal.h>
# include <errno.h>
# ifdef HAVE_STDARG_H
# include <stdarg.h>
# else
# include <varargs.h>
# endif
2005-05-12 14:46:57 +04:00
# ifdef HAVE_WINSOCK2_H
# include <winsock2.h>
# endif
# ifdef HAVE_WINDOWS_H
# include <windows.h>
# endif
2003-08-13 05:53:07 +04:00
/* we support ADS if we want it and have krb5 and ldap libs */
# if defined(WITH_ADS) && defined(HAVE_KRB5) && defined(HAVE_LDAP)
# define HAVE_ADS
# endif
2005-06-17 06:48:48 +04:00
/* tell ldb we have the internal ldap code */
# define HAVE_ILDAP 1
2003-08-13 05:53:07 +04:00
/*
* Define VOLATILE if needed .
*/
2004-11-03 03:17:12 +03:00
# define False (0)
# define True (1)
# define Auto (2)
typedef int BOOL ;
2005-02-01 07:12:44 +03:00
/*
we use struct ipv4_addr to avoid having to include all the
system networking headers everywhere
*/
struct ipv4_addr {
uint32_t addr ;
} ;
2003-08-13 05:53:07 +04:00
# ifndef HAVE_STRERROR
extern char * sys_errlist [ ] ;
# define strerror(i) sys_errlist[i]
# endif
# ifndef HAVE_ERRNO_DECL
extern int errno ;
# endif
/* Lists, trees, caching, database... */
# include "xfile.h"
2005-01-02 10:47:34 +03:00
# include "lib/talloc/talloc.h"
2004-11-16 12:00:52 +03:00
# include "nt_status.h"
# include "structs.h"
2003-08-13 05:53:07 +04:00
# include "trans2.h"
# include "nterr.h"
# include "charset.h"
2004-11-03 03:17:12 +03:00
# include "debug.h"
# include "doserr.h"
# include "enums.h"
# include "smb_macros.h"
2003-08-13 05:53:07 +04:00
# include "smb.h"
# include "byteorder.h"
2003-11-25 06:15:26 +03:00
# include "module.h"
2004-11-01 08:26:28 +03:00
# include "librpc/ndr/libndr.h"
# include "librpc/gen_ndr/ndr_misc.h"
# include "librpc/gen_ndr/ndr_dcerpc.h"
2005-03-07 00:43:54 +03:00
# include "librpc/ndr/ndr_orpc.h"
# include "librpc/gen_ndr/ndr_orpc.h"
2003-11-06 15:34:04 +03:00
# include "librpc/rpc/dcerpc.h"
2004-11-01 08:26:28 +03:00
# include "smb_interfaces.h"
2004-02-03 14:18:54 +03:00
# include "ntvfs/ntvfs.h"
2003-12-12 06:59:09 +03:00
# include "cli_context.h"
2005-02-21 17:30:49 +03:00
# include "lib/com/com.h"
2005-05-01 23:29:00 +04:00
# include "credentials.h"
2004-10-25 05:34:56 +04:00
2005-06-07 11:22:25 +04:00
# include "lib/replace/replace.h"
2004-04-10 10:10:26 +04:00
# define malloc_p(type) (type *)malloc(sizeof(type))
# define malloc_array_p(type, count) (type *)realloc_array(NULL, sizeof(type), count)
# define realloc_p(p, type, count) (type *)realloc_array(p, sizeof(type), count)
2003-08-13 05:53:07 +04:00
/***** automatically generated prototypes *****/
2004-05-26 12:02:20 +04:00
# define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
2003-08-13 05:53:07 +04:00
# include "proto.h"
2004-05-26 12:02:20 +04:00
# undef _PRINTF_ATTRIBUTE
# define _PRINTF_ATTRIBUTE(a1, a2)
2003-08-13 05:53:07 +04:00
/* String routines */
# include "safe_string.h"
# ifndef HAVE_PIPE
# define SYNC_DNS 1
# endif
extern int DEBUGLEVEL ;
# if defined(VALGRIND)
# define strlen(x) valgrind_strlen(x)
# endif
2005-01-02 10:47:34 +03:00
#if 0
/* darn, we can't do this now that we don't link the ldb tools to all the smb libs */
2004-09-29 10:31:14 +04:00
# define TALLOC_ABORT(reason) smb_panic(reason)
2005-01-02 10:47:34 +03:00
# endif
2004-10-11 05:03:27 +04:00
/*
this is a warning hack . The idea is to use this everywhere that we
get the " discarding const " warning from gcc . That doesn ' t actually
fix the problem of course , but it means that when we do get to
cleaning them up we can do it by searching the code for
discard_const .
It also means that other error types aren ' t as swamped by the noise
of hundreds of const warnings , so we are more likely to notice when
we get new errors .
Please only add more uses of this macro when you find it
_really_ hard to fix const warnings . Our aim is to eventually use
this function in only a very few places .
Also , please call this via the discard_const_p ( ) macro interface , as that
makes the return type safe .
*/
2004-10-13 17:27:52 +04:00
# ifdef HAVE_INTPTR_T
2004-10-11 05:03:27 +04:00
# define discard_const(ptr) ((void *)((intptr_t)(ptr)))
2004-10-13 17:27:52 +04:00
# else
# define discard_const(ptr) ((void *)(ptr))
# endif
2004-10-11 05:03:27 +04:00
# define discard_const_p(type, ptr) ((type *)discard_const(ptr))
2004-12-04 12:30:38 +03:00
/*
type safe varient of smb_xmalloc ( )
*/
# define smb_xmalloc_p(type) (type *)smb_xmalloc(sizeof(type))
2005-01-21 16:29:24 +03:00
# endif /* _INCLUDES_H */