13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#ifndef _DETHREAD_H 23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define _DETHREAD_H 33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*------------------------------------------------------------------------- 43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Thread Library 53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * --------------------------- 63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project 83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License"); 103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License. 113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at 123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * http://www.apache.org/licenses/LICENSE-2.0 143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software 163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS, 173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and 193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License. 203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * 213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*! 223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file 233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Thread management. 243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "deDefs.h" 273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 283c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDE_BEGIN_EXTERN_C 293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/* Basic types associated with threads. */ 313c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytypedef deUintptr deThread; 323c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytypedef void (*deThreadFunc) (void* arg); 333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*--------------------------------------------------------------------*//*! 353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Thread scheduling priority. 363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 373c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytypedef enum deThreadPriority_e 383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_LOWEST = 0, 403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_LOW, 413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_NORMAL, 423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_HIGH, 433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_HIGHEST, 443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry DE_THREADPRIORITY_LAST 463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} deThreadPriority; 473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*--------------------------------------------------------------------*//*! 493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief Thread attributes. 503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/ 513c827367444ee418f129b2c238299f49d3264554Jarkko Poyrytypedef struct deThreadAttributes_s 523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{ 533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry deThreadPriority priority; 543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} deThreadAttributes; 553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 563c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid deSleep (deUint32 milliseconds); 573c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid deYield (void); 583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 593c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeThread deThread_create (deThreadFunc func, void* arg, const deThreadAttributes* attributes); 603c827367444ee418f129b2c238299f49d3264554Jarkko PoyrydeBool deThread_join (deThread thread); 613c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid deThread_destroy (deThread thread); 623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 633c827367444ee418f129b2c238299f49d3264554Jarkko PoyryDE_END_EXTERN_C 643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry 653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#endif /* _DETHREAD_H */ 66