Kernel API¶
-
int
aos_task_setspecific
(aos_task_key_t key, void * vp)¶ Associate a task-specific value with a key.
- Return
- the check status, 0 is OK, -1 indicates invalid.
- Parameters
key
: key object.vp
: pointer of a task-specific value.
-
void*
aos_task_getspecific
(aos_task_key_t key)¶ Get the value currently bound to the specified key.
- Parameters
key
: key object.
-
int
aos_mutex_new
(aos_mutex_t * mutex)¶ Alloc a mutex.
- Return
- 0: success.
- Parameters
mutex
: pointer of mutex object, mutex object must be alloced, hdl pointer in aos_mutex_t will refer a kernel obj internally.
-
void
aos_mutex_free
(aos_mutex_t * mutex)¶ Free a mutex.
- Parameters
mutex
: mutex object, mem refered by hdl pointer in aos_mutex_t will be freed internally.
-
int
aos_mutex_lock
(aos_mutex_t * mutex, unsigned int timeout)¶ Lock a mutex.
- Return
- 0: success.
- Parameters
mutex
: mutex object, it contains kernel obj pointer which aos_mutex_new alloced.timeout
: waiting until timeout in milliseconds.
-
int
aos_mutex_unlock
(aos_mutex_t * mutex)¶ Unlock a mutex.
- Return
- 0: success.
- Parameters
mutex
: mutex object, it contains kernel obj pointer which oc_mutex_new alloced.
-
int
aos_mutex_is_valid
(aos_mutex_t * mutex)¶ This function will check if mutex is valid.
- Return
- 0: success.
- Parameters
mutex
: pointer to the mutex.
-
int
aos_sem_new
(aos_sem_t * sem, int count)¶ Alloc a semaphore.
- Return
- 0:success.
- Parameters
sem
: pointer of semaphore object, semaphore object must be alloced, hdl pointer in aos_sem_t will refer a kernel obj internally.count
: initial semaphore counter.
-
void
aos_sem_free
(aos_sem_t * sem)¶ Destroy a semaphore.
- Parameters
sem
: pointer of semaphore object, mem refered by hdl pointer in aos_sem_t will be freed internally.
-
int
aos_sem_wait
(aos_sem_t * sem, unsigned int timeout)¶ Acquire a semaphore.
- Return
- 0: success.
- Parameters
sem
: semaphore object, it contains kernel obj pointer which aos_sem_new alloced.timeout
: waiting until timeout in milliseconds.
-
void
aos_sem_signal
(aos_sem_t * sem)¶ Release a semaphore.
- Parameters
sem
: semaphore object, it contains kernel obj pointer which aos_sem_new alloced.
-
int
aos_sem_is_valid
(aos_sem_t * sem)¶ This function will check if semaphore is valid.
- Return
- 0: success.
- Parameters
sem
: pointer to the semaphore.
-
void
aos_sem_signal_all
(aos_sem_t * sem)¶ Release all semaphore.
- Parameters
sem
: semaphore object, it contains kernel obj pointer which aos_sem_new alloced.
-
int
aos_queue_new
(aos_queue_t * queue, void * buf, unsigned int size, int max_msg)¶ This function will create a queue.
- Return
- 0: success.
- Parameters
queue
: pointer to the queue(the space is provided by user).buf
: buf of the queue(provided by user).size
: the bytes of the buf.max_msg
: the max size of the msg.
-
void
aos_queue_free
(aos_queue_t * queue)¶ This function will delete a queue.
- Parameters
queue
: pointer to the queue.
-
int
aos_queue_send
(aos_queue_t * queue, void * msg, unsigned int size)¶ This function will send a msg to the front of a queue.
- Return
- 0: success.
- Parameters
queue
: pointer to the queue.msg
: msg to send.size
: size of the msg.
-
int
aos_queue_recv
(aos_queue_t * queue, unsigned int ms, void * msg, unsigned int * size)¶ This function will receive msg from a queue.
- Return
- 0: success.
- Parameters
queue
: pointer to the queue.ms
: ms to wait before receive.msg
: buf to save msg.size
: size of the msg.
-
int
aos_queue_is_valid
(aos_queue_t * queue)¶ This function will check if queue is valid.
- Return
- 0: success.
- Parameters
queue
: pointer to the queue.
-
void*
aos_queue_buf_ptr
(aos_queue_t * queue)¶ This function will return buf ptr if queue is inited.
- Return
- NULL: error.
- Parameters
queue
: pointer to the queue.
-
int
aos_sched_disable
(void)¶ This function will disable kernel sched.
- Return
- the operation status, 0 is OK, others is error.
-
int
aos_sched_enable
(void)¶ This function will enable kernel sched.
- Return
- 0: success.
-
int
aos_timer_new
(aos_timer_t * timer, void(*fn)(void *, void *), void * arg, int ms, int repeat)¶ This function will create a timer.
- Return
- 0: success.
- Parameters
timer
: pointer to the timer.fn
: callbak of the timer.arg
: the argument of the callback.ms
: ms of the normal timer triger.repeat
: repeat or not when the timer is created.
-
void
aos_timer_free
(aos_timer_t * timer)¶ This function will delete a timer.
- Parameters
timer
: pointer to a timer.
-
int
aos_timer_start
(aos_timer_t * timer)¶ This function will start a timer.
- Return
- 0: success.
- Parameters
timer
: pointer to the timer.
-
int
aos_timer_stop
(aos_timer_t * timer)¶ This function will stop a timer.
- Return
- 0: success.
- Parameters
timer
: pointer to the timer.
-
int
aos_timer_change
(aos_timer_t * timer, int ms)¶ This function will change attributes of a timer.
- Return
- 0: success.
- Parameters
timer
: pointer to the timer.ms
: ms of the timer triger.
-
int
aos_workqueue_create
(aos_workqueue_t * workqueue, int pri, int stack_size)¶ This function will creat a workqueue.
- Return
- 0: success.
- Parameters
workqueue
: the workqueue to be created.pri
: the priority of the worker.stack_size
: the size of the worker-stack.
-
void
aos_workqueue_del
(aos_workqueue_t * workqueue)¶ This function will delete a workqueue.
- Parameters
workqueue
: the workqueue to be deleted.
-
int
aos_work_init
(aos_work_t * work, void(*fn)(void *), void * arg, int dly)¶ This function will initialize a work.
- Return
- 0: success.
- Parameters
work
: the work to be initialized.fn
: the call back function to run.arg
: the paraments of the function.dly
: ms to delay before run.
-
void
aos_work_destroy
(aos_work_t * work)¶ This function will destroy a work.
- Parameters
work
: the work to be destroied.
-
int
aos_work_run
(aos_workqueue_t * workqueue, aos_work_t * work)¶ This function will run a work on a workqueue.
- Return
- 0: success.
- Parameters
workqueue
: the workqueue to run work.work
: the work to run.
-
int
aos_work_sched
(aos_work_t * work)¶ This function will run a work on the default workqueue.
- Return
- 0: success.
- Parameters
work
: the work to run.
-
int
aos_work_cancel
(aos_work_t * work)¶ This function will cancel a work on the default workqueue.
- Return
- 0: success.
- Parameters
work
: the work to cancel.
-
void*
aos_realloc
(void * mem, unsigned int size)¶ Realloc memory.
- Return
- NULL: error.
- Parameters
mem
: current memory address point.size
: new size of the mem to remalloc.
-
void*
aos_malloc
(unsigned int size)¶ Alloc memory.
- Return
- NULL: error.
- Parameters
size
: size of the mem to malloc.
-
void*
aos_zalloc
(unsigned int size)¶ Alloc memory and clear to zero.
- Return
- NULL: error.
- Parameters
size
: size of the mem to malloc.
-
void
aos_alloc_trace
(void * addr, size_t allocator)¶ Trace alloced mems.
- Parameters
addr
: pointer of the mem alloced by malloc.allocator
: buildin_address.
-
void
aos_free
(void * mem)¶ Free memory.
- Parameters
ptr
: address point of the mem.
-
long long
aos_now
(void)¶ Get current time in nano seconds.
- Return
- elapsed time in nano seconds from system starting.
-
long long
aos_now_ms
(void)¶ Get current time in mini seconds.
- Return
- elapsed time in mini seconds from system starting.
-
void
aos_msleep
(int ms)¶ Msleep.
- Parameters
ms
: sleep time in milliseconds.