s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
How students can contribute to free
softwareOpenOffice.org success story
Eric Bachard (OOo) | Morgan Magnin (Centrale Nantes)
[email protected] | [email protected] http://education.openoffice.org | http://tinyurl.com/magnin-ecn
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes: key figures
● Member of the Group of Ecoles Centrales
● Combines three activities: – Education – 1350 students
● Graduate general engineering program (3 years, highly-selective admission procedure)
● Other specialized master program including two Erasmus Mundus Master programs
– Research: 4 laboratories
– Industrial Studies
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Why free software in education?
Free software is not only a technical alternative to proprietary solutions, it promotes values such
that:
Freedom
Cooperation
Security
Durability
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes and free software
● Research development: – OrbisGIS: http://tinyurl.com/orbisgis– Roméo: http://romeo.rts-software.org
– Trampoline: http://trampoline.rts-software.org/
● Educational use:– Linux : https://pedagogie.ec-nantes.fr/spip/
– OpenOffice.org
– FireFox, Gimp, …
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes, free software and Tablet PC
● Recipient of the HP Technology for Teaching Grant 2008
– 21 Tablet PCs
– Innovative projects about education and tactile technologies
● A students' project to evaluate the usability of Tablet PC features under Linux... that led to OpenOffice.org
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes and OpenOffice.org
● Annotation features in OOo/Impress: – Regular users demand about it for 3-4 years– Open tickets
● Students have worked on this issue: – From October'08 to now;
– Under the supervision of Thorsten Behrens and Eric Bachard
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes and OOo: key figures
● Two different projects involving: – 7 students from September '08 to December '08– 4 students from January '09 to April '09
– 1 supervising teacher – Active collaboration of OOo team
● Other figures: – Students: avg 65 work-hours by student by
project
– Teacher: avg 3 supervising-hours by student by project
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Centrale Nantes and OOo: factors for success
● Education environment willing to contribute to free software
● Motivation of both students and OOo teams● Win-win relation for every actor:
– Education: real-life projects with added value
– Students: contribute to a famous software
– OOo: perspective of contribution to new features
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
… OpenOffice.org Education Project is
an incubator andINTERNATIONALproject type
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
The Role of the « Incubators » projects is to ...
● Experiment● Validate a new need● Innovate and make the OpenOffice.org Project
progress
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
The goals of the OpenOffice.org Education Project ?
This is a young project,Belonging to OpenOffice.orgwith the main goal tocreate a bridgebetween Educational World and OpenOffice.org
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
' Who ' is the Education Project ?
Approximatively 100 members,Students, developers (mostly)From all countriesAll participate to OpenOffice.org
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
The 3 main objectives of Education Project :
● Create a network of teachers using OpenOffice.org
● Provide a space for exchanging pedagogical contents, under free file formats
● Teach, provide young (core-)developers to write code for OpenOffice.org
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
3rd Objective : provide new developers
Idea :
Associate : theory (the teachers)The know how (professional developers)The actors (students, profs, and so on)Mentors (OpenOffice.org Project developers)The needs (features for OpenOffice.org)
… and finally provide developers
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Already started actions
● Online Courses « ClassRooms »● Projects with engineers schools students, and shools contributions
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Education Project Effort● Mentored projects with active participation of the schools
http://wiki.services.openoffice.org/wiki/Education_Project/Effort
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Schools who joined the project
Epitech/Epita (Paris, France)École Centrale Nantes (Nantes, France)UTBM (Sévenans, France) Seneca College (Toronto Canada)
…
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
ExamplesMozilla 1.7.5 → Seamonkey 1.1.14 migration (Pierre Pasteau / Epitech Paris ) QA in progress, will be integrated
Developers who contributed : Frank Schönheit (Sun MicroSystems), Eric Bachard (unaffiliated)
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
ExamplesAude Quintana, Olivier Girardot (École Centrale Nantes): implementation of the eraser features, with Tablet PC and Impress. Code review in progress.
Developers who contributed : Thorsten Behrens (Novell)
Managed by Morgan Magnin, for Ecole Centrale Nantes
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
ExamplesFrédéric Gelot, Pierre-Jean Parot (École Centrale Nantes): annotations implementation with Tablet PC and Impress
Developers who contributed : Thorsten Behrens (Novell)
Managed by Morgan Magnin, for ECN
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Other example : Seneca College, TorontoProfessor : Fardad Soleimanloo(4 projects started, expected for Summer 09)
All other proposed subjects :
http://wiki.services.openoffice.org/wiki/Education_Project/Effort
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Scheduled Project (july to december 2009 ): Thomas Fontenay, Abdelkader Bellabes ( Epitech Paris ) : performance improvement of OOo4Kids on powerless machines (include backport to OpenOffice.org for the most interesting solutions), profiling, User Interface Improvement
Developers : Pierre Pasteau, Eric Bachard
Managed by Julien Ballet for Epitech Paris
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
...
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Guidelines for further projects: benefits of communication
● All documentation must be in english● Frequent communication
– Inside the education community
– Inside the free software community
● Use a maximum of media: – News on official websites
– Blog, Twitter, …
– Video
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Guidelines for further projects
● Development team opened to students' contribution
● Supervising teacher to guarantee the project respects the educational expectations
● Team of students from 2 to... ?
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Guidelines for further projects
● Find students – Interested in a first professional development
experience
– Having a good knowledge in technical matters
– Potentially willing to contribute beyond the given project
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Timeline● Detailed specifications according to the
software standards– Features
– Test cases
● Learn the basics about the implementation– IRC courses
– Documentation
● Implementation on a Child WorkSpace w.r.t. software development rules
● Tests
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Guidelines for further projects
● Be “transparent” yourself : – Do not lie about the difficulties! – Do not base your evaluation only on final
results.
– Take into account the methods and autonomy of students.
● Frequent (on-line or IRL) meetings between students and supervisors to keep up the motivation
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Perspectives
● New collaborations between free software development teams and educational institution
● Towards teaching how to contribute to free software developments?
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Special thanks to...● Thorsten Behrens● Group of students:
– Olivier Girardot
– Frédéric Gélot
– Aude Quintana
– Pierre-Jean Parot
– Guillaume Arfaoui
– Florent Rouvière
– Sashi Juganaikloo
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
References
● EducOO : http://www.educoo.org
● Blog on the various projects involving Tablets PC at École Centrale de Nantes: https://pedagogie.ec-nantes.fr/tablet-pc/
● “Effort page”: http://tinyurl.com/effort-ooo-ecn
s t at i c voi d s ync_i cache_030( addr _t addr es s , s i z e_t l en) { i nt l , of f ; char *p; ui nt 32 cacr ; of f =( uns i gned i nt ) addr es s &( CACHELI NE- 1) ; l en+=of f ; l =l en; p=( char * ) addr es s - of f ; as m vol at i l e ( " nop" ) ; as m vol at i l e ( " mov ec %%cacr , %0" : " =r " ( cac r ) : ) ; c acr | =0x00000004; / ** / do{ as m vol at i l e( " movec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ naddq. l #4, %0\ nmov ec %0, %%caar \ nmov ec %1, %%cacr \ naddq. l #4, %0\ nmovec %0, %%caar \ nmovec %1, %%cacr \ n" : : " r " ( p) , " r " ( cacr ) ) ; p+= CACHELI NE; } whi l e ( ( l - =CACHELI NE) >0) ; as m vol at i l e( " nop" ) ; } s t at i c voi d s et _pgdi r ( v oi d*r t ){ l ong_page_di r ect or y_ent r y ent r y; * ( ui nt 64* ) &ent r y=DFL_PAGEENT_VAL; ent r y . t ype=DT_ROOT; ent r y . addr =TA_TO_PREA( ( ( addr _t ) r t ) ) ; as m v ol at i l e( " pmove ( %0) , %%s r p\ npmove ( %0) , %%cr p\ n" : : " a" ( ( ui nt 64* ) &ent r y ) ) ; } s t r uct m68k_vm_ops m68030_vm_ops ={ _m68k_t r ans l at i on_map_get _pgdi r , m68k_vm_t r ans l at i on_map_i ni t _map, m68k_vm_t r ans l at i on_map_i ni t _ker nel _map_pos t _s em, m68k_vm_t r ans l at i on_map_i ni t , m68k_vm_t r ans l at i on_map_i ni t _pos t _ar ea, m68k_vm_t rans l at i on_map_i ni t _pos t _s em, m68k_vm_t r ans l at i on_map_ear l y_map
Auteurs : Morgan Magnin ([email protected])
Eric Bachard ([email protected]), www.educoo.org 2009
Document sous licence libre http://creativecommons.org/licenses/by-sa/3.0/deed.fr