00001 #ifndef __HANDLE_H__
00002 #define __HANDLE_H__
00003
00004
00005
00006
00007
00008
00009 #include "configure.h"
00010
00011
00012 #define vHANDLE_INDEX_BITS 16
00013 #define vHANDLE_MAGIC_BITS 16
00014
00015 #define vHANDLE_MAX_INDEX ( ( 1 << vHANDLE_INDEX_BITS ) - 1 )
00016 #define vHANDLE_MAX_MAGIC ( ( 1 << vHANDLE_MAGIC_BITS ) - 1 )
00017
00018
00019 typedef struct tagvHANDLE
00020 {
00021
00022 union
00023 {
00024
00025 struct
00026 {
00027 vINDEX index : vHANDLE_INDEX_BITS;
00028 vMAGIC magic : vHANDLE_MAGIC_BITS;
00029 };
00030
00031 vUINT handle;
00032
00033 };
00034
00035 }
00036 vHANDLE;
00037
00038
00039 vHANDLE CreateNullHandle
00040 (
00041 vVOID
00042 );
00043
00044
00045 vBOOL IsNullHandle
00046 (
00047 vHANDLE H
00048 );
00049
00050
00051 vUINT GetHandleIndex
00052 (
00053 vHANDLE H
00054 );
00055
00056
00057 vUINT GetHandleMagic
00058 (
00059 vHANDLE H
00060 );
00061
00062
00063 vBOOL AreEqualHandles
00064 (
00065 vHANDLE H1,
00066 vHANDLE H2
00067 );
00068
00069
00070 #endif
00071