Transcript
Page 1: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 2: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 3: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 4: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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, …

Page 5: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 6: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 7: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 8: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 9: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 10: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 11: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 12: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 13: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 14: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 15: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 16: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 17: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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)

Page 18: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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)

Page 19: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 20: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 21: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 22: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 23: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

...

Page 24: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 25: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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... ?

Page 26: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 27: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 28: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 29: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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?

Page 30: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 31: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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

Page 32: How students can contribute to free software: Centrale Nantes/OpenOffice.org Education Project success story

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


Top Related