/* Implementation header for mudflap runtime library.
   Mudflap: narrow-pointer bounds-checking by tree rewriting.
   Copyright (C) 2002, 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
   Contributed by Frank Ch. Eigler <fche@redhat.com>
   and Graydon Hoare <graydon@redhat.com>

This file is part of GCC.

GCC 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 3, or (at your option) any later
version.

GCC 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.

Under Section 7 of GPL version 3, you are granted additional
permissions described in the GCC Runtime Library Exception, version
3.1, as published by the Free Software Foundation.

You should have received a copy of the GNU General Public License and
a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<http://www.gnu.org/licenses/>.  */

/* Public libmudflap declarations -*- C -*- */

#ifndef MF_RUNTIME_H
#define MF_RUNTIME_H

typedef void *__mf_ptr_t;
typedef unsigned int __mf_uintptr_t __attribute__ ((__mode__ (__pointer__)));
typedef __SIZE_TYPE__ __mf_size_t;

/* Global declarations used by instrumentation.  When _MUDFLAP is
   defined, these have been auto-declared by the compiler and we
   should not declare them again (ideally we *would* declare them
   again, to verify that the compiler's declarations match the
   library's, but the C++ front end has no mechanism for allowing
   the re-definition of a structure type).  */
#ifndef _MUDFLAP
struct __mf_cache { __mf_uintptr_t low; __mf_uintptr_t high; };
extern struct __mf_cache __mf_lookup_cache [];
extern __mf_uintptr_t __mf_lc_mask;
extern unsigned char __mf_lc_shift;
#endif

/* Multithreading support.  */
#ifdef _MUDFLAPTH
/* extern pthread_mutex_t __mf_biglock; */
#ifndef _REENTRANT
#define _REENTRANT
#endif
#ifndef _THREAD_SAFE
#define _THREAD_SAFE
#endif
#endif

/* Codes to describe the type of access to check: __mf_check arg 3 */

#define __MF_CHECK_READ 0
#define __MF_CHECK_WRITE 1


/* Codes to describe a region of memory being registered: __mf_*register arg 3 */

#define __MF_TYPE_NOACCESS 0
#define __MF_TYPE_HEAP 1
#define __MF_TYPE_HEAP_I 2
#define __MF_TYPE_STACK 3
#define __MF_TYPE_STATIC 4
#define __MF_TYPE_GUESS 5


/* The public mudflap API */

#ifdef __cplusplus
extern "C" {
#endif

extern void __mf_check (void *ptr, __mf_size_t sz, int type, const char *location)
       __attribute((nothrow));
extern void __mf_register (void *ptr, __mf_size_t sz, int type, const char *name)
       __attribute((nothrow));
extern void __mf_unregister (void *ptr, __mf_size_t sz, int type)
       __attribute((nothrow));
extern unsigned __mf_watch (void *ptr, __mf_size_t sz);
extern unsigned __mf_unwatch (void *ptr, __mf_size_t sz);
extern void __mf_report ();
extern int __mf_set_options (const char *opts);


/* Redirect some standard library functions to libmudflap.  These are
   done by simple #define rather than linker wrapping, since only
   instrumented modules are meant to be affected.  */

#ifdef _MUDFLAP
#pragma redefine_extname memcpy __mfwrap_memcpy
#pragma redefine_extname memmove __mfwrap_memmove
#pragma redefine_extname memset __mfwrap_memset
#pragma redefine_extname memcmp __mfwrap_memcmp
#pragma redefine_extname memchr __mfwrap_memchr
#pragma redefine_extname memrchr __mfwrap_memrchr
#pragma redefine_extname strcpy __mfwrap_strcpy
#pragma redefine_extname strncpy __mfwrap_strncpy
#pragma redefine_extname strcat __mfwrap_strcat
#pragma redefine_extname strncat __mfwrap_strncat
#pragma redefine_extname strcmp __mfwrap_strcmp
#pragma redefine_extname strcasecmp __mfwrap_strcasecmp
#pragma redefine_extname strncmp __mfwrap_strncmp
#pragma redefine_extname strncasecmp __mfwrap_strncasecmp
#pragma redefine_extname strdup __mfwrap_strdup
#pragma redefine_extname strndup __mfwrap_strndup
#pragma redefine_extname strchr __mfwrap_strchr
#pragma redefine_extname strrchr __mfwrap_strrchr
#pragma redefine_extname strstr __mfwrap_strstr
#pragma redefine_extname memmem __mfwrap_memmem
#pragma redefine_extname strlen __mfwrap_strlen
#pragma redefine_extname strnlen __mfwrap_strnlen
#pragma redefine_extname bzero __mfwrap_bzero
#pragma redefine_extname bcopy __mfwrap_bcopy
#pragma redefine_extname bcmp __mfwrap_bcmp
#pragma redefine_extname index __mfwrap_index
#pragma redefine_extname rindex __mfwrap_rindex
#pragma redefine_extname asctime __mfwrap_asctime
#pragma redefine_extname ctime __mfwrap_ctime
#pragma redefine_extname gmtime __mfwrap_gmtime
#pragma redefine_extname localtime __mfwrap_localtime
#pragma redefine_extname time __mfwrap_time
#pragma redefine_extname strerror __mfwrap_strerror
#pragma redefine_extname fopen __mfwrap_fopen
#pragma redefine_extname fdopen __mfwrap_fdopen
#pragma redefine_extname freopen __mfwrap_freopen
#pragma redefine_extname fclose __mfwrap_fclose
#pragma redefine_extname fread __mfwrap_fread
#pragma redefine_extname fwrite __mfwrap_fwrite
#pragma redefine_extname fgetc __mfwrap_fgetc
#pragma redefine_extname fgets __mfwrap_fgets
#pragma redefine_extname getc __mfwrap_getc
#pragma redefine_extname gets __mfwrap_gets
#pragma redefine_extname ungetc __mfwrap_ungetc
#pragma redefine_extname fputc __mfwrap_fputc
#pragma redefine_extname fputs __mfwrap_fputs
#pragma redefine_extname putc __mfwrap_putc
#pragma redefine_extname puts __mfwrap_puts
#pragma redefine_extname clearerr __mfwrap_clearerr
#pragma redefine_extname feof __mfwrap_feof
#pragma redefine_extname ferror __mfwrap_ferror
#pragma redefine_extname fileno __mfwrap_fileno
#pragma redefine_extname printf __mfwrap_printf
#pragma redefine_extname fprintf __mfwrap_fprintf
#pragma redefine_extname sprintf __mfwrap_sprintf
#pragma redefine_extname snprintf __mfwrap_snprintf
#pragma redefine_extname vprintf __mfwrap_vprintf
#pragma redefine_extname vfprintf __mfwrap_vfprintf
#pragma redefine_extname vsprintf __mfwrap_vsprintf
#pragma redefine_extname vsnprintf __mfwrap_vsnprintf
#pragma redefine_extname access __mfwrap_access
#pragma redefine_extname remove __mfwrap_remove
#pragma redefine_extname fflush __mfwrap_fflush
#pragma redefine_extname fseek __mfwrap_fseek
#pragma redefine_extname ftell __mfwrap_ftell
#pragma redefine_extname rewind __mfwrap_rewind
#pragma redefine_extname fgetpos __mfwrap_fgetpos
#pragma redefine_extname fsetpos __mfwrap_fsetpos
#pragma redefine_extname stat __mfwrap_stat
#pragma redefine_extname fstat __mfwrap_fstat
#pragma redefine_extname lstat __mfwrap_lstat
#pragma redefine_extname mkfifo __mfwrap_mkfifo
#pragma redefine_extname setvbuf __mfwrap_setvbuf
#pragma redefine_extname setbuf __mfwrap_setbuf
#pragma redefine_extname setbuffer __mfwrap_setbuffer
#pragma redefine_extname setlinebuf __mfwrap_setlinebuf
#pragma redefine_extname opendir __mfwrap_opendir
#pragma redefine_extname closedir __mfwrap_closedir
#pragma redefine_extname readdir __mfwrap_readdir
#pragma redefine_extname recv __mfwrap_recv
#pragma redefine_extname recvfrom __mfwrap_recvfrom
#pragma redefine_extname recvmsg __mfwrap_recvmsg
#pragma redefine_extname send __mfwrap_send
#pragma redefine_extname sendto __mfwrap_sendto
#pragma redefine_extname sendmsg __mfwrap_sendmsg
#pragma redefine_extname setsockopt __mfwrap_setsockopt
#pragma redefine_extname getsockopt __mfwrap_getsockopt
#pragma redefine_extname accept __mfwrap_accept
#pragma redefine_extname bind __mfwrap_bind
#pragma redefine_extname connect __mfwrap_connect
#pragma redefine_extname gethostname __mfwrap_gethostname
#pragma redefine_extname sethostname __mfwrap_sethostname
#pragma redefine_extname gethostbyname __mfwrap_gethostbyname
#pragma redefine_extname wait __mfwrap_wait
#pragma redefine_extname waitpid __mfwrap_waitpid
#pragma redefine_extname popen __mfwrap_popen
#pragma redefine_extname pclose __mfwrap_pclose
#pragma redefine_extname execve __mfwrap_execve
#pragma redefine_extname execv __mfwrap_execv
#pragma redefine_extname execvp __mfwrap_execvp
#pragma redefine_extname system __mfwrap_system
#pragma redefine_extname dlopen __mfwrap_dlopen
#pragma redefine_extname dlerror __mfwrap_dlerror
#pragma redefine_extname dlsym __mfwrap_dlsym
#pragma redefine_extname dlclose __mfwrap_dlclose
#pragma redefine_extname fopen64 __mfwrap_fopen64
#pragma redefine_extname freopen64 __mfwrap_freopen64
#pragma redefine_extname stat64 __mfwrap_stat64
#pragma redefine_extname fseeko64 __mfwrap_fseeko64
#pragma redefine_extname ftello64 __mfwrap_ftello64
#pragma redefine_extname semop __mfwrap_semop
#pragma redefine_extname semctl __mfwrap_semctl
#pragma redefine_extname shmctl __mfwrap_shmctl
#pragma redefine_extname shmat __mfwrap_shmat
#pragma redefine_extname shmdt __mfwrap_shmdt
#pragma redefine_extname __ctype_b_loc __mfwrap___ctype_b_loc
#pragma redefine_extname __ctype_toupper_loc __mfwrap___ctype_toupper_loc
#pragma redefine_extname __ctype_tolower_loc __mfwrap___ctype_tolower_loc
#pragma redefine_extname getlogin __mfwrap_getlogin
#pragma redefine_extname cuserid __mfwrap_cuserid
#pragma redefine_extname getpwnam __mfwrap_getpwnam
#pragma redefine_extname getpwuid __mfwrap_getpwuid
#pragma redefine_extname getgrnam __mfwrap_getgrnam
#pragma redefine_extname getgrgid __mfwrap_getgrgid
#pragma redefine_extname getservent __mfwrap_getservent
#pragma redefine_extname getservbyname __mfwrap_getservbyname
#pragma redefine_extname getservbyport __mfwrap_getservbyport
#pragma redefine_extname gai_strerror __mfwrap_gai_strerror
#pragma redefine_extname getmntent __mfwrap_getmntent
#pragma redefine_extname inet_ntoa __mfwrap_inet_ntoa
#pragma redefine_extname getprotoent __mfwrap_getprotoent
#pragma redefine_extname getprotobyname __mfwrap_getprotobyname
#pragma redefine_extname getprotobynumber __mfwrap_getprotobynumber

/* Disable glibc macros.  */
#define __NO_STRING_INLINES

#endif /* _MUDFLAP */


#ifdef __cplusplus
}
#endif

#endif /* MF_RUNTIME_H */
