Keywords - M
· ! · 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 ·
- macros
-
- for filling struct sigevent
-
·
General tricks for notification ·
- SIGEV_INTR_INIT()
-
·
General tricks for notification ·
- SIGEV_PULSE_INIT()
-
·
General tricks for notification ·
- SIGEV_SIGNAL_CODE_INIT()
-
·
General tricks for notification ·
- SIGEV_SIGNAL_INIT()
-
·
General tricks for notification ·
- SIGEV_SIGNAL_THREAD_INIT()
-
·
General tricks for notification ·
- SIGEV_THREAD_INIT()
-
·
General tricks for notification ·
- SIGEV_UNBLOCK_INIT()
-
·
General tricks for notification ·
- message passing
-
- SETIOV()
-
·
Multipart messages ·
- resource manager
-
- _RESMGR_ERRNO() (deprecated)
-
·
General notes ·
- _RESMGR_NPARTS()
-
·
General notes ·
Step 4 ·
- _RESMGR_PTR()
-
·
General notes ·
Step 4 ·
- SETIOV()
-
·
Multipart messages ·
- SIGEV_PULSE_INIT()
-
- example
-
·
setupPulseAndTimer() ·
- SIGEV_THREAD_INIT()
-
- example
-
·
Timers creating threads ·
- SIGEV_UNBLOCK_INIT()
-
·
Kernel timeouts with pthread_join() ·
- example
-
·
Kernel timeouts with pthread_join() ·
- make
-
·
Utilities Reference ·
- malloc()
-
·
ISR functions ·
Multipart messages ·
- masking interrupts
-
·
Clearing the interrupt source ·
Detaching an interrupt handler ·
- meet-me synchronization
-
See
synchronization
- mem*()
-
·
ISR functions ·
- memcpy()
-
·
ISR functions ·
Multipart messages ·
- memory
-
- physical, defined
-
·
Glossary ·
- virtual, defined
-
·
Glossary ·
- memory management unit
-
See
MMU
- memory protection
-
·
Why processes? ·
- message
-
- combined
-
·
Combine messages ·
Messages that should be connect messages but aren't ·
- why they work
-
·
Combine messages ·
- connect
-
·
Connect messages ·
Finding the server ·
- constants
-
- _NTO_CHF_UNBLOCK
-
·
io_unblock() [I/O] ·
- _NTO_MI_UNBLOCK_REQ
-
·
Extending the OCB ·
io_unblock() [CONNECT] ·
io_unblock() [I/O] ·
- determining if pulse or message
-
·
Notes ·
- functions
-
- ChannelCreate()
-
·
io_unblock() [I/O] ·
- MsgDeliverEvent()
-
·
io_notify() ·
- MsgRead()
-
·
Step 3 ·
- MsgReply()
-
·
Effective use of other messaging functions ·
Step 5 ·
Step 8 ·
Step 9 ·
- MsgReplyv()
-
·
Effective use of other messaging functions ·
- MsgSend()
-
·
io_msg() ·
- MsgSendv()
-
·
Step 5 ·
- MsgWrite()
-
·
Effective use of other messaging functions ·
- MsgWritev()
-
·
Effective use of other messaging functions ·
- how to tell from pulses
-
·
Notes ·
- I/O
-
·
I/O messages ·
- not replying to client
-
·
Notes ·
- other
-
·
Three groups, really ·
- receive ID, defined
-
·
Glossary ·
- receiving, defined
-
·
Glossary ·
- replying to multiple clients
-
·
Notes ·
- replying, defined
-
·
Glossary ·
- resource manager
-
·
Handling messages ·
- combine
-
·
Locking, unlocking, and combine message handling ·
- connect
-
·
Messages that should be connect messages but aren't ·
- _IO_DEVCTL
-
·
The other_func message handler ·
- _IO_MSG
-
·
The other_func message handler ·
- processing
-
·
Locking, unlocking, and combine message handling ·
- send hierarchy, defined
-
·
Glossary ·
- sending
-
- functions
-
·
Glossary ·
- message passing
-
·
A small microkernel and message passing ·
- <sys/neutrino.h>
-
·
Multipart messages ·
- advantages
-
·
What it means for you ·
- as decoupling
-
·
Summary ·
- as object oriented design
-
·
What it means for you ·
- as synchronization scheme
-
·
Summary ·
- avoiding unnecessary copying
-
·
Multipart messages ·
- blocking client
-
·
Message handling ·
Message passing and client/server ·
- buffer sizes
-
·
Message handling ·
- cancellation points
-
·
What about the other versions? ·
- channel ID
-
·
Establishing a connection ·
Who sent the message? ·
- ChannelCreate()
-
·
Channel flags ·
_NTO_CHF_UNBLOCK ·
So what's the trick? ·
- client
-
·
The client ·
- client/server
-
·
Message passing and client/server ·
- confusion with timeouts
-
·
_NTO_CHF_UNBLOCK ·
- ConnectAttach()
-
·
Impact on ConnectAttach() ·
Networked message passing differences ·
Some notes on NDs ·
- ConnectDetach()
-
·
Establishing a connection ·
- connection ID
-
·
Who sent the message? ·
- data flow
-
·
Message handling ·
- deadlock
-
·
The send-hierarchy ·
- dealing with large buffers
-
·
Reading and writing data ·
- decoupling of design
-
·
A small microkernel and message passing ·
Network-distributed message passing ·
What it means for you ·
- deferring data transfer
-
·
The MsgDeliverEvent() function ·
- defined
-
·
Glossary ·
- diagram
-
·
Message handling ·
- distributing work over a network
-
·
Server/subserver ·
- done by C library
-
·
Message passing and client/server ·
- double standard in conventional OS
-
·
Network-distributed message passing ·
- establishing client to server connection
-
·
The client ·
- example
-
·
Message passing and client/server ·
Network-distributed message passing ·
- excluding messages
-
·
The MsgReceivePulse() function ·
- filesystem example
-
·
Reading and writing data ·
- finding a server
-
·
Finding the server's ND/PID/CHID ·
- ND/PID/CHID
-
·
Finding the server's ND/PID/CHID ·
- using a global variable
-
·
Finding the server's ND/PID/CHID ·
- using a resource manager
-
·
Finding the server's ND/PID/CHID ·
- using global variables
-
·
Finding the server's ND/PID/CHID ·
- using well-known files
-
·
Finding the server's ND/PID/CHID ·
- finding the server's ND/PID/CHID
-
·
Finding the server's ND/PID/CHID ·
- fs-qnx4 message example
-
·
Reading and writing data ·
- handling big messages in server
-
·
Reading and writing data ·
- how to handle large transfers
-
·
Reading and writing data ·
- interrupts
-
·
The MsgReceivePulse() function ·
- iov_t
-
·
Multipart messages ·
- kernel timeouts
-
·
Kernel timeouts with message passing ·
- limiting transfer size
-
·
Replying to the client ·
Server framework ·
- modularity
-
·
A small microkernel and message passing ·
- MsgDeliverEvent()
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Networked message passing differences ·
The MsgDeliverEvent() function ·
- MsgError() versus MsgReply()
-
·
Replying with no data, or an errno ·
- MsgInfo()
-
·
Using the _NTO_MI_UNBLOCK_REQ ·
- MsgRead()
-
·
Impact on MsgReceive() ·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Implementation ·
Networked message passing differences ·
Reading and writing data ·
- MsgReceive()
-
·
Impact on MsgReceive() ·
Implementation ·
Message handling ·
Message passing over a network ·
Multipart messages ·
Networked message passing differences ·
_NTO_CHF_UNBLOCK ·
Priority inheritance ·
Reading and writing data ·
Receiving a pulse message ·
So what's the trick? ·
Synchronization problem ·
The MsgReceivePulse() function ·
Using the _NTO_MI_UNBLOCK_REQ ·
- MsgReceive() versus MsgReceivev()
-
·
Multipart messages ·
- MsgReceivePulse()
-
·
Implementation ·
The MsgReceivePulse() function ·
- MsgReceivev()
-
·
Multipart messages ·
The MsgReceivePulse() function ·
- MsgReply()
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Message handling ·
Networked message passing differences ·
Reading and writing data ·
Synchronization problem ·
- MsgReplyv()
-
·
Multipart messages ·
- MsgSend()
-
·
Implementation ·
Multipart messages ·
_NTO_CHF_UNBLOCK ·
Pulses ·
Sending messages ·
What about the other versions? ·
- example
-
·
Sending messages ·
- MsgSend() family
-
·
What about the other versions? ·
- MsgSendnc()
-
·
What about the other versions? ·
- MsgSendsv()
-
·
What about the other versions? ·
- MsgSendsvnc()
-
·
What about the other versions? ·
- MsgSendv()
-
·
Multipart messages ·
_NTO_CHF_UNBLOCK ·
What about the other versions? ·
- MsgSendvnc()
-
·
What about the other versions? ·
- MsgSendvs()
-
·
_NTO_CHF_UNBLOCK ·
What about the other versions? ·
- MsgSendvsnc()
-
·
What about the other versions? ·
- MsgWrite()
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Implementation ·
Networked message passing differences ·
Reading and writing data ·
- MsgWritev()
-
·
Multipart messages ·
- multi-threaded server
-
·
Multi-threaded server ·
- multipart messages
-
·
Multipart messages ·
- example
-
·
Multipart messages ·
- IOV
-
·
Multipart messages ·
- kernel's view
-
·
Multipart messages ·
- limitations
-
·
Multipart messages ·
- multipart versus linear
-
·
What about the other versions? ·
- multiple threads
-
·
Multiple threads ·
- ND/PID/CHIDs
-
·
Finding the server's ND/PID/CHID ·
- network
-
- detailed analysis
-
·
Message passing over a network ·
- differences from local
-
·
Networked message passing differences ·
- network implementation
-
·
Message passing over a network ·
- network transparent
-
·
Summary ·
- network-distributed
-
·
Network-distributed message passing ·
- networked
-
·
Message passing over a network ·
- networked case
-
- determining how much data should have been transferred
-
·
Impact on MsgReceive() ·
- determining how much data was transferred
-
·
Impact on MsgReceive() ·
- networked overhead
-
·
Longer delays ·
- node descriptor
-
·
Establishing a connection ·
- not replying to the client
-
·
Not replying to the client ·
- notifying client
-
·
The MsgDeliverEvent() function ·
- obtaining a connection ID
-
·
Establishing a connection ·
- offsetting into the client's data
-
·
Multipart messages ·
Reading and writing data ·
- peeking into a message
-
·
Reading and writing data ·
- phases
-
·
Message handling ·
- priority
-
·
What about priorities? ·
- process ID
-
·
Establishing a connection ·
- pulse
-
- MsgReceive()
-
·
Receiving a pulse message ·
- MsgReceivePulse()
-
·
Receiving a pulse message ·
- receiving
-
·
Receiving a pulse message ·
- race condition with unblock
-
·
Synchronization problem ·
- reading from the client's address space
-
·
Reading and writing data ·
- readying a thread
-
·
Message passing and client/server ·
- receive ID
-
·
Replying to the client ·
- and reply
-
·
Message handling ·
- receive-blocked
-
·
Message passing and client/server ·
- diagram
-
·
Message passing and client/server ·
- receiving only pulses
-
·
The MsgReceivePulse() function ·
- receiving pulses only
-
·
The MsgReceivePulse() function ·
- REPLY-blocked
-
·
Kernel timeouts with message passing ·
- reply-blocked
-
·
Message passing and client/server ·
- diagram
-
·
Message passing and client/server ·
- reply-driven model
-
·
Not replying to the client ·
Server/subserver ·
- example
-
·
Reply-driven (server/subserver) ·
- important subtlety
-
·
An important subtlety ·
- replying to the client
-
·
Replying to the client ·
- replying with no data
-
·
Replying with no data, or an errno ·
- example
-
·
Replying with no data, or an errno ·
- resource manager
-
·
Message passing and client/server ·
- run time installability of components
-
·
A small microkernel and message passing ·
- scatter/gather
-
- defined
-
·
Glossary ·
- SEND state
-
- diagram
-
·
Message passing and client/server ·
- SEND-blocked
-
·
Kernel timeouts with message passing ·
- send-blocked
-
·
Message passing and client/server ·
- diagram
-
·
Message passing and client/server ·
- send-driven model
-
·
Server/subserver ·
- example
-
·
Send-driven (client/server) ·
- important subtlety
-
·
An important subtlety ·
- server
-
·
Message handling ·
- example
-
·
Server framework ·
- server connection ID
-
·
Who sent the message? ·
- server replying to client
-
·
Message handling ·
- server/subserver
-
·
Multiple threads ·
Server/subserver ·
- delegation of work
-
·
Server/subserver ·
- SETIOV() (macro)
-
·
Multipart messages ·
- SMP
-
·
Multiple threads ·
- STATE_RECV state
-
·
Message passing and client/server ·
- diagram
-
·
Message passing and client/server ·
- STATE_REPLY state
-
·
Message passing and client/server ·
- diagram
-
·
Message passing and client/server ·
- STATE_SEND state
-
·
Message passing and client/server ·
- summary
-
·
Summary ·
- synthetic unblock pulse
-
·
_NTO_CHF_UNBLOCK ·
- thread and channels
-
·
More about channels ·
- thread pool
-
·
The MsgReceivePulse() function ·
- timeouts
-
- informing server
-
·
Kernel timeouts with message passing ·
- timeouts and _NTO_CHF_UNBLOCK
-
·
Kernel timeouts with message passing ·
- timer
-
·
The MsgReceivePulse() function ·
- tracking owner of message
-
·
Who sent the message? ·
- transmit buffer
-
·
Message handling ·
- transparency over network
-
·
Network-distributed message passing ·
- unblock
-
·
Synchronization problem ·
- unblocking
-
- client
-
·
_NTO_CHF_UNBLOCK ·
- _NTO_MI_UNBLOCK_REQ
-
·
Using the _NTO_MI_UNBLOCK_REQ ·
- server
-
·
Message handling ·
- unit testing
-
·
What it means for you ·
- useful minimal set of functions
-
·
Architecture & structure ·
- using IOV (vectored) functions
-
·
Implementation ·
- using the _NTO_MI_UNBLOCK_REQ flag
-
·
Using the _NTO_MI_UNBLOCK_REQ ·
- validity of receive ID
-
·
The receive ID (a.k.a. the client cookie) ·
- vs. traditional OS
-
·
Message passing and client/server ·
Network-distributed message passing ·
- with pool of threads
-
·
Multiple threads ·
- write() example
-
·
Multipart messages ·
- writing a header later
-
·
Reading and writing data ·
- writing to the client's address space
-
·
Reading and writing data ·
- microkernel
-
·
A small microkernel and message passing ·
- mktime()
-
·
What kind of timer? ·
- MMU
-
·
Why processes? ·
- defined
-
·
Glossary ·
- modularity due to message passing
-
·
A small microkernel and message passing ·
- mountpoint
-
- creating
-
·
The resmgr_attach() function and its parameters ·
- registering
-
·
The resmgr_attach() function and its parameters ·
- mq_open()
-
·
The resmgr_attach() function and its parameters ·
- mq_receive()
-
·
The resmgr_attach() function and its parameters ·
- mqueue
-
·
The resmgr_attach() function and its parameters ·
- MsgDeliverEvent()
-
·
Architecture & structure ·
Glossary ·
Impact on MsgDeliverEvent() ·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
io_notify() ·
Proxies ·
The MsgDeliverEvent() function ·
The receive ID (a.k.a. the client cookie) ·
The send-hierarchy ·
- breaking send hierarchy
-
·
The send-hierarchy ·
- networked case
-
·
Impact on MsgDeliverEvent() ·
Networked message passing differences ·
- special use of receive ID
-
·
The MsgDeliverEvent() function ·
- MsgError()
-
·
Architecture & structure ·
Replying with no data, or an errno ·
- errno
-
·
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 ·
Reading and writing data ·
Step 3 ·
- networked case
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Networked message passing differences ·
- offset parameter
-
·
Reading and writing data ·
- MsgReadv()
-
·
Architecture & structure ·
- example
-
·
Multipart messages ·
- 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 ·
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? ·
- example
-
·
main() ·
Multipart messages ·
Reading and writing data ·
Server framework ·
- networked case
-
·
Impact on MsgReceive() ·
Networked message passing differences ·
- priority inheritance
-
·
So what's the trick? ·
- relationship of parameters to MsgReply()
-
·
Message handling ·
- 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 ·
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) ·
- errno
-
·
Replying with no data, or an errno ·
- example
-
·
gotAMessage() ·
gotAPulse() ·
Server framework ·
- networked case
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Networked message passing differences ·
- relationship of parameters to MsgReceive()
-
·
Message handling ·
- 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? ·
- EINTR
-
·
_NTO_CHF_UNBLOCK ·
- example
-
·
Multipart messages ·
Sending messages ·
- MsgSend() family
-
·
Sending messages ·
What about the other versions? ·
- guide to variants
-
·
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 ·
_NTO_CHF_UNBLOCK ·
Rescheduling — kernel calls ·
Step 5 ·
Translating messages to devctl() or _IO_MSG ·
What about the other versions? ·
- example
-
·
Multipart messages ·
- 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 ·
Reading and writing data ·
Replying with no data, or an errno ·
- networked case
-
·
Impact on MsgReply(), MsgRead(), and MsgWrite() ·
Networked message passing differences ·
- offset parameter
-
·
Reading and writing data ·
- MsgWritev()
-
·
Architecture & structure ·
Effective use of other messaging functions ·
Multipart messages ·
- offset parameter
-
·
Multipart messages ·
- MT_TIMEDOUT
-
·
gotAPulse() ·
- multipart messages
-
See
Message passing
- MUTEX
-
·
The blocked states ·
- mutex
-
- analogy
-
·
Mutual exclusion ·
- defined
-
·
Glossary ·
- mutual exclusion
-
See
mutex
· ! · 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 ·