1*c83a76b0SSuyog Pawar /****************************************************************************** 2*c83a76b0SSuyog Pawar * 3*c83a76b0SSuyog Pawar * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 4*c83a76b0SSuyog Pawar * 5*c83a76b0SSuyog Pawar * Licensed under the Apache License, Version 2.0 (the "License"); 6*c83a76b0SSuyog Pawar * you may not use this file except in compliance with the License. 7*c83a76b0SSuyog Pawar * You may obtain a copy of the License at: 8*c83a76b0SSuyog Pawar * 9*c83a76b0SSuyog Pawar * http://www.apache.org/licenses/LICENSE-2.0 10*c83a76b0SSuyog Pawar * 11*c83a76b0SSuyog Pawar * Unless required by applicable law or agreed to in writing, software 12*c83a76b0SSuyog Pawar * distributed under the License is distributed on an "AS IS" BASIS, 13*c83a76b0SSuyog Pawar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*c83a76b0SSuyog Pawar * See the License for the specific language governing permissions and 15*c83a76b0SSuyog Pawar * limitations under the License. 16*c83a76b0SSuyog Pawar * 17*c83a76b0SSuyog Pawar ******************************************************************************/ 18*c83a76b0SSuyog Pawar /** 19*c83a76b0SSuyog Pawar ******************************************************************************* 20*c83a76b0SSuyog Pawar * @file 21*c83a76b0SSuyog Pawar * ithread.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * This file contains all the necessary structure and enumeration 25*c83a76b0SSuyog Pawar * definitions needed for the Application Program Interface(API) of the 26*c83a76b0SSuyog Pawar * Thread Abstraction Layer 27*c83a76b0SSuyog Pawar * 28*c83a76b0SSuyog Pawar * @author 29*c83a76b0SSuyog Pawar * Harish 30*c83a76b0SSuyog Pawar * 31*c83a76b0SSuyog Pawar * @remarks 32*c83a76b0SSuyog Pawar * None 33*c83a76b0SSuyog Pawar * 34*c83a76b0SSuyog Pawar ******************************************************************************* 35*c83a76b0SSuyog Pawar */ 36*c83a76b0SSuyog Pawar #ifndef __ITHREAD_H__ 37*c83a76b0SSuyog Pawar #define __ITHREAD_H__ 38*c83a76b0SSuyog Pawar 39*c83a76b0SSuyog Pawar UWORD32 ithread_get_handle_size(void); 40*c83a76b0SSuyog Pawar 41*c83a76b0SSuyog Pawar UWORD32 ithread_get_mutex_lock_size(void); 42*c83a76b0SSuyog Pawar 43*c83a76b0SSuyog Pawar WORD32 ithread_create(void *thread_handle, void *attribute, void *strt, void *argument); 44*c83a76b0SSuyog Pawar 45*c83a76b0SSuyog Pawar void ithread_exit(void *val_ptr); 46*c83a76b0SSuyog Pawar 47*c83a76b0SSuyog Pawar WORD32 ithread_join(void *thread_id, void **val_ptr); 48*c83a76b0SSuyog Pawar 49*c83a76b0SSuyog Pawar WORD32 ithread_get_mutex_struct_size(void); 50*c83a76b0SSuyog Pawar 51*c83a76b0SSuyog Pawar WORD32 ithread_mutex_init(void *mutex); 52*c83a76b0SSuyog Pawar 53*c83a76b0SSuyog Pawar WORD32 ithread_mutex_destroy(void *mutex); 54*c83a76b0SSuyog Pawar 55*c83a76b0SSuyog Pawar WORD32 ithread_mutex_lock(void *mutex); 56*c83a76b0SSuyog Pawar 57*c83a76b0SSuyog Pawar WORD32 ithread_mutex_unlock(void *mutex); 58*c83a76b0SSuyog Pawar 59*c83a76b0SSuyog Pawar void ithread_yield(void); 60*c83a76b0SSuyog Pawar 61*c83a76b0SSuyog Pawar void ithread_sleep(UWORD32 u4_time); 62*c83a76b0SSuyog Pawar 63*c83a76b0SSuyog Pawar void ithread_msleep(UWORD32 u4_time_ms); 64*c83a76b0SSuyog Pawar 65*c83a76b0SSuyog Pawar void ithread_usleep(UWORD32 u4_time_us); 66*c83a76b0SSuyog Pawar 67*c83a76b0SSuyog Pawar UWORD32 ithread_get_sem_struct_size(void); 68*c83a76b0SSuyog Pawar 69*c83a76b0SSuyog Pawar WORD32 ithread_sem_init(void *sem, WORD32 pshared, UWORD32 value); 70*c83a76b0SSuyog Pawar 71*c83a76b0SSuyog Pawar WORD32 ithread_sem_post(void *sem); 72*c83a76b0SSuyog Pawar 73*c83a76b0SSuyog Pawar WORD32 ithread_sem_wait(void *sem); 74*c83a76b0SSuyog Pawar 75*c83a76b0SSuyog Pawar WORD32 ithread_sem_destroy(void *sem); 76*c83a76b0SSuyog Pawar 77*c83a76b0SSuyog Pawar WORD32 ithread_set_affinity(WORD32 core_id); 78*c83a76b0SSuyog Pawar 79*c83a76b0SSuyog Pawar WORD32 ithread_get_cond_struct_size(void); 80*c83a76b0SSuyog Pawar 81*c83a76b0SSuyog Pawar WORD32 ithread_cond_init(void *cond); 82*c83a76b0SSuyog Pawar 83*c83a76b0SSuyog Pawar WORD32 ithread_cond_destroy(void *cond); 84*c83a76b0SSuyog Pawar 85*c83a76b0SSuyog Pawar WORD32 ithread_cond_wait(void *cond, void *mutex); 86*c83a76b0SSuyog Pawar 87*c83a76b0SSuyog Pawar WORD32 ithread_cond_signal(void *cond); 88*c83a76b0SSuyog Pawar #endif /* __ITHREAD_H__ */ 89