- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# rtos.h

    00001 /*********************************************************************************
    00002
    00003  Copyright 2006-2008 MakingThings
    00004
    00005  Licensed under the Apache License,
    00006  Version 2.0 (the "License"); you may not use this file except in compliance
    00007  with the License. You may obtain a copy of the License at
    00008
    00009  http://www.apache.org/licenses/LICENSE-2.0
    00010
    00011  Unless required by applicable law or agreed to in writing, software distributed
    00012  under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
    00013  CONDITIONS OF ANY KIND, either express or implied. See the License for
    00014  the specific language governing permissions and limitations under the License.
    00015
    00016 *********************************************************************************/
    00017
    00018 /*
    00019   RTOS.H
    00020
    00021   MakingThings
    00022 */
    00023
    00024 #ifndef RTOS_H
    00025 #define RTOS_H
    00026
    00027 #include "types.h"
    00028
    00029 void  Sleep( int timems );
    00030 void* TaskCreate(  void (taskCode)(void*), char* name, int stackDepth, void* parameters, int priority );
    00031 void  TaskYield( void );
    00032 void  TaskDelete( void* task );
    00033 void  TaskEnterCritical( void );
    00034 void  TaskExitCritical( void );
    00035 int TaskGetRemainingStack( void* task );
    00036 void* getTaskByName( char *taskName );
    00037 void* getTaskByID( int taskID );
    00038 int TaskGetPriority( void* task );
    00039 void TaskSetPriority( void* task, int priority );
    00040 int TaskGetIDNumber( void* task );
    00041 char* TaskGetName( void* task );
    00042 int TaskGetStackAllocated( void* task );
    00043 void* TaskGetCurrent( void );
    00044 void* TaskGetNext( void* task );
    00045 int GetNumberOfTasks( void );
    00046 int TaskGetTopPriorityUsed( void );
    00047 int TaskGetTickCount( void );
    00048
    00049 void* Malloc( int size );
    00050 void* MallocWait( int size, int interval );
    00051 void Free( void* memory );
    00052
    00053 void* QueueCreate( uint length, uint itemSize );
    00054 int QueueSendToFront( void* queue, void* itemToQueue, int msToWait );
    00055 int QueueSendToBack( void* queue, void* itemToQueue, int msToWait );
    00056 int QueueReceive( void* queue, void* buffer, int msToWait );
    00057 int QueueMessagesWaiting( void* queue );
    00058 void QueueDelete( void* queue );
    00059 int QueueSendToFrontFromISR( void* queue, void* itemToSend, int taskPreviouslyWoken );
    00060 int QueueSendToBackFromISR( void* queue, void* itemToSend, int taskPreviouslyWoken );
    00061 int QueueReceiveFromISR( void* queue, void* buffer, long* taskWoken );
    00062
    00063 void* SemaphoreCreate( void );
    00064 void* MutexCreate( void );
    00065 int SemaphoreTake( void* semaphore, int blockTime );
    00066 int SemaphoreGive( void* semaphore );
    00067 int SemaphoreGiveFromISR( void* semaphore, int taskPreviouslyWoken );
    00068
    00069 #endif

The Make Controller Kit is an open source project maintained by MakingThings.
MakingThings code is released under the Apache 2.0 license.
Bug tracker, development wiki and status can be found at http://dev.makingthings.com.
This document was last updated on 18 May 2009.