Sent Packet ^ | +-------+ |Send | .-------------------------------------|State | | |Machine| | +-------+ | ^ | | | Send Queue | +-----------------+ | | | | | | | | | | | | +-----------------+ | ^ | | LANai Memory - - - - -|- - - - - - - - - - - - - - - - - - - - -|- - - - - - - - - - - - | | User Process Memory V | Receive Event Queue | +-----------------+ .---------' | | | | | | | | | | | +-----------------+ | | | | .--^--. | gm_send_with_callback(...,ptr,len,callback,context) | ... | | `-> event=gm_receive(); | | switch(event.recv.type){ | | ... | | default: | | gm_unknown(port,event); | | } | `-------------|--. | `--------. | | | .-----|----------' | | | | .-------|-----' | | | | + - - -|- - -|- - -|- - - -|- - - - - - - - - - - + | V V V V | | callback(port,context,status) | | | | [behind the scenes in gm_unknown()] | + - - - - - - - - - - - - - - - - - - - - - - - - +