core/systems/HandleSys.h
changeset 528 ea61550036b5
parent 487 3410298035cb
child 653 ef60870067ff
     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;