Changeset 2837 for trunk/kLdr/kLdrInternal.h
- Timestamp:
- Oct 28, 2006, 5:59:21 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kLdr/kLdrInternal.h
r2836 r2837 77 77 /** The module been mapped. 78 78 * Prev state: OPEN 79 * Next state: LOADED_ DEPS, DESTROYED79 * Next state: LOADED_PREREQUISITES, DESTROYED 80 80 */ 81 81 KLDRSTATE_MAPPED, 82 /** The immediate dependencies has been loaded. 83 * Prev state: MAPPED 82 /** The module has been reloaded and needs to be fixed up again. 83 * (The loader can still be in a re-entrant mode.) 84 * Prev state: PENDING_GC 85 * Next state: LOADED_PREREQUISITES, PENDING_GC 86 */ 87 KLDRSTATE_RELOADED, 88 /** The immediate prerequisites have been loaded. 89 * Prev state: MAPPED, RELOADED 84 90 * Next state: FIXED_UP, DESTROYED 85 91 */ 86 KLDRSTATE_LOADED_ DEPS,92 KLDRSTATE_LOADED_PREREQUISITES, 87 93 /** Fixups has been applied. 88 * Prev state: LOADED_ DEPS94 * Prev state: LOADED_PREREQUISITES 89 95 * Next state: PENDING_INIT, DESTROYED 90 96 */ … … 124 130 * (The loader can still be in a re-entrant mode.) 125 131 * Prev state: TERMINATING, INITIALIZING, PENDING_INITIALIZATION 126 * Next state: GC, RELOAD ING132 * Next state: GC, RELOADED 127 133 */ 128 134 KLDRSTATE_PENDING_GC, 129 135 /** Being garbage collected. 130 * (The loader can still be in a re-entrant mode.)131 136 * Prev state: PENDING_GC 137 * Next state: PENDING_DESTROY, DESTROYED 138 */ 139 KLDRSTATE_GC, 140 /** The module has be unlinked, but there are still stack references to it. 141 * Prev state: GC 132 142 * Next state: DESTROYED 133 143 */ 134 KLDRSTATE_GC, 135 /** The module is being reloaded after having been scheduled for termination or/and GC. 136 * (The loader can still be in a re-entrant mode.) 137 * Prev state: PENDING_GC 138 * Next state: PENDING_INITIALIZATION 139 */ 140 KLDRSTATE_RELOADING, 144 KLDRSTATE_PENDING_DESTROY, 141 145 /** The module has been destroyed and is no longer valid. 142 * Prev state: GC 146 * Prev state: GC, PENDING_DESTROY 143 147 */ 144 148 KLDRSTATE_DESTROYED, … … 163 167 /** The module handle. */ 164 168 HKLDRMOD hMod; 165 /** The number of references. */169 /** The total number of references. */ 166 170 uint32_t cRefs; 167 /** The number of dynamic references. */ 171 /** The number of dependency references. */ 172 uint32_t cDepRefs; 173 /** The number of dynamic load references. */ 168 174 uint32_t cDynRefs; 169 /** The number of dynamic load operations in progress.170 * This is used to reject anyone trying to unload a module before the load has171 * been completed. An alternative to this would be to not add the cDynRefs until172 * the load operation has completed... */173 uint32_t cDynRefsInProgress;174 175 /** Set if this is the executable module. 175 176 * When clear, the module is a shared object or relocatable object. */ … … 180 181 uint32_t fBindable : 1; 181 182 /** Reserved for future use. */ 182 uint32_t fReserved : 29; 183 uint32_t fReserved : 28; 184 /** Already checked dependencies. 185 * This is flag used when resolving module dependencies during a load, it 186 * deals with modules in the KLDRSTATE_PENDING_INITIALIZATION state. */ 187 uint32_t fAlreadySeen : 1; 183 188 /** The load list linkage. */ 184 189 struct … … 233 238 int kldrDyldModCreate(PKLDRRDR pRdr, PPKLDRDYLDMOD ppMod); 234 239 int kldrDyldModDestroy(PKLDRDYLDMOD pMod); 235 int kldrDyldModAddDep(PKLDRDYLDMOD pMod, PKLDRDYLDMOD pModDep); 236 int kldrDyldModRemoveDep(PKLDRDYLDMOD pMod, PKLDRDYLDMOD pModDep); 240 int kldrDyldModAddRef(PKLDRDYLDMOD pMod); 241 void kldrDyldModDeref(PKLDRDYLDMOD pMod); 242 int kldrDyldModAddDep(PKLDRDYLDMOD pMod, PKLDRDYLDMOD pDep); 243 void kldrDyldModRemoveDep(PKLDRDYLDMOD pMod, PKLDRDYLDMOD pDep); 237 244 int kldrDyldModDynamicLoad(PKLDRDYLDMOD pMod); 238 245 int kldrDyldModDynamicUnload(PKLDRDYLDMOD pMod); … … 245 252 int kldrDyldModMap(PKLDRDYLDMOD pMod); 246 253 int kldrDyldModUnmap(PKLDRDYLDMOD pMod); 247 int kldrDyldModLoadDependencies(PKLDRDYLDMOD pMod); 254 int kldrDyldModLoadPrerequisites(PKLDRDYLDMOD pMod, const char *pszName, const char *pszDefPrefix, const char *pszDefSuffix, 255 KLDRDYLDSEARCH enmSearch, unsigned fFlags); 256 int kldrDyldModCheckPrerequisites(PKLDRDYLDMOD pMod); 257 void kldrDyldModUnloadPrerequisites(PKLDRDYLDMOD pMod); 248 258 int kldrDyldModFixup(PKLDRDYLDMOD pMod); 249 259 int kldrDyldModCallInit(PKLDRDYLDMOD pMod); 250 int kldrDyldModCallTerm(PKLDRDYLDMOD pMod); 260 void kldrDyldModCallTerm(PKLDRDYLDMOD pMod); 261 int kldrDyldModReload(PKLDRDYLDMOD pMod); 251 262 int kldrDyldModAttachThread(PKLDRDYLDMOD pMod); 252 263 int kldrDyldModDetachThread(PKLDRDYLDMOD pMod);
Note:
See TracChangeset
for help on using the changeset viewer.