1 #ifndef MICROPY_INCLUDED_SAL_H
2 #define MICROPY_INCLUDED_SAL_H
3 
4 #include <stdio.h>
5 
6 #include "aos/kernel.h"
7 #include "py/obj.h"
8 #include "ulog/ulog.h"
9 
10 #define MP_SAL_THREAD_MIN_STACK_SIZE     (1024 + 256)
11 #define MP_SAL_THREAD_DEFAULT_STACK_SIZE (MP_THREAD_MIN_STACK_SIZE + 1024)
12 #define MP_SAL_THREAD_PRIORITY           (AOS_DEFAULT_APP_PRI)
13 
14 #define mp_sal_mutex_obj_t               aos_mutex_t
15 #define mp_sal_sem_obj_t                 aos_sem_t
16 
17 mp_uint_t mp_sal_get_stack_size();
18 void *mp_sal_get_stack_addr();
19 
20 void mp_sal_task_delete(aos_task_t *id, mp_int_t *status);
21 mp_int_t mp_sal_mutex_create(mp_sal_mutex_obj_t *mutex);
22 mp_int_t mp_sal_mutex_lock(mp_sal_mutex_obj_t *mutex, mp_uint_t timeout);
23 mp_int_t mp_sal_mutex_unlock(mp_sal_mutex_obj_t *mutex);
24 void mp_sal_mutex_delete(mp_sal_mutex_obj_t *mutex);
25 
26 mp_int_t mp_sal_sem_create(mp_sal_sem_obj_t *sem);
27 mp_int_t mp_sal_sem_take(mp_sal_sem_obj_t *sem, mp_uint_t timeout);
28 mp_int_t mp_sal_sem_give(mp_sal_sem_obj_t *sem);
29 void mp_sal_sem_delete(mp_sal_sem_obj_t *sem);
30 
31 #endif
32