forked from Imagelibrary/binutils-gdb
Compare commits
1 Commits
gdb-7.8-re
...
gdb-199904
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba6407acc9 |
2796
gdb/c-exp.tab.c
2796
gdb/c-exp.tab.c
File diff suppressed because it is too large
Load Diff
@@ -1,17 +0,0 @@
|
|||||||
# gdbwin.o and ser-win32s.c have to be named because they have
|
|
||||||
# _initialize functions that need to be found by init.c
|
|
||||||
# gui.ores has to be named, or else msvc won't link it in.
|
|
||||||
XDEPFILES = \
|
|
||||||
mswin/gdbwin.o \
|
|
||||||
mswin/ser-win32s.o \
|
|
||||||
mswin/gui.ores \
|
|
||||||
mswin/libwingdb.a
|
|
||||||
|
|
||||||
$(XDEPFILES):
|
|
||||||
rootme=`pwd` ; export rootme ; \
|
|
||||||
( cd mswin ; \
|
|
||||||
$(MAKE) $(FLAGS_TO_PASS) all )
|
|
||||||
|
|
||||||
XM_FILE=xm-windows.h
|
|
||||||
MMALLOC=
|
|
||||||
SER_HARDWIRE =
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
@set GDBVN 4.18
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
@c GDB version number is recorded in the variable GDBVN
|
|
||||||
@include GDBvn.texi
|
|
||||||
@c
|
|
||||||
@set AGGLOMERATION
|
|
||||||
@clear AMD29K
|
|
||||||
@set BARETARGET
|
|
||||||
@clear CONLY
|
|
||||||
@set DOSHOST
|
|
||||||
@clear FORTRAN
|
|
||||||
@clear FSFDOC
|
|
||||||
@clear GDBSERVER
|
|
||||||
@clear GENERIC
|
|
||||||
@set H8
|
|
||||||
@set H8EXCLUSIVE
|
|
||||||
@clear HAVE-FLOAT
|
|
||||||
@clear I960
|
|
||||||
@clear MOD2
|
|
||||||
@clear NOVEL
|
|
||||||
@clear POSIX
|
|
||||||
@set PRECONFIGURED
|
|
||||||
@clear REMOTESTUB
|
|
||||||
@set SIMS
|
|
||||||
@clear SERIAL
|
|
||||||
@clear SPARC
|
|
||||||
@clear ST2000
|
|
||||||
@clear VXWORKS
|
|
||||||
@clear Z8K
|
|
||||||
@c ----------------------------------------------------------------------
|
|
||||||
@c STRINGS:
|
|
||||||
@c
|
|
||||||
@c Name of GDB program. Used also for (gdb) prompt string.
|
|
||||||
@set GDBP gdb
|
|
||||||
@c
|
|
||||||
@c Name of GDB product. Used in running text.
|
|
||||||
@set GDBN GDB
|
|
||||||
@c
|
|
||||||
@c Name of GDB initialization file.
|
|
||||||
@set GDBINIT .gdbinit
|
|
||||||
@c
|
|
||||||
@c Name of target.
|
|
||||||
@set TARGET Hitachi Microprocessors
|
|
||||||
@c
|
|
||||||
@c Name of GCC product
|
|
||||||
@set NGCC GCC
|
|
||||||
@c
|
|
||||||
@c Name of GCC program
|
|
||||||
@set GCC gcc
|
|
||||||
2086
gdb/f-exp.tab.c
2086
gdb/f-exp.tab.c
File diff suppressed because it is too large
Load Diff
@@ -1,35 +0,0 @@
|
|||||||
/* Host-dependent code for dos running GO32 for GDB, the GNU debugger.
|
|
||||||
Copyright 1992 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of GDB.
|
|
||||||
|
|
||||||
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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
sigsetmask (mask)
|
|
||||||
int mask;
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
strlwr (str)
|
|
||||||
char *str;
|
|
||||||
{
|
|
||||||
for (; *str; str++)
|
|
||||||
*str = tolower(*str);
|
|
||||||
}
|
|
||||||
2351
gdb/jv-exp.tab.c
2351
gdb/jv-exp.tab.c
File diff suppressed because it is too large
Load Diff
2089
gdb/m2-exp.tab.c
2089
gdb/m2-exp.tab.c
File diff suppressed because it is too large
Load Diff
182
gdb/tui/Makefile
182
gdb/tui/Makefile
@@ -1,182 +0,0 @@
|
|||||||
# Generated automatically from Makefile.in by configure.
|
|
||||||
# Copyright 1998 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This file is part of GDB.
|
|
||||||
|
|
||||||
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
|
|
||||||
all: libtui.a
|
|
||||||
|
|
||||||
srcdir=.
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
|
|
||||||
CC=gcc
|
|
||||||
CFLAGS=-g -O2
|
|
||||||
AR=ar
|
|
||||||
RANLIB=ranlib
|
|
||||||
|
|
||||||
# Host and target-dependent makefile fragments come in here.
|
|
||||||
|
|
||||||
# Host: Sun 4 or Sparcstation, running SunOS 4
|
|
||||||
XDEPFILES= ser-tcp.o
|
|
||||||
XM_FILE= xm-sun4os4.h
|
|
||||||
NAT_FILE= nm-sun4os4.h
|
|
||||||
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o
|
|
||||||
HOST_IPC=-DBSD_IPC
|
|
||||||
GDBSERVER_DEPFILES= low-sparc.o
|
|
||||||
# Setting XM_CLIBS=-lresolv would let us use the DNS, but that would screw
|
|
||||||
# anyone who wants to use NIS, which includes at least one Cygnus customer
|
|
||||||
# (PR 3593). So leave it this way until/unless we find a resolver which can
|
|
||||||
# get names from either DNS or NIS from the same GDB binary.
|
|
||||||
|
|
||||||
# Target: Sun 4 or Sparcstation, running SunOS 4
|
|
||||||
TDEPFILES= sparc-tdep.o solib.o
|
|
||||||
TM_FILE= tm-sun4os4.h
|
|
||||||
# End of host and target-dependent makefile fragments
|
|
||||||
|
|
||||||
# Where is our "include" directory? Typically $(srcdir)/../include.
|
|
||||||
# This is essentially the header file directory for the library
|
|
||||||
# routines in libiberty.
|
|
||||||
INCLUDE_DIR = $(srcdir)/../../include
|
|
||||||
INCLUDE_CFLAGS = -I$(INCLUDE_DIR)
|
|
||||||
|
|
||||||
# Configured by the --with-mmalloc option to configure.
|
|
||||||
MMALLOC =
|
|
||||||
MMALLOC_CFLAGS =
|
|
||||||
|
|
||||||
# Where is the BFD library? Typically in ../bfd.
|
|
||||||
BFD_DIR = ../../bfd
|
|
||||||
BFD_SRC = $(srcdir)/$(BFD_DIR)
|
|
||||||
BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC)
|
|
||||||
|
|
||||||
# Where is the READLINE library? Typically in ../readline.
|
|
||||||
READLINE_DIR = ../../readline
|
|
||||||
READLINE_SRC = $(srcdir)/$(READLINE_DIR)
|
|
||||||
READLINE_CFLAGS = -I$(READLINE_SRC)
|
|
||||||
|
|
||||||
# Where is the INTL library? Typically in ../intl.
|
|
||||||
INTL_DIR = ../../intl
|
|
||||||
INTL_SRC = $(srcdir)/$(INTL_DIR)
|
|
||||||
INTL_CFLAGS = -I$(INTL_DIR) -I$(INTL_SRC)
|
|
||||||
|
|
||||||
# Where is the TCL library? Typically in ../tcl.
|
|
||||||
TCL_CFLAGS = @TCLHDIR@
|
|
||||||
|
|
||||||
# Where is the TK library? Typically in ../tk.
|
|
||||||
TK_CFLAGS = @TKHDIR@ @TK_BUILD_INCLUDES@
|
|
||||||
|
|
||||||
# Where is Itcl? Typically in ../itcl.
|
|
||||||
ITCL_CFLAGS = @ITCLHDIR@
|
|
||||||
|
|
||||||
# Where is Tix? Typically in ../tix.
|
|
||||||
TIX_CFLAGS = @TIXHDIR@
|
|
||||||
|
|
||||||
X11_CFLAGS = @TK_XINCLUDES@
|
|
||||||
|
|
||||||
ENABLE_IDE= @ENABLE_IDE@
|
|
||||||
|
|
||||||
GUI_CFLAGS_X = -I$(srcdir)/../../libgui/src
|
|
||||||
|
|
||||||
IDE_CFLAGS_X = -I$(srcdir)/../../libidetcl/src -I$(srcdir)/../../libide/src \
|
|
||||||
`if [ x"$(ENABLE_IDE)" != x ] ; then \
|
|
||||||
echo -DIDE -I$(srcdir)/../../ilu/runtime/mainloop;\
|
|
||||||
fi`
|
|
||||||
|
|
||||||
IDE_CFLAGS=$(GUI_CFLAGS_X) $(IDE_CFLAGS_X)
|
|
||||||
|
|
||||||
ENABLE_CFLAGS=
|
|
||||||
|
|
||||||
# -I. for config files.
|
|
||||||
# -I$(srcdir) for gdb internal headers and possibly for gnu-regex.h also.
|
|
||||||
# -I$(srcdir)/config for more generic config files.
|
|
||||||
|
|
||||||
# It is also possible that you will need to add -I/usr/include/sys if
|
|
||||||
# your system doesn't have fcntl.h in /usr/include (which is where it
|
|
||||||
# should be according to Posix).
|
|
||||||
DEFS = -DHAVE_CONFIG_H
|
|
||||||
GDB_CFLAGS = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config $(DEFS)
|
|
||||||
|
|
||||||
# M{H,T}_CFLAGS, if defined, have host- and target-dependent CFLAGS
|
|
||||||
# from the config directory.
|
|
||||||
GLOBAL_CFLAGS = $(MT_CFLAGS) $(MH_CFLAGS)
|
|
||||||
#PROFILE_CFLAGS = -pg
|
|
||||||
|
|
||||||
# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
|
|
||||||
INTERNAL_CFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \
|
|
||||||
$(GDB_CFLAGS) $(READLINE_CFLAGS) $(BFD_CFLAGS) \
|
|
||||||
$(MMALLOC_CFLAGS) $(INCLUDE_CFLAGS) $(INTL_CFLAGS) \
|
|
||||||
$(ENABLE_CFLAGS)
|
|
||||||
|
|
||||||
HEADERS = tuiIO.h tuiData.h tuiGeneralWin.h tuiLayout.h tuiStack.h \
|
|
||||||
tuiSource.h tuiCommand.h tuiWin.h tuiDisassem.h \
|
|
||||||
tuiSourceWin.h tuiRegs.h tuiDataWin.h
|
|
||||||
|
|
||||||
SOURCES = tui.c tuiData.c tuiSource.c tuiStack.c tuiIO.c \
|
|
||||||
tuiGeneralWin.c tuiLayout.c tuiWin.c tuiCommand.c \
|
|
||||||
tuiDisassem.c tuiSourceWin.c tuiRegs.c tuiDataWin.c
|
|
||||||
|
|
||||||
OBJECTS = tui.o tuiData.o tuiSource.o tuiStack.o tuiIO.o \
|
|
||||||
tuiGeneralWin.o tuiLayout.o tuiWin.o tuiCommand.o \
|
|
||||||
tuiDisassem.o tuiSourceWin.o tuiRegs.o tuiDataWin.o \
|
|
||||||
tuiInit.o
|
|
||||||
|
|
||||||
|
|
||||||
# Prevent Sun make from putting in the machine type. Setting
|
|
||||||
# TARGET_ARCH to nothing works for SunOS 3, 4.0, but not for 4.1.
|
|
||||||
.c.o:
|
|
||||||
$(CC) -c $(INTERNAL_CFLAGS) $<
|
|
||||||
.SUFFIXES: .cpp
|
|
||||||
.c.cpp:
|
|
||||||
$(CC) -E $(INTERNAL_CFLAGS) $< > $@
|
|
||||||
|
|
||||||
libtui.a: $(OBJECTS)
|
|
||||||
rm -f libtui.a
|
|
||||||
$(AR) rc libtui.a $(OBJECTS)
|
|
||||||
$(RANLIB) libtui.a
|
|
||||||
|
|
||||||
tui.o: tui.c tui.h tuiData.h tuiLayout.h tuiIO.h tuiRegs.h tuiWin.h
|
|
||||||
tuiCommand.o: tui.h tuiData.h tuiWin.h tuiIO.h
|
|
||||||
tuiData.o: tui.h tuiData.h
|
|
||||||
tuiDataWin.o: tui.h tuiData.h tuiRegs.h
|
|
||||||
tuiDisassem.o: tui.h tuiData.h tuiLayout.h tuiSourceWin.h tuiStack.h
|
|
||||||
tuiGeneralWin.o: tui.h tuiData.h tuiGeneralWin.h
|
|
||||||
tuiIO.o: tui.h tuiData.h tuiIO.h tuiCommand.h tuiWin.h
|
|
||||||
tuiLayout.o: tui.h tuiData.h tuiGeneralWin.h tuiStack.h tuiRegs.h \
|
|
||||||
tuiDisassem.h
|
|
||||||
tuiRegs.o: tui.h tuiData.h tuiLayout.h tuiWin.h
|
|
||||||
tuiSource.o: tui.h tuiData.h tuiStack.h tuiSourceWin.h tuiSource.h
|
|
||||||
tuiSourceWin.o: tui.h tuiData.h tuiStack.h tuiSourceWin.h tuiSource.h \
|
|
||||||
tuiDisassem.h
|
|
||||||
tuiStack.o: tui.h tuiData.h tuiStack.h tuiSourceWin.h
|
|
||||||
tuiWin.o: tui.h tuiData.h tuiGeneralWin.h tuiStack.h tuiSourceWin.h \
|
|
||||||
tuiDataWin.h
|
|
||||||
|
|
||||||
tuiInit.o: tuiInit.c
|
|
||||||
tuiInit.c: $(SOURCES)
|
|
||||||
@echo Making tuiInit.c
|
|
||||||
@rm -f init.c-tmp
|
|
||||||
@echo '/* Do not modify this file. */' >init.c-tmp
|
|
||||||
@echo '/* It is created automatically by the Makefile. */'>>init.c-tmp
|
|
||||||
@echo '#include "ansidecl.h"' >>init.c-tmp
|
|
||||||
@echo 'extern void initialize_tui_files PARAMS ((void));' >>init.c-tmp
|
|
||||||
@echo 'void initialize_tui_files PARAMS ((void)) {' >>init.c-tmp
|
|
||||||
@-( cd $(srcdir) ; grep '^_initialize_[a-z_0-9A-Z]* *(' $(SOURCES) ) 2>/dev/null \
|
|
||||||
| sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 PARAMS ((void)); \1 ();}/' >>init.c-tmp
|
|
||||||
@echo '}' >>init.c-tmp
|
|
||||||
@mv init.c-tmp tuiInit.c
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.a
|
|
||||||
1150
gdb/windows-nat.c
1150
gdb/windows-nat.c
File diff suppressed because it is too large
Load Diff
@@ -1,219 +0,0 @@
|
|||||||
This is Info file ./mmalloc.info, produced by Makeinfo version 1.68
|
|
||||||
from the input file mmalloc.texi.
|
|
||||||
|
|
||||||
START-INFO-DIR-ENTRY
|
|
||||||
* Mmalloc: (mmalloc). The GNU mapped-malloc package.
|
|
||||||
END-INFO-DIR-ENTRY
|
|
||||||
|
|
||||||
This file documents the GNU mmalloc (mapped-malloc) package, written
|
|
||||||
by fnf@cygnus.com, based on GNU malloc written by mike@ai.mit.edu.
|
|
||||||
|
|
||||||
Copyright (C) 1992 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
|
||||||
manual provided the copyright notice and this permission notice are
|
|
||||||
preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of
|
|
||||||
this manual under the conditions for verbatim copying, provided also
|
|
||||||
that the entire resulting derived work is distributed under the terms
|
|
||||||
of a permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions.
|
|
||||||
|
|
||||||
|
|
||||||
File: mmalloc.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir)
|
|
||||||
|
|
||||||
mmalloc
|
|
||||||
*******
|
|
||||||
|
|
||||||
This file documents the GNU memory-mapped malloc package mmalloc.
|
|
||||||
|
|
||||||
* Menu:
|
|
||||||
|
|
||||||
* Overview:: Overall Description
|
|
||||||
* Implementation:: Implementation
|
|
||||||
|
|
||||||
-- The Detailed Node Listing --
|
|
||||||
|
|
||||||
Implementation
|
|
||||||
|
|
||||||
* Compatibility:: Backwards Compatibility
|
|
||||||
* Functions:: Function Descriptions
|
|
||||||
|
|
||||||
|
|
||||||
File: mmalloc.info, Node: Overview, Next: Implementation, Prev: Top, Up: Top
|
|
||||||
|
|
||||||
Overall Description
|
|
||||||
*******************
|
|
||||||
|
|
||||||
This is a heavily modified version of GNU `malloc'. It uses `mmap'
|
|
||||||
as the basic mechanism for obtaining memory from the system, rather
|
|
||||||
than `sbrk'. This gives it several advantages over the more
|
|
||||||
traditional malloc:
|
|
||||||
|
|
||||||
* Several different heaps can be used, each of them growing or
|
|
||||||
shinking under control of `mmap', with the `mmalloc' functions
|
|
||||||
using a specific heap on a call by call basis.
|
|
||||||
|
|
||||||
* By using `mmap', it is easy to create heaps which are intended to
|
|
||||||
be persistent and exist as a filesystem object after the creating
|
|
||||||
process has gone away.
|
|
||||||
|
|
||||||
* Because multiple heaps can be managed, data used for a specific
|
|
||||||
purpose can be allocated into its own heap, making it easier to
|
|
||||||
allow applications to "dump" and "restore" initialized
|
|
||||||
malloc-managed memory regions. For example, the "unexec" hack
|
|
||||||
popularized by GNU Emacs could potentially go away.
|
|
||||||
|
|
||||||
|
|
||||||
File: mmalloc.info, Node: Implementation, Prev: Overview, Up: Top
|
|
||||||
|
|
||||||
Implementation
|
|
||||||
**************
|
|
||||||
|
|
||||||
The `mmalloc' functions contain no internal static state. All
|
|
||||||
`mmalloc' internal data is allocated in the mapped in region, along
|
|
||||||
with the user data that it manages. This allows it to manage multiple
|
|
||||||
such regions and to "pick up where it left off" when such regions are
|
|
||||||
later dynamically mapped back in.
|
|
||||||
|
|
||||||
In some sense, malloc has been "purified" to contain no internal
|
|
||||||
state information and generalized to use multiple memory regions rather
|
|
||||||
than a single region managed by `sbrk'. However the new routines now
|
|
||||||
need an extra parameter which informs `mmalloc' which memory region it
|
|
||||||
is dealing with (along with other information). This parameter is
|
|
||||||
called the "malloc descriptor".
|
|
||||||
|
|
||||||
The functions initially provided by `mmalloc' are:
|
|
||||||
|
|
||||||
void *mmalloc_attach (int fd, void *baseaddr);
|
|
||||||
void *mmalloc_detach (void *md);
|
|
||||||
int mmalloc_errno (void *md);
|
|
||||||
int mmalloc_setkey (void *md, int keynum, void *key);
|
|
||||||
void *mmalloc_getkey (void *md, int keynum);
|
|
||||||
|
|
||||||
void *mmalloc (void *md, size_t size);
|
|
||||||
void *mrealloc (void *md, void *ptr, size_t size);
|
|
||||||
void *mvalloc (void *md, size_t size);
|
|
||||||
void mfree (void *md, void *ptr);
|
|
||||||
|
|
||||||
* Menu:
|
|
||||||
|
|
||||||
* Compatibility:: Backwards Compatibility
|
|
||||||
* Functions:: Function Descriptions
|
|
||||||
|
|
||||||
|
|
||||||
File: mmalloc.info, Node: Compatibility, Next: Functions, Prev: Implementation, Up: Implementation
|
|
||||||
|
|
||||||
Backwards Compatibility
|
|
||||||
=======================
|
|
||||||
|
|
||||||
To allow a single malloc package to be used in a given application,
|
|
||||||
provision is made for the traditional `malloc', `realloc', and `free'
|
|
||||||
functions to be implemented as special cases of the `mmalloc'
|
|
||||||
functions. In particular, if any of the functions that expect malloc
|
|
||||||
descriptors are called with a `NULL' pointer rather than a valid malloc
|
|
||||||
descriptor, then they default to using an `sbrk' managed region. The
|
|
||||||
`mmalloc' package provides compatible `malloc', `realloc', and `free'
|
|
||||||
functions using this mechanism internally. Applications can avoid this
|
|
||||||
extra interface layer by simply including the following defines:
|
|
||||||
|
|
||||||
#define malloc(size) mmalloc ((void *)0, (size))
|
|
||||||
#define realloc(ptr,size) mrealloc ((void *)0, (ptr), (size));
|
|
||||||
#define free(ptr) mfree ((void *)0, (ptr))
|
|
||||||
|
|
||||||
or replace the existing `malloc', `realloc', and `free' calls with the
|
|
||||||
above patterns if using `#define' causes problems.
|
|
||||||
|
|
||||||
|
|
||||||
File: mmalloc.info, Node: Functions, Prev: Compatibility, Up: Implementation
|
|
||||||
|
|
||||||
Function Descriptions
|
|
||||||
=====================
|
|
||||||
|
|
||||||
These are the details on the functions that make up the `mmalloc'
|
|
||||||
package.
|
|
||||||
|
|
||||||
`void *mmalloc_attach (int FD, void *BASEADDR);'
|
|
||||||
Initialize access to a `mmalloc' managed region.
|
|
||||||
|
|
||||||
If FD is a valid file descriptor for an open file, then data for
|
|
||||||
the `mmalloc' managed region is mapped to that file. Otherwise
|
|
||||||
`/dev/zero' is used and the data will not exist in any filesystem
|
|
||||||
object.
|
|
||||||
|
|
||||||
If the open file corresponding to FD is from a previous use of
|
|
||||||
`mmalloc' and passes some basic sanity checks to ensure that it is
|
|
||||||
compatible with the current `mmalloc' package, then its data is
|
|
||||||
mapped in and is immediately accessible at the same addresses in
|
|
||||||
the current process as the process that created the file.
|
|
||||||
|
|
||||||
If BASEADDR is not `NULL', the mapping is established starting at
|
|
||||||
the specified address in the process address space. If BASEADDR
|
|
||||||
is `NULL', the `mmalloc' package chooses a suitable address at
|
|
||||||
which to start the mapped region, which will be the value of the
|
|
||||||
previous mapping if opening an existing file which was previously
|
|
||||||
built by `mmalloc', or for new files will be a value chosen by
|
|
||||||
`mmap'.
|
|
||||||
|
|
||||||
Specifying BASEADDR provides more control over where the regions
|
|
||||||
start and how big they can be before bumping into existing mapped
|
|
||||||
regions or future mapped regions.
|
|
||||||
|
|
||||||
On success, returns a malloc descriptor which is used in subsequent
|
|
||||||
calls to other `mmalloc' package functions. It is explicitly
|
|
||||||
`void *' (`char *' for systems that don't fully support `void') so
|
|
||||||
that users of the package don't have to worry about the actual
|
|
||||||
implementation details.
|
|
||||||
|
|
||||||
On failure returns `NULL'.
|
|
||||||
|
|
||||||
`void *mmalloc_detach (void *MD);'
|
|
||||||
Terminate access to a `mmalloc' managed region identified by the
|
|
||||||
descriptor MD, by closing the base file and unmapping all memory
|
|
||||||
pages associated with the region.
|
|
||||||
|
|
||||||
Returns `NULL' on success.
|
|
||||||
|
|
||||||
Returns the malloc descriptor on failure, which can subsequently
|
|
||||||
be used for further action (such as obtaining more information
|
|
||||||
about the nature of the failure).
|
|
||||||
|
|
||||||
`void *mmalloc (void *MD, size_t SIZE);'
|
|
||||||
Given an `mmalloc' descriptor MD, allocate additional memory of
|
|
||||||
SIZE bytes in the associated mapped region.
|
|
||||||
|
|
||||||
`*mrealloc (void *MD, void *PTR, size_t SIZE);'
|
|
||||||
Given an `mmalloc' descriptor MD and a pointer to memory
|
|
||||||
previously allocated by `mmalloc' in PTR, reallocate the memory to
|
|
||||||
be SIZE bytes long, possibly moving the existing contents of
|
|
||||||
memory if necessary.
|
|
||||||
|
|
||||||
`void *mvalloc (void *MD, size_t SIZE);'
|
|
||||||
Like `mmalloc' but the resulting memory is aligned on a page
|
|
||||||
boundary.
|
|
||||||
|
|
||||||
`void mfree (void *MD, void *PTR);'
|
|
||||||
Given an `mmalloc' descriptor MD and a pointer to memory previously
|
|
||||||
allocated by `mmalloc' in PTR, free the previously allocated
|
|
||||||
memory.
|
|
||||||
|
|
||||||
`int mmalloc_errno (void *MD);'
|
|
||||||
Given a `mmalloc' descriptor, if the last `mmalloc' operation
|
|
||||||
failed for some reason due to a system call failure, then returns
|
|
||||||
the associated `errno'. Returns 0 otherwise. (This function is
|
|
||||||
not yet implemented).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
|
||||||
Node: Top963
|
|
||||||
Node: Overview1397
|
|
||||||
Node: Implementation2425
|
|
||||||
Node: Compatibility3818
|
|
||||||
Node: Functions4892
|
|
||||||
|
|
||||||
End Tag Table
|
|
||||||
Reference in New Issue
Block a user