resource.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *  $Id: resource.h 210 2008-09-27 20:44:34Z merdmann $
00003  *
00004  *  Mon Nov 26 06:50:00 2007
00005  *  Copyright  2007 Michael Erdmann
00006  *  Email:Michael.Erdmann@snafu.de
00007  ****************************************************************************/
00008 
00009 /*
00010  *  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU General Public License for more details.
00019  *
00020  *  You should have received a copy of the GNU General Public License
00021  *  along with this program; if not, write to the Free Software
00022  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00023  */
00024 
00031 #ifndef _RESOURCE_H
00032 #define _RESOURCE_H
00033 
00034 #include "proc.h"
00035 
00045 #define NO_OWNER  0xff
00046 
00047 typedef struct {
00048         t_task_id owner;                /* the owner of the Resource */
00049         HANDLE reference;               /* the handle to the resource it self */
00050 } ResourceInstance;
00051 
00052 typedef __near ResourceInstance* ResourceType;
00053 
00054 #define InitResource(x) {(x).owner = NO_OWNER; }
00055 
00056 #define DeclareResource(x) extern ResourceInstance x
00057 
00065 StatusType GetResource( ResourceType ResID );
00066 
00074 StatusType ReleaseResource( ResourceType ResID );
00075 
00076 #define ResourceOwner(x) (x).owner
00077 
00078 #endif
00079 

Generated on Mon Sep 29 19:56:47 2008 for mKernel by  doxygen 1.4.6