|  | 
 | /* Frozen modules initializer */ | 
 |  | 
 | #include "Python.h" | 
 | #include "importlib.h" | 
 | #include "importlib_external.h" | 
 | #include "importlib_zipimport.h" | 
 |  | 
 | /* In order to test the support for frozen modules, by default we | 
 |    define a single frozen module, __hello__.  Loading it will print | 
 |    some famous words... */ | 
 |  | 
 | /* Run "make regen-frozen" to regen the file below (e.g. after a bytecode | 
 |  * format change).  The include file defines _Py_M__hello as an array of bytes. | 
 |  */ | 
 | #include "frozen_hello.h" | 
 |  | 
 | #define SIZE (int)sizeof(_Py_M__hello) | 
 |  | 
 | static const struct _frozen _PyImport_FrozenModules[] = { | 
 |     /* importlib */ | 
 |     {"_frozen_importlib", _Py_M__importlib_bootstrap, | 
 |         (int)sizeof(_Py_M__importlib_bootstrap)}, | 
 |     {"_frozen_importlib_external", _Py_M__importlib_bootstrap_external, | 
 |         (int)sizeof(_Py_M__importlib_bootstrap_external)}, | 
 |     {"zipimport", _Py_M__zipimport, | 
 |         (int)sizeof(_Py_M__zipimport)}, | 
 |     /* Test module */ | 
 |     {"__hello__", _Py_M__hello, SIZE}, | 
 |     /* Test package (negative size indicates package-ness) */ | 
 |     {"__phello__", _Py_M__hello, -SIZE}, | 
 |     {"__phello__.spam", _Py_M__hello, SIZE}, | 
 |     {0, 0, 0} /* sentinel */ | 
 | }; | 
 |  | 
 | /* Embedding apps may change this pointer to point to their favorite | 
 |    collection of frozen modules: */ | 
 |  | 
 | const struct _frozen *PyImport_FrozenModules = _PyImport_FrozenModules; |