Dear all<div class="im"><br> This is midterm report of GSOC 2011 rtems 
mmu support project . This project's target is adding an memory protect 
API to RTEMS.  In the last month  I finished the general version of the 
API code. <br><br>
I update the structure and functions of the project. Compare to the ALUT
 structure mentioned in my last report, I removed the ID part, as shown 
below<br>    start address;                 size;             attribute;<br>
<table border="1"><tbody><tr><th>Start Address <br></th><th>Address Space Length</th><th>Access Attribute</th></tr></tbody></table><br></div>In
 the functions , the block pointer is used as the ID of the specific 
ALUT block.  I think this will be more convenient for users and don't 
need to search blocks or  ID frequently.  Nearly all of the API 
functions accept the block pointer as the first param. <br><div class="im">
<br>Here is the list of the implemented  API functions :<br><br></div>rtems_status_code rtems_memp_alut_init ( void );<br><br>rtems_status_code<br>rtems_memp_alut_create_entry(<div id=":18b">char* start_addr, size_t size, rtems_memp_access_attr attr, rtems_mprot_alut_entry **p_ret);<br>

rtems_status_code<br>rtems_memp_delete_entry(rtems_mprot_alut *p_ret);<div class="im"><br><br>rtems_status_code rtems_mprot_alut_search(char *addr, rtems_mprot_alut **p_ret);<br><br></div>rtems_status_code<br>rtems_memp_alut_set_attr(rtems_mprot_alut *p_ret,  rtems_memp_access_attr* new_attribute);<br>

rtems_status_code<br>rtems_memp_get_attr(rtems_mprot_alut *p_ret, rtems_memp_access_attr*  attr);<br><br>rtems_status_code<br>rtems_memp_alut_set_size(rtems_mprot_alut *p_ret,  unsigned int* new_size);<br>rtems_status_code<br>

rtems_memp_alut_get_size(rtems_mprot_alut *p_ret,  unsigned int* size);<div class="im"><br><br>rtems_memp_access_attr  rtems_memp_get_default_attr();<br>rtems_status_code rtems_memp_set_default_attr(rtems_memp_access_attr* attr);<br>
<br></div>
Users can create, delete the ALUT block, modify the size and attribute 
of the block, change the attribute of the address not mapped in the ALUT
 by the default_attr function.<div class="im"><br><br>Next step , I am going to :<br><br>add the cache attribute control.  this should be quite useful for users.<br>
learn and try to add a doxygen document for the API .<br>add test case for the project.<br></div>task support protection<div class="im"><br>posix API research and implement.<br><br></div>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>********************<br>
**DISCUSSION**<br>********************<br><br>rtems_status_code<br>rtems_memp_alut_set_size(rtems_mprot_alut *p_ret,  unsigned int* new_size);<br><br>This
 function can reset the size of blocks, I add it just because it is not 
too diffifcult to implement. In practice is this useful? Maybe I should 
remove the function if it will never be used.<div class="im"><br>
~~~~~~~~~~~~~~~<br>In my proposal, there is a plan to integrate the memory protection API to the RTEMS Partition API.<br>I
 think it may be not a good idea because it would make the relation of 
the two APIs too complicated. Users can add the partition memory part to
 ALUT by function list above. This will be a more simple and clear way 
for users.   Do you think so ?<br></div>
~~~~~~~~~~~~~~~<br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<div class="im"><br>  For additional information you can refer to :<br>    - My project code and document : <a href="http://code.google.com/p/gsoc2011-rtems-mmu-support-project/" target="_blank">http://code.google.com/p/gsoc2011-rtems-mmu-support-project/ </a>(updated every few days)<br>

<br>    - The introduction page of the project on RTEMS wiki : <a href="http://www.rtems.org/wiki/index.php/MMU_Support" target="_blank">http://www.rtems.org/wiki/index.php/MMU_Support</a><br><br>    - The milestone report of this GSOC2011 : <a href="http://www.rtems.org/pipermail/rtems-users/2011-June/008577.html" target="_blank">http://www.rtems.org/pipermail/rtems-users/2011-June/008577.html</a><br>

<br></div><div class="im">please do not hesitate to give me your advice.   thank you for read this report<br><br></div></div><br clear="all"><br>-- <br>Best regards<br><br>Quanming Shi<br><br>