Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/loader/main.c

    r79ae36dd r8a1fb09  
    5252#include <ipc/services.h>
    5353#include <ipc/loader.h>
    54 #include <ns.h>
     54#include <ipc/ns.h>
     55#include <macros.h>
    5556#include <loader/pcb.h>
    5657#include <entry_point.h>
     
    5960#include <str.h>
    6061#include <as.h>
     62
    6163#include <elf.h>
    6264#include <elf_load.h>
     
    412414static void ldr_connection(ipc_callid_t iid, ipc_call_t *icall)
    413415{
     416        ipc_callid_t callid;
     417        ipc_call_t call;
     418        int retval;
     419       
    414420        /* Already have a connection? */
    415421        if (connected) {
     
    424430       
    425431        /* Ignore parameters, the connection is already open */
     432        (void) iid;
    426433        (void) icall;
    427434       
    428         while (true) {
    429                 int retval;
    430                 ipc_call_t call;
    431                 ipc_callid_t callid = async_get_call(&call);
    432                
    433                 if (!IPC_GET_IMETHOD(call))
     435        while (1) {
     436                callid = async_get_call(&call);
     437               
     438                switch (IPC_GET_IMETHOD(call)) {
     439                case IPC_M_PHONE_HUNGUP:
    434440                        exit(0);
    435                
    436                 switch (IPC_GET_IMETHOD(call)) {
    437441                case LOADER_GET_TASKID:
    438442                        ldr_get_taskid(callid, &call);
     
    461465                }
    462466               
    463                 async_answer_0(callid, retval);
     467                if (IPC_GET_IMETHOD(call) != IPC_M_PHONE_HUNGUP)
     468                        async_answer_0(callid, retval);
    464469        }
    465470}
     
    474479        /* Introduce this task to the NS (give it our task ID). */
    475480        task_id_t id = task_get_id();
    476         int rc = ns_intro(id);
     481        int rc = async_req_2_0(PHONE_NS, NS_ID_INTRO, LOWER32(id), UPPER32(id));
    477482        if (rc != EOK)
    478483                return -1;
Note: See TracChangeset for help on using the changeset viewer.