43#ifndef HAVE_DECL_GETPAGESIZE
44extern int getpagesize (
void);
48#define MAP_FAILED ((void *)-1)
58 int descriptor,
off_t offset, uint64_t size,
67 if ((uint64_t) (
size_t) size != size)
73 pagesize = getpagesize ();
74 inpage = offset % pagesize;
75 pageoff = offset - inpage;
78 size = (size + (pagesize - 1)) & ~ (pagesize - 1);
80 map = mmap (NULL, size, PROT_READ, MAP_PRIVATE, descriptor, pageoff);
87 view->
data = (
char *) map + inpage;
107 const_cast.cv = view->
base;
108 if (munmap (const_cast.v, view->
len) < 0)
void(* backtrace_error_callback)(void *data, const char *msg, int errnum)
static void error_callback(void *data, const char *msg, int errnum)
void backtrace_release_view(struct backtrace_state *state ATTRIBUTE_UNUSED, struct backtrace_view *view, backtrace_error_callback error_callback, void *data)
int backtrace_get_view(struct backtrace_state *state ATTRIBUTE_UNUSED, int descriptor, off_t offset, uint64_t size, backtrace_error_callback error_callback, void *data, struct backtrace_view *view)
Functions to help with cleanup.