Xenomai native API
来源:互联网 发布:互盾数据恢复注册码 编辑:程序博客网 时间:2024/06/05 14:38
1. 任务状态
• #define T_BLOCKED XNPEND
• #define T_DELAYED XNDELAY
• #define T_READY XNREADY
• #define T_DORMANTXNDORMANT
• #define T_STARTEDXNSTARTED
• #define T_BOOST XNBOOST
• #define T_LOCK XNLOCK
• #define T_NOSIG XNASDI
• #define T_WARNSW XNTRAPSW
• #define T_RPIOFF XNRPIOFF
2. Alarm服务
• int rt_alarm_create (RT_ALARM ∗alarm,const char ∗name, rt_alarm_t handler, void ∗cookie)
Alarm
存储alarm相关数据的描述符地址
Name
Alarm变量名
Handler
Alarm结束时调用地址
Cookie
传递给alarm handler作为第二个参数
•int rt_alarm_delete (RT_ALARM ∗alarm)
Alarm
待删除alarm描述符地址
•int rt_alarm_start (RT_ALARM ∗alarm,RTIME value, RTIME interval)
Alarm
Alarm描述符地址
Value
初始alarm shot的相关数据
Interval
Alarm重载值
•int rt_alarm_stop (RT_ALARM ∗alarm)
Alarm
待释放alarm描述符地址
•int rt_alarm_inquire (RT_ALARM ∗alarm,RT_ALARM_INFO ∗info)
Alarm
请求alarm的描述符地址
Info
待写入alarm信息的结构地址
•int rt_alarm_create (RT_ALARM ∗alarm,const char ∗name)
Alarm
Alarm描述符地址
Name
Alarm变量名
•int rt_alarm_wait (RT_ALARM ∗alarm)
Alarm
等待alarm描述符地址
3. Buffer服务
•int rt_buffer_create (RT_BUFFER ∗bf,const char ∗name,size_t bufsz, int mode)
Bf
存储buffer相关数据描述符地址
Name
Buffer变量名
Bufsz
可用空间大小,该区域在系统堆中
Mode
Buffer创建模式
•int rt_buffer_delete (RT_BUFFER ∗bf)
Bf
待删除buffer描述符地址
•ssize_t rt_buffer_write (RT_BUFFER ∗bf, const void ∗ptr, size_t len, RTIMEtimeout)
Bf
Buffer描述符地址
Ptr
待写入buffer数据的地址
Len
信息数据字节长度
Timeout
等待时间限度
• ssize_trt_buffer_write_until (RT_BUFFER ∗bf, const void ∗ptr,size_t len, RTIME timeout)
Bf
描述符地址
Ptr
待写入buffer数据的地址
Len
信息数据字节长度
Timeout
等待buffer有足够空间的绝对时间限度
•ssize_t rt_buffer_read (RT_BUFFER ∗bf, void ∗ptr, size_t len, RTIME timeout)
Bf
待读buffer描述符地址
Ptr
指向内存区域的指针,该区域可以写入收到的数据
Len
Ptr指向数据的长度
Timeout
等待buffer可用信息的时间限度
•int rt_buffer_clear (RT_BUFFER ∗bf)
Bf
待清空buffer的描述符地址
•int rt_buffer_inquire (RT_BUFFER ∗bf,RT_BUFFER_INFO ∗info)
Bf
请求buffer的描述符地址
Info
Buffer信息将写入的结构地址
•int rt_buffer_bind (RT_BUFFER ∗bf,const char ∗name,RTIME timeout)
Bf
Buffer描述符地址
Name
有效非空待绑定buffer变量名
Timeout
等待注册发生时间限度
•static int rt_buffer_unbind (RT_BUFFER ∗bf)
Bf
解绑buffer的描述符地址
4. 条件变量服务
•int rt_cond_create (RT_COND ∗cond,const char ∗name)
Cond
存储相关数据的条件变量描述符地址
Name
条件变量变量名
•int rt_cond_delete (RT_COND ∗cond)
Cond
待删除变量的描述符地址
•int rt_cond_signal (RT_COND ∗cond)
Cond
变量描述符地址
•int rt_cond_broadcast (RT_COND ∗cond)
Cond
变量描述符地址
•int rt_cond_wait (RT_COND ∗cond,RT_MUTEX ∗mutex,RTIME timeout)
Cond
变量描述符地址
Mutex
互斥变量描述符
Timeout
条件变量被signal的时间限度
•int rt_cond_wait_until (RT_COND ∗cond,RT_MUTEX ∗mutex,RTIME timeout)
Cond
变量描述符地址
Mutex
互斥变量描述符
Timeout
条件变量被signal的绝对时间限度
•int rt_cond_inquire (RT_COND ∗cond,RT_COND_INFO ∗info)
Cond
变量描述符地址
Info
条件变量信息被写入的结构地址
•int rt_cond_bind (RT_COND ∗cond,const char ∗name,RTIME timeout)
Cond
描述符地址
Name
变量名
Timeout
等待绑定的时间限度
•static int rt_cond_unbind (RT_COND ∗cond)
Cond
等待解绑的变量描述符地址
5. 事件标志组服务
• int rt_event_create(RT_EVENT ∗event, const char ∗name, unsigned longivalue, int mode)
Event
创建事件的描述符地址
Name
事件变量名
Ivalue
组事件的初始值
Mode
事件组的创建模式
•int rt_event_delete (RT_EVENT ∗event)
Event
待删除描述符地址
•int rt_event_signal (RT_EVENT ∗event,unsigned long mask)
Event
事件描述符
Mask
事件集合
•int rt_event_wait (RT_EVENT ∗event,unsigned long mask, unsigned long ∗mask_r, int mode, RTIME timeout)
Event
事件组描述符
Mask
等待bit集
Mask_r
任务被读取的时候事件的值
Mode
挂起模式
Timeout
满足请求等待的时间限度
•int rt_event_wait_until (RT_EVENT ∗event, unsigned long mask, unsigned long ∗mask_r, int mode, RTIMEtimeout)
Event
事件组描述符
Mask
等待bit集
Mask_r
任务被读取的时候事件的值
Mode
挂起模式
Timeout
满足请求等待的绝对时间限度
•int rt_event_clear (RT_EVENT ∗event,unsigned long mask, unsigned long ∗mask_r)
Event
时间描述符地址
Mask
待清理事件集
Mask_r
事件组擦除前的内存地址
•int rt_event_inquire (RT_EVENT ∗event,RT_EVENT_INFO ∗info)
Event
请求事件组描述符
Info
待写入事件组信息的结构地址
•int rt_event_bind (RT_EVENT ∗event,const char ∗name,RTIME timeout)
Event
描述符地址
Name
变量名
Timeout
等待绑定的时间限度
•static int rt_event_unbind (RT_EVENT ∗event)
Event
描述符地址
6. 内存堆服务
•int rt_heap_create (RT_HEAP ∗heap,const char ∗name,size_t heapsize, int mode)
Heap
描述符地址
Name
变量名
Heapsize
待分配内存块大小
Mode
Heap的创建模式
•int rt_heap_delete (RT_HEAP ∗heap)
Heap
描述符
•int rt_heap_alloc (RT_HEAP ∗heap,size_t size, RTIME timeout, void ∗∗blockp)
Heap
描述符
Size
请求块大小
Timeout
等待分配请求内存的时间限度
Blockp
指向分配内存地址的指针
•int rt_heap_free (RT_HEAP ∗heap,void ∗block)
Heap
描述符
Block
待释放块地址
•int rt_heap_inquire (RT_HEAP ∗heap,RT_HEAP_INFO ∗info)
Heap
描述符
Info
待写入堆信息的结构地址
•int rt_heap_bind (RT_HEAP ∗heap,const char ∗name,RTIME timeout)
Heap
描述符
Name
变量名
Timeout
等待绑定的时间限度
•int rt_heap_unbind (RT_HEAP ∗heap)
Heap
描述符
7. 中断管理服务
• intrt_intr_create (RT_INTR ∗intr,const char ∗name,unsigned irq, rt_isr_t isr, rt_iack_t iack, int mode)
Intr
描述符
Name
变量名
Irq
硬件中断
Isr
内核空间有效中断服务地址
Iack
可选中断地址(取代默认值)
Mode
中断创建模式
•int rt_intr_delete (RT_INTR ∗intr)
Intr
描述符
•int rt_intr_enable (RT_INTR ∗intr)
Intr
描述符
•int rt_intr_disable (RT_INTR ∗intr)
Intr
描述符
•int rt_intr_inquire (RT_INTR ∗intr,RT_INTR_INFO ∗info)
Intr
描述符
Info
待写入中断信息的结构地址
•int rt_intr_create (RT_INTR ∗intr,const char ∗name,unsigned irq, int mode)
Intr
描述符
Name
变量名
Irq
硬件中断
Mode
中断创建模式
•int rt_intr_wait (RT_INTR ∗intr,RTIME timeout)
Intr
描述符
Timeout
等待中断发生的时间限度
•int rt_intr_bind (RT_INTR ∗intr,const char ∗name,RTIME timeout)
Intr
描述符
Name
变量名
Timeout
等待绑定的时间限度
•static int rt_intr_unbind (RT_INTR ∗intr)
Intr
描述符
8. 互斥服务
•int rt_mutex_create (RT_MUTEX ∗mutex,const char ∗name)
Mutex
描述符
Name
变量名
•int rt_mutex_delete (RT_MUTEX ∗mutex)
Mutex
描述符
•int rt_mutex_acquire (RT_MUTEX ∗mutex,RTIME timeout)
Mutex
描述符
Timeout
等待互斥变量可用的时间限度
•int rt_mutex_acquire_until (RT_MUTEX ∗mutex, RTIME timeout)
Mutex
描述符
Timeout
等待互斥变量可用的绝对时间限度
•int rt_mutex_release (RT_MUTEX ∗mutex)
Mutex
描述符
•int rt_mutex_inquire (RT_MUTEX ∗mutex,RT_MUTEX_INFO ∗info)
Mutex
描述符
Info
待写入互斥信息的结构地址
•int rt_mutex_bind (RT_MUTEX ∗mutex,const char ∗name,RTIME timeout)
Mutex
描述符
Name
变量名
Timeout
等待绑定的时间限度
•static int rt_mutex_unbind (RT_MUTEX ∗mutex)
Mutex
描述符
9. 信息管道服务
•int rt_pipe_create (RT_PIPE ∗pipe,const char ∗name,int minor, size_t poolsize)
Pipe
描述符
Name
变量名
Minor
和pipe相关设备数量
Poolsize
Buffer pool内为pipe预留容量
•int rt_pipe_delete (RT_PIPE ∗pipe)
Pipe
描述符
•ssize_t rt_pipe_receive (RT_PIPE ∗pipe,RT_PIPE_MSG ∗∗msgp,RTIME timeout)
Pipe
描述符
Msgp
指向内存的指针,该内存可以写入收到的信息
Timeout
等待信息到达的时间限度
•ssize_t rt_pipe_read (RT_PIPE ∗pipe,void ∗buf, size_tsize, RTIME timeout)
Pipe
描述符
Buf
指向信息目录内存位置的指针
Size
把收到的信息读入buf的字节数量
Timeout
等待信息到达的时间限度
•ssize_t rt_pipe_send (RT_PIPE ∗pipe,RT_PIPE_MSG ∗msg,size_t size, int mode)
Pipe
描述符
Msg
待发送信息的地址
Size
信息的字节大小
Mode
标志位集
•ssize_t rt_pipe_write (RT_PIPE ∗pipe,const void ∗buf,size_t size, int mode)
Pipe
描述符
Buf
Send的数据地址
Size
信息的字节大小
Mode
标志位集
•ssize_t rt_pipe_stream (RT_PIPE ∗pipe,const void ∗buf,size_t size)
Pipe
描述符
Buf
Send数据的地址
Size
Buffer的字节大小
•RT_PIPE_MSG ∗rt_pipe_alloc (RT_PIPE ∗pipe,size_t size)
Pipe
描述符
Size
Buffer请求字节容量
•int rt_pipe_free (RT_PIPE ∗pipe,RT_PIPE_MSG ∗msg)
Pipe
描述符
Msg
待释放信息地址
•int rt_pipe_flush (RT_PIPE ∗pipe,int mode)
Pipe
描述符
Mode
擦除模式
•int rt_pipe_monitor (RT_PIPE ∗pipe,int(∗fn)(RT_PIPE∗pipe, intevent, long arg))
Pipe
描述符
Fn
通知句柄
10. 信息队列服务
•int rt_queue_create (RT_QUEUE ∗q,const char ∗name,size_t poolsize, size_t qlimit, int mode)
Q
描述符
Name
变量名
Poolsize
预分配缓冲池字节大小
Qlimit
限制信息量的最大值
Mode
队列创建模式
•int rt_queue_delete (RT_QUEUE ∗q)
Q
描述符
•void ∗rt_queue_alloc (RT_QUEUE ∗q,size_t size)
Q
描述符
Size
请求buffer字节大小
•int rt_queue_free (RT_QUEUE ∗q,void ∗buf)
Q
描述符
Buf
待释放缓冲区地址
•int rt_queue_send (RT_QUEUE ∗q,void ∗mbuf,size_t size, int mode)
Q
描述符
Mbuf
待发送信息缓冲区地址
Size
信息字节大小
Mode
标志集
•int rt_queue_write (RT_QUEUE ∗q,const void ∗buf,size_t size, int mode)
Q
描述符
Buf
待写入队列信息数据地址
Size
信息数据字节大小
Mode
标志集
•ssize_t rt_queue_receive (RT_QUEUE ∗q, void ∗∗bufp,RTIME timeout)
Q
描述符
Bufp
指向待收信息数据地址的指针
Timeout
等待信息到达的时间限度
•ssize_t rt_queue_receive_until (RT_QUEUE ∗q, void ∗∗bufp, RTIME timeout)
Q
描述符
Bufp
指向待收信息数据地址的指针
Timeout
等待信息到达的绝对时间限度
•ssize_t rt_queue_read (RT_QUEUE ∗q,void ∗buf, size_tsize, RTIME timeout)
Q
描述符
Buf
指向一片可写内存区的指针
Size
Buf指向的内存大小
Timeout
等待信息到达的时间限度
•ssize_t rt_queue_read_until (RT_QUEUE ∗q, void ∗buf,size_t size, RTIME timeout)
Q
描述符
Buf
指向一片可写内存区的指针
Size
Buf指向的内存大小
Timeout
等待信息到达的绝对时间限度
•int rt_queue_flush (RT_QUEUE ∗q)
Q
描述符
•int rt_queue_inquire (RT_QUEUE ∗q,RT_QUEUE_INFO ∗info)
Q
描述符
Info
待写入队列信息的结构地址
•int rt_queue_bind (RT_QUEUE ∗q,const char ∗name,RTIME timeout)
Q
描述符
Name
变量名
Timeout
等待注册发生的时间限度
•int rt_queue_unbind (RT_QUEUE ∗q)
Q
描述符
11. 信号量服务
•int rt_sem_create (RT_SEM ∗sem,const char ∗name,unsigned long icount, int mode)
Sem
描述符
Name
变量名
Icount
信号量初始值
Mode
信号量创建模式
•int rt_sem_delete (RT_SEM ∗sem)
Sem
描述符
•int rt_sem_p (RT_SEM ∗sem,RTIME timeout)
Sem
描述符
Timeout
等待信号量有效的时间限度
•int rt_sem_p_until (RT_SEM ∗sem,RTIME timeout)
Sem
描述符
Timeout
等待信号量有效的时间限度
•int rt_sem_v (RT_SEM ∗sem)
Sem
描述符
•int rt_sem_broadcast (RT_SEM ∗sem)
Sem
描述符
•int rt_sem_inquire (RT_SEM ∗sem,RT_SEM_INFO ∗info)
Sem
描述符
Info
待写入信号量信息的结构地址
•int rt_sem_bind (RT_SEM ∗sem,const char ∗name,RTIME timeout)
Sem
描述符
Name
变量名
Timeout
等待事件发生的时间限度
•static int rt_sem_unbind (RT_SEM ∗sem)
Sem
描述符
12. 任务管理服务
•int rt_task_create (RT_TASK ∗task,const char ∗name,int stksize, int prio, int mode)
Task
描述符
Name
变量名
Stksize
新任务栈大小
Prio
新任务的优先级
Mode
任务创建模式
•int rt_task_start (RT_TASK ∗task,void(∗entry)(void∗cookie),void ∗cookie)
Task
描述符
Entry
任务入口点
Cookie
作为入口点参数
•int rt_task_suspend (RT_TASK ∗task)
Task
描述符
•int rt_task_resume (RT_TASK ∗task)
Task
描述符
•int rt_task_delete (RT_TASK ∗task)
Task
描述符
•int rt_task_yield (void)
把当前任务移到该优先级的末尾
•int rt_task_set_periodic (RT_TASK ∗task, RTIME idate, RTIME period)
Task
描述符
Idate
第一次释放点的初始值
Period
任务周期
•int rt_task_wait_period (unsigned long ∗overruns_r)
Overruns_r
指向overrun挂起内存地址的指针
•int rt_task_set_priority (RT_TASK ∗task, int prio)
Task
描述符
Prio
新任务的优先级
•int rt_task_sleep (RTIME delay)
Delay
等待resume任务的时间
•int rt_task_sleep_until (RTIME date)
Date
等待resume任务的绝对时间
•int rt_task_unblock (RT_TASK ∗task)
Task
描述符
•int rt_task_inquire (RT_TASK ∗task,RT_TASK_INFO ∗info)
Task
描述符
Info
待写入任务信息的结构地址
•int rt_task_add_hook (int type, void(∗routine)(void ∗cookie))
Type
定义待安装hook类型
Routine
用户提供调用地址
•int rt_task_remove_hook (int type, void(∗routine)(void ∗cookie))
Type
定义卸载hook的类型
Routine
用户提供卸载hook的地址
•int rt_task_catch (void(∗handler)(rt_sigset_t))
Handler
用户提供安装signal handler的地址
•int rt_task_notify (RT_TASK ∗task,rt_sigset_t signals)
Task
描述符
Signals
挂起任务的signals集
•int rt_task_set_mode (int clrmask, int setmask, int ∗mode_r)
Clrmask
清理当前任务的模式位
Setmask
为当前任务设置模式位
Mode_r
指向之前模式位集的指针
•RT_TASK ∗rt_task_self (void)
取回当前任务
•int rt_task_slice (RT_TASK ∗task,RTIME quantum)
Task
描述符
Quantum
轮询调度的时间片长度
•ssize_t rt_task_send (RT_TASK ∗task,RT_TASK_MCB ∗mcb_s,RT_TASK_MCB ∗mcb_r,RTIME timeout)
Task
描述符
Mcb_s
信息控制块引用被发送信息的地址
Mcb_r
可选信息控制块引用回应信息区的地址
Timeout
等待远程任务回应初始信息的时间限度
•int rt_task_receive (RT_TASK_MCB ∗mcb_r,RTIME timeout)
Mcb_r
信息控制块引用收到信息区的地址
Timeout
等待收到信息的时间
•int rt_task_reply (int flowid, RT_TASK_MCB ∗mcb_s)
Flowid
识别当前的事物
Mcb_s
可选信息控制块引用送回信息的地址
•static int rt_task_spawn (RT_TASK ∗task, const char ∗name, int stksize, int prio,int mode, void(∗entry)(void∗cookie),void ∗cookie)
Task
描述符
Name
变量名
Stksize
新任务栈大小
Prio
新任务优先级
Mode
任务创建模式
Entry
任务入口点
Cookie
入口点参数
•int rt_task_shadow (RT_TASK ∗task,const char ∗name,int prio, int mode)
Task
描述符
Name
变量名
Prio
为当前任务设置的优先级
Mode
任务创建模式
把当前Linux任务转换成xenomai任务
•int rt_task_bind (RT_TASK ∗task,const char ∗name,RTIME timeout)
Task
描述符
Name
变量名
Timeout
等待事件发生的时间限制
•static int rt_task_unbind (RT_TASK ∗task)
Task
描述符
•int rt_task_join (RT_TASK ∗task)
Task
描述符
•int rt_task_same (RT_TASK ∗task1,RT_TASK ∗task2)
13. 时序管理服务
•SRTIME rt_timer_ns2tsc (SRTIME ns)
Ns
转换的纳秒数
•SRTIME rt_timer_tsc2ns (SRTIME ticks)
Ticks
待转换的CPU时间片数量
•RTIME rt_timer_tsc (void)
返回当前tsc时间
•RTIME rt_timer_read (void)
返回当前系统时间
•SRTIME rt_timer_ns2ticks (SRTIME ns)
Ns
转换的纳秒数
•SRTIME rt_timer_ticks2ns (SRTIME ticks)
Ticks
待转换的交互时间片数量
•int rt_timer_inquire (RT_TIMER_INFO ∗info)
Info
待写入时序信息的结构地址
•void rt_timer_spin (RTIME ns)
Ns
等待CPU的纳秒级时间
•int rt_timer_set_mode (RTIME nstick)
Nstick
时间基的纳秒时序
- Xenomai native API
- Xenomai-forge Native API概述
- 常用的Xenomai 原生API
- xenomai
- 几类常用的Xenomai 原生API
- native API
- 常用Xenomai API
- Inside the Native API
- Inside the Native API
- Defeating Native API Hooker
- Native API -- ScOpenProcess
- The Native Android API
- native wifi api使用方法
- Native wifi API使用
- Native wifi API使用
- Native wifi API使用
- native wifi api 详解
- native api 之 注册表
- JAVA实现大数据量导出excel
- TensorFlow(GPU) 安装
- opengl之glScalef()函数
- 稳定匹配问题
- html5基础
- Xenomai native API
- Linux系统调用------追踪系统调用的执行过程
- 778799
- 九度OJ--1440
- VPN工作原理介绍
- MySQL中针对大数据量常用技术:查询优化,数据转移
- Win10怎么修改hosts
- 做什么职业,也别做程序员,尤其是java程序员
- SDUT 3253 Game!