[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