/[rtmk]/rtmk/ipc-syscall.c
ViewVC logotype

Diff of /rtmk/ipc-syscall.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by jrydberg, Tue Feb 5 20:45:32 2002 UTC revision 1.8 by jrydberg, Sat Feb 16 15:17:15 2002 UTC
# Line 139  rtmk_msg_trap (struct rtmk_msg_header *m Line 139  rtmk_msg_trap (struct rtmk_msg_header *m
139  static void  static void
140  receive_continuation (void)  receive_continuation (void)
141  {  {
142    trace_printf ("WE ARE IN THE AWSOME CONTINUATION");    struct thread *thread = THREAD_CURRENT ();
143    thread_exception_return ();    struct rtmk_msg_header *msgh;
144  }    struct ipc_kmsg *kmsg;
145      kern_return_t kr;
146    
147      kr   = thread->ipc_result;
148      msgh = (struct rtmk_msg_header *) thread->scratch_area [0];
149      kmsg = thread->ipc_kmsg;
150    
151      if (kr == KERN_SUCCESS)
152        {
153          kr = ipc_kmsg_copyout (thread->task, msgh, kmsg);
154          ipc_kmsg_free (kmsg);
155        }
156    
157      thread_syscall_return (kr);
158    }
159    
160    
161  /* User entry point for IPC send/receive.  /* User entry point for IPC send/receive.
# Line 349  internal_msg_trap (struct rtmk_msg_heade Line 362  internal_msg_trap (struct rtmk_msg_heade
362    
363            /* If there's not room for the message we continue to the            /* If there's not room for the message we continue to the
364               next thread (reporting error to thread).  */               next thread (reporting error to thread).  */
365                        if (target->ipc_length < kmsg->length)
           if (thread->ipc_length < kmsg->length)  
366              {              {
367                thread->ipc_result = MSG_RCV_TOO_SMALL;                target->ipc_result = MSG_RCV_TOO_SMALL;
368    
369                thread_unlock (thread);                thread_unlock (target);
370                SPLON (spl);                SPLON (spl);
371                thread_interrupt (thread);                thread_interrupt (target);
372    
373                if (! ipc_tqueue_empty (&port->waiting_threads))                if (! ipc_tqueue_empty (&port->waiting_threads))
374                  goto retry_waiting_thread;                  goto retry_waiting_thread;

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26