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 ·