[okl4-developer] About Server unload.

유호철 hcyoo at cuwave.co.kr
Thu May 29 19:24:52 EST 2008


Hi . 

 

I am always thankful for good answer. 

My L4 version is 1.4.1.1. 

I have a question about Server Unload.

I make an example server. and load successfully. 

Next step, I want to unload my example server . 

 

So. I use iguana API that follow as : 

 

[memesection_delete] [ thread_delete ] [pd_delete]. 

 

After system boot, if I call [ debug_dump_info() ] method, system show me
about server information.

 

My example server name is ism, and ism server information is here,

 

----------------------------------------------------------------------------
------------

pd(0x001257f0)

    memsection(0x0010f290) <0x00900000:0x009fffff>

    memsection(0x0010f2d8) <0x0020a000:0x0020afff>

    memsection(0x0010f320) <0x00308000:0x0030bfff>

    memsection(0x0010f368) <0x00140000:0x0014ffff>

    memsection(0x0010f3b0) <0x00307000:0x00307fff>

    memsection(0x0010f3f8) <0x00300000:0x00306fff>

    memsection(0x0010f440) <0x0030e000:0x0030efff>

    thread: 0x001256f8 client failed: 0

thread: 0x001256f8 failed: 0

thread(0x001256f8) #151

      Client sessions: 0x00124fa8

      Server sessions: 0x00124d48

    thread: 0x001256f8 client failed: 0

thread: 0x001256f8 failed: 0

thread: 0x001258b8 client failed: 0

thread: 0x001258b8 failed: 0

session(0x00124fa8) Client: #151 Server: #150 

----------------------------------------------------------------------------
---------------

 

And, To verify my ism server is operating, I use simple command, 

 

0] % ism             ========================================> user input
command, 

ism operating!   ======================> my ism server is reply. 

 

 

Next step, I will be able to kill my ism server. this command is “k1”

 

1] % k1

 

I make the iguana API. this API name is kill_ism(). 

 

“k1” command call kill_ism() method, and kill_ism() is follow as,  

 

----------------------------------------------------------------------------
----

 

typedef struct _isms_data{

                           L4_ThreadId_t thread;

                           pd_ref_t pd;

}isms_data;

 

 

void kill_ism(objref_t naming)

{

 isms_data *tmp = (isms_data *)naming;

 

   memsection_delete(0x0010f290); 

 memsection_delete(0x0010f2d8);

 memsection_delete(0x0010f320);

 memsection_delete(0x0010f368);

 memsection_delete(0x0010f3b0);

 memsection_delete(0x0010f3f8);

 memsection_delete(0x0010f440);

 printf(" memsection delete success !\n");

   

   thread_delete(tmp->thread);

   printf(" thread delete success !\n");

   

   pd_delete(tmp->pd);

   printf(" pd delete success !\n");

}

 

----------------------------------------------------------------------------
-----------------

 

-  Simply, memsection_ref_t address bring previous information.

 

-  [tmp->thread][tmp->pd] is absolutely correct. 

 

 

At result, if ism_kill() method execute, I get error message that follow as:

 

[2] % k1

memsection delete success !

roottask read pagefault at 00307f04, ip=001037b8 - deny

 

 

memsection_delete() success, but thread_delete() failed, 

 

I changed all delete method sequence.   

 

What is wrong? 

 

Thank in advance. . 

 

  

 

 

 

 

 

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.okl4.org/pipermail/developer/attachments/20080529/0589a3f1/attachment-0001.htm 


More information about the Developer mailing list