root/src/dynlib.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* Portable API for dynamic loading.
     2 
     3 Copyright 2015-2023 Free Software Foundation, Inc.
     4 
     5 This file is part of GNU Emacs.
     6 
     7 GNU Emacs is free software: you can redistribute it and/or modify
     8 it under the terms of the GNU General Public License as published by
     9 the Free Software Foundation, either version 3 of the License, or (at
    10 your option) any later version.
    11 
    12 GNU Emacs is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    19 
    20 #ifndef DYNLIB_H
    21 #define DYNLIB_H
    22 
    23 #include <attribute.h>
    24 
    25 typedef void *dynlib_handle_ptr;
    26 dynlib_handle_ptr dynlib_open (const char *path);
    27 dynlib_handle_ptr dynlib_open_for_eln (const char *path);
    28 int dynlib_close (dynlib_handle_ptr h);
    29 const char *dynlib_error (void);
    30 
    31 ATTRIBUTE_MAY_ALIAS void *dynlib_sym (dynlib_handle_ptr h, const char *sym);
    32 
    33 typedef void (ATTRIBUTE_MAY_ALIAS *dynlib_function_ptr) (void);
    34 dynlib_function_ptr dynlib_func (dynlib_handle_ptr h, const char *sym);
    35 
    36 /* Sets *FILE to the file name from which PTR was loaded, and *SYM to
    37    its symbol name.  If the file or symbol name could not be
    38    determined, set the corresponding argument to NULL.  */
    39 void dynlib_addr (void (*ptr) (void), const char **file, const char **sym);
    40 
    41 #endif /* DYNLIB_H */

/* [<][>][^][v][top][bottom][index][help] */