1.1 --- a/core/systems/HandleSys.h Thu Feb 22 02:20:15 2007 +0000
1.2 +++ b/core/systems/HandleSys.h Mon Feb 26 02:47:03 2007 +0000
1.3 @@ -63,6 +63,8 @@
1.4 unsigned int refcount; /* Reference count for safe destruction */
1.5 unsigned int clone; /* If non-zero, this is our cloned parent index */
1.6 HandleSet set; /* Information about the handle's state */
1.7 + bool access_special; /* Whether or not access rules are special or type-derived */
1.8 + HandleAccess sec; /* Security rules */
1.9 /* The following variables are unrelated to the Handle array, and used
1.10 * as an inlined chain of information */
1.11 unsigned int freeID; /* ID of a free handle in the free handle chain */
1.12 @@ -126,6 +128,12 @@
1.13 bool InitAccessDefaults(TypeAccess *pTypeAccess, HandleAccess *pHandleAccess);
1.14
1.15 bool TypeCheck(HandleType_t intype, HandleType_t outtype);
1.16 +
1.17 + virtual Handle_t CreateHandleEx(HandleType_t type,
1.18 + void *object,
1.19 + const HandleSecurity *pSec,
1.20 + const HandleAccess *pAccess,
1.21 + HandleError *err);
1.22 protected:
1.23 /**
1.24 * Decodes a handle with sanity and security checking.
1.25 @@ -170,7 +178,7 @@
1.26 HandleError FreeHandle(QHandle *pHandle, unsigned int index);
1.27 void UnlinkHandleFromOwner(QHandle *pHandle, unsigned int index);
1.28 HandleError CloneHandle(QHandle *pHandle, unsigned int index, Handle_t *newhandle, IdentityToken_t *newOwner);
1.29 - Handle_t CreateHandleEx(HandleType_t type, void *object, IdentityToken_t *owner, IdentityToken_t *ident, HandleError *err, bool identity);
1.30 + Handle_t CreateHandleInt(HandleType_t type, void *object, const HandleSecurity *pSec, HandleError *err, const HandleAccess *pAccess, bool identity);
1.31 private:
1.32 QHandle *m_Handles;
1.33 QHandleType *m_Types;