1 /* 2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 * Description: osal adapt 15 * 16 * Create: 2023-01-11 17 */ 18 #ifndef __OSAL_ADAPT_H__ 19 #define __OSAL_ADAPT_H__ 20 21 /***************************************************************************** 22 1 其他头文件包含 23 *****************************************************************************/ 24 25 #include "td_type.h" 26 #include "osal_types.h" 27 #include "soc_osal.h" 28 29 #ifdef __cplusplus 30 #if __cplusplus 31 extern "C" { 32 #endif 33 #endif 34 35 /************************ osal_atomic ************************/ 36 extern int osal_adapt_atomic_init(osal_atomic *atomic); 37 extern void osal_adapt_atomic_destroy(osal_atomic *atomic); 38 extern int osal_adapt_atomic_read(osal_atomic *atomic); 39 extern void osal_adapt_atomic_set(osal_atomic *atomic, int val); 40 extern int osal_adapt_atomic_inc_return(osal_atomic *atomic); 41 extern int osal_adapt_atomic_dec_return(osal_atomic *atomic); 42 extern void osal_adapt_atomic_inc(osal_atomic *atomic); 43 extern void osal_adapt_atomic_dec(osal_atomic *atomic); 44 extern void osal_adapt_atomic_add(osal_atomic *atomic, int val); 45 46 /************************ osal_timer ************************/ 47 extern int osal_adapt_timer_init(osal_timer *timer, void *func, unsigned long data, unsigned int interval); 48 extern unsigned int osal_adapt_jiffies_to_msecs(const unsigned int n); 49 extern int osal_adapt_timer_destroy(osal_timer *timer); 50 extern unsigned long long osal_adapt_get_jiffies(void); 51 extern int osal_adapt_timer_mod(osal_timer *timer, unsigned int interval); 52 53 /************************ osal_task ************************/ 54 extern osal_task *osal_adapt_kthread_create(osal_kthread_handler thread, void *data, 55 const char *name, unsigned int stack_size); 56 extern void osal_adapt_kthread_lock(void); 57 extern void osal_adapt_kthread_unlock(void); 58 extern long osal_adapt_get_current_tid(void); 59 extern int osal_adapt_kthread_should_stop(void); 60 extern void osal_adapt_kthread_destroy(osal_task *task, unsigned int stop_flag); 61 extern int osal_adapt_kthread_set_priority(osal_task *task, unsigned int priority); 62 extern int osal_adapt_workqueue_init(osal_workqueue *work, osal_workqueue_handler handler); 63 extern void osal_adapt_workqueue_destroy(osal_workqueue *work); 64 65 /************************ osal_intertupt ************************/ 66 extern unsigned int osal_adapt_irq_lock(void); 67 extern void osal_adapt_irq_restore(unsigned int irq_status); 68 69 /************************ osal_wait ************************/ 70 extern void osal_adapt_wait_destroy(osal_wait *wait); 71 extern void osal_adapt_wait_wakeup(osal_wait *wait); 72 73 /************************ osal_event ************************/ 74 extern int osal_adapt_event_init(osal_event *event_obj); 75 extern int osal_adapt_event_write(osal_event *event_obj, unsigned int mask); 76 extern int osal_adapt_event_read(osal_event *event_obj, unsigned int mask, unsigned int timeout_ms, unsigned int mode); 77 extern int osal_adapt_event_clear(osal_event *event_obj, unsigned int mask); 78 extern int osal_adapt_event_destroy(osal_event *event_obj); 79 80 /************************ osal_string ************************/ 81 extern int osal_adapt_strncmp(const char *str1, const char *str2, unsigned long size); 82 83 #ifdef __cplusplus 84 #if __cplusplus 85 } 86 #endif 87 #endif 88 89 #endif