Keywords - F
 · ! · 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 · 
- F_ALLOCSP
 
- 
			·
			io_space() ·
 
- F_FREESP
 
- 
			·
			io_space() ·
 
- faults and scheduling
 
- 
			·
			Rescheduling — exceptions ·
			Scheduling and the real world ·
 
- fcntl()
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- FD_CLOEXEC
 
- 
			·
			Starting a process with the exec() and spawn() calls ·
 
- fgets()
 
- 
			·
			Client summary ·
			Filesystem ·
 
- FIFO scheduling
 
- 
			·
			Scheduling policies ·
	
	- defined
 
	- 
			·
			Glossary ·
	
 
	
 
- FILE
 
- 
			·
			Characteristics of resource managers ·
			Client summary ·
 
- file descriptor
 
- 
	
	- and Resource managers
 
	- 
			·
			Characteristics of resource managers ·
	
 
	
	
	- connection ID
 
	- 
			·
			Finding the server ·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- resource manager
 
	- 
			·
			Finding the server ·
	
 
	
 
- file stream
 
- 
	
	- and Resource managers
 
	- 
			·
			Characteristics of resource managers ·
	
 
	
 
- filesystem
 
- 
	
	- chown restricted
 
	- 
			·
			The iofunc_mount_t mount structure ·
	
 
	
	
	- server example
 
	- 
			·
			Reading and writing data ·
	
 
	
	
	- union
 
	- 
			·
			Union'd filesystems ·
	
 
	
 
- floating-point operations
 
- 
	
	- not safe to use in ISRs
 
	- 
			·
			Interrupt service routine ·
	
 
	
	
	- not safe to use in signal handlers
 
	- 
			·
			Signal notification ·
	
 
	
 
- fopen()
 
- 
			·
			Client summary ·
			Finding the server ·
			Handling directories ·
 
- fork()
 
- 
			·
			Process creation and threads ·
			So what should you use? ·
			Starting a process from within a program ·
			Starting a process with the exec() and spawn() calls ·
			Starting a process with the fork() call ·
			Starting a process with the vfork() call ·
			Summary ·
	
	- and resource managers
 
	- 
			·
			So what should you use? ·
	
 
	
	
	- and threads
 
	- 
			·
			So what should you use? ·
	
 
	
	
	- avoid
 
	- 
			·
			So what should you use? ·
	
 
	
 
- fprintf()
 
- 
			·
			Filesystem ·
 
- fs-cache
 
- 
			·
			Union'd filesystems ·
 
- fs-qnx4
 
- 
			·
			Finding the server ·
			Multipart messages ·
			Reading and writing data ·
 
- _FTYPE_ANY
 
- 
			·
			The resmgr_attach() function and its parameters ·
 
- _FTYPE_MQUEUE
 
- 
			·
			The resmgr_attach() function and its parameters ·
 
- function
 
- 
	
	- atomic
 
	- 
		
		- atomic_*()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- atomic_set()
 
		- 
			·
			ISR functions ·
		
 
		
	 
	
	
	- basename()
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
	
 
	
	
	- block_func()
 
	- 
			·
			Controlling the number of threads ·
			The thread pool functions ·
	
 
	
	
	- channel
 
	- 
		
		- ChannelCreate()
 
		- 
			·
			Architecture & structure ·
			Channel flags ·
			Creating the channel ·
			Glossary ·
			main() ·
			_NTO_CHF_UNBLOCK ·
			Who sent the message? ·
		
 
		
		
		- ChannelCreate() example
 
		- 
			·
			main() ·
		
 
		
		
		- ChannelDestroy()
 
		- 
			·
			Architecture & structure ·
			Creating the channel ·
		
 
		
		
		- ConnectAttach()
 
		- 
			·
			Architecture & structure ·
			Creating the channel ·
			Establishing a connection ·
			Finding the server's ND/PID/CHID ·
			Glossary ·
			Impact on ConnectAttach() ·
			Networked message passing differences ·
			setupPulseAndTimer() ·
			Some notes on NDs ·
			The server ·
		
 
		
		
		- ConnectAttach() example
 
		- 
			·
			setupPulseAndTimer() ·
		
 
		
		
		- ConnectAttach() prototype
 
		- 
			·
			Establishing a connection ·
		
 
		
		
		- ConnectDetach()
 
		- 
			·
			Architecture & structure ·
			Establishing a connection ·
		
 
		
	 
	
	
	- chmod()
 
	- 
			·
			The resource manager library ·
	
 
	
	
	- chown()
 
	- 
			·
			The resource manager library ·
	
 
	
	
	- clock_nanosleep()
 
	- 
			·
			Using different clock sources ·
	
 
	
	
	- close()
 
	- 
			·
			Message passing and client/server ·
			Message passing over a network ·
	
 
	
	
	- context_alloc()
 
	- 
			·
			Controlling the number of threads ·
			The thread pool functions ·
	
 
	
	
	- context_free()
 
	- 
			·
			Controlling the number of threads ·
			The thread pool functions ·
	
 
	
	
	- Creceive()
 
	- 
			·
			Message passing ·
			Proxies ·
	
 
	
	
	- delay()
 
	- 
			·
			Base timing resolution ·
			Timing jitter ·
	
 
	
	
	- devctl()
 
	- 
			·
			Characteristics of resource managers ·
			Client/server using the global namespace ·
			Glossary ·
			Translating messages to devctl() or _IO_MSG ·
			Translating messages to standard file-descriptor-based POSIX calls ·
	
 
	
	
	- dispatch_create()
 
	- 
			·
			The library really does what we just talked about ·
	
 
	
	
	- event related
 
	- 
		
		- SIGEV_INTR_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_PULSE_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_CODE_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_THREAD_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_THREAD_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_UNBLOCK_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
	 
	
	
	- exit()
 
	- 
			·
			Detaching an interrupt handler ·
			Starting a process with the vfork() call ·
	
 
	
	
	- fcntl()
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
	
 
	
	
	- fgets()
 
	- 
			·
			Client summary ·
			Filesystem ·
	
 
	
	
	- fopen()
 
	- 
			·
			Client summary ·
			Finding the server ·
			Handling directories ·
	
 
	
	
	- fork()
 
	- 
			·
			Process creation and threads ·
			So what should you use? ·
			Starting a process from within a program ·
			Starting a process with the exec() and spawn() calls ·
			Starting a process with the fork() call ·
			Starting a process with the vfork() call ·
			Summary ·
	
 
	
	
	- fprintf()
 
	- 
			·
			Filesystem ·
	
 
	
	
	- getppid()
 
	- 
			·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- gotAMessage()
 
	- 
			·
			gotAMessage() ·
			main() ·
	
 
	
	
	- gotAPulse()
 
	- 
			·
			gotAPulse() ·
			main() ·
	
 
	
	
	- handler_func()
 
	- 
			·
			Controlling the number of threads ·
			The thread pool functions ·
	
 
	
	
	- in*()
 
	- 
			·
			ISR functions ·
	
 
	
	
	- in8()
 
	- 
			·
			Using InterruptAttach() ·
	
 
	
	
	- interrupt
 
	- 
		
		- Interrupt() family
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptAttach()
 
		- 
			·
			Attaching an interrupt handler ·
			Attaching with InterruptAttach() ·
			InterruptAttach() versus InterruptAttachEvent() ·
			Now that you've attached an interrupt ·
			Summary ·
			The flags parameter ·
			The interrupt service routine ·
			The trade-offs ·
			Using InterruptAttachEvent() ·
		
 
		
		
		- InterruptAttach() diagram
 
		- 
			·
			InterruptAttach() versus InterruptAttachEvent() ·
		
 
		
		
		- InterruptAttachEvent()
 
		- 
			·
			Attaching an interrupt handler ·
			Attaching with InterruptAttach() ·
			Attaching with InterruptAttachEvent() ·
			Interrupt service routines ·
			InterruptAttach() versus InterruptAttachEvent() ·
			ISR functions ·
			Now that you've attached an interrupt ·
			Summary ·
			The flags parameter ·
			The interrupt service routine ·
			The trade-offs ·
			Using InterruptAttachEvent() ·
		
 
		
		
		- InterruptAttachEvent() diagram
 
		- 
			·
			InterruptAttach() versus InterruptAttachEvent() ·
		
 
		
		
		- InterruptAttachEvent() example
 
		- 
			·
			Using InterruptAttachEvent() ·
		
 
		
		
		- InterruptAttachEvent() versus InterruptAttach()
 
		- 
			·
			InterruptAttach() versus InterruptAttachEvent() ·
			Using InterruptAttachEvent() ·
		
 
		
		
		- InterruptDetach()
 
		- 
			·
			Detaching an interrupt handler ·
		
 
		
		
		- InterruptDisable()
 
		- 
			·
			ISR functions ·
			Neutrino and interrupts ·
		
 
		
		
		- InterruptEnable()
 
		- 
			·
			ISR functions ·
			Neutrino and interrupts ·
		
 
		
		
		- InterruptLock()
 
		- 
			·
			Glossary ·
			ISR functions ·
			Neutrino and interrupts ·
			Summary ·
		
 
		
		
		- InterruptMask()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptUnlock()
 
		- 
			·
			Glossary ·
			ISR functions ·
			Neutrino and interrupts ·
			Summary ·
		
 
		
		
		- InterruptUnmask()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptWait()
 
		- 
			·
			Kernel states, the complete list ·
			The trade-offs ·
			Using InterruptAttachEvent() ·
		
 
		
		
		- InterruptWait() example
 
		- 
			·
			Using InterruptAttachEvent() ·
		
 
		
	 
	
	
	- io_fdinfo()
 
	- 
			·
			io_fdinfo() ·
	
 
	
	
	- io_read()
 
	- 
			·
			A simple io_read() example ·
			A simple io_write() example ·
		
		- example
 
		- 
			·
			A simple io_read() example ·
		
 
		
	 
	
	
	- io_write()
 
	- 
			·
			A simple io_write() example ·
		
		- example
 
		- 
			·
			A simple io_write() example ·
		
 
		
	 
	
	
	- ISR-safe
 
	- 
			·
			ISR functions ·
		
		- atomic() family
 
		- 
			·
			ISR functions ·
		
 
		
		
		- in() family
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptDisable()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptEnable()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptLock()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptMask()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptUnlock()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- InterruptUnmask()
 
		- 
			·
			ISR functions ·
		
 
		
		
		- mem() family
 
		- 
			·
			ISR functions ·
		
 
		
		
		- out() family
 
		- 
			·
			ISR functions ·
		
 
		
		
		- str() family
 
		- 
			·
			ISR functions ·
		
 
		
	 
	
	
	- kill()
 
	- 
			·
			Pulses and events ·
	
 
	
	
	- lseek()
 
	- 
			·
			Characteristics of resource managers ·
			Client summary ·
			Glossary ·
			Summary ·
	
 
	
	
	- malloc()
 
	- 
			·
			ISR functions ·
			Multipart messages ·
	
 
	
	
	- mem*()
 
	- 
			·
			ISR functions ·
	
 
	
	
	- memcpy()
 
	- 
			·
			ISR functions ·
			Multipart messages ·
	
 
	
	
	- message passing
 
	- 
		
		- ChannelCreate()
 
		- 
			·
			Architecture & structure ·
			Channel flags ·
			Creating the channel ·
			io_unblock() [I/O] ·
			_NTO_CHF_UNBLOCK ·
			So what's the trick? ·
			Who sent the message? ·
		
 
		
		
		- ChannelDestroy()
 
		- 
			·
			Architecture & structure ·
			Creating the channel ·
		
 
		
		
		- ConnectAttach()
 
		- 
			·
			Architecture & structure ·
			Creating the channel ·
			Establishing a connection ·
			Finding the server's ND/PID/CHID ·
			Impact on ConnectAttach() ·
			Networked message passing differences ·
			Some notes on NDs ·
			The server ·
		
 
		
		
		- ConnectDetach()
 
		- 
			·
			Architecture & structure ·
			Establishing a connection ·
		
 
		
		
		- MsgDeliverEvent()
 
		- 
			·
			Architecture & structure ·
			Glossary ·
			Impact on MsgDeliverEvent() ·
			Impact on MsgReply(), MsgRead(), and MsgWrite() ·
			io_notify() ·
			Networked message passing differences ·
			Proxies ·
			The MsgDeliverEvent() function ·
			The receive ID (a.k.a. the client cookie) ·
			The send-hierarchy ·
		
 
		
		
		- MsgError()
 
		- 
			·
			Architecture & structure ·
			General notes ·
			Replying with no data, or an errno ·
		
 
		
		
		- MsgInfo()
 
		- 
			·
			Using the _NTO_MI_UNBLOCK_REQ ·
			Who sent the message? ·
		
 
		
		
		- MsgRead()
 
		- 
			·
			Architecture & structure ·
			Impact on MsgReceive() ·
			Impact on MsgReply(), MsgRead(), and MsgWrite() ·
			Implementation ·
			Networked message passing differences ·
			Reading and writing data ·
			Step 3 ·
		
 
		
		
		- MsgReadv()
 
		- 
			·
			Architecture & structure ·
		
 
		
		
		- MsgReceive()
 
		- 
			·
			Architecture & structure ·
			Glossary ·
			Handling messages ·
			Impact on MsgReceive() ·
			Implementation ·
			main() ·
			Message handling ·
			Message passing ·
			Message passing over a network ·
			More about channels ·
			Multipart messages ·
			Networked message passing differences ·
			Not replying to the client ·
			Notes ·
			_NTO_CHF_UNBLOCK ·
			Priority inheritance ·
			Reading and writing data ·
			Receiving a pulse message ·
			Server framework ·
			So what's the trick? ·
			Synchronization problem ·
			The MsgReceivePulse() function ·
			Using InterruptAttachEvent() ·
			Using the _NTO_MI_UNBLOCK_REQ ·
			Who sent the message? ·
		
 
		
		
		- MsgReceive() example
 
		- 
			·
			main() ·
		
 
		
		
		- MsgReceivePulse()
 
		- 
			·
			Architecture & structure ·
			Glossary ·
			Implementation ·
			Receiving a pulse message ·
			The MsgReceivePulse() function ·
		
 
		
		
		- MsgReceivev()
 
		- 
			·
			Architecture & structure ·
			Glossary ·
			Multipart messages ·
			The MsgReceivePulse() function ·
			The resmgr_context_t internal context block ·
		
 
		
		
		- MsgReply()
 
		- 
			·
			Architecture & structure ·
			Effective use of other messaging functions ·
			Impact on MsgReply(), MsgRead(), and MsgWrite() ·
			Message handling ·
			Networked message passing differences ·
			Reading and writing data ·
			Receiving a pulse message ·
			Replying to the client ·
			Replying with no data, or an errno ·
			Server framework ·
			Step 5 ·
			Step 8 ·
			Step 9 ·
			Synchronization problem ·
			The receive ID (a.k.a. the client cookie) ·
		
 
		
		
		- MsgReply() example
 
		- 
			·
			gotAMessage() ·
			gotAPulse() ·
		
 
		
		
		- MsgReplyv()
 
		- 
			·
			Architecture & structure ·
			Effective use of other messaging functions ·
			General notes ·
			Multipart messages ·
		
 
		
		
		- MsgSend()
 
		- 
			·
			Architecture & structure ·
			Finding the server's ND/PID/CHID ·
			Implementation ·
			io_msg() ·
			Kernel timeouts with message passing ·
			Message handling ·
			Multipart messages ·
			_NTO_CHF_UNBLOCK ·
			Pulses ·
			Reading and writing data ·
			Replying to the client ·
			Replying with no data, or an errno ·
			Sending messages ·
			Server framework ·
			The receive ID (a.k.a. the client cookie) ·
			The server ·
			What about the other versions? ·
		
 
		
		
		- MsgSend() example
 
		- 
			·
			Sending messages ·
		
 
		
		
		- MsgSend() family
 
		- 
			·
			Sending messages ·
			What about the other versions? ·
		
 
		
		
		- MsgSendnc()
 
		- 
			·
			Architecture & structure ·
			What about the other versions? ·
		
 
		
		
		- MsgSendsv()
 
		- 
			·
			Architecture & structure ·
			What about the other versions? ·
		
 
		
		
		- MsgSendsvnc()
 
		- 
			·
			Architecture & structure ·
			What about the other versions? ·
		
 
		
		
		- MsgSendv()
 
		- 
			·
			Architecture & structure ·
			Multipart messages ·
			_NTO_CHF_UNBLOCK ·
			Rescheduling — kernel calls ·
			Step 5 ·
			Translating messages to devctl() or _IO_MSG ·
			What about the other versions? ·
		
 
		
		
		- MsgSendvnc()
 
		- 
			·
			Architecture & structure ·
			What about the other versions? ·
		
 
		
		
		- MsgSendvs()
 
		- 
			·
			Architecture & structure ·
			_NTO_CHF_UNBLOCK ·
			What about the other versions? ·
		
 
		
		
		- MsgSendvsnc()
 
		- 
			·
			Architecture & structure ·
			What about the other versions? ·
		
 
		
		
		- MsgVerifyEvent()
 
		- 
			·
			The MsgDeliverEvent() function ·
		
 
		
		
		- MsgWrite()
 
		- 
			·
			Architecture & structure ·
			Effective use of other messaging functions ·
			Impact on MsgReply(), MsgRead(), and MsgWrite() ·
			Implementation ·
			Networked message passing differences ·
			Reading and writing data ·
			Replying with no data, or an errno ·
		
 
		
		
		- MsgWritev()
 
		- 
			·
			Architecture & structure ·
			Effective use of other messaging functions ·
			Multipart messages ·
		
 
		
	 
	
	
	- message queue
 
	- 
		
		- mq_open()
 
		- 
			·
			The resmgr_attach() function and its parameters ·
		
 
		
		
		- mq_receive()
 
		- 
			·
			The resmgr_attach() function and its parameters ·
		
 
		
	 
	
	
	- message-sending
 
	- 
			
			See
			message passing 
	 
	
	
	- mktime()
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- MsgVerifyEvent()
 
	- 
			·
			The MsgDeliverEvent() function ·
	
 
	
	
	- name_attach()
 
	- 
			·
			Client/server using the global namespace ·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- name_close()
 
	- 
			·
			Client/server using the global namespace ·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- name_detach()
 
	- 
			·
			Client/server using the global namespace ·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- name_open()
 
	- 
			·
			Client/server using the global namespace ·
			Finding the server's ND/PID/CHID ·
	
 
	
	
	- nanospin()
 
	- 
			·
			Operating periodically ·
	
 
	
	
	- netmgr_remote_nd()
 
	- 
			·
			Some notes on NDs ·
	
 
	
	
	- netmgr_strtond()
 
	- 
			·
			Some notes on NDs ·
	
 
	
	
	- network
 
	- 
		
		- netmgr_remote_nd()
 
		- 
			·
			Some notes on NDs ·
		
 
		
		
		- netmgr_strtond()
 
		- 
			·
			Some notes on NDs ·
		
 
		
	 
	
	
	- open()
 
	- 
			·
			Characteristics of resource managers ·
			Client summary ·
			Client/Server using an I/O manager ·
			Client/server using the global namespace ·
			Connect messages ·
			Finding the server ·
			Finding the server's ND/PID/CHID ·
			Glossary ·
			Handling directories ·
			I/O messages ·
			Impact on ConnectAttach() ·
			Message passing and client/server ·
			Message passing considerations ·
			Message passing over a network ·
			Network-distributed message passing ·
			resmgr_io_funcs_t I/O table ·
			Some notes on NDs ·
			Union'd filesystems ·
		
		- implementation
 
		- 
			·
			Finding the server ·
		
 
		
	 
	
	
	- out*()
 
	- 
			·
			ISR functions ·
	
 
	
	
	- POSIX
 
	- 
		
		- mq_open()
 
		- 
			·
			The resmgr_attach() function and its parameters ·
		
 
		
		
		- mq_receive()
 
		- 
			·
			The resmgr_attach() function and its parameters ·
		
 
		
	 
	
	
	- POSIX threads
 
	- 
			·
			Glossary ·
	
 
	
	
	- pread()
 
	- 
			·
			Step 2 ·
	
 
	
	
	- printf()
 
	- 
			·
			Starting a process with the fork() call ·
	
 
	
	
	- process
 
	- 
		
		- 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 ·
		
 
		
		
		- getppid()
 
		- 
			·
			Finding the server's ND/PID/CHID ·
		
 
		
		
		- spawn()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
			Starting a process with the fork() call ·
		
 
		
		
		- spawn() family
 
		- 
			·
			So what should you use? ·
			Starting a process from within a program ·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnl()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnle()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnlp()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnlpe()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnp()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnv()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnve()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnvp()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
		
		- spawnvpe()
 
		- 
			·
			Starting a process with the exec() and spawn() calls ·
		
 
		
	 
	
	
	- process creation
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
			Starting a process with the fork() call ·
			Starting a process with the system() call ·
	
 
	
	
	- process transformation
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
	
 
	
	
	- pthread_mutex_timedlock()
 
	- 
			·
			CLOCK_MONOTONIC ·
	
 
	
	
	- pulse
 
	- 
		
		- MsgReceive()
 
		- 
			·
			Receiving a pulse message ·
		
 
		
		
		- MsgReceivePulse()
 
		- 
			·
			Receiving a pulse message ·
		
 
		
	 
	
	
	- pulse_attach()
 
	- 
			·
			The other_func message handler ·
	
 
	
	
	- pulses
 
	- 
		
		- pulse_attach()
 
		- 
			·
			The base layer ·
		
 
		
		
		- pulse_detach()
 
		- 
			·
			The base layer ·
		
 
		
	 
	
	
	- QNX 4
 
	- 
		
		- Creceive()
 
		- 
			·
			Message passing ·
			Proxies ·
		
 
		
		
		- qnx_name_attach()
 
		- 
			·
			Client/server using the global namespace ·
		
 
		
		
		- qnx_name_locate()
 
		- 
			·
			Client/server using the global namespace ·
		
 
		
		
		- qnx_proxy_attach()
 
		- 
			·
			Proxies ·
		
 
		
		
		- Receive()
 
		- 
			·
			Message passing ·
			Proxies ·
		
 
		
		
		- Reply()
 
		- 
			·
			Message passing ·
		
 
		
		
		- Send()
 
		- 
			·
			Client/server using the global namespace ·
			Message passing ·
		
 
		
		
		- tfork()
 
		- 
			·
			Thread support ·
		
 
		
		
		- Trigger()
 
		- 
			·
			Proxies ·
		
 
		
	 
	
	
	- read()
 
	- 
			·
			Characteristics of resource managers ·
			Client summary ·
			Client/server using the global namespace ·
			Connect messages ·
			Finding the server's ND/PID/CHID ·
			Glossary ·
			I/O messages ·
			Message passing over a network ·
			The library really does what we just talked about ·
			Translating messages to devctl() or _IO_MSG ·
			Translating messages to standard file-descriptor-based POSIX calls ·
	
 
	
	
	- rename()
 
	- 
			·
			Connect messages ·
	
 
	
	
	- Reply()
 
	- 
			·
			Message passing ·
	
 
	
	
	- resmgr_attach()
 
	- 
			·
			The resmgr_context_t internal context block ·
	
 
	
	
	- resource manager
 
	- 
		
		- _DEVCTL_DATA()
 
		- 
			·
			Step 1 ·
		
 
		
		
		- dispatch_block()
 
		- 
			·
			The library really does what we just talked about ·
		
 
		
		
		- dispatch_context_alloc()
 
		- 
			·
			The library really does what we just talked about ·
		
 
		
		
		- dispatch_create()
 
		- 
			·
			The basic skeleton of a resource manager ·
		
 
		
		
		- dispatch_handler()
 
		- 
			·
			Behind the scenes at the library ·
			The library really does what we just talked about ·
		
 
		
		
		- io_chmod()
 
		- 
			·
			io_chmod() ·
		
 
		
		
		- io_chown()
 
		- 
			·
			io_chown() ·
		
 
		
		
		- io_close()
 
		- 
			·
			Locking, unlocking, and combine message handling ·
		
 
		
		
		- io_close_dup()
 
		- 
			·
			io_close_dup() ·
			io_dup() ·
		
 
		
		
		- io_close_ocb()
 
		- 
			·
			io_close_dup() ·
			io_close_ocb() ·
		
 
		
		
		- io_devctl()
 
		- 
			·
			A simple io_devctl() example ·
			An io_devctl() example that deals with data ·
			io_devctl() ·
			Putting in your own functions ·
			Step 1 ·
			Step 1 ·
			Step 2 ·
		
 
		
		
		- io_dup()
 
		- 
			·
			io_dup() ·
		
 
		
		
		- io_fdinfo()
 
		- 
			·
			io_fdinfo() ·
		
 
		
		
		- io_link()
 
		- 
			·
			io_link() ·
		
 
		
		
		- io_lock()
 
		- 
			·
			io_lock() ·
		
 
		
		
		- io_lock_ocb()
 
		- 
			·
			io_lock_ocb() ·
			io_unlock_ocb() ·
		
 
		
		
		- io_lseek()
 
		- 
			·
			io_lseek() ·
			Offsets ·
		
 
		
		
		- io_mknod()
 
		- 
			·
			io_mknod() ·
		
 
		
		
		- io_mmap()
 
		- 
			·
			io_mmap() ·
		
 
		
		
		- io_mount()
 
		- 
			·
			io_mount() ·
		
 
		
		
		- io_msg()
 
		- 
			·
			io_msg() ·
		
 
		
		
		- io_notify()
 
		- 
			·
			io_notify() ·
		
 
		
		
		- io_open()
 
		- 
			·
			Alphabetical listing of connect and I/O functions ·
			io_close_dup() ·
			io_open() ·
			io_openfd() ·
			OCB monitor ·
			Putting in your own functions ·
			The general flow of a resource manager ·
			The resmgr_context_t internal context block ·
		
 
		
		
		- io_open_default()
 
		- 
			·
			Putting in your own functions ·
		
 
		
		
		- io_openfd()
 
		- 
			·
			io_openfd() ·
		
 
		
		
		- io_pathconf()
 
		- 
			·
			io_pathconf() ·
		
 
		
		
		- io_power()
 
		- 
			·
			io_power() ·
		
 
		
		
		- io_read()
 
		- 
			·
			A simple io_read() example ·
			A simple io_write() example ·
			Blocking within the resource manager ·
			Data area size considerations ·
			Effective use of other messaging functions ·
			Generally speaking … ·
			io_read() ·
			Offsets ·
			Putting in your own functions ·
			Returning directory entries ·
			Step 4 ·
			Step 6 ·
			Step 7 ·
			The struct dirent structure and friends ·
		
 
		
		
		- io_readlink()
 
		- 
			·
			io_readlink() ·
		
 
		
		
		- io_rename()
 
		- 
			·
			io_rename() ·
		
 
		
		
		- _IO_SET_WRITE_NBYTES()
 
		- 
			·
			Step 6 ·
			Step 8 ·
		
 
		
		
		- io_shutdown()
 
		- 
			·
			io_shutdown() ·
		
 
		
		
		- io_space()
 
		- 
			·
			io_space() ·
		
 
		
		
		- io_stat()
 
		- 
			·
			io_stat() ·
			Step 6 ·
		
 
		
		
		- io_sync()
 
		- 
			·
			io_sync() ·
		
 
		
		
		- io_unblock()
 
		- 
			·
			Extending the OCB ·
			io_unblock() [CONNECT] ·
			io_unblock() [I/O] ·
		
 
		
		
		- io_unlink()
 
		- 
			·
			io_unlink() ·
		
 
		
		
		- io_unlock_ocb()
 
		- 
			·
			io_unlock_ocb() ·
		
 
		
		
		- io_utime()
 
		- 
			·
			io_utime() ·
		
 
		
		
		- io_write()
 
		- 
			·
			A simple io_write() example ·
			Important note ·
			io_read() ·
			io_write() ·
			Putting in your own functions ·
			Step 4 ·
		
 
		
		
		- iofunc_attr_init()
 
		- 
			·
			The library really does what we just talked about ·
		
 
		
		
		- iofunc_chmod_default()
 
		- 
			·
			io_chmod() ·
		
 
		
		
		- iofunc_chown()
 
		- 
			·
			io_chown() ·
		
 
		
		
		- iofunc_chown_default()
 
		- 
			·
			io_chown() ·
		
 
		
		
		- iofunc_close_dup()
 
		- 
			·
			io_close_dup() ·
		
 
		
		
		- iofunc_close_dup_default()
 
		- 
			·
			io_close_dup() ·
		
 
		
		
		- iofunc_close_ocb_default()
 
		- 
			·
			io_close_ocb() ·
		
 
		
		
		- iofunc_devctl()
 
		- 
			·
			io_devctl() ·
		
 
		
		
		- iofunc_devctl_default()
 
		- 
			·
			io_devctl() ·
			Step 1 ·
		
 
		
		
		- iofunc_func_init()
 
		- 
			·
			Alphabetical listing of connect and I/O functions ·
			Examples ·
			Putting in your own functions ·
			resmgr_connect_funcs_t connect table ·
			resmgr_io_funcs_t I/O table ·
			Step 1 ·
			Step 2 ·
			The library really does what we just talked about ·
		
 
		
		
		- iofunc_link()
 
		- 
			·
			io_link() ·
		
 
		
		
		- iofunc_lock_default()
 
		- 
			·
			io_lock() ·
			The iofunc_attr_t attributes structure ·
		
 
		
		
		- iofunc_lock_ocb_default()
 
		- 
			·
			io_lock_ocb() ·
			Locking, unlocking, and combine message handling ·
		
 
		
		
		- iofunc_lseek()
 
		- 
			·
			io_lseek() ·
		
 
		
		
		- iofunc_lseek_default()
 
		- 
			·
			io_lseek() ·
		
 
		
		
		- iofunc_mknod()
 
		- 
			·
			io_mknod() ·
		
 
		
		
		- iofunc_mmap()
 
		- 
			·
			io_mmap() ·
		
 
		
		
		- iofunc_mmap_default()
 
		- 
			·
			io_mmap() ·
			The iofunc_attr_t attributes structure ·
		
 
		
		
		- iofunc_notify()
 
		- 
			·
			io_notify() ·
		
 
		
		
		- iofunc_notify_remove()
 
		- 
			·
			io_notify() ·
		
 
		
		
		- iofunc_notify_trigger()
 
		- 
			·
			io_notify() ·
		
 
		
		
		- iofunc_ocb_attach()
 
		- 
			·
			io_open() ·
		
 
		
		
		- iofunc_ocb_calloc()
 
		- 
			·
			io_mmap() ·
		
 
		
		
		- iofunc_open()
 
		- 
			·
			io_open() ·
		
 
		
		
		- iofunc_open_default()
 
		- 
			·
			io_open() ·
			Putting in your own functions ·
		
 
		
		
		- iofunc_openfd()
 
		- 
			·
			io_openfd() ·
		
 
		
		
		- iofunc_openfd_default()
 
		- 
			·
			io_openfd() ·
		
 
		
		
		- iofunc_pathconf()
 
		- 
			·
			io_pathconf() ·
		
 
		
		
		- iofunc_pathconf_default()
 
		- 
			·
			io_pathconf() ·
		
 
		
		
		- iofunc_read_default()
 
		- 
			·
			io_read() ·
		
 
		
		
		- iofunc_read_verify()
 
		- 
			·
			A simple io_write() example ·
			io_read() ·
			Step 1 ·
			Step 2 ·
		
 
		
		
		- iofunc_readlink()
 
		- 
			·
			io_readlink() ·
		
 
		
		
		- iofunc_rename()
 
		- 
			·
			io_rename() ·
		
 
		
		
		- iofunc_space_verify()
 
		- 
			·
			io_space() ·
		
 
		
		
		- iofunc_stat()
 
		- 
			·
			io_stat() ·
		
 
		
		
		- iofunc_stat_default()
 
		- 
			·
			io_stat() ·
			Step 6 ·
		
 
		
		
		- iofunc_sync()
 
		- 
			·
			io_sync() ·
		
 
		
		
		- iofunc_sync_default()
 
		- 
			·
			io_sync() ·
		
 
		
		
		- iofunc_sync_verify()
 
		- 
			·
			io_read() ·
			io_sync() ·
			io_write() ·
		
 
		
		
		- iofunc_unblock()
 
		- 
			·
			io_unblock() [CONNECT] ·
			io_unblock() [I/O] ·
		
 
		
		
		- iofunc_unblock_default()
 
		- 
			·
			io_unblock() [I/O] ·
		
 
		
		
		- iofunc_unlink()
 
		- 
			·
			io_unlink() ·
		
 
		
		
		- iofunc_unlock_ocb_default()
 
		- 
			·
			io_unlock_ocb() ·
			Locking, unlocking, and combine message handling ·
		
 
		
		
		- iofunc_utime()
 
		- 
			·
			io_utime() ·
		
 
		
		
		- iofunc_utime_default()
 
		- 
			·
			io_utime() ·
		
 
		
		
		- iofunc_write_default()
 
		- 
			·
			io_write() ·
		
 
		
		
		- iofunc_write_verify()
 
		- 
			·
			A simple io_write() example ·
			io_write() ·
		
 
		
		
		- resmgr_attach()
 
		- 
			·
			Alphabetical listing of connect and I/O functions ·
			resmgr_attr_t control structure ·
			Resource manager structure ·
			Step 3 ·
			The base layer ·
			The flags parameter ·
			The library really does what we just talked about ·
			The resmgr_attach() function and its parameters ·
			The resmgr_context_t internal context block ·
		
 
		
		
		- resmgr_bind_ocb()
 
		- 
			·
			io_open() ·
		
 
		
		
		- resmgr_detach()
 
		- 
			·
			The base layer ·
		
 
		
		
		- resmgr_msgread()
 
		- 
			·
			Step 3 ·
			The base layer ·
		
 
		
		
		- resmgr_msgreadv()
 
		- 
			·
			io_devctl() ·
			io_write() ·
			Step 3 ·
			The base layer ·
			The resmgr_context_t internal context block ·
		
 
		
		
		- resmgr_msgwrite()
 
		- 
			·
			The base layer ·
		
 
		
		
		- resmgr_msgwritev()
 
		- 
			·
			io_devctl() ·
			The base layer ·
		
 
		
		
		- resmgr_open_bind()
 
		- 
			·
			The base layer ·
			The general flow of a resource manager ·
		
 
		
	 
	
	
	- rsrcdbmgr_devno_attach()
 
	- 
			·
			Of device numbers, inodes, and our friend rdev ·
	
 
	
	
	- scheduling
 
	- 
		
		- ClockPeriod()
 
		- 
			·
			Round Robin ·
		
 
		
		
		- sched_get_priority_max()
 
		- 
			·
			Prioritization ·
		
 
		
		
		- sched_get_priority_min()
 
		- 
			·
			Prioritization ·
		
 
		
		
		- sched_rr_get_interval()
 
		- 
			·
			Round Robin ·
		
 
		
		
		- sched_yield()
 
		- 
			·
			FIFO ·
		
 
		
		
		- SchedYield()
 
		- 
			·
			FIFO ·
		
 
		
	 
	
	
	- setuid()
 
	- 
			·
			Now that you've attached an interrupt ·
	
 
	
	
	- setupPulseAndTimer()
 
	- 
			·
			main() ·
			setupPulseAndTimer() ·
	
 
	
	
	- signal
 
	- 
		
		- SIGEV_INTR_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- sigev_notify_function()
 
		- 
			·
			Thread notification ·
		
 
		
		
		- SIGEV_PULSE_INIT()
 
		- 
			·
			setupPulseAndTimer() ·
		
 
		
		
		- SIGEV_PULSE_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_CODE_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_SIGNAL_THREAD_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_THREAD_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- SIGEV_UNBLOCK_INIT() (macro)
 
		- 
			·
			General tricks for notification ·
		
 
		
		
		- sigwait()
 
		- 
			·
			Signal notification ·
		
 
		
	 
	
	
	- sleep()
 
	- 
			·
			Kernel states, the complete list ·
			Operating periodically ·
			Other clock sources ·
			Rescheduling — kernel calls ·
		
		- bad implementation
 
		- 
			·
			Operating periodically ·
		
 
		
	 
	
	
	- stat()
 
	- 
			·
			The library really does what we just talked about ·
			The resource manager library ·
	
 
	
	
	- strcmp()
 
	- 
			·
			ISR functions ·
	
 
	
	
	- strdup()
 
	- 
			·
			ISR functions ·
	
 
	
	
	- strftime()
 
	- 
			·
			What kind of timer? ·
	
 
	
	
	- synchronization
 
	- 
		
		- pthread_barrier_init()
 
		- 
			·
			Using a barrier ·
		
 
		
		
		- pthread_barrier_wait()
 
		- 
			·
			Glossary ·
			Synchronizing to the termination of a thread ·
			Using a barrier ·
		
 
		
		
		- sem_post()
 
		- 
			·
			Glossary ·
		
 
		
		
		- sem_wait()
 
		- 
			·
			Glossary ·
		
 
		
	 
	
	
	- sysconf()
 
	- 
			·
			The “stack” thread attributes ·
	
 
	
	
	- system()
 
	- 
			·
			Starting a process from within a program ·
			Starting a process with the system() call ·
	
 
	
	
	- tfork() (QNX 4)
 
	- 
			·
			Thread support ·
	
 
	
	
	- thread
 
	- 
		
		- pthread_atfork()
 
		- 
			·
			Process creation and threads ·
			So what should you use? ·
		
 
		
		
		- pthread_attr_destroy()
 
		- 
			·
			The thread attributes structure ·
			Thread attribute administration ·
		
 
		
		
		- pthread_attr_getdetachstate()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getguardsize()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getinheritsched()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getschedparam()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getschedpolicy()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getscope()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getstackaddr()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getstacklazy()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_getstacksize()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_init()
 
		- 
			·
			The thread attributes structure ·
			Thread attribute administration ·
		
 
		
		
		- pthread_attr_set() family
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setdetachstate()
 
		- 
			·
			The “flags” thread attribute ·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setguardsize()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setinheritsched()
 
		- 
			·
			The “flags” thread attribute ·
			The “scheduling” thread attributes ·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setschedparam()
 
		- 
			·
			The “flags” thread attribute ·
			The “scheduling” thread attributes ·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setschedpolicy()
 
		- 
			·
			The “flags” thread attribute ·
			The “scheduling” thread attributes ·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setscope()
 
		- 
			·
			The “flags” thread attribute ·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setstackaddr()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setstacklazy()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_attr_setstacksize()
 
		- 
			·
			The thread attributes structure ·
		
 
		
		
		- pthread_cancel()
 
		- 
			·
			Rescheduling — kernel calls ·
			What about the other versions? ·
		
 
		
		
		- pthread_cond_broadcast()
 
		- 
			·
			Signal versus broadcast ·
		
 
		
		
		- pthread_cond_signal()
 
		- 
			·
			Condition variables ·
			Signal versus broadcast ·
		
 
		
		
		- pthread_cond_wait()
 
		- 
			·
			Condition variables ·
			Sleepons versus condvars ·
		
 
		
		
		- pthread_create()
 
		- 
			·
			A few examples ·
			Joining ·
			Process creation and threads ·
			Starting a thread ·
			The thread attributes structure ·
			Thread support ·
		
 
		
		
		- pthread_join()
 
		- 
			·
			Joining ·
			Kernel timeouts ·
			Kernel timeouts with pthread_join() ·
			Rescheduling — kernel calls ·
			Synchronizing to the termination of a thread ·
			The “flags” thread attribute ·
			Using a barrier ·
		
 
		
		
		- pthread_join() example
 
		- 
			·
			Kernel timeouts with pthread_join() ·
		
 
		
		
		- pthread_mutex_lock()
 
		- 
			·
			Additional Neutrino services ·
			Condition variables ·
			Thread support ·
		
 
		
		
		- pthread_mutex_unlock()
 
		- 
			·
			Additional Neutrino services ·
			Condition variables ·
		
 
		
		
		- pthread_rwlock_destroy()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlock_init()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlock_rdlock()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlock_tryrdlock()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlock_unlock()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlock_wrlock()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlockattr_destroy()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlockattr_getpshared()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlockattr_init()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_rwlockattr_setpshared()
 
		- 
			·
			Readers/writer locks ·
		
 
		
		
		- pthread_setschedparam()
 
		- 
			·
			Priorities ·
			So what's the trick? ·
		
 
		
		
		- pthread_setschedprio()
 
		- 
			·
			Priorities ·
			So what's the trick? ·
		
 
		
		
		- pthread_sleepon_broadcast()
 
		- 
			·
			Signal versus broadcast ·
			Sleepon locks ·
		
 
		
		
		- pthread_sleepon_lock()
 
		- 
			·
			Condition variables ·
			Sleepon locks ·
		
 
		
		
		- pthread_sleepon_signal()
 
		- 
			·
			Condition variables ·
			Signal versus broadcast ·
			Sleepon locks ·
		
 
		
		
		- pthread_sleepon_unlock()
 
		- 
			·
			Condition variables ·
			Sleepon locks ·
		
 
		
		
		- pthread_sleepon_wait()
 
		- 
			·
			Condition variables ·
			Sleepon locks ·
		
 
		
		
		- thread_pool() family
 
		- 
			·
			Multiple threads ·
		
 
		
		
		- thread_pool_control()
 
		- 
			·
			Pools of threads ·
		
 
		
		
		- thread_pool_create()
 
		- 
			·
			Controlling the number of threads ·
			Pools of threads ·
		
 
		
		
		- thread_pool_destroy()
 
		- 
			·
			Pools of threads ·
		
 
		
		
		- thread_pool_limits()
 
		- 
			·
			Pools of threads ·
		
 
		
		
		- thread_pool_start()
 
		- 
			·
			Controlling the number of threads ·
			Pools of threads ·
		
 
		
		
		- ThreadCtl()
 
		- 
			·
			Now that you've attached an interrupt ·
		
 
		
	 
	
	
	- time
 
	- 
		
		- asctime()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- clock_getres()
 
		- 
			·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- clock_gettime()
 
		- 
			·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- clock_settime()
 
		- 
			·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- ClockAdjust()
 
		- 
			·
			Getting and setting ·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- ClockCycles()
 
		- 
			·
			An accurate timestamp ·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- ClockPeriod()
 
		- 
			·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- ClockTime()
 
		- 
			·
			Getting and setting the realtime clock and more ·
		
 
		
		
		- ctime()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- mktime()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- strftime()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- time()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- timer_create()
 
		- 
			·
			Creating a timer ·
			setupPulseAndTimer() ·
			Signal, pulse, or thread? ·
			Timers delivering signals ·
			What kind of timer? ·
		
 
		
		
		- timer_create() example
 
		- 
			·
			setupPulseAndTimer() ·
		
 
		
		
		- timer_settime()
 
		- 
			·
			setupPulseAndTimer() ·
			What kind of timer? ·
		
 
		
		
		- timer_settime() example
 
		- 
			·
			setupPulseAndTimer() ·
		
 
		
	 
	
	
	- timer
 
	- 
		
		- ClockCycles()
 
		- 
			·
			An accurate timestamp ·
		
 
		
		
		- ClockPeriod()
 
		- 
			·
			Getting and setting ·
		
 
		
		
		- delay()
 
		- 
			·
			Base timing resolution ·
			Timing jitter ·
		
 
		
		
		- timer_create()
 
		- 
			·
			Creating a timer ·
		
 
		
		
		- timer_settime()
 
		- 
			·
			What kind of timer? ·
		
 
		
		
		- TimerTimeout()
 
		- 
			·
			Kernel timeouts ·
			Kernel timeouts with message passing ·
			Kernel timeouts with pthread_join() ·
			Message passing ·
			_NTO_CHF_UNBLOCK ·
			The receive ID (a.k.a. the client cookie) ·
		
 
		
		
		- TimerTimeout() example
 
		- 
			·
			Kernel timeouts with pthread_join() ·
		
 
		
	 
	
	
	- timer_create()
 
	- 
			·
			CLOCK_MONOTONIC ·
	
 
	
	
	- timing
 
	- 
		
		- nanospin()
 
		- 
			·
			Operating periodically ·
		
 
		
		
		- sleep()
 
		- 
			·
			Operating periodically ·
		
 
		
	 
	
	
	- unblock_func()
 
	- 
			·
			The thread pool functions ·
	
 
	
	
	- vfork()
 
	- 
			·
			So what should you use? ·
			Starting a process from within a program ·
			Starting a process with the vfork() call ·
			Summary ·
	
 
	
	
	- waitpid()
 
	- 
			·
			Starting a process with the exec() and spawn() calls ·
	
 
	
	
	- write()
 
	- 
			·
			Client/Server using an I/O manager ·
			Glossary ·
			Message passing and client/server ·
			Multipart messages ·
			Reading and writing data ·
			Translating messages to standard file-descriptor-based POSIX 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 ·