Keywords - E
 · ! · 0 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z · 
- edge-sensitive interrupt
 
- 
			·
			Level-sensitivity versus edge-sensitivity ·
	
	- diagram
 
	- 
			·
			Level-sensitivity versus edge-sensitivity ·
	
 
	
 
- EINTR
 
- 
			·
			_NTO_CHF_UNBLOCK ·
	
	- message passing
 
	- 
			·
			_NTO_CHF_UNBLOCK ·
	
 
	
 
- enabling interrupts
 
- 
			·
			Neutrino and interrupts ·
 
- endian
 
- 
	
	- server flags
 
	- 
			·
			Who sent the message? ·
	
 
	
 
- ENOSYS
 
- 
			·
			Process creation and threads ·
 
- environment variable
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
	
	- PATH
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
	
 
	
 
- EOK
 
- 
			·
			Finding the server ·
			Replying with no data, or an errno ·
			Union'd filesystems ·
 
- EROFS
 
- 
			·
			Finding the server ·
			Replying with no data, or an errno ·
			The resmgr_context_t internal context block ·
 
- errno
 
- 
	
	- MsgError()
 
	- 
			·
			General notes ·
			Replying with no data, or an errno ·
	
 
	
	
	- MsgReply()
 
	- 
			·
			Replying with no data, or an errno ·
	
 
	
 
- esh
 
- 
			·
			Message passing and client/server ·
 
- ETIMEDOUT
 
- 
			·
			Kernel timeouts with message passing ·
			Kernel timeouts with pthread_join() ·
 
- event
 
- 
	
	- and interrupt handlers
 
	- 
			·
			Using InterruptAttach() ·
	
 
	
	
	- and interrupts
 
	- 
			·
			Telling a thread to do something ·
	
 
	
	
	- and ISRs
 
	- 
			·
			Using InterruptAttach() ·
	
 
	
 
- example
 
- 
	
	- /dev/null resource manager
 
	- 
			·
			The resource manager library ·
	
 
	
	
	- absolute timers
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- barriers
 
	- 
			·
			Using a barrier ·
	
 
	
	
	- car using timers
 
	- 
			·
			Clocks and timers ·
	
 
	
	
	- ChannelCreate()
 
	- 
			·
			main() ·
	
 
	
	
	- ConnectAttach()
 
	- 
			·
			Establishing a connection ·
			setupPulseAndTimer() ·
	
 
	
	
	- connecting to a server
 
	- 
			·
			Establishing a connection ·
	
 
	
	
	- creating a tar file
 
	- 
			·
			Narrow it down ·
	
 
	
	
	- creating a thread
 
	- 
			·
			A few examples ·
			Threads in mathematical operations ·
	
 
	
	
	- demultiplexing pulse versus message
 
	- 
			·
			Receiving a pulse message ·
	
 
	
	
	- demultiplexing the pulse code
 
	- 
			·
			What's in a pulse? ·
	
 
	
	
	- detaching interrupt handler
 
	- 
			·
			Detaching an interrupt handler ·
	
 
	
	
	- file
 
	- 
		
		- time1.c
 
		- 
			·
			Server-maintained timeouts ·
		
 
		
		
		- tt1.c
 
		- 
			·
			Kernel timeouts with pthread_join() ·
		
 
		
	 
	
	
	- filling struct itimerspec
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- interrupt handler
 
	- 
			·
			Now that you've attached an interrupt ·
			Using InterruptAttach() ·
	
 
	
	
	- InterruptAttach()
 
	- 
			·
			Now that you've attached an interrupt ·
			Using InterruptAttach() ·
	
 
	
	
	- InterruptAttachEvent()
 
	- 
			·
			Using InterruptAttachEvent() ·
	
 
	
	
	- InterruptWait()
 
	- 
			·
			Using InterruptAttachEvent() ·
	
 
	
	
	- IOV
 
	- 
			·
			Multipart messages ·
	
 
	
	
	- ISR
 
	- 
			·
			Now that you've attached an interrupt ·
			Using InterruptAttach() ·
	
 
	
	
	- ISR pseudo-code
 
	- 
			·
			Telling a thread to do something ·
	
 
	
	
	- kernel timeout
 
	- 
			·
			Kernel timeouts with pthread_join() ·
	
 
	
	
	- message passing
 
	- 
			·
			Message passing and client/server ·
			Sending messages ·
		
		- fs-qnx4
 
		- 
			·
			Reading and writing data ·
		
 
		
		
		- multipart messages
 
		- 
			·
			Multipart messages ·
		
 
		
		
		- replying with no data
 
		- 
			·
			Replying with no data, or an errno ·
		
 
		
		
		- server
 
		- 
			·
			Server framework ·
		
 
		
		
		- write()
 
		- 
			·
			Multipart messages ·
		
 
		
	 
	
	
	- messages
 
	- 
			·
			gotAMessage() ·
			gotAPulse() ·
			main() ·
			Server-maintained timeouts ·
			setupPulseAndTimer() ·
	
 
	
	
	- MsgReadv()
 
	- 
			·
			Multipart messages ·
	
 
	
	
	- MsgReceive()
 
	- 
			·
			main() ·
			Multipart messages ·
			Reading and writing data ·
			Server framework ·
	
 
	
	
	- MsgReply()
 
	- 
			·
			gotAMessage() ·
			gotAPulse() ·
			Server framework ·
	
 
	
	
	- MsgSend()
 
	- 
			·
			Multipart messages ·
			Sending messages ·
	
 
	
	
	- MsgSendv()
 
	- 
			·
			Multipart messages ·
	
 
	
	
	- netmgr_remote_nd()
 
	- 
			·
			Some notes on NDs ·
	
 
	
	
	- netmgr_strtond()
 
	- 
			·
			Some notes on NDs ·
	
 
	
	
	- networked message passing
 
	- 
			·
			Network-distributed message passing ·
	
 
	
	
	- node descriptors
 
	- 
			·
			Some notes on NDs ·
	
 
	
	
	- non-blocking pthread_join()
 
	- 
			·
			Kernel timeouts with pthread_join() ·
	
 
	
	
	- one-shot timers
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- periodic timers
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- priority inversion
 
	- 
			·
			Priority inheritance ·
	
 
	
	
	- producer
 
	- 
			·
			Sleepon locks ·
	
 
	
	
	- producer and consumer
 
	- 
			·
			Condition variables ·
			Sleepon locks ·
	
 
	
	
	- pthread_attr_init()
 
	- 
			·
			A few examples ·
	
 
	
	
	- pthread_attr_setdetachstate()
 
	- 
			·
			A few examples ·
	
 
	
	
	- pthread_attr_setinheritsched()
 
	- 
			·
			A few examples ·
	
 
	
	
	- pthread_attr_setschedpolicy()
 
	- 
			·
			A few examples ·
	
 
	
	
	- pthread_attr_t
 
	- 
			·
			A few examples ·
	
 
	
	
	- pthread_barrier_init()
 
	- 
			·
			Using a barrier ·
	
 
	
	
	- pthread_barrier_wait()
 
	- 
			·
			Using a barrier ·
	
 
	
	
	- pthread_cond_signal()
 
	- 
			·
			Condition variables ·
	
 
	
	
	- pthread_cond_wait()
 
	- 
			·
			Condition variables ·
	
 
	
	
	- pthread_create()
 
	- 
			·
			A few examples ·
			Condition variables ·
			Threads in mathematical operations ·
			Using a barrier ·
	
 
	
	
	- pthread_join()
 
	- 
			·
			Joining ·
			Kernel timeouts with pthread_join() ·
	
 
	
	
	- pthread_mutex_lock()
 
	- 
			·
			Condition variables ·
	
 
	
	
	- pthread_mutex_unlock()
 
	- 
			·
			Condition variables ·
	
 
	
	
	- pthread_sleepon_lock()
 
	- 
			·
			Sleepon locks ·
	
 
	
	
	- pthread_sleepon_signal()
 
	- 
			·
			Sleepon locks ·
	
 
	
	
	- pthread_sleepon_unlock()
 
	- 
			·
			Sleepon locks ·
	
 
	
	
	- pthread_sleepon_wait()
 
	- 
			·
			Sleepon locks ·
	
 
	
	
	- pulses
 
	- 
			·
			gotAMessage() ·
			gotAPulse() ·
			main() ·
			Server-maintained timeouts ·
			setupPulseAndTimer() ·
	
 
	
	
	- receive ID
 
	- 
			·
			Server framework ·
	
 
	
	
	- receiving a message
 
	- 
			·
			Receiving a pulse message ·
	
 
	
	
	- receiving a pulse
 
	- 
			·
			Receiving a pulse message ·
	
 
	
	
	- relative timers
 
	- 
			·
			gotAMessage() ·
			gotAPulse() ·
			main() ·
			Server-maintained timeouts ·
			setupPulseAndTimer() ·
			What kind of timer? ·
	
 
	
	
	- replying with an error code
 
	- 
			·
			Replying with no data, or an errno ·
	
 
	
	
	- replying with just EOK
 
	- 
			·
			Replying with no data, or an errno ·
	
 
	
	
	- resource manager
 
	- 
		
		- io_devctl()
 
		- 
			·
			A simple io_devctl() example ·
			An io_devctl() example that deals with data ·
		
 
		
		
		- io_open() handler
 
		- 
			·
			Putting in your own functions ·
		
 
		
		
		- io_read()
 
		- 
			·
			A simple io_read() example ·
			The code ·
		
 
		
		
		- io_write()
 
		- 
			·
			A simple io_write() example ·
		
 
		
		
		- returning data to a client
 
		- 
			·
			A simple io_read() example ·
			The code ·
		
 
		
	 
	
	
	- SETIOV() macro
 
	- 
			·
			Multipart messages ·
	
 
	
	
	- SIGEV_PULSE_INIT() (macro)
 
	- 
			·
			setupPulseAndTimer() ·
	
 
	
	
	- SIGEV_THREAD_INIT() (macro)
 
	- 
			·
			Timers creating threads ·
	
 
	
	
	- struct itimerspec
 
	- 
			·
			setupPulseAndTimer() ·
	
 
	
	
	- struct sigevent
 
	- 
			·
			setupPulseAndTimer() ·
		
		- SIGEV_UNBLOCK
 
		- 
			·
			Kernel timeouts with pthread_join() ·
		
 
		
	 
	
	
	- the pulse value
 
	- 
			·
			What's in a pulse? ·
	
 
	
	
	- thread
 
	- 
			·
			Using a barrier ·
	
 
	
	
	- thread pool
 
	- 
			·
			Controlling the number of threads ·
	
 
	
	
	- thread_pool_create()
 
	- 
			·
			Controlling the number of threads ·
	
 
	
	
	- thread_pool_start()
 
	- 
			·
			Controlling the number of threads ·
	
 
	
	
	- thread_pool_start() pseudo code
 
	- 
			·
			The thread pool functions ·
	
 
	
	
	- timeouts
 
	- 
			·
			gotAMessage() ·
			gotAPulse() ·
			main() ·
			Server-maintained timeouts ·
			setupPulseAndTimer() ·
	
 
	
	
	- timer_create()
 
	- 
			·
			setupPulseAndTimer() ·
	
 
	
	
	- timer_create() and signals
 
	- 
			·
			Timers delivering signals ·
	
 
	
	
	- timer_settime()
 
	- 
			·
			setupPulseAndTimer() ·
	
 
	
	
	- TimerTimeout()
 
	- 
			·
			Kernel timeouts with pthread_join() ·
		
		- and multiple states
 
		- 
			·
			Kernel timeouts with message passing ·
		
 
		
	 
	
	
	- where to use pthread_cond_broadcast()
 
	- 
			·
			Signal versus broadcast ·
	
 
	
	
	- where to use pthread_cond_signal()
 
	- 
			·
			Signal versus broadcast ·
	
 
	
	
	- where to use pthread_sleepon_broadcast()
 
	- 
			·
			Signal versus broadcast ·
	
 
	
	
	- where to use pthread_sleepon_signal()
 
	- 
			·
			Signal versus broadcast ·
	
 
	
 
- exceptions and scheduling
 
- 
			·
			Rescheduling — exceptions ·
			Scheduling and the real world ·
 
- exec()
 
- 
			·
			So what should you use? ·
			Starting a process with the vfork() call ·
 
- exec() family
 
- 
			·
			Starting a process from within a program ·
			Starting a process with the exec() and spawn() calls ·
 
- execl()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execle()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execlp()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execlpe()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execv()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execve()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execvp()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- execvpe()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- exit function
 
- 
			·
			The thread attributes structure ·
 
- exit()
 
- 
			·
			Detaching an interrupt handler ·
			Starting a process with the vfork() call ·
	
	- and interrupts
 
	- 
			·
			Detaching an interrupt handler ·
	
 
	
 
- export
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
 · ! · 0 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z ·