RT-Linux functions and their possible context

The following table is continuously updated. All of RT-Linux users are requested to contribute in order to make the table complete.

Please send your experiences to <kissg@sztaki.hu>. Comments, corrections, suggestions are also welcome.



Color code: forbidden, unsafe
allowed, safe
possible but not encouraged
unknown (yet)




Version 2.2 - 2.3 (with 1.x compatibility functions)

thread/
task
IT
handler
FIFO
handler
module
init/cleanup
clock_gettime        
clock_gethrtime        
clock_settime        
close  
free_RTirq        
gethrtime        
ioctl  
mmap  
munmap  
open  
printk2        
pthread_attr_destroy3        
pthread_attr_getcpu_np        
pthread_attr_getschedparam        
pthread_attr_init        
pthread_attr_setcpu_np        
pthread_attr_setfp_np        
pthread_attr_setschedparam        
pthread_attr_setstacksize        
pthread_create        
pthread_delete_np        
pthread_equal        
pthread_exit      
pthread_getschedparam  
pthread_kill        
pthread_make_periodic_np      
pthread_mutex_init    
pthread_mutex_destroy    
pthread_mutex_lock     5
pthread_mutex_trylock      
pthread_mutex_unlock    
pthread_self   6   6
pthread_setfp_np    
pthread_setperiod_np4  
pthread_setschedparam      
pthread_suspend_np        
pthread_wait_np      
pthread_wakeup_np   8    
pthread_yield 1      
read  
request_RTirq    
rt_delay7    
rt_get_time7        
rt_task_delete7    
rt_task_init7    
rt_task_make_periodic7      
rt_task_suspend7      
rt_task_use_fp7    
rt_task_wait7      
rt_task_wakeup7   8    
rtf_create        
rtf_create_handler    
rtf_destroy        
rtf_get        
rtf_put        
rtf_resize  
rtl_allow_interrupts        
rtl_free_irq    
rtl_free_global_irq    
rtl_free_soft_irq  
rtl_fpinit7    
rtl_get_soft_irq  
rtl_getbestclock  
rtl_getcpuid9        
rtl_getschedclock    
rtl_global_pend_irq  
rtl_hard_disable_irq    
rtl_hard_enable_irq        
rtl_no_interrupts      
rtl_num_cpus9        
rtl_printf        
rtl_request_irq    
rtl_request_global_irq    
rtl_register_chrdev  
rtl_restore_interrupts      
rtl_save_interrupts      
rtl_schedule        
rtl_set_oneshot_mode7    
rtl_set_periodic_mode7    
rtl_setclockhandler        
rtl_setclockmode    
rtl_spin_lock9  
rtl_spin_unlock9  
rtl_stop_interrupts        
rtl_unregister_chrdev  
rtl_unsetclockhandler        
sched_get_priority_max        
sched_get_priority_min        
timespec_add        
timespec_eq        
timespec_from_ns        
timespec_ge        
timespec_gt        
timespec_lt        
timespec_le        
timespec_nz        
timespec_sub        
timespec_to_ns        
write  


Notes

1 Actually pthread_yield() is an empty function.
2 printk() is not part of RT-Linux. It is listed just for convenience.
3 Actually pthread_attr_destroy() is an empty function.
4 pthread_setperiod_np() is deprecated. Use pthread_make_periodic_np() instead.
5 Michael Barabanov writes that pthread_mutex_lock() should not be called from Linux init/cleanup if it may block.
6 pthread_self() itself is harmless but using its return value may be unsafe/unwise.
7 Obsolete. Just for 1.x compatibility
8 Be careful. pthread_wakeup_np() calls rtl_schedule() therefore your IT routine may be suspended.
9 Useful in SMP environment only

Last change: 20 June 2000
Original location: http://gatling.aszi.sztaki.hu/~kissg/doc_nmt/context.html