blob: 50ca53e93620685087123dfd9a183ba3eb22ca29 [file] [log] [blame]
Guido van Rossuma3309961993-07-28 09:05:47 +00001#ifndef Py_IMPORT_H
2#define Py_IMPORT_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Guido van Rossumf70e43a1991-02-19 12:39:46 +00007/***********************************************************
Guido van Rossum5799b521995-01-04 19:06:22 +00008Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
9The Netherlands.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000010
11 All Rights Reserved
12
Guido van Rossumfd71b9e2000-06-30 23:50:40 +000013Copyright (c) 2000, BeOpen.com.
14Copyright (c) 1995-2000, Corporation for National Research Initiatives.
15Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
16All rights reserved.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000017
Guido van Rossumfd71b9e2000-06-30 23:50:40 +000018See the file "Misc/COPYRIGHT" for information on usage and
19redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000020
21******************************************************************/
22
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000023/* Module definition and import interface */
24
Guido van Rossum43466ec1998-12-04 18:48:25 +000025DL_IMPORT(long) PyImport_GetMagicNumber Py_PROTO((void));
26DL_IMPORT(PyObject *) PyImport_ExecCodeModule Py_PROTO((char *name, PyObject *co));
27DL_IMPORT(PyObject *) PyImport_ExecCodeModuleEx Py_PROTO((
Guido van Rossumfccb68e1998-02-11 05:47:24 +000028 char *name, PyObject *co, char *pathname));
Guido van Rossum43466ec1998-12-04 18:48:25 +000029DL_IMPORT(PyObject *) PyImport_GetModuleDict Py_PROTO((void));
30DL_IMPORT(PyObject *) PyImport_AddModule Py_PROTO((char *name));
31DL_IMPORT(PyObject *) PyImport_ImportModule Py_PROTO((char *name));
32DL_IMPORT(PyObject *) PyImport_ImportModuleEx Py_PROTO((
Guido van Rossum026de191997-09-05 07:11:32 +000033 char *name, PyObject *globals, PyObject *locals, PyObject *fromlist));
Guido van Rossum43466ec1998-12-04 18:48:25 +000034DL_IMPORT(PyObject *) PyImport_Import Py_PROTO((PyObject *name));
35DL_IMPORT(PyObject *) PyImport_ReloadModule Py_PROTO((PyObject *m));
36DL_IMPORT(void) PyImport_Cleanup Py_PROTO((void));
37DL_IMPORT(int) PyImport_ImportFrozenModule Py_PROTO((char *));
Guido van Rossum34679b71993-01-26 13:33:44 +000038
Guido van Rossum43466ec1998-12-04 18:48:25 +000039extern DL_IMPORT(PyObject *)_PyImport_FindExtension Py_PROTO((char *, char *));
40extern DL_IMPORT(PyObject *)_PyImport_FixupExtension Py_PROTO((char *, char *));
Guido van Rossum29e46a91997-08-02 02:56:48 +000041
Guido van Rossum39c2aae1996-05-22 17:25:28 +000042struct _inittab {
Guido van Rossum34679b71993-01-26 13:33:44 +000043 char *name;
44 void (*initfunc)();
Guido van Rossum39c2aae1996-05-22 17:25:28 +000045};
46
Guido van Rossum66959af1997-10-31 18:36:47 +000047extern DL_IMPORT(struct _inittab *) PyImport_Inittab;
Guido van Rossuma3309961993-07-28 09:05:47 +000048
Guido van Rossum43466ec1998-12-04 18:48:25 +000049extern DL_IMPORT(int) PyImport_AppendInittab Py_PROTO((char *name, void (*initfunc)()));
50extern DL_IMPORT(int) PyImport_ExtendInittab Py_PROTO((struct _inittab *newtab));
Guido van Rossum16926bd1998-06-29 20:34:46 +000051
Guido van Rossum4ee68d91996-06-17 17:05:01 +000052struct _frozen {
53 char *name;
54 unsigned char *code;
55 int size;
56};
57
58/* Embedding apps may change this pointer to point to their favorite
59 collection of frozen modules: */
60
61extern DL_IMPORT(struct _frozen *) PyImport_FrozenModules;
62
Guido van Rossuma3309961993-07-28 09:05:47 +000063#ifdef __cplusplus
64}
65#endif
66#endif /* !Py_IMPORT_H */