L 5.9   Prologue of receive_only

(including lines 9,10 of interrupt association part of receive_only)

(Revision 0 - 16 October 2000)

 

get here from
     prologue of k_ipc if syscall has no send phase
    sender_restart_receiving (no listing in IL4M)
    k_ipc l30-35 sets up stack with sender_restart_receive on top followed by timeiou, wfor, and redesc
    sender_restart_receive pops parameters and calls receive_only

on entry
    user provided args: timeout/wfor/rdesc are set up andalso stcb
    see UM p22 for user supplied arguments

0,1 if a sender in receiver's sendQ goto receive only code that handles pending receives - pending_receive_only
2-6 else if timeout = infinity, got code that blocks this receiver (l15)
7,8 else if timeout > 0 goto putting to sleep code (l112)
9,10 else if timeout = 0 and thread being waited for is >= 8 which means we have a receive timeout, goto receive timeout return code (l110), else continue in-line and do interrupt association code

Notes:
1. possible interrupt thread #s are 0-7
2. if timeout was = 0 and a sender was waiting for us we would have gone to pending_recv_only code (see line 1)