haiku/headers/posix/dlfcn.h
Jérôme Duval 6533131daf posix: dladdr was introduced in POSIX-2024, but with Dl_info_t
instead of Dl_info

Change-Id: Id2fe6d4b094c57ea49260c5765206c5e4bac5a63
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8274
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-09-11 14:02:22 +00:00

47 lines
1.3 KiB
C

/*
* Copyright 2003-2012 Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _DLFCN_H
#define _DLFCN_H
#include <sys/types.h>
#define RTLD_LAZY 0 /* relocations are performed as needed */
#define RTLD_NOW 1 /* the file gets relocated at load time */
#define RTLD_LOCAL 0 /* symbols are not available for relocating any other object */
#define RTLD_GLOBAL 2 /* all symbols are available */
/* not-yet-POSIX extensions (dlsym() handles) */
#define RTLD_DEFAULT ((void*)0)
/* find the symbol in the global scope */
#define RTLD_NEXT ((void*)-1L)
/* find the next definition of the symbol */
#ifdef __cplusplus
extern "C" {
#endif
/* This is a gnu extension for the dladdr function */
typedef struct {
const char *dli_fname; /* Filename of defining object */
void *dli_fbase; /* Load address of that object */
const char *dli_sname; /* Name of nearest lower symbol */
void *dli_saddr; /* Exact value of nearest symbol */
} Dl_info_t;
typedef Dl_info_t Dl_info;
extern int dlclose(void *image);
extern char *dlerror(void);
extern void *dlopen(const char *path, int mode);
extern void *dlsym(void *image, const char *symbolName);
extern int dladdr(const void *addr, Dl_info_t *info);
#ifdef __cplusplus
}
#endif
#endif /* _DLFCN_H */