00001 /*-------------------------------------------------------------------- 00002 * 00003 * (C) Copyright Koninklijke Philips Electronics NV 2006. 00004 * All rights reserved. This software is licensed under the terms of 00005 * version 2.1 of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation. For licensing and warranty 00007 * information, see the file COPYING in the main directory. 00008 * 00009 *------------------------------------------------------------------*/ 00010 00011 #ifndef OS_H 00012 #define OS_H 00013 00014 class osTask; 00015 class osSemaphore; 00016 class osMutex; 00017 00018 class Os 00019 { 00020 public: 00021 Os(); 00022 virtual ~Os(); 00023 00024 virtual osTask* createTask(void (*f)(void*), void* a) = 0; 00025 virtual osMutex* createMutex(bool locked) = 0; 00026 virtual osSemaphore* createSemaphore(int credit) = 0; 00027 00028 void setDeadlockHandler(void (*f)()); 00029 void setDeadlockHandler(void (*f)(void*), void* a); 00030 bool deadlockHandler(); 00031 00032 private: 00033 void (*deadlockFnc)(); 00034 void (*deadlockFncA)(void*); 00035 void *deadlockArg; 00036 }; 00037 00038 Os* boot(); 00039 00040 #endif