<div dir="ltr">Je suis d&#39;accord que cette &quot;page&quot; ne doit pas être utilisé. Mais c&#39;est justement pour ça qu&#39;elle est réservé. Je veux juste l&#39;inclure dans la cartographie de la mémoire... Mais comme elle sera marquée comme réservé je ne l&#39;utiliserais jamais !<br>
<br>Je me trompe ?<br><br>En gros si je fais :<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Reserved : 0 ... base */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( ppage_addr &lt; physmem_base )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_RESERVED;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Free : base ... BIOS */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if( ( ppage_addr &gt;= physmem_base ) &amp;&amp; ( ppage_addr &lt; BIOS_N_VIDEO_START ) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_FREE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Used : BIOS begin ... BIOS end */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if( ( ppage_addr &gt;= BIOS_N_VIDEO_START ) &amp;&amp; ( ppage_addr &lt; BIOS_N_VIDEO_END ) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_RESERVED;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Free : BIOS end ... kernel */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if( ( ppage_addr &gt;= BIOS_N_VIDEO_END ) &amp;&amp; ( ppage_addr &lt; *kernel_core_base ) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_FREE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Used : Kernel begin ... Kernel end (Kernel begin + code/data/bss) + physcal page descr array */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if( ( ppage_addr &gt;= *kernel_core_base ) &amp;&amp; ( ppage_addr &lt; *kernel_core_top ) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_RESERVED;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Free : Kernel end (Kernel begin + code/data/bss) + physcal page descr array ... end of RAM */<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; todo = PPAGE_MARK_FREE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>Je vais juste marquer cette page en réservé et c&#39;est tout non ?<br><br><br><div class="gmail_quote">Le 31 juillet 2008 13:48, Julien Pichon<span dir="ltr">&lt;<a href="mailto:glandoillator@hotmail.com">glandoillator@hotmail.com</a>&gt;</span> a écrit :<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div><div class="Ih2E3d">
&gt;&gt; En effet je ne comprend pas pourquoi on ne traite pas le morceau de mémoire marqué PPAGE_MARK_RESERVED. <br></div>&gt;&gt; En effet dans le switch on ne le traite pas comme de&nbsp; mémoire réservée, il est carrément occulté <br>
<div class="Ih2E3d">&gt;&gt; (dans le switch il passe dans le default)...<br></div><div dir="ltr">
<br>La constante PPAGE_MARK_RESERVED représente la première page physique (0 =&gt; 4 Ko), il est dit plusieurs fois dans la série <br>(je pourrais pas donner de références, ça fait un moment que je l&#39;ai lu :p) que cette page ne sera pas utilisée physiquement, on n&#39;y <br>
mettrait aucune donnée elle servira juste à trapper les erreurs de manipulations de descripteur de page, un peu je pense comme le NULL<br>descriptor dans le mécanisme de segmentation. Par contre en utilisation conrète que ce soit le NULL descriptor ou cette première page physique<br>
je ne peux pas t&#39;apporter plus de précisions.<div class="Ih2E3d"><br><br>&gt;&gt; De plus je voulais aussi savoir, si dans le cas où je traite ce bloc de mémoire dans le switch, quel seront les conséquences ? Y aura t&#39;il un problème latent ?<br>
<br></div>Je pense que oui, car si tu utilises cette page normalement, c&#39;est à dire mettre des données il y aura des erreurs car par la suite SOS s&#39;en sert pour détecter les erreurs<br><br>
</div>
<br><hr>Avec Windows Live Messenger restez en contact avec tous vos amis !  <a href="http://www.windowslive.fr/messenger/" target="_blank">Téléchargez Messenger, c&#39;est gratuit !</a></div>
<br>_______________________________________________<br>
Sos mailing list<br>
<a href="mailto:Sos@the-doors.enix.org">Sos@the-doors.enix.org</a><br>
<a href="http://the-doors.enix.org/cgi-bin/mailman/listinfo/sos" target="_blank">http://the-doors.enix.org/cgi-bin/mailman/listinfo/sos</a><br>
<br></blockquote></div><br></div>