34 |
rtmk_msg_option_t options; |
rtmk_msg_option_t options; |
35 |
kern_return_t kr; |
kern_return_t kr; |
36 |
|
|
37 |
kr = vm_allocate (task_self (), vm_round_page (recv_size), |
kr = vm_allocate (task_self (), (vm_offset_t *) &msgh_in, |
38 |
(vm_offset_t *) &msgh_in, 1); |
vm_round_page (recv_size), 1); |
39 |
if (kr) |
if (kr) |
40 |
return KERN_RESOURCE_SHORTAGE; |
return KERN_RESOURCE_SHORTAGE; |
41 |
|
|
42 |
kr = vm_allocate (task_self (), vm_round_page (recv_size), |
kr = vm_allocate (task_self (), (vm_offset_t *) &msgh_out, |
43 |
(vm_offset_t *) &msgh_out, 1); |
vm_round_page (recv_size), 1); |
44 |
if (kr) |
if (kr) |
45 |
return KERN_RESOURCE_SHORTAGE; |
return KERN_RESOURCE_SHORTAGE; |
46 |
|
|
58 |
if (kr == KERN_SUCCESS) |
if (kr == KERN_SUCCESS) |
59 |
{ |
{ |
60 |
kr = (*demux_fn) (msgh_in, msgh_out); |
kr = (*demux_fn) (msgh_in, msgh_out); |
61 |
if (kr == RIG_RESULT_SUCCESS) |
if (kr == 0) |
62 |
goto get_request; |
goto get_request; |
63 |
|
|
64 |
rtmk_msg_trap (msgh_out, RTMK_MSG_OPTION_SEND, |
rtmk_msg_trap (msgh_out, RTMK_MSG_OPTION_SEND, |
73 |
break; |
break; |
74 |
|
|
75 |
default: |
default: |
76 |
#if 0 |
vm_deallocate (task_self (), (vm_offset_t) msgh_in, recv_size); |
77 |
vm_deallocate (task_self (), (vm_offset_t) msgh_in); |
vm_deallocate (task_self (), (vm_offset_t) msgh_out, recv_size); |
|
vm_deallocate (task_self (), (vm_offset_t) msgh_out); |
|
|
#endif |
|
78 |
return kr; |
return kr; |
79 |
} |
} |
80 |
} |
} |