<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Dobrý den.<br>
</p>
<div class="moz-cite-prefix">On 11/26/18 1:56 PM, Slávka IvaniÄová
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAPJCgrkvzauQovuzuAQhHOuM8_gxxGPDbxn+cP55w_s=TUPEDQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">ZdravÃm, vedel by mi,
prosÃm, niekto objasniÅ¥ zopár vecà k
téme System calls z OperaÄných
systémov?Â
<div><br>
</div>
<div>V súbore kernel/proc/sys_thread.c
je fukcia sys_thread_join (uintptr_t
tid, void **thread_retval), ktorá má
spojiť thread (join a thread). </div>
<div><br>
</div>
<div>Chápem to tak, že fukcia robÃ
nasledovné:</div>
<div>// check that the tid pointer
points to a safely mapped user
memory,</div>
<div>
<div><span style="white-space:pre-wrap"> </span>if
(tid != NULL &&
!vma_check_user((void*)tid,
sizeof(struct uthread))) {</div>
<div><span style="white-space:pre-wrap"> </span>return
ENOMEM;</div>
<div><span style="white-space:pre-wrap"> </span>}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<p>Koukám do komentáÅů a tam Åádil tiskaÅský Å¡otek, protože oba
komentáÅe ÅÃkajà to stejné a vztahujà se k thread_retval. Z
principu je tid pointer do kernelové pamÄti (vizte funkci
sys_thread_create).<br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:CAPJCgrkvzauQovuzuAQhHOuM8_gxxGPDbxn+cP55w_s=TUPEDQ@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Mojou otázkou je, Äi je
potrebné v tejto fukcià prechádzať
zoznam process->uthread_list a
porovnaÅ¥, Äi sa uthread nachádza v
zozname.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<p>Je potÅeba zajistit, že userspacový proces nezkouÅ¡Ã napÅ. Äekat
na vlákno jiného procesu popÅ., obecnÄji, jestli nepodstrÄil tid,
který je nesmyslný.</p>
<p><br>
</p>
- VH<br>
<br>
</body>
</html>