packages/0000755000175000017500000000000011210574467011347 5ustar tonitonipackages/libc/0000755000175000017500000000000011210574467012260 5ustar tonitonipackages/libc/0.2.1-1/0000755000175000017500000000000011210574467013054 5ustar tonitonipackages/libc/0.2.1-1/lib/0000755000175000017500000000000011210574467013622 5ustar tonitonipackages/libc/0.2.1-1/postinstall-lib0000644000175000017500000000002011210574467016107 0ustar tonitoni#!file:/apps/sh packages/libc/0.2.1-1/packageinfo-lib0000644000175000017500000000002611210574467016010 0ustar tonitonilibc 0.2.1-1 lib i386 system/0000755000175000017500000000000011210574467011115 5ustar tonitonisystem/lib/0000755000175000017500000000000011210574467011663 5ustar tonitonisystem/lib/libc.a0000644000175000017500000250664411210574467012757 0ustar tonitoni! / 1243806005 0 0 0 6384 ` ( ( ( ( ( ( ( ( ( ( ( LLLLLdddddqq\\\,,,, **;;HS]]]]]]]]]xxxxxxxx%2P?GhGhGhGhGhGhY(Y(PPxxxxxxxxxxxx5@5@5@5@5@5@R,R,R,R,R,R,R,R,R,m\m\m\m\z <\\\\\\\\\\\   ||| vvvvvv+1*1*1*1*AvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAvAv.........    #`#`#`5|5|5|5|5|5|5|5|5|5|5|5|Qh\ elqqqqqq4Ĕ8݄` )3t3t3t3t3t3t3tHQhYYfTq,ydt8D, 444*p33333@HR[$dllvvvvv4((8,,000$הttttt0 zP \ 8 p x Ǡ Ф   0 & / 8 B Kl UX _| h r {@ _startinit_envvarsrpc_get_envvarssetenvgetenvgetenv_indexgetenv_name_by_indexgetenv_countputenvunsetenvgetcwdchdirinit_service_registerinit_service_getinit_service_get_nameinit_process_exitinit_executelocklockedunlocklock_waitlocked_incrementio_create_linkio_remove_linkio_get_absolute_pathio_split_filenameio_split_dirnamemsleepsleepstring_to_ipip_to_stringmac_to_stringregister_netcardrl_attempted_completion_functionreadlinerl_line_bufferadd_historyservmgr_needqsortstrnlenitoastrtoullstrtoulatoiatolstrcollloader_is_elf32loader_elf32_load_imageloader_is_elf64loader_elf64_load_imageloader_load_flat_bin_imageloader_load_imagelist_createlist_destroylist_poplist_is_emptylist_sizelist_pushlist_get_element_atlist_insertlist_removetree_do_inittree_do_createtree_destroytree_searchtree_inserttree_removetree_prevtree_nexthandle_idrpc_io_openrpc_io_closerpc_io_readrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkrpc_io_unlinklostio_initfilehandleslostio_typeslostio_dispatchget_typehandlelostio_register_typehandleget_filehandlelostio_sync_dispatchlostio_sync_read_waitnext_residvfstree_dirnamevfstree_basenamevfstree_get_node_by_namevfstree_get_node_by_pathvfstree_rootvfstree_create_childvfstree_create_nodevfstree_delete_childvfstree_delete_nodevfstree_clear_nodeaccesschownflockopterroptindgetoptoptresetoptoptoptarggetopt_longgetopt_long_onlygetpidgetppidlinkreadlinkmktempmkstemphtonlhtonsntohlntohsinet_atoninet_ntoagethostbynamegetservbynameopendirclosedirreaddirtelldirrewinddirseekdirfilenofdopenopencreatreadwritelseekclosepreadpwritermdir_signal_default_handlerraisesigismemberkillsignalsigactionsigemptysetsigfillsetsigaddsetsigdelsetsigprocmaskalarmsocketconnectrecvsendrecvfromsendtochmodfchmodstatlstatfstatmkdirmkfifomknodumasktcgetattrtcsetattrtcflushcfgetospeedgettimeofdayunlinkutimeinit_waitpidwait_child_addwaitpidwaitlibrpc_rpc_handlerintr_handlerrpc_response_handlerinit_messagingmessage_handlerregister_message_handlerregister_intr_handlerlibrpc_c_rpc_handlerresponsesinit_sync_messagessync_rpc_response_handlerrpc_get_dwordrpc_get_intrpc_get_stringrpc_get_responserpc_send_responserpc_send_dword_responserpc_send_int_responserpc_send_string_responsetimer_registertimer_callbacktimer_cancelasprintf_putcvasprintfasprintf_assertdirectory_opendirectory_closedirectory_readdirectory_seekdirectory_createis_directoryerrnoexit_exitabortatexitfopensetvbuffreopenfclosefflushfreadfgetcfeoffgetsferrorungetcfwritefputcfputsfseekftellclearerrrewindfpurgesetbufsetbuffersetlinebufremovetmpfilefprintf_putcfprintf_putsnvfprintffprintfdivmodulltoajprintf_putcjprintf_putsnjvprintfinit_memory_managermallocfreecallocreallocprintf_putcprintf_putsnvprintfprintfsrandrandrandomsrandomsnprintf_putcvsnprintfsnprintfsprintf_putcvsprintfsprintfstdinstdoutstderrstdio_initputsnputsputcharputcgetcgetchargetsperrorstrtolsystemtimembrtowcwcrtombwcsrtombsmbsrtowcswcwidthwcswidthiswupperiswloweriswalphaiswdigitiswalnumiswspaceiswblankiswpunctiswprintiswcntrltowuppertowlowerfgetwcgetwcharfputwcputwcharfputwsbcmpbcopybzeroffsffslflsflslindexmemccpymemchrmemcmpmemcpymemmemmemmovememsetmblenmbtowcwctomb__internal_wcsrtombs__internal_mbsrtowcswcstombsmbstowcsrindexstpcpystrcasecmpstrncasecmpstrcasestrstrcatstrchrstrcmpstrcpystrcspnstrdupstrerrorstrlcatstrlcpystrlenstrncatstrncmpstrncpystrnstrstrpbrkstrrchrstrsepstrspnstrstrstrtok_r__strtok_rstrtokadd_intr_handlerget_pidget_parent_pidcreate_processdestroy_processget_cmdlinesyscall_debug_stacktraceenumerate_tasksget_phys_addrget_tick_countget_uidinit_child_pageinit_child_page_copymem_dma_allocatemem_allocatemem_allocate_physicalmem_freemem_free_physicalmemory_inforequest_portsrelease_portssyscall_putsnpvrpcsend_messageset_rpc_handlercreate_shared_memoryopen_shared_memoryclose_shared_memoryyieldsyscall_timerunblock_processvm86_intwait_for_rpcv_and_wait_for_rpclio_seeklostio_type_directory_use_asdir_readdir_seeklostio_type_directory_uselostio_type_ramfile_uselostio_type_ramfile_use_asramfile_readramfile_writeramfile_seekregcompregerrorregexecregfreewcpcpywcpncpywcscasecmpwcscatwcschrwcscmpwcscollwcscpywcscspnwcsdupwcslcatwcslcpywcslenwcsncasecmpwcsncatwcsncmpwcsncpywcsnlenwcspbrkwcsrchrwcsspnwcsstrwcstokwmemchrwmemcmpwmemcpywmemmovewmemset// 132 ` add_intr_handler.o/ create_process.o/ enumerate_tasks.o/ get_tick_count.o/ init_child_page.o/ set_rpc_handler.o/ unblock_process.o/ crt0.o/ 1243805999 1001 1001 100644 3568 ` ELF<4(US$EEEE(EE< u}uEEEE] u9rÃ}uEE@)ĉe؋E؃E؋E؉Ehu‹EE ]hj‹EEE;E|؋UEEPuE P u% $ > : ; I  I$ >  : ;  : ; I8 .? : ; ' @ 4: ; I I !I 4: ; I? < GNU C 4.2.2crt0.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcEsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&Hcharlong unsigned intio_resource_id_t.%1Hid2h#path3B#pid45#resid5h# buffer_ptr73#buffer_size8%#buffer_pos9%#buffer_mode:#ungetc_count<%#ungetc_buffer=H#!io_resource_t>FILE4N _start+E args:B` argc;d pos;h f;l argvR\ resultZp B P stdout7ce ../includecrt0.cstdint.hstddef.htypes.hio_struct.hstdio.h*vYYZYZ^uvh>utth?-P | EAB Dn.uuEt o_startEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4E  %|+|0|B$ > 8R/N ^j4f  w ,8 U  u  l    E"#2ER_jv}crt0.c_startinit_memory_managerinit_messaginginit_sync_messagesinit_envvarsinit_waitpidstdio_initget_cmdlinestrlenstrtokmainstdoutfflushexit !&v%.<imq{ r envvars.o/ 1243805999 1001 1001 100644 9364 ` ELF4(UVS hh jE}jjhuE}E@ E@ E[EE uE@Ejuuu uà uEEE@ ‹E@9re[^U(EEEE P@EE@ P@EEEEPuEEEEuRPEPEEEuRPEEEEuPE}SEPuu u uUE(EPuu EE,EuPE}uEEU uE}u E E@EEUuPE}u E E@EEUuPE}u EEEEU PU uE} jE}u Em u@ P‹E u @ P‹EPEt E@u=E PE@ P uE uPERuP u PE@Ru PuPi u @ PE u @Pu u} u E"E@ PUEBEEU(j=uE}u EEUE)ȉEE@)ĉeEEEEEuuPUEEE@UjPRuEEEe}tEEUEbEPuuGE PE@ P uuP EuPE}uU h E}u Ez}u0 u@E u@ PE u@;E w) u@PuuEEEEU uEjuh E uE% $ > : ; I  : ;  : ; I8  : ; I8  I $ > &I < .? : ; ' @ 4: ; I  4: ; I : ; I : ; I .: ; ' I@.? : ; ' I@.? : ; ' I@4: ;I .? : ;' I@: ;I 4: ;I I!I.? : ;' @: ;I 4: ; I? < GNU C 4.2.2envvars.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src3signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&dwordB2}pid3&# 4&#data_length5 #data6# response_t73char  &anchor'#size(&# list_nodelist_t)long unsigned int&.'#(#envvar_t)  init_envvars4 parent_pid;\A resp?`p buffer_posAd{IhJl} rpc_get_envvarsZ,pidX X&data_sizeX dataY response[` response_size\ d name_size] h value_size] l i^p_t.getenvvar]X iptgetenv];tgetenv_indexindextgetenv_name_by_indexindexɔ˭tgetenv_countsetenv4moverwritep]new_value tputenv!`str sep"pnamelen, t-lunsetenvAJ4@iBpCtgetcwdcJdestbsizeb ftchdir3pathnormalized_pathpresultt envvar_list+errnoOYg ../includeenvvars.cstddef.htypes.hrpc.hcollections.herrno.h3Lgu1gK0y- |guvw\ZK\ّp<[M .gwY0uYz<[ .gg .ghg .ghg6g.gg"#/!׾&'g! .g1g*Kɟ"6gwY0v!=0t<Y.i2gg!A .ju=GET_ENVVCWD| AB EW. AB k..R. jAB ].L.\.Q.]4AB I.:AB O.9AB O.AB L.AB I.AB K.AB ].s.JAB K.BAB I.uutuutuu]t]^u^`u`tuutuutuutu u tuutuuJtJKuKMuMtuu3t>init_envvarsrpc_get_envvarsgetenv;getenv_indexgetenv_name_by_indexgetenv_countsetenvmputenvunsetenv4getcwdchdir3envvarnamecorrelation_idvalueGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment43 %h+h0hB > |!8R*]N #^ j|f # w  |$  $!( r j  !.:Jcr]4:9 '.5;DPJWB]envvars.cenvvar_listgetenvvarinit_envvarslist_createrpc_get_envvarsregister_message_handlerget_parent_pidrpc_get_responsestrlensetenvpreallocmemcpylist_get_element_atvrpc_send_responsefreestrcmpgetenvgetenv_indexgetenv_name_by_indexgetenv_countlist_sizemalloclist_pushputenvstrchrerrnounsetenvlist_removegetcwdchdirio_get_absolute_path  -FN&<Xv 0<M %D&gt&&";CO'Wdq&)Ilz* ,'3DTY!&/'lptJ PTX vz   -QUY r   @NR~  %EIM v t 8 <\ `       ( ,H Ld hinit.o/ 1243805999 1001 1001 100644 6052 ` ELF 4(USE uà u@ PE uPuu uX u‹ESuP u@ uPjhj ]U u@uPh jUEPjhjUSE u PE uPuu u‹EƒjEPR] u u uPjhj ]UhEh$uEE@)ĉeEEEE̋ẼuuPUEẼ PE}tjuE uE h&E}uEEe u@)ĉeEEEEЋEЃuPEЃh+PEE uEEE)ĉeEEEEԋEԃuPUE/M̋UԋE@QPEԃjPu:Eԃ P@ PEEԃPuEh+jEEe}t }Ee}t}u E uEEE PEEE@EE)ĉeEEEE؋E؃uPEMU؋EQP uEPuh-jE܃}t uE܉EeE% $ > : ; I I$ > &I.? : ; ' @: ; I 4: ; I 4: ; I .? : ; ' I@  I!IIGNU C 4.2.2init.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&'char8'long unsigned intinit_service_register-name,! .2l msg/!p init_service_get?,name>! init_service_get_nameJ! X!pidIinit_process_exitT vresultS U2l msgV!p init_executeecmdd2 pidfT program_leniX programjD abs_pathk!\ abs_path_len` args_lend rpc_sizeh rpc_dataP e pathy2l path_backupH dir!p  dir_lent program_pathL '/ '/ '/'/? ../includeinit.cstddef.htypes.h,uu17' Xg" .gK6uu*&^f\Y*K!#x/g35"g/!Lp'gK)!gػSERV_REGSERV_GETSERV_NAMSERV_EXI PATH;LOADELF |  AB DM.. *AB I.AB P. AB DM.. 7AB S.uutuutuu t  u  u tuut~Rinit_service_registerinit_service_getinit_service_get_name!init_process_exitvinit_executerpc_nameGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 %4+404B> lR N 4^ 6j f <P w x     # 5 0    %,3@*Q_u 7init.cinit_service_registerstrlenmallocmemcpysend_messageinit_service_getrpc_get_dwordinit_service_get_namerpc_get_stringinit_process_exitinit_executestrcspnstrncpyio_get_absolute_pathaccessfreegetenvstrcpystrtokwait_child_add %5FXfw->P^z8Ql~ !Y }  !2G  "imqmqu     8<@ Z  FJL < @X \t x lock.o/ 1243805999 1001 1001 100644 3076 ` ELF<4(UW}0u_UEUEUuuUE% $ >  : ; ( : ; I.? : ; ' @: ; I  I 5I .? : ; ' I@(GNU C 4.2.2lock.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcNsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong int<FALSETRUEbool<dwordBlock&^l%^d  locked3,l2^unlock=,Xl<^lock_waitG,ClF^locked_incrementQCN varP & *W3 ../includelock.ctypes.h%KD=Y6=6=!6=g| AB A AB AB ,AB F.C AB uutuutu!u!,t,-u-/u/CtCDuDFuFNtP,7lockilockedunlocklock_waitlocked_incrementNGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4N %+0B,> RA[N b^ P o0~ Tz  `   0  @     %,/C lock.clock_looplocklockedunlocklock_waitlocked_increment6imqAEI y}     @ 4 8L Pd h lost_link.o/ 1243805999 1001 1001 100644 5904 ` ELF4(UH}ubhu E}u E_ u@uPju uE% u E u E}t}uEhuE}uEhuE}uEMEPE@9t EẼ u@EE EE)ĉeȋEȃEȋEȉE܋E܉EUJEPE uuPEEEEPU܋E@RuhPEEE}tB}}tIX}t}tJE7E$ EEẽ u u u uEEċEU8 uE uE}t}uENhuE}uEE܃ u@EE EE)ĉe؋E؃E؋E؉EEEUJEPEuuPEEUE@RuhPEEEԃ}tB}}tIX}t}tJE7E$ EEe܃ u u uE% $ > : ; I  : ;  : ; I8  I : ;  ( $ > : ; I8 I !I.? : ; ' I@: ; I : ; I 4: ; I 4: ; I  : ;  : ;  &I4: ; I? < GNU C 4.2.2lost_link.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcQsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$charpid_t&long unsigned intio_resource_id_t.%1Did2d#path3D#pid4B#resid5d# buffer_ptr7@#buffer_size8*#buffer_pos9*#buffer_mode:#ungetc_count<*#ungetc_buffer=J#!8io_resource_t>|FILE4P< FALSE TRUEbool R_ N ^i j Lf   w X( 8 `   N  8     ")07IZ`gsxlost_link.cio_create_linkfopenstrlenfwritefcloseio_split_filenameio_split_dirnameerrnomemcpyrpc_get_intfreeio_remove_link;M[u(H 0C\jx ~)7Enrv %       #9NSW\     ( .3 AEJ  4 8lost_path.o/ 1243805999 1001 1001 100644 9536 ` ELF4(U(EEEEEEE}u EE‹E)ȉEEE܃}:tF}:}}/tU}\t }|trE@EE@EE@E.juuubEjuuuJE}t+E@EE@Euuu EEtEU hE} vE Eu uPU EDUEUEBEUSEEEhPu'uu uEEhPtE Pu!uu uM}tD] uH9s.uuEtM uEuuE}]U(Eu EEjuu uHEuuEEuE@t uEu u u?juE}tE@u E@ uEE@ PEjuu uEE܋EUjjE uEuuuuuEE@ uU(EjjEjuu[ uju ujuE}t E@u uE uEuuuMuuE}uσ uUEEJE PEE@E}t}r }w hEEEEPuE}uEU uEEPu E PE E@E}t"}t'}t(E :E E /E E /E E |E }u uMuuE}\E UEjuu8juE}EhPEE@ PE}t1EuPuEE u uE}uۃ uEE uEEU(EjuuO uE uuSEuEE@E@EuE@.E@ uu u uHPuEEuM hEEE@E@ uuPu uEE@ PEjuu u uE}uۋE PE% $ > : ; I  I : ; (  : ;  : ; I8 < $ >  : ;  : ; I8 I!I/ .: ; ' @: ; I : ; I 4: ; I 4: ; I  &I.: ; ' I@.? : ;' I@: ;I 4: ;I 4: ;I .: ;' @: ;I .: ;' I@.? : ;' I@xGNU C 4.2.2lost_path.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src" signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$charlong unsigned intdwordB& anchor'# size(b# list_nodelist_t)o %NO_SEPSERVICE_SEPPATH_SEPPIPE_SEPpath_sep_t. path_element0E 21# 2# text4E#Uget_path_elementshfpathg-gpositiongescapediV`posjd kh2llm$p9"cur_sizev tcreate_path_elementE$f,textClenD 2DD F$teliminate_dot_elementsX-i͖hdotdotΖl$pio_get_absolute_path8 path$d h lsize pnew_path8tresolve_relative_path u-cwd8l$p tresolve_relative_serv_pathu_-cwd_listdcwd8h$l 'pi(tcalc_path_length9 _-8size: li;p<$tcreate_path_string^4i-\buffer\8free_element]Viapb$tio_split_filename8`path$h lyresult8plength tio_split_dirname8" pathdirname8d-hdata!lsize p$tU ../includelost_path.cstddef.htypes.hcollections.hgugguzg=v\]>4gwuv1Z2 Xgw@x=Y.g3vu=.uuv[ׅ1 .>5d< Xl.!>>1//0ב~.g"@= .i!/1$/; .guv/L/3u<= .iZKM11gfg.j1/u/i؄נ .h0"uvZ/u/0/i=...:/| fAB .fbAB K.AB Db.$AB k. kAB J.uAB R._AB ].AB I.AB V.AB V.uuftfgugiuituutuu t  u  u utuvuvxux_t_`u`bubtuutuutuu" tR|io_get_absolute_pathiio_split_filenameio_split_dirname" right_sepelement_stackelementlast_elementlistleft_sepGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4"  H (%X +X 0X B |> p"RN $^'j00f $ w`V (%n  0%;0 x ffb 3J k`u{_  $ $+2DLT]nlost_path.cget_path_elementscreate_path_elementeliminate_dot_elementsresolve_relative_pathresolve_relative_serv_pathcalc_path_lengthcreate_path_stringlist_insertmallocmemcpystrcmplist_removefreestrlenlist_sizelist_get_element_atio_get_absolute_pathlist_createlist_destroygetcwdstrcpyio_split_filenamestrnlenstrncpylist_popio_split_dirnamelist_pushEu . 4J_m #8!")Ql| "+?V!  #z % ,&ES'j!! ')1?Ol' !nrv(kosFJNt"&*CRa(Zi Z =lb48PTptmsleep.o/ 1243805999 1001 1001 100644 3056 ` ELF84(US$ӋUЍЍډEUEUE;ErE;EwE;Er܃$[UUS$ӋUЍЍЍЍЍډEUUЍЍЍЍЍPhjEUE;ErE;EwE;Erظ]% $ > : ; I$ > .? : ; ' @: ; I 4: ; I .: ; ' @ .? : ; ' I@GNU C 4.2.2msleep.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcGsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intqwordCcharmsleep#j^msec"^timeout$hlong unsigned intdo_nothing+jo, sleep.oGXsec-timeout/hc5 ../includemsleep.ctypes.h"u70#h<1uRK0V#Y| jAB DjAB  oAB D.J.uujtjkukmumotopuprurGt# msleepsleepGGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4G 8%|+|0|B> 8 hRgN bDl^ 0 o~4'z  [  { 0  M j   j+o1@msleep.cdo_nothingmsleepget_tick_countsleeptimer_registerwait_for_rpcBw kos,04   B 4 8L Pnetwork.o/ 1243805999 1001 1001 100644 4076 ` ELFx 4(UEE|EE}.t}.|XE0 wME}vLE[MEDЉD METE0D EEEEwEEEUSEȋE؋E%UQSPRhEP E]UWVSEE؋E E܋E؋U܉1؋E؋U܉1E؋UE؋UȋE؋UЋE%SVWQRPh EP Ee[^_U8E EȋEE̋EEEȋỦEUEEjh*EPE؍PjEPR h3ƒ EPjjhR % $ > : ; I : ;  : ; I8  I$ > &I .? : ; ' I@ : ; I 4: ; I I !I/ .? : ; ' @IGNU C 4.2.2network.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intuint64_t(long long unsigned intlong intbyte@dwordBnet_device-rnumber.%#mac/#ip0%# xcharxlong unsigned int string_to_ip,% ip+ ip_bytes-s cur_byte/w    ip_to_stringKr,R ipJ% resultLrp mac_to_stringWr}X macVP resultXrdregister_netcards} device_numberr% macr@ ipr% drivert2h bufferzPx O ../includenetwork.cstdint.htypes.hnetwork.h+gvK/$1o<ȭ4v9=[Ll=%xYv+%d.%d.%d.%d%02x:%02x:%02x:%02x:%02x:%02xREGDRV tcpip| AB HAB Dq. AB Fp. }AB u.C. uutuutuu}t}~u~utW"string_to_ip ip_to_stringRmac_to_stringregister_netcardGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 P%8+808B"> R$N ^9jf @ w8[    ` Hr    H%.<}MTenetwork.cstring_to_ipip_to_stringasprintfmac_to_stringregister_netcardmemcpyinit_service_getsend_messagebklpt #'+ imq  \ 0 4P Tt xreadline.o/ 1243805999 1001 1001 100644 14180 ` ELF&4(UE Pt E PE}tȋEEEUE;E ~WE+E +EE ‹EUE EQRPE+UEEEUE E9E@=~uEE )ȉE UE EQRPE UEQE EPEEEUE+}u"E E PtEE E ;E}!}tNjE E PuE UE}  E^M +}u"E E PtEM } x!}tɋE E PuE @EEUE uEEEE}uۃ uUSTEEE EMЋE ;EtEE t}݋EE u E ;E~EЋE +EЉE؋E@)ĉeEEEEċEEUăuPRU؋EEăjPjEE@)ĉeEEMMȋE@UċMȃPRQ E UȃPuRуE܃}u EEEԋEE܋u}E܋ PEE+MMEE܋E܋QRPuEEE܋E}uċ]Eȃ P9wZ hEuhEEE܋E}uփ hEE܋EEEE܋EjujEE@)ĉeEEEE̋E@ŨPuREE@=w}E+UEЉ)ȍXE MEЉ‹EESQPŰEEuRPEE‹E EE+E‹E uyEEeE]U(EE~E PEE EEEE9EvEEEEEuPuu"E;E wEEEE4EEEp}~ EEEEEUSt PtDž4EEEuh PhjPDžiDžEЋ]E܄tM܃}0EPu܍P;E}~1E)E܋EЃuPP}PPPPuPP h EЃQP h PM܃}  h PH9 h P@kPhDž P4)ȃPh PPRPE싅‹E)ЃPhE쉅 PPRPE+EPhE P3 u  PH;E E }M؃hjP}~,uPhPPPhPPhPP P P P9jPRP h ЃQP h PzHjPRP h ЃQP h PEPRPE)ЋPPRP;uhPP)ȃPh P(E h  PEPPPubuhPP h9Etj+EPhNuhPP)ȃPh P}jPj@E uEEuPuE䉅]Uu  u@ PE}t%uuuP 0@Thp % $ > : ; I  : ; (  : ;  : ; I8  I : ; I8 < ' I I&I.: ; ' I@4: ; I .: ; ' @: ; I : ; I 4: ;I  : ; I!I$ > .: ;' I@: ;I .? : ;' I@4: ;I  !I/ .? : ;' @!4: ; I? < "4: ; I?  GNU C 4.2.2readline.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcssigned charshort intint32_t"intlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$wchar_t&pid_t&<|FALSETRUEboolFILE4&anchor'# (# list_node list_t)wint_t)F__rl_attemped_completion_func_t '< VV \  b+WUNKNOWN_COMMANDFORWARD_CHARBACKWARD_CHARBEGINNING_OF_LINEEND_OF_LINEFORWARD_WORDBACKWARD_WORDACCEPT_LINEDELETE_CHARBACKWARD_DELETE_CHAR COMPLETE BACKWARD_KILL_WORD PREVIOUS_HISTORY NEXT_HISTORY rl_command_tMgPseqQ#cmdRW# keyboard_read_charRctdelcharR,%%pos+count F inscharYX%pos++c find_word_endY%startbegin_foundtfind_word_begin@W%startɤɤword_foundˤtfree_matches_array@matchesVipmatchtcomplete_word|5%pos+len+word_posHmatch_countLwword_len8PmatchesVTreplacementXmatches_list_displayed|\wword5word_len8`wordG@wrepl_lenJ8dwreplKVDout^i%hmatch&lmatching_chars'pFDDVDFeDfind_commandq4 bufp lenp8cmdp found_partrhseq_lens8lmin_lent8piu8t  F Wreadline` prompt\ wold_posHposwwenter|Lhistory_posPcommandWwcmd_buf wcmd_pos8Tagainneeded_size\8Xreturn_buf]\=result`format w  next_word_end8d s word_begin8h ~ oldpos.l old_posBpF DF D add_historyhsN linegcopyitk^ D builtin_commandsSN historyt  !stdin6  !stdout7 "rl_attempted_completion_functionz  "rl_line_buffer}; ../include../include/readlinereadline.cstdint.hstddef.htypes.hio_struct.hstdio.hcollections.hwchar.hreadline.hgv/K4g74g1; .gv/w7)= .gvg=/w7'6ji.t^x;>-Y*vg =;%mY-ixK-iB#ػXgyu<J4Kuxv/Y\#wgg+$#=([=[g[#[#ɑ\#^]Bg,gu!$\=&[&[ב&)/u#\v[ɒ$/u/u#~v^ig> [3~  %s %s[%dD[%dC%s[%dD [%dD; r  ~  s s | RAB U.RiAB |.AB W.YhAB a.AB s.@DAB R.WAB D.AB a.$mAB GI..H.dAB \.uuRtRSuSUuUtuuYtYZuZ\u\tuu@t@AuACuCtuutuutuutuustc  readline add_history rl_attempted_completion_function rl_line_bufferssizebufferGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4s /)p % 3h/040F B $4V?R 46 fP Pb <6p r!<n 6 "$g L7$  T7% '%9%)p X-  p%R8Ri@HYhVf@DyW %m.5<DKUirydreadline.cbuiltin_commandshistorykeyboard_read_chardelcharinscharfind_word_endfind_word_beginfree_matches_arraycomplete_wordfind_commandrl_attempted_completion_functionstdinfeoffgetwcwmemmoveiswalnumfreewcsncpywcstombsstrlenstrncmpprintfmbstowcswmemcpywcslenwcsncmpreadlinestdoutfflushwmemsetfputwslist_sizelist_get_element_atasprintfmallocrl_line_bufferadd_historylist_createstrcpylist_push.7~)V{. N!!")#V"ej$$$%(%z&'0?(Xu$*+,#.3$<*V-af$n*w+$*+  $ *" +F K $] *f +  $ * +  $ * +H M $^ *g +  . ,  / %  0 $ $, *< -N V *_ +q '  $ * -  $ * +\ a $j * -  $ * +! & $. *> -\ a $i *r +  $ * +   $ * -$9>$NS$[*k-$*+!12!4$/"<1V5^j6 (08@HPX`mqu=AENj  4nrv{& * . I |  * . E I a e        ! % x    2 $(,048<@DHL48PTlp$(servmgr.o/ 1243805999 1001 1001 100644 2800 ` ELF04(US uXuShP]U h E}tE% $ > : ; I : ; ( $ >  I&I .? : ; ' I@ : ; I .: ; ' I@ 4: ; I GNU C 4.2.2servmgr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src_signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&<.FALSETRUEbool<charlong unsigned int`: servmgr_need&.4 service_name%Z servmgr_pid1 4_, pid2 tV6 ../includeservmgr.ctypes.h%u(`i/W=NEEDSERVservmgr|  4AB DF.K.O.4+AB R.uu4t45u57u7_teservmgr_need_GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4_ 0 0%+0B;> ` PRZN ^hj|Tf  wX(# K  k}@  P 4+  4$+9?servmgr.cservmgr_pidservmgr_needstrlenrpc_get_dwordyieldinit_service_get"(=EJlpt{  C < @sort.o/ 1243805999 1001 1001 100644 2524 ` ELF4(U uEEE@EUEEERPEЃ~kEEEuPuE@EUEEEuRPE@EEuuP}~MEUE H9[% $ > : ; I.? : ; ' @: ; I 4: ; I  ' I I  I &GNU C 4.2.2sort.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$qsort basenumsizecomparator tmp$pi%t    `4 ../includesort.cstddef.hjuY('g[v< | AB I.uutqsortGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 T %+0B> t 8R8dN b0^  o,~z    4F8  8    sort.cqsortmallocmemcpy `imq#' Astring.o/ 1243806000 1001 1001 100644 5024 ` ELF, 4(UEEEEu M } uEU0EEuU} wUE0DEUE7DEEuE}uEDEEU EHDӈEM}uEE UVS8EEEEE< tE< tE< tE< tًE<+uEE<-u EEEE؃}t}t3HE E<0u8EE : ; I.? : ; ' I@: ; I 4: ; I  I&I .? : ; ' @  I !I/ $ >  : ; .? : ; ' I@GNU C 4.2.2string.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcFsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strnlen#4cs"cmaxlen"len$tinchar itoa/4,n.s.base.st0Ki1ly;p Awt5tn n   strtoullE9XnptrDcendptrDbaseDresultF`negGloutstrtoul9Rnptrcendptrbaselong unsigned intatoiRiscatoli-strcpositivehresultllengthp  cnwstrcoll-Fs1cs2c6 ../includestring.cstddef.h"gv/;=2hxu=u0!91w/;$Yu <>uuZw1/PY@i@Zi@01@h<g1w==2>!2guuvuY?0>Sgug4h| 4AB 4AB tAB E9AB L.RAB J.iAB -AB L.uu4t45u57u7tuu9t9:u:<u<RtRSuSUuUitijujlul-t-.u.0u0FtZstrnlenvitoa strtoullstrtoulatoiatolstrcollFGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4F %|+|0|BN> R N b ^ p o 4~ ^z  N  n  tP  A    44t 9(R-i2-:string.cstrnlenitoastrtoullstrtoulatoiatolstrcollstrcmpI`=kos'+/  "&    -15  C04HLhlelf32.o/ 1243806000 1001 1001 100644 4188 ` ELF( 4(U} 3w E5EEE=ELFt EE@<t EEEUS$E EE=ELFt E'E@PuEPEEEEE@%% EE PEEXEPEE@ESQPEPE@)E@E‹E@QjPE E@%RuPuE EE@,;EEE؋]% $ > : ; I  : ; (  : ;  : ; I8 I !I/ $ > .? : ; ' I@ : ; I 4: ; I  I: ; I 4: ; I  GNU C 4.2.2bin_loader//elf32.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$vaddr_t$!pid_t&#e_shoff?# e_flags@#$e_ehsizeA#(e_phentsizeB#*e_phnumC#,e_shentsizeD#.e_shnumE#0e_shstrndxF#2   Elf32_EhdrG _p_type`#p_offseta#p_vaddrb|#p_paddrc|# p_fileszd#p_memsze#p_flagsf#p_aligng#Elf32_Phdrh loader_is_elf32*WO )# )0t loader_elf32_load_imageEWO,processD2 D# DG`program_headerRdiVh{page_count_lmem_imagea#pW bin_loader/../includeelf32.cstddef.htypes.helf32.h)hgi5viOK6;#iJJ| OAB OTAB Dk.uuOtOPuPRuRt>loader_is_elf32loader_elf32_load_imageimage_startimage_sizeelf_headerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 d(%+0B> RN b8L^ $  oX~Bz D   L> "` r  P z    OOT1FZahelf32.cloader_is_elf32loader_elf32_load_imageloader_create_threadloader_allocate_memmemcpymemsetloader_assign_memQtvz~    59= X f t d04elf64.o/ 1243806000 1001 1001 100644 3304 ` ELF4(U} ?w E5EEE=ELFt EE@<t EEEU% $ > : ; I  : ; (  : ;  : ; I8 I !I/ $ > .? : ; ' I@ : ; I 4: ; I  I.? : ; ' I@: ; I GNU C 4.2.2bin_loader//elf64.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcYsigned charshort intintlong long intunsigned charuint16_t&short unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$vaddr_t$Qpid_t&<FALSETRUEbool   Elf64_EhdrQ loader_is_elf64)O (S (Celf_header/tloader_elf64_load_imageEOY,processCb CS DCc bin_loader/../includeelf64.cstdint.hstddef.htypes.helf64.h(hgi6>+X| OAB O AB uuOtOPuPRuRYt>%loader_is_elf64loader_elf64_load_imageYimage_startimage_sizeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4Y!',>v: 8 pNYJ ^DZ  k(XzBv        1    OO elf64.cloader_is_elf64loader_elf64_load_imagevz~>BF O ]    p04flat.o/ 1243806000 1001 1001 100644 2592 ` ELF4(U uEuu uh@uuuh@u% $ > : ; I  : ; ( .? : ; ' I@: ; I 4: ; I GNU C 4.2.2bin_loader//flat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcVsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$vaddr_t$ pid_t&loader_load_flat_bin_image-VVprocess+1image_start+"image_size, mem_image/"tiK bin_loader/../includeflat.cstddef.htypes.h,h?1Z| VAB I.uuVt-bloader_load_flat_bin_imageVGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4V %+0~B > 8RmN b\0^  o,~1z          0 e   V#7>Sflat.cloader_load_flat_bin_imageloader_allocate_memmemcpyloader_create_threadloader_assign_mem $7Muy} Xloader.o/ 1243806000 1001 1001 100644 2672 ` ELF4(Uuu tuu uEEuu tuu uEuu uEE% $ > : ; I  : ; ( .? : ; ' I@: ; I 4: ; I GNU C 4.2.2bin_loader//loader.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src~signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$vaddr_t$"pid_t&  8R rN @ b0^ H  o,~(z X    ` $6(0  X     ~,DTlloader.cloader_load_imageloader_is_elf32loader_elf32_load_imageloader_is_elf64loader_elf64_load_imageloader_load_flat_bin_image(>Vow{ Zlist.o/ 1243806000 1001 1001 100644 6704 ` ELFt4(U jEEE@EU uu uU}t Eu EEEU}t Eu E E@EEU}u EU jEUE BEEUEE@PEP;Eu @EEEU}u E~Et>E@EEEEE uE@PEPE;Eu u  HEEEU}tEt} y EEEE EtF;Eu<;E 2t))EEEE}u E'M}uEE EEEEUu u?E}t E@EEEU jEUEB}u E} t6E HPuE}u EZEEUEEEUEE@PEP;Eu;E | @EEEU}u E} tYE HPu9E}t Eu EEEEEE@E u;Eu EsEEEEE@E uE@PEP;Eu+;E ~ H;E u EEE% $ >   : ; ( : ; I : ;  : ; I8  : ;  : ; I8  I .? : ; ' I@ 4: ; I .? : ; ' @: ; I 4: ; I .: ; ' I@ .? : ;' I@: ;I 4: ;I 4: ;I $GNU C 4.2.2collections//list.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcPsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong int<-FALSETRUEbool<dwordB&oanchor'#size(9# list_node'next"# ## olist_t)F list_create5. 6t list_destroyA.V,@ list_is_emptyM-VXTL list_sizeU9T list_pushgf felementlt list_pop,old_anchorp tlist_get_node_atccurrentpnt list_get_element_atc4ڞnodeܟt list_insertO`d new_nodep tlist_removeOP lnode%pm'tlast_list*last_index+last_node,Q collections/../includelist.ctypes.hcollections.h4g=4h#4g"4g咼 .gg󑟃柯 .jgw.gKh&/g.gg.ggg0g柟 .igg0彃柟ɟ| .AB H..(AB I.V*AB ,AB oAB W.AB @.AB c4AB I.AB H.t.OAB c.G.uu.t./u/1u1VtVWuWYuYtuutuutuutuuctcdudfuftuuOtOPuPRuRPt(list_createlist_destroylist_is_emptyTlist_sizelist_pushlist_poplist_get_element_atlist_insertdlist_removePprev_nodevalueindexlistGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4P h%+ 0OB(> R N pb (^ x o ~z  r   '   8.DK.(XafV*t,~oc4Olist.clast_listlast_indexlast_nodelist_get_node_atlist_createmalloclist_destroylist_popfreelist_is_emptylist_sizelist_pushlist_get_element_atlist_insertlist_remove ;M _DLT&0:@%+2=vz~  59= Fgko x  EIM Vd  +LPUz~  #^ 4 8P Th l       tree.o/ 1243806000 1001 1001 100644 10108 ` ELF4(UjjuUE BUEBE@ @U jEu uuEU uUS$E EEEEEEEUEUiEEuuEUEUM13E ȅt>EUE؉U܋U;UwE;ErU;Us E@E E@E}uUEM]E1ȋU1 Ѕ]USu u1‹E@PEUEH XE!ȋU!ڋ]UU E@)U(E EEEEPuuutEPuEEEUEEE@EEEUEE@t EPEEPEPUEBUEUEEE@EEEUEE@t EPEEPEPUEBUEUE uEE%E @;E u E E E EEU!u uEE @ E @EE @@ ~7uE @ E@ EjPE @@ u$uxE @ E@ {E PuEE@ u EEE UP E@ ЋEP E@ EjPE @ E @EE @@ y7uE @ E@ EjPE @@ u!uE @ E@ vE PKuE@ ЋE P E@ u EEEUP E@ EjPE E } UEE@;Eu;E@ ~EEE@ +E B E@ ~BE9E@ yEEE@ E B E@ yEEEEt }dU(u uEuuPEUE@E@E@ EuEUEEEEPuuu&ujEUEPuEUE;ErE;EwE;Ev UEB UEBjumuu$EEEUE@‹E U(u uEuuEE@u?E@u5juEEPuE EE@tNE@uDjuEPEEPEEPuHE EE@uNE@tDjuTEPEEPEEPuE Ecu uEE@E E@EE@uuugEE@EEEEEEPEPEPEPEP EP E@;Eu E@E@t EPEE@t EPEUEUEE;EuBE@ PEP UEBE@  juuuE}tUEE@ PEP E@ x juuuE E܋EUu uSEEE} u EEeE@uGEEEE}t E@;Et}tuuEEEE/E@E E@EE@uuuyEEUu uEEE} u EEeE@uGEEEE}t E@;Et}tuuEEEE/E@E E@EE@uuuEE% $ > : ; I  : ;  : ; I8  I : ;  : ; I8 .? : ; ' @ : ; I .? : ; ' I@ 4: ; I .: ; ' I@: ; I 4: ; I .: ; ' @.? : ;' I@: ;I 4: ;I 4: ;I .? : ;' I@GNU C 4.2.2collections//tree.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intunsigned charshort unsigned intunsigned intuint64_t(long long unsigned intlong intsize_t$tree_itemAparentB#leftC#rightD#balanceE# 3ProotQ# R## #S##key_mask^# tree_t_ tree_do_initD=0 B0 C# #C# tree_do_createP0=l, O# #O# Q0t tree_destroy\lX [0do_searchmN9 l0keylX 3l9 resn` odcurrent_keyphget_key7N 70 7res8hto_node)1 )0 ) tree_search1 0key`rettrotate_leftP4croot9 ptmptrotate_rightP`root9 ҈ptmpӈtlink_from_parent9 0 rebalance&O 0 pitem9ptmptadjust_balance& valuestopttree_insertD0C03C1newElparentFhnew_keyGpto_tree_item0<[ 00 301tree_removem1t h l03l1n`pitemo9dsubsthpsubst9lold_leftpold_parentttree_prev1t & n031poldttree_next1& 031poldt^ collections/../includetree.cstdint.hstddef.hcollections.hg!5g==6g./u"/gg>$x fXw'/mX=.#>,.g5g .g4jZʭuʭ&gxʭuʭg&3E>~.gvY̻v/v/wj..g>h0}.=.g=ɑ==ɭ==ɭ=/呟0g .ghg g(/= .ghgg(/=| =AB M.=/AB H.lAB I.AB D~.NFAB DI.AB KAB \.S.]AB P]AB AAB 48AB N.s.g.]..u.g.]..&AB  AB L..Q.AB 8AB I.R.l.l.l.l.Y..v.Q.t AB I.& AB I.uu=t=>u>@u@ltlmumouotuuNtNOuOQuQtuutuutuuPtPQuQSuStuutuu&t&'u')u)tuutuutuut tt u uu w uw & t& ' u' ) u) ttree_do_init6tree_do_createtree_destroytree_searchtree_insert[tree_remove tree_prevntree_next itemtree_item_offsettreecurrentsort_key_offsetnodeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4  L# % + 0 kBw > l#RCN L&b (^ T& o4~ z d'   l'8 D  d"NF"].P];AL8V&e   r==/lKt & tree.cdo_searchget_keyto_noderotate_leftrotate_rightlink_from_parentrebalanceadjust_balanceto_tree_itemtree_do_initmemsettree_do_createmalloctree_destroyfreetree_searchtree_inserttree_removetree_prevtree_nextI`yvz~"NRV_m{OSW`n'+/Gtx| #bfjs.26?Mquy!%)2APk48PTlp,0dh|handler.o/ 1243806000 1001 1001 100644 14776 ` ELF@)4(UWVSlj%jEPEẼ j,EЋEЋỦlj%E@(EЉE̋EEԋE@E؋E*Eܡu EE؋EԊuRPu2 E}u.EEPj%u u uE@@%lEԊ@YE@ PE}t E@u E:EPhjPu҃E}E u)ĉEȋEԊ‹EȈ uPE@RuP]ȃ uSPhjE}t E@ u EE@ j%PEPEPuo EEE@P@EEuE uEPj%u ue[^_UEEEPu uju uju uUVS0EEEPuE}u( h ju uE@ PE}t E@uju uE@ uuƋEPE@ƒ)ĉeԋEԃEԋEԉE܋EXEHE@UQPRuӃEEPuu u]E@ PEEHEPE@RPuuуEE@ Puu ue[^U(EEEEPuE}tE@ PE}E@E@ u:EEEPE@ЋE9v-ju uE@ PE}uju ugEHEPE@uRPuуEE@ tE@ Puu uju uUSEEEPuE}uju uwE@ PE}tDE@t:EXEH EP@QRPuӃEEPu uju u]UEEEPuE}t$E@%tju uju uUEEEPuE}tEP@EUEEEPju uU(EE} v4E@ ;Ew&E@@U PR‹E@9tju uEPuEE@PuE}t}uju u~E@ PE}tKE@ tAEP E Puu҃E}tEuu uju uU(EE}v4E@;Ew&E@@UPR‹E@9tju uEPuE}uju uUE@RPEE&E@;Euju uEuPE}uE@ PE}tHE@$t>EP$EPu҃E}tEuu uju uU(E E܋E PE}E PE uE u}taE PE}t8E@t.EPEuuPEP҃E;E/ jE}t E@u EPh#EEPEuuPEP҃u EE PE}twE܃tE@%u EE PE}t4E@t*EPEuuPEP҃u E6E PE}u EE܃tE@%u E j EEBUEBU܋EPUEB E@@E@UEBuPEP @ Ѕu#E@%uE@EPE PE}tE@ tE@ uЃEE؋EUE E;E t EuPE}uփ}uEiuPE@ PE}tE@tE@ uЃ uEE% $ > : ; I  : ; (  : ;  : ; I8 : ; I8 <  I $ > I!I : ; : ; I' II' &I : ; .? : ; ' @: ; I : ; I 4: ; I 4: ; I   !I/.? : ;' @: ;I : ;I !4: ;I "4: ;I #.: ;' I@$4: ; I? < %4: ; I?  GNU C 4.2.2lostio//handler.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t&x 6id7`# 38@# y9@# \:# io_read_request_t;l>id?`# 3@@# yA@# \B# =C# "iio_write_request_tDGtidH`#offsetI #originJ# io_seek_request_tK<NidO`#io_eof_request_tP Ytarget_idZ`#dir_id[`# *]@#name^# Fiio_link_request_t_bedir_idc`# *e@#namefe# Ftiio_unlink_request_tg.typeid_t <( @+type A#name B@#size C# = DN#resid E#flags F#children H+# parent I1#$ =  J Pid Q#pid RP#flags S#source T# pos U# = XN#node Z# T 7lostio_filehandle_t [B( hid i#not_found j#pre_open k#post_open l# read n#write o#seek p/#close qE#link sp# unlink t#$uP @   @N@@ @@@N /  E 5ee kF Ke vtypehandle_t ulostio_internal_file, yres zT#free_buffer {u#(rpc_io_open:F pid9Pj99@=9N io_resabufh^ wsizei@`oKpathl@dmsgmo @respq~ hmy_pid;P   P  o i F~ i rpc_io_close, pidPj@=N io_restrpc_io_readwX pidPj@=N read_request X\QX `shm_ptrNdsize@hbuf Tsize@l  irpc_io_writew pidPjۍ@=N QX dwrite_requestޗ hlwrite_dataNp#@t "rpc_io_seekqK pidP j @ =N !seek_requestK d"h"QX lY"##p trpc_io_eof3q pid2P j2 2@ =2N !eof_request4 p"8t rpc_io_tellK1upidJP jJ J@ =JN !tell_requestL p"Ot!responsePhrpc_io_linkl1_4@pidkP jk k@ =kN !link_requestm@d!target_filehandle{h"B}l"QX p J"#t rpc_io_unlink_ `#pidP j @ =N !unlink_request#\"B`!noded!fhh!il"QX p "#t t#lostio_open path@attrTpidP  !noded"QX h!handle<l  !parent_path@p!parent_nodet#lostio_closebu hpidaidaP!handlecl"QdX p!iet$filehandles ++%handle_id26 lostio/../includelostio/includehandler.cstdint.hstddef.htypes.hrpc.hcollections.hio_struct.hio.hlostio.hlostio_internal.h92!hguhu=4)s]!C%(s1b<!.vu?giN15ihh0[/]5#g2L"%>{gujggw/[Ng/1"#c<!.15ujgh01#F61_gjiL,415giih>.gj:/^hw/2gvy< .0.gj:/]ih/]/Ugvz< .0.&!hh"="hg#h/@g .m[ hY=Z؟IO_OPEN Filehandle nicht gefundenDatei nicht vorhanden: '%s' | (AB IK.b.g.OAB U.xAB ER.w?AB \.AB DR.qbAB U.^AB U.1.AB o._xAB o. AB P.$ AB j.W.Z.H.T.uutuutuuwtwxuxzuztuuqtqrurtuttuu1t12u24u4_t_`u`bub t u u t u u trpc_io_open rpc_io_close rpc_io_read rpc_io_write rpc_io_seekQ rpc_io_eof rpc_io_tellurpc_io_linkFrpc_io_unlink}handle_id vfstree_node_tio_sourcedata_sizeresultname_lenblocksizedatadir_filehandletypehandleshared_mem_idcorrelation_idblockcountfilehandleGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4  02% + 0 B> 5RB!:N 8^|#@j#lf 8 w(% ' 9'  9'n((,` 80   #   0:FMT\nsOx w?&qb1^=1.IQg_xuhandler.cmy_pid.2053lostio_openlostio_closehandle_idrpc_io_openmemsetmallocget_pidrpc_send_responsefreeget_typehandlestrlenmemcpyrpc_get_responserpc_io_closerpc_send_dword_responserpc_io_readget_filehandleputsopen_shared_memoryclose_shared_memoryrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkstrnlenrpc_send_int_responserpc_io_unlinkvfstree_get_node_by_namefilehandleslist_get_element_atvfstree_get_node_by_pathvfstree_dirnameprintflist_pushpvlist_remove.qz > . 3!Fb"U#i ("D# Pe  (d)*  *A*V*)* * ,. *> -J .j  * * / 0 /) C    1 /L  /   > -J 2R -  3 - . 4 -* 52 4F x tx|H8   % 3 S         A           . < a o        ( 6 \ j n         # 2 6 ; b f j         +R  '+0Z^b z >BF ~  L D H` d      , 0H Llostio.o/ 1243806000 1001 1001 100644 6620 ` ELF4(U hhhh hhhhhh&hh/hh8hhAhhJUUEEE E:Et!UERPE}uՋEUWVE PE}uuPEUlj e^_UEEEuPE}t E;E uE% $ > : ; I  : ; (  I$ > &I  : ;  : ; I8 <  : ; : ; I' II' .? : ; ' @.? : ; ' I@: ; I 4: ; I 4: ; I .? : ; ' @: ; I 4: ; I? < 4: ; I?  GNU C 4.2.2lostio//lostio.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t&8typeid_t< (@ typeA# nameB# sizeC# dataDM# residE# flagsF# childrenH# parentI#$+J+ P@ idQ# pidRO# flagsS# sourceT@# posU# dataXM# nodeZF#lostio_filehandle_t[ (h idi# not_foundj;# pre_openk;# post_openlS# readnx# writeo# seekp# closeq# links# unlinkt#$t55O@MMLA?xMM??Y?M??M~M MMMMtypehandle_tuglostio_init2lostio_dispatchO ,get_typehandle[ PXidZd\pi]tlostio_register_typehandlerPqoldtypehandleslget_filehandleMxpidOidfilehandleMpitvfstree_root*filehandles'lostio_types* lostio/../includelostio/includelostio.cstdint.hstddef.htypes.hcollections.hio_struct.hlostio.hlostio_internal.h1huKKKKKKKKK4gY .v0= .lh> thvY;'Y=/IO_OPEN IO_CLOSEIO_READ IO_WRITEIO_SEEK IO_EOF IO_TELL IO_LINK IO_ULINK| AB I. AB  EAB l.P[AB EL.OAB g.[.uutuu t  u uPtPQuQSuStuut(lostio_initElostio_dispatchfget_typehandlelostio_register_typehandleget_filehandlefilehandleslostio_typesvfstree_node_ttypehandleGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 $%0+000aB> RU N l^Q Sj f tP wH $    dp P    "/;HTmz  EP[3=OLNlostio.clostio_initlist_createvfstree_rootfilehandleslostio_typesrpc_io_openregister_message_handlerrpc_io_closerpc_io_readrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkrpc_io_unlinklostio_dispatchlostio_sync_dispatchget_typehandlelist_get_element_atlostio_register_typehandlelist_pushget_filehandlepv #,16;CHMX]bmrw1;!e v#%!&sw{,  9=A Z^b ~    +/3  4 8L Ph l sync.o/ 1243806000 1001 1001 100644 4608 ` ELF$ 4(UWVS,EE@HX EP@Ή)׉uЉ}ԋEPE@ ‰EE}9}rEE9Ewu9ur5UEHE@RjQPuPEuPE}Oe[^_U jEu UE BUEBEjuPUEuP% $ > : ; I  : ;  : ; I8 <  I $ >  : ;  : ; I  : ;  : ; I8 .? : ; ' @4: ; I 4: ; I : ; I : ; I GNU C 4.2.2lostio//sync.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcPsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&byte@dwordBqwordC&anchor'#size(V#list_nodelist_t)plong unsigned intio_resource_id_t.%1id2#path3#pid4=#resid5# buffer_ptr7;#buffer_size8-#buffer_pos9-#buffer_mode:#ungetc_count<-#ungetc_buffer=#!chario_resource_t> 61id7#blocksize8-#blockcount9-#shared_mem_id:# io_read_request_t;typeid_t RDN b \^   o` X~ Ez     @] o     ,8DXunusync.csync_read_listlostio_sync_dispatchrpc_io_readlist_removelist_get_element_atlostio_sync_read_waitmalloclist_creatememcpylist_push&6BJquy[        OSW ` |    < @vfstree.o/ 1243806000 1001 1001 100644 8100 ` ELF4(UE uHEEE : ; I  : ; (  : ;  : ; I8 <  I $ >  : ;  : ; I8 : ; I&I.? : ; ' I@: ; I 4: ; I 4: ; I : ; I .? : ;' I@: ;I : ;I 4: ;I 4: ;I .? : ;' @ 4: ; I?  GNU C 4.2.2lostio//vfstree.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$<9FALSETRUEbool"@lbasenameApCtvfstree_clear_nodeP&`nodeO=work_nodeStvfstree_root*next_resid-^3g lostio/../includevfstree.cstddef.htypes.hcollections.hlostio.h8hw>) gp6>= .hi>) = .g@v0~" .w@ghv"h=hr.i<tXu#'%ɑY.h% .g=Zw;&hYLYw!؟ .ghg2g0!Fehler beim erstellen der Datei| AB P.IAB O.jAB e.xAB De.:AB N..BAB O.q. ,AB L.c.e._.[.H.g.oAB I.&sAB Z.uutuutuuxtxyuy{u{:t:;u;=u=BtBCuCEuEtuutuu&t&'u')u)t vfstree_dirnamevfstree_basenameQvfstree_get_node_by_namevfstree_get_node_by_pathWvfstree_create_childvfstree_create_nodevfstree_delete_childvfstree_delete_nodevfstree_clear_nodevfstree_rootnext_residdirname_endvfstree_node_tparentdirnameGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 p%+0Be> tR|7N ^ j0f  w   *Pp D    &-4;ILjelx (:Bo(&s;vfstree.cnext_residvfstree_dirnamestrlenmallocmemcpyvfstree_basenamevfstree_get_node_by_namestrcmplist_get_element_atvfstree_get_node_by_pathvfstree_rootvfstree_create_childlist_pushlist_createvfstree_create_nodefreeputsvfstree_delete_childpvlist_removevfstree_delete_nodevfstree_clear_nodelist_popU7\!Ld!&Ufw!-L"g#o" D%Vdv&tx| f      C sw{   uy}   m    6:> W z  t 4 8P Tl p     access.o/ 1243806000 1001 1001 100644 3096 ` ELF4(UhuE}uA uE}uE, uE uEE% $ > : ; I  : ;  : ; I8  I$ > .? : ; ' I@ : ; I 4: ; I  &I4: ; I? < GNU C 4.2.2posix//access.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src}signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&long unsigned intchario_resource_id_t.%1Hid2h#path3H#pid4>#resid5h# buffer_ptr7<#buffer_size8.#buffer_pos9.#buffer_mode:#ungetc_count<.#ungetc_buffer=N#!`io_resource_t>FILE4TDIR&T access&} path% mode% f)p "c dir-t `ixerrnoO posix/../includeaccess.cstdint.hstddef.htypes.hio_struct.hstdio.hdirent.herrno.h%iYigגןr| }AB N.uu}t access}GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4} p 0%+0Bm > HRzN ^%j(0f  wX,     @ 8 5    }%.access.caccessfopenopendirerrnoclosedirfclose );Sjrvz  chown.o/ 1243806000 1001 1001 100644 2144 ` ELF4(U% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2posix//chown.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intuid_t'gid_t(long unsigned intcharchown) path(owner(group(=R; posix/../includechown.ctypes.h(>Y|  AB uu tEchown GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 !@'@,@d>: 8NDVJ 0^,Z 8 k,zv H   P0B      chown.cchownquyTX\ Hexec.o/ 1243806000 1001 1001 100644 1200 ` ELF4( % $ > $ > *GNU C 4.2.2posix//exec.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intchar GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4(>\.:  JV_  exec.cptxflock.o/ 1243806000 1001 1001 100644 1876 ` ELF4(U% .? : ; ' I@: ; I $ > GNU C 4.2.2posix//flock.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src flock* fd)operation)int<% posix/flock.c)>Y|  AB uu t}flock GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 !@'@,@G>: 8NM@J $^,Z , k,zv <   D$6      flock.cflockquy 2getopt.o/ 1243806001 1001 1001 100644 4484 ` ELF 4(UuE ;E}<-BtEB-u,u!@EuNj-uu Ew-B:tPuE}uQu @t&E<:tPhRE?E@<:t)@t t@;E}E KE<:u E:LtPhRE?@EE% $ > : ; I  : ;  : ; I8  I&I .? : ; ' I@ : ; I 4: ; I 4: ; I? < 4: ; I?  zGNU C 4.2.2posix//getopt.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcpsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$charpid_t&long unsigned intio_resource_id_t.%1Hid2h#path3H#pid4F#resid5h# buffer_ptr7D#buffer_size8.#buffer_pos9.#buffer_mode:#ungetc_count<.#ungetc_buffer=N#!<io_resource_t>FILE4T{< getoptCp nargc@ nargvA ostrBu oliEHt placeDHH stderr8 i optarg4H optind1 optopt2 opterr0 optreset3n posix/../includegetopt.cstdint.hstddef.htypes.hio_struct.hstdio.hju!#uL=k.w'!K?illegal option -- %c option requires an argument -- %c | pAB .uuptR~getoptoptarg'optind<optoptQopterrfoptresetpGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4p ) % /4Fh~B hVR T b;n0j \ {,DV l  t  W   #p*3:AHPgetopt.cplace.1617opterroptindgetoptoptresetoptoptstrchrstderrfprintfoptarg )6;FU_cu #/@KQVhnw}  )/8>PTY_drvz #8Mby{ getopt_long.o/ 1243806001 1001 1001 100644 10380 ` ELF@4(UE} UE EEE E} U}uE U0UE )ЉEU E)ЉEuuEUE)Й}EErEE E܋E܉EEOE;E |E)EEEEEEEUEEEUEEE;E|EE;E|U8E Eԃ}t}t}tEEE EEEE@j=uE}tEU)ЉEE uEEEEuPuEE P;EuEEE}t}ts}uEEeEuTEEPEE@9u8EEPEE@9uEEP EE@ 9tEEEE}u}tE?}*EE@u?}t9EE@uEE@ E?REE@tEE@u>}t E.EE@uEBEE@ubuYEE@uEE@ HE <:u E:E?E܉E}u/5}tHE]E?JUEEE@t#EEPEE@ EEE@ E؋EUS$}u E$ hEE<-uM}u E<+ueE<+t E<-uEutuv;EtC u PRQ )É؉)‰Уt EE <-u@Et)E BEiEu ESu UtK u PRQ )É؉)‰У@Jtu @@<-@@tA u PRQ )É؉)‰УE}E 9<-tEE <-u@ /<:t$PutEuuuuuu E}t]]& E}:Au+}-u uuuE}uG}-uu Eu @EE?}}WE@<;u]@;E|6EE<:u E:E?EEE  ujuuuu = EUUEE<:t@t dE@<:tZ@;E|3EE<:u E:E?]]-E @EEE]Ujuuuu u Ujuuuu ux %  : ;  : ; I8  I&I$ > : ; I.: ; ' I@ : ; I 4: ; I .: ; ' @ : ; I &I.: ;' I@: ;I : ;I 4: ;I 4: ;I  : ;.? : ;' I@I!I/ $ > 4: ; I? < GNU C 4.2.2posix//getopt_long.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src option)name+#has_arg3#flag9#val># charintsigned charshort intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$Egcd3 a b ct permute_args3, panonopt_start panonopt_end opt_end  cstartT cyclelenX i\ j` ncycled nnonoptsh noptsl posp swaptparse_long_options`X      idx  flags current_argvX has_equal\ current_dash` current_argv_len{d ih matchl exact_matchp second_partial_matcht optiongetopt_internalp` nargcn nno  idxoflagsooliqdoptcharrhrlposixly_correctspstartgetopt_longb rnargc` ``a  idxagetopt_long_onlyo nargcm mmn  idxn placet nonopt_startw nonopt_endx@@! recargchar{[ 0p@ illoptchar|B` dash_prefix~ @ gnuoptcharW@" recargstring@ ambig%:@) noargM*b@ illoptstring|RoptargCoptindFoptoptIopterrMoptresetPN posix/../includegetopt_long.cgetopt.hstddef.hi/ggl= .m摑ggvw .nu0u0u0xuuvZ%gu^g^ftX  X0"g0sg! .yggQ!B>>uן$=-"Z=:"= =v(vgL "K$"؟K" Xh .hoption requires an argument -- %cillegal option -- %cinvalid option -- %coption `%s%s' requires an argumentoption `%s%.*s' is ambiguousoption `%s%.*s' doesn't allow an argumentunrecognized option `%s%s'----W POSIXLY_CORRECT| 3AB 3AB _.lAB q.(`EAB DZ.. a..  $AB W.  $AB W. uu3t34u46u6tuu`t`auacuc t u u t u u t3getopt_longrgetopt_long_only short_toonargvlong_optionsoptionsGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4  !)$ % |&/4 44 aF B &ViR ( b n j (` {7 t('  |(G%l~    "- " 8B C OW Z# g m* s 33l`E  $ $getopt_long.cplacenonopt_startnonopt_endrecargcharilloptchardash_prefixgnuoptcharrecargstringambignoargilloptstringgcdpermute_argsparse_long_optionsgetopt_internaloptindstrchrstrlenstrncmpoptoptoptarggetenvoptresetgetopt_longgetopt_long_only!*3<V\i ! """5#N]#e{#"""}$%%#% %)%2AEJTZ`tz #$KUZakqw$*.3=CI]chy*dhy"- 8 > C N R Z "         #   #) / 4 ? C K "q ~ #    w{.">59=Wfu6ET,W!Ix[04LPhlgetpid.o/ 1243806001 1001 1001 100644 2372 ` ELF4(UU j% $ > : ; I$ > .? : ; ' I@rGNU C 4.2.2posix//getpid.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src"signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&long unsigned intchargetpid' getppid1 ",V< posix/../includegetpid.ctypes.h&gY6g|  AB  AB H.uu t uu"t%v<getpidXgetppid"GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4" %X+X0XLBv> PRZN  btH^  oX~)z ,  =  4 ]od  t0     !getpid.cgetpidget_pidgetppidget_parent_pidrvzLPT imq I04grp.o/ 1243806001 1001 1001 100644 1188 ` ELF 4( % $ > &GNU C 4.2.2posix//grp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intchar GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S*:  J}V_  |grp.coswlink.o/ 1243806001 1001 1001 100644 3224 ` ELF4(UUhuE}u E*uuju E uEEE% $ > : ; I  : ;  : ; I8  I.? : ; ' I@ : ; I &I 4: ; I 4: ; I? < QGNU C 4.2.2posix//link.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcxsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$ssize_t!pid_t&long unsigned intchario_resource_id_t.%1Uid2u#path3U#pid4K#resid5u# buffer_ptr7I#buffer_size8,#buffer_pos9,#buffer_mode:#ungetc_count<,#ungetc_buffer=[#!mio_resource_t>FILE4alink* oldpath) newpath) mreadlink>:x,? path= buf=U bufsize=, len?:p fileA?tv errnoOw posix/../includelink.cstdint.hstddef.htypes.hio_struct.hstdio.herrno.h)>Y.iYgYؑlr| AB dAB N.uutuuxt$UlinkreadlinkxGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4x 0%+0BSU>  PRN X ^HjLHf `  wX(   4Fh @  /    d"(link.clinkerrnoreadlinkfopenfreadfclose&8Ufptx   0 4misc.o/ 1243806001 1001 1001 100644 1180 ` ELF4( % $ > GNU C 4.2.2posix//misc.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S#: | JvV_  tmisc.cptxmktemp.o/ 1243806001 1001 1001 100644 3676 ` ELF4(UVS uE}wEVEE%EE : ; I.? : ; ' I@: ; I 4: ; I  II !I $ > 4: ; I? < #GNU C 4.2.2posix//mktemp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcKsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$long unsigned intmktemp,+len/di0hnumBlfileid.charmkstemp^K,]fd_plen`tbufal   errnoOH posix/../includemktemp.cstddef.herrno.h+g ')ᖃQᕮ tfYu*/!/z< f!1qay2wsx3edc4rfv5tgb6zhn7ujm8ik9ol0p|  AB EF._.AB U.uutuuKt%'2mktempmkstempKtemplateGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4K < x%+0B'> hR=N ^%jTf $  wXX) D  L l   M    $*19AHmktemp.cfileid.1447mktempstrlenerrnogetpidgetppidmkstempstrcpyopen!Nnu K {6rvzBFJ S U < @net.o/ 1243806001 1001 1001 100644 6928 ` ELF\4(UEE% ЉE%E% UEfEE%E% UEE% ЉE%E% UEfEE%E% E%E% U u‹E E UE PEjuh uU( uuruhEPEhPE}u ElujjEP u EPE $(EEUEWE Puu5} tE,Pu tE EEE uEEP % $ > : ; I $ >  : ; (  : ;  : ; I8 : ; I8  I  : ;  .? : ; ' I@: ; I &I4: ; I  4: ; I I!I/ GNU C 4.2.2posix//net.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&long unsigned intchar >{AF_INETin_addr_t$in_addr% s_addr&{#hostent  h_name!# h_aliases" # h_addrtype## h_length$# % # ` servent) s_name*# s_aliases+ # s_port.# s_proto0# io_resource_id_t. %1_ id2# path3# pid4;# resid5# buffer_ptr79# buffer_size8+# buffer_pos9+# buffer_mode:# ungetc_count<+# ungetc_buffer=_#! io_resource_t>FILE4e htonl&HBhostlong%H htons+Bp,hostshort*t ntohl0HpXnetlong/H ntohs5 Rnetshort4t inet_atonA +ip_string@ip@ `  inet_ntoaK+mipJresMtbufL gethostbynameWm=nameVhpathbpfctip_strd`hostentXaliasesY,ipZ[<  z`] getservbyname&=4&nameprotocolit &<]LL] b]service_aliases_http}R]service_aliases_imap~]service_aliases_irc&]services  posix/../include../include/netinet../include/sysnet.cstdint.hstddef.htypes.hin.hnetdb.hio_struct.hstdio.hsocket.h%==11==1H .gKY5j!KY1m1ggg/@.h% .tcpip:/dns/%srhttpimapirctcp| BAB B.AB pBAB WAB  "AB I.+BAB J.mAB I.=AB _.uuBtBCuCEuEptpquqsustuu t  u  u +t+,u,.u.mtmnunpup=t=>u>@u@tvhtonlhtonsntohlntohsRinet_atoninet_ntoagethostbynamegetservbynameh_addr_listGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 )` % h/`,4`F_B (HVm R p by "n j x { `z Z  z   !)6 CXm @ BB.pBW "+Bm=net.cbuf.1719h_addr_list.1731ip.1730aliases.1729hostent.1728service_aliases_httpservice_aliases_imapservice_aliases_ircserviceshtonlhtonsntohlntohsinet_atonstring_to_ipinet_ntoaip_to_stringstrncpyfreegethostbynameasprintffopenfreadfclosegetservbynamestrcmp9LQ _!gz # $%& (-4T`(y(    $, 0 4< @ DL osw .26eim/3y 04HL`dx|posix_dir.o/ 1243806001 1001 1001 100644 4832 ` ELFx 4(U uU uu EEEU uE}u EvE PE}vE hEEfE@UMPRQEƀ uEEEU hUjjuUju u% $ > : ; I  : ;  : ; I8  I : ;  I !I/ $ >  : ;  .? : ; ' I@: ; I &I4: ; I .? : ; ' @.? : ; ' @ GNU C 4.2.2posix//posix_dir.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src6signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t&time_t05long unsigned intio_resource_id_t.io_direntry_type_t/%1{id2#path3{#pid4Q#resid5# buffer_ptr7O#buffer_size8A#buffer_pos9A#buffer_mode:#ungetc_countdirent!d_reclen"#d_name##   DIR& $cname%c#type&#size' #ctime(^#mtime)^#atime*^# s io_direntry_t, opendir)name( closedir4C,dir3 readdirBmCXmdirAdirentryCslname_lengthIApposix_direntryOmts telldir\5dir[rewinddirhdirgseekdirs6dirroffsetr5 posix/../include../include/sysposix_dir.cstdint.hstddef.htypes.htypes.hio_struct.hdirent.hio.h(g .g% .gg"w/ב4gY .g! .g/telldir: Nicht implementiert | AB I.-AB I.CAB I.AB K.AB M.AB N.uutuuCtCDuDFuFtuutuutuu6tYopendirclosedirreaddirytelldirrewinddirseekdir6GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment46 XX%l+l0lBe> RvN `^Pjpf h` w, 4 ]          $--=CET[binv}posix_dir.copendirdirectory_openclosedirdirectory_closereaddirdirectory_readstrlenmallocmemcpyfreetelldirprintfrewinddirdirectory_seekseekdir #Pq-uy}       4 8P Tl p  posix_files.o/ 1243806001 1001 1001 100644 9120 ` ELFt4(Uu= P P PU}uEuEE E;Et EuPE}uփ}uT jE}u E>uPUEEPBE@EEUuEEE@;Et EuPE}uՃ}u EEEEU uU(EE tJE t@huE}tn uEE u@huE}uE` uE t@huE}uhuE uE tEDrEE tE @t EDwEnE t"E @tEDwEED+EBE tEDrEED+E E tEDrEED+EE t EDaEEDEEPuE}uE uE܋EUu jRuU uQE}uEuuju EEEEU uE}uEuuju EEEEU uE}uE2uu ut E uEEUEE$E@;EuuP EuPE}u}tE PtE uEEU uE}uEm uEjuut E : ; I  : ;  : ; I8  I<  : ;  .: ; ' @ .? : ; ' I@ : ; I 4: ; I 4: ; I .: ; ' I@&I: ; I   I!I/ $ > .? : ;' I@: ;I 4: ;I 4: ;I &: ;I 4: ; I? < dGNU C 4.2.2posix//posix_files.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$charssize_t!pid_t&mode_t*off_t,long unsigned intio_resource_id_t.%1wid2#path3w#pid4Z#resid5# buffer_ptr7X#buffer_size83#buffer_pos93#buffer_mode:#ungetc_count<3#ungetc_buffer=}#!Aio_resource_t>FILE4dwordB&anchor'#size(#list_nodelist_t) fd_list_element&1io_res'1#fd(# posix_files_init6N filenoLN , io_resK1 XpiYtfd_to_filex1 X fdw ~pit fdopen12 fd mode28A open2 flagsfopen_flags`flags_size3d 1hf1l Lf1pVf1tA creatN2 modeg readI fd bufferX size3 1pbytes3twriteI`4)fd buffer )size 31pbytes3t/lseek'u``fd& &uorigin&(1tcloseAffd@CpiDtpreadXIfifdWbufWXcountW3 Wu Y1lold_posZupret[ItpwritesIfdrbufr)countr3 ru t1lold_posuupretvItfd_list,next_fd/stdin61stdout71stderr81errno O posix/../include../include/sysposix_files.cstdint.hstddef.htypes.htypes.hio_struct.hstdio.hcollections.herrno.h5g .gg\uu/8gg? .g\uu/8g4h .hx=YgןYg٠YgZڟ=0=1ɟKg= .g/ .ggZ .ggZ .ggu= .huu/=07 ן2gggZg2gggZgrw| NAB _.NAB V. kAB {.AB I.AB i.AB N.QAB I.QAB I.`gAB I.AB j.fAB I.AB I.uuNtNOuOQuQ t !u!#u#tuutuutuutuutuu`t`auacuctuuftfgugiuit u  u tshXfilenofdopen=opencreatNreadwrite0lseekclosepreadipwritefdl_elementoffsetfilefilenameGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 %+0Buh> RN "^qjxdf " ww #c  #!  N0 k   ;GMNT[bh|QQ`gfposix_files.cfd_listnext_fdposix_files_initfd_to_filelist_createstdinfilenostdoutstderrerrnolist_get_element_atmalloclist_pushfdopenopenfopenfclosecreatreadfreadwritefwritelseekfseekftellcloselist_removefreepreadpwrite#+4<E\q'S_  *EZ bv ~j|".K$&').;S*'&$&'?'U&u$&w{LPThlp  KOS\ $(1\`d @DH_)8z~ % 4 8P Tl p      0 4L Ppwd.o/ 1243806001 1001 1001 100644 1188 ` ELF 4( % $ > &GNU C 4.2.2posix//pwd.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intchar GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S*:  J}V_  |pwd.coswrmdir.o/ 1243806001 1001 1001 100644 2192 ` ELF4(U% $ > .? : ; ' I@: ; I  I&I4: ; I? < uGNU C 4.2.2posix//rmdir.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intrmdir'Vfilename'V\acharerrnoOS; posix/../includermdir.cerrno.h&>Y| AB uuty#rmdirGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 %H+H0HhBy> (8R)WN `b,^ h o,~z x   &      rmdir.crmdirerrnoquy26: Hselect.o/ 1243806001 1001 1001 100644 1208 ` ELF4( % $ > $ > ,GNU C 4.2.2posix//select.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intchar GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4(>\0:  JV_   select.crvzsignal.o/ 1243806001 1001 1001 100644 8076 ` ELFL4(Uhjh jjh EEǀ E}?~Uu}?~EJuh t E*E E}t uEЃEEUE =~ E$E  jjjPu EEUEHw jUu}?} u E&E EEE EEEUWVuV}?} uE?}tEU׍ } tEU EE^_UEjjPUEjhPU} ?~EaE E}yEEE‹EEE U}y MMEM E‹EMEEU} ?~EcE E}yEEE‹EEE U}y MMEM"E‹EMEEU} ?~ERE E}yEE‹EEE U}y MMEMEƒUEU}tM $QEE}tG}tw}tE%uu tuh E}?~^E%uu tuh E}?~(E P $EEEU jUt PUЍЍЍЍЍPh% $ > : ; I : ;  : ; I8 I!I/ $ >  I '  I  : ;   : ; ( .: ; ' @4: ; I .? : ; ' I@: ; I : ; I .? : ; ' @.? : ; ' I@&I.? : ;' I@: ;I &I: ;I 4: ;I .: ;' @4: ; I? < WGNU C 4.2.2posix//signal.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src?signed charshort intintlong long intuint8_t%unsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&long unsigned intt[bitmasku[#kksigset_tv@sighandler_t   sa_handler~#sa_maskn#sa_flags# SIG_BLOCKSIG_UNBLOCKSIG_SETMASKchar <<FALSETRUEbool<$dwordBinit_signals0_i1traiseE_, DhandlerX~tkillh"Xpidg g_signal_default_handlerx"@: wsignal~@ handler~old_handler~tsigactionold  sigemptyset2%% nsigfillset2U4^%sigaddsetU`% sigdelset a %  sigismember#a&"& " ,nsigprocmask;mode::&oldset:%i<tdo_alarmdalarml?<secondskidmHk?sigactions( sigmask)n initialized*<errnoO _ posix/../includesignal.cstdint.htypes.hsignal.herrno.h/ig> .h]ggg؟ .h6g .h\ .\g\g[ tg/Y .gYY .igZ .ig\ .igU.ig1!1!1/15g4iPY| _AB R._|AB u.GAB p. "AB Q.@TAB ~AB E AB N.2#AB Q.UAB AB avAB AB H.AB H.wAB U.uu_t_`u`bubtuu"t"#u#%u%@t@AuACuCtuutuu2t23u35u5UtUVuVXuXtuuatabubdudtuutuutuu?t[raisekill_signal_default_handler:signalsigactionsigemptyset+sigfillset^sigaddsetsigdelsetsigismember1sigprocmaskalarm?sigactionsignumsigsetGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4? `%t+( 0B&[> |R N b^  o$h~z t K  |k`  _# . 6?   GN"f_|lrav~G@T~ 2#Uwsignal.cinitializedinit_signalssigactionssigmaskdo_alarmid.2095memset_signal_default_handlerraiseerrnosigismemberkillsend_message_exitsignalsigactionsigemptysetsigfillsetsigaddsetsigdelsetsigprocmaskalarmtimer_canceltimer_register%*BFUf{7Gq$Gco#27 Yhm!$',%4rvzfjn#,JNR[ ?CGPquyGKOh.Gl48PTlp(,@D\`x|socket.o/ 1243806001 1001 1001 100644 7344 ` ELFl4(Uu EE RPQEEUujjE PMQuPEPU}tEa} tEHjHjEUEPEj,jP u0EEEEU( uEE EE}uEE E@9tEE@ PEE@%E@% fEEPuhEPyEvEh PE}uE7EjjjPEj,uP uE P uEEUuu uUuu uUuuu uUuuu u% $ > : ; I  : ;  : ; I8  : ; I8 I !I $ >  : ;  (  : ;  I : ; .: ; ' I@: ; I : ; I .? : ; ' I@4: ; I 4: ; I .? : ; ' I@ : ; &&I4: ; I? < GNU C 4.2.2posix//socket.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charuint16_t&short unsigned intuint32_t'unsigned intuint64_t((long long unsigned intlong intsize_t$ssize_t!pid_t&long unsigned intsocklen_t"sa_family_t#+--#sa_data0#  char 8 SOCK_STREAM >$ AF_INETin_addr_t$ in_addr%Ws_addr&$# sockaddr_in *sin_family+#sin_addr,5#sin_port-# < FALSE TRUEbool< tree_itemA parentB #leftC #rightD #balanceE# ProotQ #tree_item_offsetRN#sort_key_offsetSN#key_mask^# tree_t_&io_resource_id_t.%1tid2#path3t#pid4m#resid5# buffer_ptr7k#buffer_size8N#buffer_pos9N#buffer_mode:#ungetc_count lostio_internal_file, yres z#free_buffer {#(H)id*#tinfo+#--#conn.#get_socket7Q8Qsock6create_socketC8,BQZXdomainYtypeYprotocolYsock[p\Qtconnect{wsockzaddresszaddress_lenz|Q`inet_addr}dip_string~thportnpatht\retpconntout_ip_string]out_pathNWrecv\wRRN' Xsend\RN' recvfrom\(ĚRN'Ě from(ŏ.sendto\4ϚRN'Ϛ to(Џsockets1errno O1 posix/../include../include/sys../include/netinetsocket.cstdint.hstddef.htypes.hsocket.hin.hcollections.hio_struct.hlostio.herrno.h6g4g?=.jgg!Z .gjwg埽K$u1ggu0#g؟6g=6g= .g= .g=tcpip:/%s:%dr+| 8AB e.8\AB S.AB |.^AB I.wAB O.AB O.AB O.AB O.uu8t89u9;u;tuutuuwtwxuxzuztuutuutuutOsocketconnectrecvYsendrecvfrom7sendtobuffersocketsockaddrlengthfrom_lenflagssa_familyGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 H%+0eB> @RW 5N ^jf  w`S C  c7p t 88\   +7FMY`fmt^|wsocket.csocketsget_socketcreate_sockettree_searchtree_do_createfilenotree_insertsocketerrnocallocmemsetconnectip_to_stringasprintffopensetvbufmemcpyfreerecvreadsendwriterecvfromsendto)?OWfwEj  "9G V d "$!#rvz159 mqu ~   S   (6Dgko x /GKO Xft 4 8P Tl p    stat.o/ 1243806001 1001 1001 100644 6900 ` ELF<4(UUUj4ju E @ƒE P uEjju u‹E PjuuE @,E @‹E @,EкuEUE P0E @‹E @,EкuЅtE @0PE P0E @E @@E PUEhuE} uE}uE uj4ju E @ƒE PE @E @@E P"u u2E uEEEUu uE}ukhuE}tOE @ЉƒE PuhjP‹E PE @0 uEUhuE}uEu u=EEU uu EEEUUU帚% $ > : ; I  : ;  : ; I8  : ;  I  : ;  ( $ > .? : ; ' I@ : ; I : ; I &I.: ; ' I@4: ; I  I!I/ 4: ; I? < VGNU C 4.2.2posix//stat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src-signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&uid_t'gid_t(dev_t(ino_t)mode_t*nlink_t+off_t,blksize_t-blkcnt_t.time_t0 long unsigned intstat4`st_devac#st_inobp#st_modec}#st_nlinkd# st_uideI#st_gidfV#st_rdevgc#st_sizei#st_atimek# st_mtimel#$st_ctimem#(st_blksizen#,st_blockso#0chario_resource_id_t.%1id2#path3#pid4<#resid5# buffer_ptr7:#buffer_size8,#buffer_pos9,#buffer_mode:#ungetc_count<,#ungetc_buffer=#!io_resource_t>FILE4 < FALSE TRUE  chmod3 U 2Umode2}[ fchmodB ,fileAmodeA}lost_statQXfP PposR t statwi vU vstatusxlfileypIdir~it lstat U resultpft@buf} fstat:file ft mkdirxpathUmode} mkfifo4 Umode} mknod#` Umode}devicec umask}#-3mask}inode_num'perrno O posix/../include../include/sysstat.cstdint.hstddef.htypes.htypes.hstat.hio_struct.hstdio.herrno.h2>Y .>Y .j"!Z0'柟hY .gu\g"=ّ .?"Y= .gYgg .g! .>Y .>Y .>Yrlr|  AB  AB AB M.AB U.AB O.NAB N.-AB I. AB  AB # AB uu t u u tuutuutuutuutuutuutuu#t#$u$&u&-tiZchmod`fchmodstatolstatfstat:mkdirxmkfifomknodumask-stat_buffilenameGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4- %d+d0dBzZ> R #N 4^ j f < wm 9  Yk}P $    " )06<AGV\lsyN-  # stat.cinode_numlost_statchmodfchmodmemsetftellfseekstatfopendirectory_openerrnodirectory_closefcloselstatfreadfstatfdopenmkdirdirectory_createmkfifomknodumask%DYg - 5Pb}( 0h !ptx'+/ 8ptx    #QU~  IMQ    F 0 4H Ld h      termios.o/ 1243806001 1001 1001 100644 3176 ` ELF4(Uj ju E @UUUE@<% : ; I$ >  : ;  : ; I8 I!I/ $ > .? : ; ' I@ : ; I  I &I .? : ; ' I@GNU C 4.2.2posix//termios.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcKspeed_tunsigned inttcflag_tcc_tchartermios *c_iflag#c_oflag#c_cflag#c_lflag# c_cc*#:: signed charshort intintlong long intunsigned charshort unsigned intlong long unsigned intlong int tcgetattr#Y) file"Y tios"  tcsetattr,Y)3,a fd+Y optional_actions+Y tios+a g termios tcflush1Y3=X fd0Y queue_selector0Y cfgetospeed6=K tios5ab? posix/../includetermios.ctermios.h"g#Y1=Y1=Y1=| )AB M.) AB 3 AB =AB uu)t)*u*,u,3t34u46u6=t=>u>@u@KtFtcgetattrtcsetattrttcflushcfgetospeedKGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4K %+0B6> R$fN  bx^  @ o~Jz P    X 0$   D :    )) &3 .=termios.ctcgetattrmemsettcsetattrtcflushcfgetospeedsw{ !   L48LPdhtime.o/ 1243806002 1001 1001 100644 2256 ` ELFP4(UEE@% $ >  : ; I : ;  : ; I8 .? : ; ' I@: ; I  IGNU C 4.2.2posix//time.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong inttime_t0suseconds_t10long unsigned inttimeval ytv_sec!#tv_usec"#gettimeofday"tv!tz!  EaH posix/../include/systime.ctypes.htime.h!=Y| AB uutygettimeofdayGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!T'T,T>: h8NeJ ^,Z  k(,zT#v  w  p  P   time.cgettimeofdayptx Uunlink.o/ 1243806002 1001 1001 100644 2152 ` ELF4(U u% $ > .? : ; ' I@: ; I  I&IhGNU C 4.2.2posix//unlink.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned intcharunlink'`filename'`f$=& posix/unlink.c&h| AB I.uutl,unlinkGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 %L+L0LWBl> 8RAN 8bP0^ @ o,~z P   X      unlink.cunlinkremove rvz<@D 3user.o/ 1243806002 1001 1001 100644 1180 ` ELF4( % $ > GNU C 4.2.2posix//user.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S#: | JvV_  tuser.cptxutime.o/ 1243806002 1001 1001 100644 2384 ` ELF4(U% $ > : ; I : ;  : ; I8 .? : ; ' I@: ; I  I &I &I 4: ; I? < GNU C 4.2.2posix//utime.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong inttime_t0long unsigned intutimbuf!eactime"#modtime##utime*filename)buffer) char utimbuf1 errnoOx` posix/../include../include/sysutime.cutime.htypes.herrno.h)>Y| AB uuteutimeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 %H+H0HB> 8R|N b@,^ (  ol,~z 8    @       utime.cutimeerrnoquytx| mwait.o/ 1243806002 1001 1001 100644 5612 ` ELF 4(UhMhUEE;EuEE'EuPE}uEEU uE}ud j E}Pj[h hUEE@E@uPUE#E;EuuP EuPE}uU}uw uE}u u uE}Phh hEEPE@U}tr u>E}uEYE@t uu߃} t EPE  uEEEEUjuj% $ > : ; I  : ; (  : ;  : ; I8 <  I $ >  : ;  : ; I8 .? : ; ' @.: ; ' I@: ; I 4: ; I 4: ; I .? : ; ' @.: ; ' @.? : ; ' I@: ; I 4: ; I? < 6GNU C 4.2.2posix//wait.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&m't,mpid=i?p@mt wait_child_addPtXpidORmtwait_child_deliMpidhijpkmtrpc_child_exitzM|pidxcorrelation_idxNdata_sizex datay {mtwaitpidfpidoptionsmt waitf wait_list,$ errnoOb posix/../includewait.cstddef.htypes.hcollections.herrno.h4gK4i6gYj؃>Y4i=+6jj[g"Y4iggWgׅ .g!CHL_EXITposix//wait.cwait_child != NULL| 'AB Z.'MAB m.tAB N.p.QAB b.MAB T.g. AB O.d.U.fAB M.uu't'(u(*u*tttuuuwuwtuuMtMNuNPuPtuuftfgugiuitG:init_waitpidswait_child_add|waitpidwaitstatuswait_childGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 T%+0\B:> DRJN \^ *j< f dp w$ 4X K      <0 l M!'M0Q  ?'LXqtfwait.cwait_listrpc_child_exitwait_child_getwait_child_delinit_waitpidlist_createregister_message_handlerlist_get_element_atwait_child_addpmalloc_assertlist_pushvlist_removewaitpiderrnoyieldget_parent_pidwait  LX{  "/;Z|    !Rwptx48<_n o 4 8P Tp t   rpchandler.o/ 1243806002 1001 1001 100644 784 ` ELF@4(`R4 p"g* `D$ L$$T$(RPQ a80PD$%tD$ @D$ā ؋DThe Netwide Assembler 2.05.01.text.comment.shstrtab.symtab.strtab.rel.text=?RC*rpc//rpchandler.asmlibrpc_c_rpc_handlerlibrpc_rpc_handlerlibrpc_rpc_handler.1librpc_rpc_handler.2messaging.o/ 1243806002 1001 1001 100644 5272 ` ELF4 4(U hE,UƀUǀE}vUjjEPjuEPE EQUuEE0UjPEPu E\E}v} u EDUjEPRUЍE EEUEEUE E PUEEEE}w>E+9EEE P҃}v"}wE- P}EjPEZUUjPRu-UEU PRuuуKE}~@}u UM RQuuЃ}u u% $ > : ; I  : ; (  I'  I $ >  : ;  : ; I8 : ; I8 I!I/ .? : ; ' @4: ; I .? : ; ' I@: ; I : ; I 4: ; I?  _GNU C 4.2.2rpc//messaging.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t& RN 8b\ ^ @@ o ~ z  C  c k }       !6]EM`p ]I,uamessaging.cmy_pidintr_handlerrpc_response_handlerinit_messagingget_pidlibrpc_rpc_handlerset_rpc_handlermessage_handlerregister_message_handlermemsetstrncpystrncmpregister_intr_handleradd_intr_handlerlibrpc_c_rpc_handlerraisestrnlentimer_callback 7Jo9_l?Qjsw{ 9=A x|    QUY 0^k 4 8P Tl psync.o/ 1243806002 1001 1001 100644 8564 ` ELF4(UUu jEUEUE BUEB uEuuuUEB uPUEEE,E@;E uuPE;Et EuPE}u}tE@;E uE;EuEEEEUEE@uE)ĉeEEEEEju PEuuPEU PRuhu uuE}tEeUEuuu uE}tE@v E@ EE@ P uEUEuuu uE}tE@v E@ EE@ P uEUEuuu u6E}u EvEPE@ RPEE@ PEE@ uPuEEE@ P uEEEUuuu uEEU uuu hu UE Pju hu UE Pju hu U u uPu hu % $ > : ; I  I' I : ;  : ; I8 : ; I8 < $ > .? : ; ' @.? : ; ' @: ; I : ; I 4: ; I 4: ; I .: ; ' I@I!I.? : ; ' I@.? : ;' I@: ;I : ;I 4: ;I 4: ;I .? : ;' @4: ; I? < 4: ; I?  GNU C 4.2.2rpc//sync.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src_signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&dwordBhandler_function_t/OUp( 2 pid3(# 4(# 5 # 26# response_t7p& anchor'# size((# list_nodelist_t)char  init_sync_messages?sync_rpc_response_handlerI,caller_pidH H(H 2H )Jpsaved_dataKtsync_rpc_has_responseqGXBpidp p(indexrp)stsync_rpcG)pid  2   (prpc_datal)trpc_get_dword()Ypid  2  value(p)trpc_get_intpid  2  valuep)trpc_get_string  qpid     2   value l)pactual_len(trpc_get_response-4pid,, , 2,  ).trpc_send_response>`Mpid= =(len= 2=  rpc_send_dword_responseM pidL L()L(rpc_send_int_response\ /pid[ [()[rpc_send_string_responsek/_`pidj j()j current_correlation_id2(rpc_response_handler95responses-^ rpc/../includesync.cstddef.htypes.hrpc.hcollections.h>g5iY X󃒒==Y.guvYu0=x< Z.fYZޑ[,=|Y[6YwXZg.guh!=.guh!=.guhg/u!ב.gg=.g .g .g .g(| AB AB [.g.AB v.r.(GAB a.`.^. H.Z.Q.)eAB V.eAB V.AB V."AB O.$AB W. $AB W.  $AB W. /0AB I.Z. uutuutuuGtGHuHJuJ)t)*u*,u,tuutuutuutuutuu t  u u/t/0u02u2_tinit_sync_messagesAsync_rpc_response_handlerrpc_get_dwordYrpc_get_intrpc_get_stringqrpc_get_responserpc_send_responseMrpc_send_dword_responserpc_send_int_responserpc_send_string_responseresponses_data_lengthcorrelation_idfunction_nameresponsedataGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4_ p%+0BS> RN b,|^  o~z \!   d!7)P 5G   >H[g)e e(0"A$S$k $/0sync.ccurrent_correlation_idsync_rpc_has_responsesync_rpcresponsesinit_sync_messageslist_createsync_rpc_response_handlerrpc_response_handlerpmallocmemcpylist_pushvlist_removelist_get_element_atstrncpysend_messagev_and_wait_for_rpcrpc_get_dwordfreerpc_get_intrpc_get_stringstrnlenrpc_get_responserpc_send_responserpc_send_dword_responserpc_send_int_responserpc_send_string_responsestrlen #(1;f}SXafot!!!!8$Kf!!&<*Vnrv59= `dh  4SW[ r -Knrv  ,L  >kos  "&* BQk 0 4P Tp t      ( ,D H` dtimer.o/ 1243806002 1001 1001 100644 4148 ` ELF4(Uu  jEUEEPBEEPE@9w EuPE}uСuuPE@u PE@EEUE>E@;Eu0uPEЃ u%EuPE}uUE0E@;Eu"uP uEuPE}u% $ > : ; I : ;  : ; I8 <  I$ >  : ;  : ; I8 ' .? : ; ' I@ : ; I : ; I 4: ; I .? : ; ' @GNU C 4.2.2rpc//timer.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordB&Banchor'N#size( #list_nodeBlist_t)char timeout& '# ( #  timer_register, " +usec+ id- htimeout5"litem<"pi=tmtimer_callbackO8,v N itemP"piQttimer_cancela8X ` itemb"picttimers#Tnext_timer_id$ J rpc/../includetimer.ccollections.htypes.h+j?[iLZ=1jY=uYz. Y1jY=Y| $AB [.g.m.F.(vAB h.M.H.H.V.Q.8hAB h.v.uutuu8t89u9;u;tEtimer_register(timer_callbackvtimer_cancelcallbacktimer_idGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 d%+0B> DRN bD^ 0 o~PIz    $       -9@BVbprv8htimer.cnext_timer_idtimerstimer_registerlist_createmallocplist_get_element_atlist_insertsyscall_timervtimer_callbacklist_removefreetimer_cancel3AFgs !2?Xdr}osw~ <@D M W @ Dl pasprintf.o/ 1243806002 1001 1001 100644 3812 ` ELF4(UE EEPE@H9uCE@EPE@ERP‹EEu E$EEHŠEQEPEEU(EEEE}u E j@EEu EsE@Euu EPEjEPu E.UE9sEUPREUEEE܋EUEEEPu uEE% $ > : ; I  I I' II &I  : ;  : ; I8 : ; I8 .? : ; ' I@: ; I : ; I 4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//asprintf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcwsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$va_list!2__builtin_va_listJcharpfn_putcbh}!Jpfn_putsn! J jprintf_args  putc_fctR# putsn_fct}# arg!# asprintf_args &R 'R# buflen(# bytes_written)#J asprintf_putc-arg,c,Jt vasprintf>N,,=,format=ap=#args?hasnprintf_handler@\retvalAtRasprintfeNwXd,formatdapf#pretvalgtZ stdlibc/../includeasprintf.cstddef.hstdarg.hjprintf.h,"1hMhvuvwZ[1jgw=| AB |.AB o.N)AB V.uutuuNtNOuOQuQwt;Xasprintf_putcvasprintf2asprintfwbufferGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4w 8%+0B> R+N bh^ 0 o0~?z    ,T @  E    ",3<N)asprintf.casprintf_putcreallocvasprintfmallocjvprintfasprintf@1hvz~ osw   DHL Q g48PTassert.o/ 1243806002 1001 1001 100644 2920 ` ELF(4(U}u$ uu uhP % $ > : ; I  : ;  : ; I8  I.? : ; ' @ : ; I &I 4: ; I? < GNU C 4.2.2stdlibc//assert.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src2signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$charpid_t&long unsigned intio_resource_id_t.%1Jid2j#path3J#pid4H#resid5j# buffer_ptr7F#buffer_size80#buffer_pos90#buffer_mode:#ungetc_count<0#ungetc_buffer=P#!>io_resource_t>FILE4V_assert'2 assertion% file% line% expression&  > stderr8kp stdlibc/../includeassert.cstdint.hstddef.htypes.hio_struct.hstdio.h&ggZZusicherung fehlgeschlagen: '%s' in '%d' auf Zeile %d | 2AB `. H.uu2tw_assert2GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment42 %h+h0hB> 8RN 8 ^7j4f @  w,$ P B  X bt   '    2!assert.c_assertstderrfprintfabort $,tx| } bsdmalloc.o/ 1243806002 1001 1001 100644 761 ` ELF4( GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.debug_info.debug_line.comment4!4'4,4:5F5R5G[\   bsdmalloc.c directory.o/ 1243806002 1001 1001 100644 4936 ` ELF 4(UhuU uU}t ut E. hEujhuEEEUuu uUhuE}u E uEEU uE}t uEEE% $ > : ; I  : ; (  : ;  : ; I8  I  : ;  I !I/ $ > .? : ; ' I@: ; I &I4: ; I : ; I 4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//directory.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src,signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t&FILE4 $Bname%B#type&#size' #ctime(#mtime)#atime*# R R io_direntry_t,directory_open#"  directory_close)1,(directory_read/21X2.result42t Udirectory_seek=<offset<7origin<directory_createBxACt is_directoryOx,NdirPt stdlibc/../include../include/sysdirectory.cstdint.hstddef.htypes.htypes.hio_struct.hstdio.hio.h"g/2g2gu0L2g=1gZhן1ggגrdwd| AB N.AB I.1ZAB O.AB O.EAB N.@AB I.uutuu1t12u24u4tuutuutuu,tjdirectory_opendirectory_closedirectory_read8directory_seekdirectory_createis_directory,io_resdirnameGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4, `%`+`0` Bi> RN ^Yj`f ` w $  0  8   @     "291ZHMTZioE@directory.cdirectory_openfopendirectory_closefclosedirectory_readfeofmallocfreaddirectory_seekfseekdirectory_createis_directory (Dayw{       PTX a       4 8P Tl p  errno.o/ 1243806002 1001 1001 100644 1268 ` ELF4( % 4: ; I?  $ > GNU C 4.2.2stdlibc//errno.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcerrnoint-' stdlibc/errno.cerrnoGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.rel.debug_pubnames.comment4!4'4,40>d: ( J1Z0V  jL^s   errno.cerrnosw{ exit.o/ 1243806002 1001 1001 100644 4112 ` ELFl4(Ut.EEEuPE}uۃ uU jUu&uEuPEEUS$EEEEhuUE] j Sj jhP u% $ > : ; I I$ >  : ;  : ; I8 < .? : ; ' @ : ; I  4: ; I 4: ; I ' .? : ; ' @.? : ; ' I@: ; I I!I/ 4: ; I? < GNU C 4.2.2stdlibc//exit.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src#signed charshort intintlong long intuint8_t%unsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordB1charlong unsigned int&zanchor'#size(#list_nodezlist_t)Q exit0M result/ = i3p 4tabortDMb,atexitLbX8K _exitd# resultc msgf` function_nameg+l statushp9  atexit_list'errnoOd stdlibc/../includeexit.cstdint.htypes.hcollections.herrno.h/hW4g4h=6wg/&ZCHL_EXIT| MAB i.MAB H.bUAB ~.$lAB DZ.n. N.H.uuMtMNuNPuPbtbcuceuetuu#t6exitabort atexit8_exit#functionGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4# x%X+X0XBo> RPN ^ jf @ w8: r         M-l3M9bU@LR\crexit.catexit_listexitlist_get_element_at_exitabortatexitlist_createerrnolist_pushstrcpyget_parent_pidsend_messageinit_process_exitdestroy_process!-DYirw| rvz  ! *CGK q 4 8P Tl pfile.o/ 1243806002 1001 1001 100644 16508 ` ELFh-4(U;Er ESt PE u PEEUWVS : ; I  : ; (  : ;  : ; I8  I $ > : ; I8 I !I&I : ; .: ; ' I@: ; I .? : ; ' I@: ; I 4: ; I 4: ; I  4: ;I  4: ;I .? : ;' I@: ;I : ;I .: ;' I@&.? : ;' @ : ;!.? : ;' I@2GNU C 4.2.2stdlibc//file.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src0signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&#resid5# buffer_ptr7<#buffer_size8.#buffer_pos9.#buffer_mode:#ungetc_count<.#ungetc_buffer=#!  io_resource_t>FILE42pid3{#correlation_id4{#data_length5.#data6<# response_t7 6\id7# 8.# 99.# +:# io_read_request_t;>id?# @.# 9A.# +B# dataC#  io_write_request_tDuNidO#io_eof_request_tPT1idU#io_tell_request_tV  Vlostio_internal_file, yres z#free_buffer {c#(get_shm1<r&0.fopenJr=,DIPmodeIPfull_pathKTmsgQPattrRXiV\resp}`dPint_resh    o  [freopen=XpathPmodePstreamnew_fileltmp_fileGfclose.^Àresult{tfread..bdest<.9. read_bytes.Tread_request\Dgq iX\I8resp`&.dIresp)h&+.lfgetcE<DcFwfgets\< dest[length[[i]pc]tungetck4Xctio_write.k `5 src5 .9. .drequest_size.hrequest< `write_requestK lresp.p M data<t ;  K  fwrite. r  data5 .9. .tfputcr  cchwfputs0 I str/P/fseekF  EoffsetE"originEftell`"  < _tell_requestf1presultg"lrespotfeof hM eof_requesttferror ~ clearerr  rewind  fflush W J&.tfpurgeWkDK Jsetvbufk~p Mmode&. int_respold_buffert out0Bsetbuf?~ >M>setbufferEr DMD&D.setlinebufJ IremoveW  DVP!tmpfilem0Lshm_ptr,<shm_id-shm_size..o stdlibc/../includefile.cstdint.hstddef.htypes.hio_struct.hstdio.hrpc.hio.hlostio.h0g/Z .Yg7ih'1111c$%(ؒs[u#M!$hػ =g!ב tiؑ.w)*0ל1󓻱giL//!x/! ti*.i$uu/hjs<gg .gggY5fYwh)gYK@"g .g󾟟%?y'0/ */# .ggu .u3Xhٟ#1 .hw!ؑ .h󔟔 .>Y .> .g! .h(ʭ .=Y.hjggu]u2u2u1uס4g,1g*1g .g.gKIO_OPEN yIIO_CLOSEIO_READ IO_WRITEIO_TELL IO_EOF w+btmp:/create| rAB i. rAB FK.={AB EI.vAB b. .AB E.GAB I.<AB I.|AB f.k%AB . AB G.r 8AB T. RAB DF. AB b. AB j. jAB }. AB  AB  %AB M.K. AB `.WAB kAB .~4AB g.2AB e.AB L.AB I.AB P.uurtrsusuuu=t=>u>@u@tuu.t./u/1u1tuu<t<=u=?u?tuuktklulnun t u u r tr s us u uu t u u t u u t u u  t  u  u t u u t u u t u u t u u WtWXuXZuZktklulnun~t~uutuutuutuutuu0t6fopenfreopenfclose^freadbfgetcfgets ungetcQ fwrite fputc fputsI fseek ftell feofM ferror~ clearerr rewind fflush fpurgeK setvbuf setbuf setbufferr setlinebuf remove tmpfile0io_resdata_sizeblocksizenew_buffersizeshared_mem_idblockcountfilenamebufferGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment40 l6%d+d 0dB<6> |9Rr sN >b"^ > n#j > {&x+ d@ ,  l@@,T,,(1 4r! (k% 1EZmrsk={v .G j<  | !r 8' R- 3< B K %RWY~4`2ju|file.cget_shmshm_sizeshm_ptrshm_idio_writeclose_shared_memorycreate_shared_memoryopen_shared_memoryfopenio_get_absolute_pathstrlenmemcpyrpc_get_responsefreemallocstrcpysetvbuffreopenfclosefflushrpc_get_dwordfreadreallocfgetcfeoffgetsferrorungetcfwritememchrfputcfputsfseeklio_seekftellclearerrrewindfpurgesetbufsetbuffersetlinebufremoveio_remove_linktmpfile$-8CKPYaf  |"O!" #%. $2W"k q'$I'[)&)%  / F ]  c #  m  " , "F  +  + " "H \ 0 "     X "l  r # / 2a 9 " 'rvz2@NVdh.26?mqu )9=Rrvz $:Ijnr  b f j           " : Y ] a j        ' ^ b f o              + / 3 < ] a e n }        4 8 < E T c            1  $(,048<@DHLPTX\`d48X\x| (,DH`d$(@DX\txfprintf.o/ 1243806002 1001 1001 100644 4060 ` ELF 4(UE EEUPRUEE}u u EEEuuju UEEEEEEuu EPUEEEPu uEE% $ > : ; I I  : ;  : ; I8  I ' I I &I  : ;  .? : ; ' I@: ; I 4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//fprintf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$va_list!N__builtin_va_listfcharpid_t&long unsigned intio_resource_id_t.%1rid2#path3r#pid4p#resid5# buffer_ptr7n#buffer_size81#buffer_pos91#buffer_mode:#ungetc_count<1#ungetc_buffer=x#!fio_resource_t>FILE4~pfn_putc  n fpfn_putsn  n   f jprintf_args Qputc_fct#putsn_fct#argn# fprintf_args"tfp#t# fprintf_putc')arg&c&ftQ fprintf_putsn.)k,arg-string-n- vfprintf3kXfp2tformat2ap2?args4Qtfprintf_handler5hfprintf;fp:tformat:ap RN |b^ @ o~Nz    " 4 ( P  xT    ))B,3:k8CL)fprintf.cfprintf_putcfputcfprintf_putsnstrlenfwritevfprintfjvprintffprintfDbx uy}  &*.  48PTlpfscanf.o/ 1243806002 1001 1001 100644 1196 ` ELF4( % $ > +GNU C 4.2.2stdlibc//fscanf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S/:  JV_   fscanf.ctx|jprintf.o/ 1243806002 1001 1001 100644 11684 ` ELFL 4(US$EEE EERPuuEUEM]RPSQE}tUEEU]U8EE؋E E܋EE}t EE$EЉE}v}$v EEE؋U܉EUEEjuuuEUE EuڋEEEE؋U܉EUEPuuuEUMEEEM}űEEԋEUE EEtEUE@RPуEEEUE@t EPE@uu P҃EPEE EE PuEEEE tE;E|̃}tƋEEEU8DžX E TE @E E <%t E uE ‹T)ȃPTullyl E ‹T)ȃt2E ‹T);ltlX‰J lXE % E @E E <%uiE Puppyp puX pXE @E ƅ_Dž`DždDžh E  w!HE _E @E E *t4*|E0 w7E U j PR`UBEЋ`E @E E <.ulE @E E *t4*|E0 w7E U j PRdUBEЋdE @E E htlt8Lt\aDžhE @E E E؉EJj uE}yM/}uXEXE܋E;`ruuuE}yU}tE;EtEXEXuuuE}y E|}tE;EtEX‰[EX0juuE}y M)EXE @E E X% $ >  : ; I I I' II &I  : ;  : ; I8 .? : ; ' I@ : ; I : ; I 4: ; I 4: ; I   4: ;I I!I/ $ > GNU C 4.2.2stdlibc//jprintf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src"signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intva_list!#__builtin_va_list;charpfn_putcSYn;pfn_putsn ; jprintf_args  putc_fctC# putsn_fctn# arg# divmod2gj dividend1X divisor11j quotient3`rem4l ulltoaLgB, valueKP bufK radixK uppercaseKpM`charsN#dtempOhdigitsPtQ\;  jprintf_putc~BXj args}j c};t jprintf_putsn argsj string nip t jvprintf"y argsj formatΟ aptП~ ѝ~flags;~width~precision~length~Bret~Vret~UX bufCy~signD~U$valueL~Dvalue`~W len}"ret0lretlretret U retU ret 3ret , Qret: oret ret  ret W ret ret ! ret! X ret@d Pc;Gt retH stringL ^lenPpadTH retX ret\ Qret`_ retd 'rethvDretlvretprett;BM stdlibc/../includejprintf.cstdarg.hjprintf.h12hg X!gw=gi .˟.guv09). Z0r%v]u\u)x.0/yu.0/z+vv1vv1y -==0==0\hu*DL)G7Z70GZG0Gڒ=7Z>0GڒG7Z<$G0G7u[Ju[PXGZGX[GXZT0}t!0123456789ABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmopqrstuvwxyzUd UU UU%                               %          ,  l  | gAB D\.gAB i.B?AB f.AB c.$AB W. . >.uugtghuhjujBtBCuCEuEtuutu u "tTdivmodpulltoa(jprintf_putcpjprintf_putsnjvprintf"remainderbytes_writtenGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4" %X%X+X0XBi> D'RN *b^ $* n\j <-P { X -@  -`x $ %_   g&g-B?:HQXjprintf.c__udivdi3__umoddi3divmodulltoajprintf_putcjprintf_putsnjvprintfstrtolstrlen$Da sOj%E@| ^   C   +   1   U  l&uy}   ;   >BF    E  %)EIbf48RVpt!7;QUlp (,EI_cZHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx| 8 <T Xp t liballoc.o/ 1243806002 1001 1001 100644 11436 ` ELF4(UUUE jPEE PhᆳuVEUE PuUUEUE‹E EE;ErEUEE‹E‹E EE;ErEUEEE EEEEEm}wEEEEEEEEM}uEUSEEE‹EѺЅu‹EѺE‹EѺ@E;EvEE PoE}u%EnEE@UEBUEP E@E@E@  ڣ EEE]USdEEEEEEEr}u6] jEau- u]uE+EEP @)ȺEȉŰEEEE;EU;Ur M;MEEE؋P E؋@)ȉEԋEԺEUU;Ur&M;MwE;EvEأEԺEȉŰE;EvjE؋@tE؋@E }uEE u!‹E؉PE؋@E؋PE؉E؋@E؋E؋@E؃‹E؉PE؋@@ E؋@E؋@@E؋PE؉BE؋PEBE؋PEBE؋@EPE؉PMڣE؋@EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfUЉUE؋@‹E؉)ȃEԋE;EE؋PE؃E؋@E؋@BE؋@E؉PE؋@@ E؋@E؋PE؉BE؋PEBE؋PEBE؋@EPE؉PMڣE؋@EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfEЉEE؋@EQE܋@E؋P E؍EԋE܋PE‹E)ЃEԋE;EE܋PE܍‹E܉PE܋PE܉E܋@E܋E@E@ U܋E؉BU܋EBU܋EBE؋@EPE؉PMڣE܃EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfUЉUE܋@E܋@‹E)‹E܋@)ȃEԋE;EE܋PE܍EE@ E܋PEPUE܉UEBUEBUE؉BE܋PEU܋EBE؋@EPE؉PMڣEEЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfmEЉE~E܋@E܃}E؋@uB}uEE4 uO‹E؉PE؋@tE؋PE؉E؋@E؃}bEE]UWVS,}u!`EfE}w E+EEzEEE@ =tx $ $E@ %=t$E@ %=tE@ %=u(,(,E@Phu E@E E@Ή)׉EPE@)ljPEPE@ ޭދE@t EPEEtEE@BEu EPEPE@;Eu E@;Eu EtEE@BE@t EPE  E@ Ή)׉ E@PuGt>P @)ljEEP E@)ȉEE;EvEOe[^_UEE EE PEEPju EU} u uE9}u u EEEEfE}w E+EEEEE@ =t| $ $E@ %=t$E@ %=tE@ %=u(,(,EbE@EE;E rUE BEE; u Euuu uEEE% $ > : ; I  : ; (  : ;  : ; I8 : ; I8  I .: ; ' I@ .: ; ' I@ : ; I 4: ; I .: ; ' @.? : ; ' @&: ; I .? : ;' I@: ;I 4: ;I 4: ;I   .? : ;' @: ;I 5IGNU C 4.2.2stdlibc//liballoc.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcg signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intuintptr_tAlong intsize_t${hc8lfree{3 ptrz2min|EXmaj}\c y` dmajSizehcalloc2  nobj$$pp2trealloc2 g p2$ptr2hminEl$pK i "tl_memRootbl_bestBetcl_pageSizeel_pageCountfl_allocatedgl_inusehl_warningCountkl_errorCountl l_possibleOverrunsm(la_lockq04X stdlibc/../includeliballoc.cstdint.hstddef.htypes.hhYY1hYY5gk=1gK1>4hǯ=2h=2igh0!Glgh09l=1.yMvk""h '_uuykOZhYN /]w0xZM&ܴ[hu\Y׭ɻɻ#"=Yhɻ""=Y[[g""=Y#""=Yhu2Y~ X Xh[[6Y X.ghQK=gg.jL Yj"=3lh׾gZ6YY[ؑ| AB AB $<AB O.`AB P.}AB ,AB 1AB \AB ;!AB Dn.0\AB DW.u.&...x.(3 AB F. G.Q. 8AB T.T. ( dAB O.T..T. N.uutuu$t$%u%'u'`t`auacuc}t}~u~utuutuutuu;t;<u<>u>\t\]u]_u_3 t3 4 u4 6 u6 t u u  t  u  u g tQinit_memory_managermallocfreecallocreallocg sizereq_sizediffreal_sizebestSizeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4g  4&% + 40 B6> )RN +b^ + oH<~Uz ,   ,&1X"  $L  +7CKZ g(z0$<1`,\;!   }1\83 = 8D dliballoc.cl_memRootl_bestBetl_pageSizel_pageCountl_allocatedl_inusel_warningCountl_errorCountl_possibleOverrunsla_lockliballoc_lockliballoc_unlockliballoc_allocliballoc_fill_dwordliballoc_freeliballoc_memsetliballoc_memcpyallocate_new_pagepvmem_allocatemem_freeinit_memory_managermallocfreecallocrealloc !7"t#Pi5;DJ%%n"+1AGPVC I T Z         9 ? [ a     4 : V \ x     % &6 %        3 %U &vz~)7aei37;W[_  9U#']ajz~3`osx-Gg|e04HLdh48`dmalloc.o/ 1243806002 1001 1001 100644 758 ` ELF4( GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.debug_info.debug_line.comment4!4'4,4:5F5R5G[\   malloc.cmath.o/ 1243805999 1001 1001 100644 1192 ` ELF4( % $ > (GNU C 4.2.2stdlibc/math.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S,:  JV_  math.cquyprintf.o/ 1243806002 1001 1001 100644 3752 ` ELF4(UE EE PU u EE;E~}uEu PEEu PEEUWV}u uEPe^_UE EEPuEE% : ; I I$ >  I' II &I  : ;  : ; I8 .? : ; ' I@ : ; I 4: ; I .? : ; ' I@LGNU C 4.2.2stdlibc//printf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcva_list!__builtin_va_listcharpfn_putcintpfn_putsn jprintf_args j putc_fct# putsn_fct# arg#signed charshort intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intlong unsigned int printf_putc##I arg" c"t printf_putsn*#y, arg) string) n)len+t vprintf:yX format9 ap9printf_handler;dprintfA format@apBpretvalCtxL stdlibc/../includeprintf.cstdarg.hjprintf.h"Y1gjx1KwjgM=| #AB Q.#VAB I.y0AB EY.&AB S.uu#t#$u$&u&ytyzuz|u|tuutFP printf_putcIprintf_putsnvprintfprintfGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 8%+0BP> R%|N 8b ^ @ nj P@ {8J 2  Rd p $ Y   #'#V4;Ay0IR&printf.cC.2.1473printf_putcputcharprintf_putsnstrlenputsnvprintfjvprintfprintf0Sjtx|"& _cg   Y 4 8P Tp trand.o/ 1243806002 1001 1001 100644 2960 ` ELF4(UEUSӡjh5qRPEEE]UUu% $ > $ > .? : ; ' @: ; I .? : ; ' I@4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//rand.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcmsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharsrand( Eseed'rand2 P,rrnd3prandomAP]XsrandomK]mseedJrnd_seed J& stdlibc/rand.c'=6w'=`gY6=|  AB  CAB D\.P AB ]AB C.uu t uuPtPQuQSuS]t]^u^`u`mt8srandErandrrandomsrandommGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4m h @%+0B1> RNN 0 bT^ 8 @ o~<z x    @ $ D    ! C&5P <]rand.crnd_seedsrand__umoddi3randget_tick_countrandomsrandom1<DWdrvz%)- SW[   3 0 4P Th lsnprintf.o/ 1243806002 1001 1001 100644 3688 ` ELF4(UE EE@PE@9v EE@PE@9s EiEPE@H9s&EEHŠEQEPE2EPE@H9uEEPЍBEPEEU(EEE EEEEEEuuEPE}xE;E s EEEUEEEPuu uEE% $ > : ; I  I I' II &I  : ;  : ; I8 : ; I8 .? : ; ' I@: ; I : ; I 4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//snprintf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src@signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$va_list!2__builtin_va_listJcharpfn_putcbh}!Jpfn_putsn! J jprintf_args  putc_fctR# putsn_fct}# arg!# snprintf_args "R #R# buflen$# bytes_written%#J snprintf_putc)arg(c(Jt vsnprintfC,:BRsizeBformatBapB# argsDhsnprintf_handlerE\retvalFtsnprintfU@XTRsizeTformatTapV#pretvalWtZ stdlibc/../includesnprintf.cstddef.hstdarg.hjprintf.h(001g/Muh=1jgw=| AB bAB x.)AB V.uutuutuu@t;Xsnprintf_putcvsnprintf:snprintf@bufferGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4@ %t+t0tBc> R N bd^ 0 o~?z P   X(  H 6    b$-)snprintf.csnprintf_putcvsnprintfjvprintfsnprintf1vz~ osw   LPT Y g04LPsprintf.o/ 1243806002 1001 1001 100644 3320 ` ELFL4(UE EEEHŠEQEPU(EEEEEEEuu EPE}x EEEUEEEPu uEE% : ; I I$ >  I' II &I  : ;  : ; I8 : ; I8 .? : ; ' I@: ; I : ; I 4: ; I .? : ; ' I@GNU C 4.2.2stdlibc//sprintf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcva_list!__builtin_va_listcharpfn_putcintpfn_putsn jprintf_args k putc_fct# putsn_fct# arg# sprintf_args  !# bytes_written"#unsigned int sprintf_putc&0arg%c%tk vsprintf-0,,format,ap,args.klsprintf_handler/ `retval0tsprintf<X;format;ap=pretval>tvM stdlibc/../includesprintf.cstdarg.hjprintf.h%Y1gMuh=1jgw=| 0AB 0TAB r.)AB V.uu0t01u13u3tuut8sprintf_putcvsprintfsprintfbufferGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4  %+0B> ( RzN b8d^ 0 o~ <z  \  |   2    00T!*)sprintf.csprintf_putcvsprintfjvprintfsprintfDfuy}   '   Z04LPsscanf.o/ 1243806002 1001 1001 100644 1196 ` ELF4( % $ > +GNU C 4.2.2stdlibc//sscanf.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S/:  JV_   sscanf.ctx|stdio.o/ 1243806003 1001 1001 100644 7088 ` ELF4(UhhE}uuhjwPEEƄwtPhwPhwP ujjjPhhE}uuhjwPEEƄwtPh$wPh$wP uhjh Phh&E}uuhjwPEEƄwtPh$wPh$wPjjjP uUuu uEE*Pjuu u EEEEU uuPu E1uh6j j EEUuEEEPjEEu uEEUuEEEPjEEPuEEU uU PUEgE}u5 Pt E_ Pu;$ u} t%EUEE PtEEEEEUPuh8% $ > : ; I  : ;  : ; I8  I$ > &I .? : ; ' @ 4: ; I I !I/ .? : ; ' I@: ; I  .? : ; ' I@.? : ;' @: ;I !I/4: ; I?  4: ; I? < &GNU C 4.2.2stdlibc//stdio.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src}signed charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&long unsigned intio_resource_id_t.%1Aid2a#path3A#pid4?#resid5a# buffer_ptr7=#buffer_size8/#buffer_pos9/#buffer_mode:#ungetc_countys GFILE4U stdio_init/? path_file0p path1~ size2/tx G jputsn?,(nstrmputsXUstrmputcDcio_res # csGwputcharDcǛSj csGwgetcio_resgetchargetsA\4destA posp ctperror\}`messagem Gj stdout_buf) stdin$stdout%stderr&errnoOz stdlibc/../includestdio.cstdint.hstddef.htypes.hio_struct.hstdio.herrno.h.uh@uhuh> .g .g">˟ .ggi .gg .g .g .gv0hKN1jiJ6hrconsole:/stdinrsconsole:/stdoutaconsole:/stderr %s: errno=%d | ?AB S.?WAB U.gAB I.GAB [.DJAB [.AB I.AB L.AB c.\!AB T.uu?t?@u@BuBtuutuuDtDEuEGuGtuutuutuu\t\]u]_u_}t*stdio_initputsn(putsUputcputchargetcgetchar:getsperrorstdinstdoutstderr}GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4} `h%+  09B*> 8R# N ^; Fj f  w         !(?39?GNV?W\jqgv}DJG\!stdio.cstdout_bufstdinstdoutstderrstdio_initfopenfreadfreopenfclosesetvbufputsnsyscall_putsnfwriteputsstrlenputcharputcfputcgetcfgetcgetchargetsferrorfeofperrorerrnoprintf )H^gp|!*6COWbjv|(6FXhv5Kcs!!"$%4=$c'ot(sw{  6:> cgk   .26 HLP   4 8P Tl p     strtol.o/ 1243806003 1001 1001 100644 2664 ` ELF4(UEEE< tE< tE< tE< tE .? : ; ' I@: ; I 4: ; I  I&I.: ; ' I@GNU C 4.2.2stdlibc//strtol.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrtol!str endptr base retval"pdigit#tchartolower0,c/w> stdlibc/../includestrtol.cctype.h gw0:$Z"2@p<h=m.g| AB .(AB uutuutstrtolGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!T'T,T{>: PN{J ( ^HZ 0  k\Xzv P    X    (   strtol.ctolowerstrtoltx|!%)  K 4 8system.o/ 1243806003 1001 1001 100644 2340 ` ELF<4(U uEjEPuu EEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc//system.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcDsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&charlong unsigned intsystem+Dcommand*pid-tstatus.pZ> stdlibc/../includesystem.ctypes.h*h| DAB I.uuDt;systemDGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4D %x+x0xsB> 8R^N b0^  o,~@z  ]   }  &    Dsystem.csysteminit_executewaitpid $tx|KOS Ktime.o/ 1243806003 1001 1001 100644 3100 ` ELF4(UEhhE}u) h hLE5ujjEP u}tUEEEE% $ > : ; I  : ;  : ; I8  I.? : ; ' I@ : ; I 4: ; I GNU C 4.2.2stdlibc//time.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&time_t0"long unsigned intchario_resource_id_t.%1Vid2v#path3V#pid4>#resid5v# buffer_ptr7<#buffer_size8.#buffer_pos9.#buffer_mode:#ungetc_count<.#ungetc_buffer=\#!nio_resource_t>FILE4btime7K t6 result8Kp time_file:tKw stdlibc/../include../include/systime.cstdint.hstddef.htypes.htypes.hio_struct.hstdio.h6gvug/grcmos:/unix_timetime():Konnte 'cmos:/unix_time' nicht oeffnen. Ist das cmos-Modul geladen? | AB W.uuttimeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 l H%+0BS> 8R3N ^ajH0f  wx,     0 D '     time.ctimefopenprintffreadfclose/4?D`nrvz  wchar.o/ 1243806003 1001 1001 100644 4084 ` ELFH 4(Uuu uUu uUuu uE}u EUuu uE}u EU}u E} EEEUEE/EEPE}u E&EEEE;E sEEuEEE% $ > : ; I I.? : ; ' I@: ; I &I4: ; I 4: ; I? < GNU C 4.2.2stdlibc//wchar.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src0signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned int<mbstate_t/mbrtowc+wc*s*len*ps* -<_wcrtomb45,'buf3Ywc3-ps3wcsrtombsA5gXbuf@Ywcs@len@ps@ resultBt-mbsrtowcsTgbufSstrSlenSpsS resultUtwcwidthiEwch-wcswidth0wcslencolslcurpit errnoO` stdlibc/../includewchar.cstdint.hstddef.hwchar.herrno.h*g=5g .i= .i= .hgg.gxb| AB O.AB L.52AB O.g2AB O.0AB gAB _.uutuu5t56u68u8gtghuhjujtuutuu0t[pmbrtowcwcrtomb'wcsrtombsmbsrtowcswcwidthEwcswidth0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment40 8%d+d0dB> RN tbL^ |` o~ _z  k     |     '521FLg2Vk0sgwchar.cmbrtowcmbtowcwcrtombwctombwcsrtombs__internal_wcsrtombserrnombsrtowcs__internal_mbsrtowcswcwidthwcswidth,HZzsw{  :>B  '+/ W[_ m48PTlpwctype.o/ 1243806003 1001 1001 100644 4980 ` ELF 4(U}@~}Z EEEU}`~}z EEEU}`~}z~ }@~}Z EEEU}/~}9 EEEUuuut EEEU} t} t } t} u EEEU} t} u EEEU ut'uuuu EEEU}U}Uut E EEEEUut E EEEE% $ > : ; I.? : ; ' I@: ; I .? : ; ' I@GNU C 4.2.2stdlibc//wctype.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwint_t) iswupper)'wc(Liswlower7'N,wc6LiswalphaBNXwcALiswdigitLwcKLiswalnumXJwcWLiswspaceczwcbLiswblankn;wcmLiswpuncty;4wcxLiswprint` wcLiswcntrl:wcLtowupperLjwcLtowlowerLwcLV stdlibc/../includewctype.cstdint.hstddef.hwchar.h(g .g .g+6g .g1 .g+ .g .gC .= .= .g# .g#| 'AB ''AB N3AB 'AB 9AB F.3AB 'AB ;KAB I.O.AB AB +AB F.+AB F.uu't'(u(*u*NtNOuOQuQtuutuutuutuu;t;<u<>u>tuutuutuutuutZiswupperiswloweriswalphaiswdigitiswalnumJiswspaceziswblankiswpunctiswprint iswcntrl:towupperjtowlowerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 8%0+000kB> T@R2N bH^  o0~@ z \   d    v    '''N3%'.973@'I;KR[d+m+wctype.ciswupperiswloweriswalphaiswdigitiswalnumiswspaceiswblankiswpunctiswprintiswcntrltowuppertowlowerHWf tx|lpt    ,04 \`d     $ LPT | c04HL`dx|04wstdio.o/ 1243806003 1001 1001 100644 4536 ` ELF 4(U(E uE}u E}UEDEEPEPEPE}u}~}y>EHEEDuPM}EEE܋EU PUuEPE}yE(Eu jPEPu EEEEUPuU&Eu Pu EEEuEE% $ > : ; I  : ;  : ; I8  I.? : ; ' I@ : ; I 4: ; I  I !I/ $ > .? : ; ' I@: ; I &I4: ; I? < cGNU C 4.2.2stdlibc//wstdio.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intuint8_t%unsigned charshort unsigned intuint32_t' unsigned intlong long unsigned intlong intsize_t$ wchar_t&charpid_t& long unsigned intio_resource_id_t.%1hid2#path3h#pid4f#resid5# buffer_ptr7d#buffer_size8?#buffer_pos9?#buffer_mode:#ungetc_countFILE4twint_t)Mfgetwc)1 (1 mbc*7d len+h mbres,l c-p result.` f i;t \G GgetwcharM,fputwc\)Xwc[M [1 mbc]7p len^tputwcharu)EwctMfputwsE-wcs- 13Mstdin61stdout71errnoO stdlibc/../includewstdio.cstdint.hstddef.htypes.hio_struct.hstdio.hwchar.herrno.h(hzg&h6g .j .g= .g/F| AB P.AB L.aAB M.)AB O.ECAB Q.uutuutuu)t)*u*,u,EtEFuFHuHtIgfgetwcJgetwcharhfputwcputwcharfputwsstreamGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 (`%+0Bg> RN Hb^ PP o~d Mz        f    %+4:aAHO)X_ECwstdio.cfgetwcfgetcmbtowcungetcerrnogetwcharstdinfputwcwctombfwriteputwcharstdoutfputwsJ 0<Ztx|  \`d x|     48PTlpbcmp.o/ 1243806003 1001 1001 100644 2224 ` ELF84(U}u E4EEE EEE8EEu M}uދEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&GNU C 4.2.2string//bcmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcNsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$bcmp&Nb1%b2%length%p1'pp2'tcharZ< string/../includebcmp.cstddef.h%iggh| NAB uuNtbcmpNGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4N!',q>: H8N^J ^,Z  k,zDv  _  X  8    Nbcmp.cbcmpquy*.2 Ibcopy.o/ 1243806003 1001 1001 100644 2676 ` ELF4(UE EEE}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}u% $ > : ; I.? : ; ' @: ; I 4: ; I  : ;  I &  &IGNU C 4.2.2string//bcopy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcintsigned charshort intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$bcopyAsrc0?dst0?length?dstBlsrcCptDtdone} char = string/../includebcopy.cstddef.hggi Xg/e1=g(ggg/e1Kg| AB uutbcopyGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>f:  @N%J D ^,Z L  k,zv \    d <N        bcopy.cbcopyrvz(,0 Jbzero.o/ 1243806003 1001 1001 100644 2340 ` ELF4(UEE} w EEM } urEE}t#+EEE)E EEM}uE EEEM}uE E}tEEM}u% $ > : ; I .? : ; ' @: ; I 4: ; I  IGNU C 4.2.2string//bzero.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$u_char"long unsigned intbzero<dst01@length1t=pdstAtzL string/../includememset.cstddef.hbsdtypes.h;mfg/:j.hKh| AB uutBbzeroGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',q>A: 8N~J ^`,Z  k,zv           bzero.cbzerorvzMQU Yffs.o/ 1243806003 1001 1001 100644 2068 ` ELF4(U}u E$E EEEEtEEE% $ > .? : ; ' I@: ; I 4: ; I AGNU C 4.2.2string//ffs.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src>signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intffs&>mask%bit't@$ string/ffs.c%igʑ| >AB uu>tE ffs>GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4>!t't,tT>E: 8N DJ ^T,Z  k,zv          >ffs.cffsptx" 1ffsl.o/ 1243806003 1001 1001 100644 2072 ` ELF4(U}u E$E EEEEtEEE% $ > .? : ; ' I@: ; I 4: ; I CGNU C 4.2.2string//ffsl.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src>signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intffsl&>mask%bit'tA% string/ffsl.c%igʑ| >AB uu>tGffsl>GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4>!t't,tT>G: 8NEJ ^T,Z  k,zv          >ffsl.cffslquy $ 2fls.o/ 1243806003 1001 1001 100644 2064 ` ELF4(U}u E E EEE}uEEE% $ > .? : ; ' I@: ; I 4: ; I AGNU C 4.2.2string//fls.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src:signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intfls&:mask%bit't@$ string/fls.c%ig| :AB uu:tE fls:GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4:!p'p,pT>E: 8N DJ ^P,Z  k|,zv          :fls.cflsptx" 1flsl.o/ 1243806003 1001 1001 100644 2068 ` ELF4(U}u E E EEE}uEEE% $ > .? : ; ' I@: ; I 4: ; I CGNU C 4.2.2string//flsl.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src:signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intflsl&:mask%bit'tA% string/flsl.c%ig| :AB uu:tGflsl:GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4:!p'p,pT>G: 8N EJ ^P,Z  k|,zv          :flsl.cflslquy $ 2index.o/ 1243806003 1001 1001 100644 2128 ` ELF4(UE EE:EuEEEu EE׋E% $ > .? : ; ' I@: ; I 4: ; I  I&IjGNU C 4.2.2string//index.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src:signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intindex+T:Tp*bch*c,ZwZcharhZC& string/index.c*ihAZ| :AB uu:tnindex:GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4:!p'p,pf>n: 8NDGJ ^,Z ( k,zv 8   @ 2      :index.cindexrvz"& 3memccpy.o/ 1243806003 1001 1001 100644 2324 ` ELF4(U}tBEEE EEEEEE:EEEtEEM}uEE% $ > : ; I.? : ; ' I@: ; I  4: ; I   I & &IGNU C 4.2.2string//memccpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcZsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memccpy'Zt#f$c%n&  Ntp*lfp+puc,w    ^? string/../includememccpy.cstddef.h&hgggh׃| ZAB uuZtmemccpyZGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4Z!',>: HNbJ ^8,Z  kd,zv           Zmemccpy.cmemccpytx|048 quLmemchr.o/ 1243806003 1001 1001 100644 2256 ` ELFD4(U}t-EEE;E Et EHEM}uEE% $ > : ; I.? : ; ' I@: ; I  4: ; I   I & &IGNU C 4.2.2string//memchr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcEsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memchr)yEys&{c'n( 9p+t   [> string/../includememchr.cstddef.h(ggiK| EAB uuEtmemchrEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4E!|'|,|>: XHN_J ^,Z  k ,zLv  i  d  D    Ememchr.cmemchrsw{.26 cgKmemcmp.o/ 1243806003 1001 1001 100644 2296 ` ELFl4(U}tMEEE EEE8EEtMEME)MM}uEE% $ > : ; I.? : ; ' I@: ; I  4: ; I  I & &IGNU C 4.2.2string//memcmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcesigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memcmp+es1)s2)n* Yp1-pp2-t  \> string/../includememcmp.cstddef.h*ggג| eAB uuetmemcmpeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4e!',>: HN`J ^,Z  kH,ztv      l    ememcmp.cmemcmpsw{.26 eiKmemcpy.o/ 1243806003 1001 1001 100644 2696 ` ELF4(UEEE E}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}uE% $ > : ; I.? : ; ' I@: ; I 4: ; I  : ;   I & &IGNU C 4.2.2string//memcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcintsigned charshort intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memcpyAdst0:src0:length:dstBlsrcCptDtdone}  char  = string/../includebcopy.cstddef.hggi Xg/e1=g(ggg/e1Kg@| AB uutmemcpyGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>h:  @N-J X ^,Z `  k,z v p  )  x I[$        memcpy.cmemcpysw{.26 Jmemmem.o/ 1243806003 1001 1001 100644 2536 ` ELF4(U(EEEE} t}u EE ;Es E}uEu PuEZE UE)MEE1UU8u uuuuMMEE9EvEE% $ > : ; I.? : ; ' I@: ; I 4: ; I   I & &IGNU C 4.2.2string//memmem.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memmem(l&l_len&s's_len' cur)thlast)tlcl*pcs+t char f> string/../includememmem.cstddef.h'hgig"&| AB P.uutmemmemGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 p %+0Bs> 8RDjN b0^  o,~ z  )  I[P  P     memmem.cmemmemmemchrmemcmpTsw{.26 Kmemmove.o/ 1243806003 1001 1001 100644 2696 ` ELF4(UEEE E}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}uE% $ > : ; I.? : ; ' I@: ; I 4: ; I  : ;   I & &IGNU C 4.2.2string//memmove.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcintsigned charshort intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$memmoveAdst0:src0:length:dstBlsrcCptDtdone}  char  = string/../includebcopy.cstddef.hggi Xg/e1=g(ggg/e1Kg@| AB uutmemmoveGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>h:  @N/J X ^,Z `  k,z v p  *  x J\$        memmove.cmemmovetx|048 Jmemset.o/ 1243806003 1001 1001 100644 2460 ` ELF 4(UEE} w#E ‹EEM}uEEE E}tE EE EEE}t'+EEE)EE ‹EEM}uEEUEEM}uEE}tE ‹EEM}uEEE% $ > : ; I .? : ; ' I@: ; I 4: ; I  IGNU C 4.2.2string//memset.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$u_char"u_int$long unsigned intmemset<Ndst0:Nc0:length:t=lc?,pdstAt|L string/../includememset.cstddef.hbsdtypes.h;mfg/:j咘hɔKhɑ| AB uutPmemsetGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',s>: 4 8NNJ l ^,Z t  k,z(v  E  ew@       memset.cmemsetsw{`dh Ymultibyte.o/ 1243806003 1001 1001 100644 5388 ` ELF4(UEE%=u EgE%=u EJE%=u E-ExEu EE EKE;E v E:E#EE%=t EEE;E|ՋEEEUE} u Euu E}uEEw}u Eh+EEE ЋMH!‹EE,EEEEE ? ‹EEE;E|̋EEEU}u E E ;E uE ƒEEE %;E u2E ƒ ‹EMAE ƒ? ЈEE ;E uFE ƒ ‹EMAE ƒ? ЈME ƒ? ЈE[E ƒ ‹EMAE ƒ? ЈME ƒ? ЈME ƒ? ЈEEUE}E EEE rE PE QEPE}u E}tUE)щʋE9rI}tUEMREPQEEE t}yE;Em}t%E uE;EsE EEEEEUE}u^E EEE NE jPEP E}u Ex}tEUEEE E‹E E t}tE;Er}t+E u E;EsE EEEEEUuE PuUuE Pu % $ > : ; I.? : ; ' I@: ; I 4: ; I  I&I I !I/ $ > 4: ;I .? : ;' I@: ;I .? : ;' I@cGNU C 4.2.2string//multibyte.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&mblenFsEslenE"lenGpiHtcharmbtowcz,wcysysleny"len{li|pbitpos}t0wctombX]buf]wc0__internal_wcsrtombs"buf]wcslen"intbuflbufpos"pcurlenЭtour_wcsh 0 " " __internal_mbsrtowcs"{bufstrlen"wc0l bufpos"p curlent our_strh wcstombs8"{buf7]wcs7len7"mbstowcsS"bufRstrRlenR"M string/../includemultibyte.cstdint.hstddef.hgx===g.ivggg.ggɻ=!=K==Kg= .hxi/%gqf .hxii/g=u.gK.=!| AB AB b.*AB AB x.P.AB l. {AB P.AB J. uutuutuutuutuu{t{|u|~u~tuutzg?mblenmbtowc!wctombc__internal_wcsrtombs%__internal_mbsrtowcswcstombsmbstowcsGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 0%+0Bg> R' N |b$ ^ p o 4~, ~z      P   d    *!6=R{[multibyte.cmblenmbtowcwctomb__internal_wcsrtombsmemcpy__internal_mbsrtowcswcstombsmbstowcs Qvz~NRV  159  CGK  ,04 Z04LPdhrindex.o/ 1243806003 1001 1001 100644 2160 ` ELF4(UE EEE:EuEEEuEEEڋE% $ > .? : ; ' I@: ; I 4: ; I  I&I{GNU C 4.2.2string//rindex.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src>signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intrindex+e>ep*sch*save,epc-kwkcharykE' string/rindex.c*jgug~A0| >AB uu>trindex>GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4>!t't,tf>: 8NYIJ @^,Z H k,zv X   `9K      >rindex.crindexsw{ $( 4stpcpy.o/ 1243806003 1001 1001 100644 2088 ` ELF4(UE EE EEuE% $ > .? : ; ' I@: ; I  I&IcGNU C 4.2.2string//stpcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src#signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstpcpy%M#Mto$Mfrom$[ScharaS@' string/stpcpy.c$>=| #AB uu#tgstpcpy#GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4#!X'X,XW>g: 8NDJ ^\,Z  k,zv          #stpcpy.cstpcpysw{ $( 4strcasecmp.o/ 1243806003 1001 1001 100644 3148 ` ELF44(USEEE EEEt EeE P\ËEE PC9tE P+ME P)‰UE]U}@~}Z E EEEEUS}EEE EEPËEEP9t0EPMEPl)‰U!EEu M}uEE]% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&I .: ; ' I@ .? : ; ' I@ VGNU C 4.2.2string//strcasecmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcesigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$u_char"long unsigned intstrcasecmp%s1$s2$us1'lus2(pchar" tolower0,c/ strncasecmp4eXs12s22n3 Vus17lus28p[ string/../includestrcasecmp.cctype.hstddef.hbsdtypes.h$vgh/17Zg0ugi+0| AB Dt.(AB AB D_.uutuutuuet-ZEstrcasecmpstrncasecmpeGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4e!',>FZ: xNJ ^8lZ  0 kz(1v 4  Y  < yT  T -(   !strcasecmp.ctolowerstrcasecmpstrncasecmpw{Y]a   37h 8 <P Tstrcasestr.o/ 1243806003 1001 1001 100644 2716 ` ELFp4(UE E}E twE PsE u EEE}Et E8E P.:Euʃuu uuMEEEU}@~}Z E EEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&I .: ; ' I@GNU C 4.2.2string//strcasestr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strcasestr+s*find*c,rsc,slen-tchar tolower0,c/zM string/../includestrcasestr.cctype.hstddef.h*jYKYgu>u.g| AB c.(AB uutuut"strcasestrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 %+0B> PRP~N \ bH^ d  oX~p!z      4(   !(strcasestr.ctolowerstrcasestrstrlenstrncasecmp8w{6:>  Z 4 8strcat.o/ 1243806003 1001 1001 100644 2148 ` ELF4(UEEEEuE EEEE uE% $ > .? : ; ' I@: ; I 4: ; I  I&IsGNU C 4.2.2string//strcat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src=signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrcat#]=]s"]append"ksave$]tccharqcB' string/strcat.c"gh=| =AB uu=twstrcat=GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4=!t't,tf>w: 8NQFJ 4^,Z < k,zv L    T-?      =strcat.cstrcatsw{ $( 4strchr.o/ 1243806003 1001 1001 100644 2140 ` ELF4(UE EE:EuEEEu EE׋E% $ > .? : ; ' I@: ; I 4: ; I  I&IlGNU C 4.2.2string//strchr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src:signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrchr+V:Vp*dch*c,\w\charj\C& string/index.c*ihAZ| :AB uu:tpstrchr:GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4:!p'p,pf>p: 8NFGJ ,^,Z 4 k,zv D   L%7      :strchr.cstrchrsw{ $( 3strcmp.o/ 1243806003 1001 1001 100644 2136 ` ELF4(UEEt E.EE 8E uЋEЋE H)ME% $ > .? : ; ' I@: ; I  I&I[GNU C 4.2.2string//strcmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcUsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrcmp*UKs1)Ks2)KQVcharE' string/strcmp.c)g/[| UAB uuUt_strcmpUGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4U!',W>_: 8NBIJ (^,Z 0 k,zv @   H!3      Ustrcmp.cstrcmpsw{ $( 4strcpy.o/ 1243806003 1001 1001 100644 2128 ` ELF4(UEEE EE EEuE% $ > .? : ; ' I@: ; I 4: ; I  I&IrGNU C 4.2.2string//strcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src,signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrcpy#\,\to"\from"jsave$\tbcharpbA' string/strcpy.c"gh=| ,AB uu,tvstrcpy,GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4,!`'`,`f>v: 8N<EJ ^,Z ( k,zv 8   @+      ,strcpy.cstrcpysw{ $( 4strcspn.o/ 1243806003 1001 1001 100644 2484 ` ELF84(U$Eu EEEEEEE9E EE ?EUED EDE E uEEEEE?EED#EuEȋEU)ЉE܋E% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&I I !I/ $ > GNU C 4.2.2string//strcspn.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$u_long%-long unsigned intstrcspn%s$charset$s1*lbit+ptbl,\idx-tchar   xM string/../includestrcspn.cstddef.hbsdtypes.h$ fu3/gggA/| AB uutBstrcspnGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>: L 8Nj|J ^,Z  k,z@v  ^  ~X  8     strcspn.cstrcspntx|SW[ Zstrdup.o/ 1243806003 1001 1001 100644 2364 ` ELF<4(U u@E uE}u EuuuEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strdup.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcWsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strdup&jWjstr%xlen'pcopy(jtpchar~p\> string/../includestrdup.cstddef.h%j!g=| WAB I.uuWtstrdupWGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4W %+0sB> 8R`N b0^   o,~@z $  ]  , }  &    Wstrdup.cstrdupstrlenmallocmemcpy Esw{.26 Kstrerror.o/ 1243806003 1001 1001 100644 2320 ` ELF4(U% $ > .? : ; ' I@: ; I 4: ; I  IpGNU C 4.2.2string//strerror.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrerror)e eerror_code(error_message*ekchar@) string/strerror.c(>YUnbekannter Fehler|  AB uu ttstrerror GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4  )@% /D4D_FtB @VDR  b[np,j  {,   h h(    strerror.cerror_message.1284strerroruy}$(, `6 strlcat.o/ 1243806003 1001 1001 100644 2448 ` ELF4(UEEE EEEEM}t EuUE)ȉEUE)ЉE}u1 uU‰U<}tEEEMEEuދEUE )ȋU‰UE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strlcat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strlcat,dst)src*siz+d-hs.ln/pdlen0tchari? string/../includestrlcat.cstddef.h+gggj/;"gvg>7hg| AB R.uutstrlcatGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 %+0sBO> ( 8RmN ` bt0^ h  o,~z x            strlcat.cstrlcatstrlenVtx|048 Lstrlcpy.o/ 1243806003 1001 1001 100644 2308 ` ELF4(UEEE EEE}t0M}t'EEEEEu M}uك}u}tEEEuUE )H% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strlcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strlcpy*dst'src(siz)d+ls,pn-tcharb? string/../includestrlcpy.cstddef.h)gggiʔggg| AB uutstrlcpyGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',s>': 8NfJ ^8,Z  kd,zv          strlcpy.cstrlcpytx|048 Lstrlen.o/ 1243806003 1001 1001 100644 2148 ` ELF4(UEEEEuUE)% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IiGNU C 4.2.2string//strlen.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src(signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strlen$(Ystr#Ys%Yt_dcharW> string/../includestrlen.cstddef.h#i=| (AB uu(tmstrlen(GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4(!\'\,\s>m: 8N<[J 4^,Z < k,zv L    T-?      (strlen.cstrlensw{.26 Kstrncat.o/ 1243806003 1001 1001 100644 2288 ` ELFd4(U}tGEEE EEEuEEEEu EM}uًEE% $ > : ; I.? : ; ' I@: ; I  4: ; I  I &IGNU C 4.2.2string//strncat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcXsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strncat*Xdst)src)n) Sd,ps-tchar a? string/../includestrncat.cstddef.h)gggh/;=h=| XAB uuXtstrncatXGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4X!',|>: xHNeJ ^,Z  k@,zlv      d    Xstrncat.cstrncattx|048 imLstrncmp.o/ 1243806003 1001 1001 100644 2224 ` ELF44(U}u EQEE 8E tEЋE H)M!EEu M}uEE% $ > : ; I.? : ; ' I@: ; I  I&IwGNU C 4.2.2string//strncmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcksigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strncmp%kgs1#gs2#gn$mrchar_? string/../includestrncmp.cstddef.h$hgY| kAB uukt{strncmpkGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4k!',d>{: H8NcJ ^,Z  k,z<v  Z  zT  4    kstrncmp.cstrncmptx|048 Lstrncpy.o/ 1243806003 1001 1001 100644 2292 ` ELFh4(U}tIEEE EEEEEEt EEM}u M}uËE% $ > : ; I.? : ; ' I@: ; I  4: ; I  I &IGNU C 4.2.2string//strncpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcZsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strncpy*Zdst)src)n) Ud,ps-tchar `? string/../includestrncpy.cstddef.h)gggi/0=| ZAB uuZtstrncpyZGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4Z!',|> : |HNdJ ^,Z  kD,zpv      h    Zstrncpy.cstrncpytx|048 imLstrnstr.o/ 1243806003 1001 1001 100644 2444 ` ELF4(UE E}E tm u EM}tEE}Et E:E:EuЋE;Ev E!uu uuMEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strnstr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strnstr.s+find,slen-c/rsc/slen0tcharc? string/../includestrnstr.cstddef.h-jYבu>| AB _.uutstrnstrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4  %+0sB;> $ 8RgN \ bP0^ d  o,~z t    |   "    strnstr.cstrnstrstrlenstrncmp#{tx|048 Lstrpbrk.o/ 1243806003 1001 1001 100644 2212 ` ELF(4(U2E EE;Eu EHE9EE}Eu֋EE}EuEE% $ > .? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strpbrk.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src_signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrpbrk'v_vs1&s2&scanp(lc)psc)t|char|G( string/strpbrk.c&j/| _AB uu_tstrpbrk_GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4_!',f>: <8NKJ t^,Z | k,z0v  N  nH  (    _strpbrk.cstrpbrktx|"&* 5strrchr.o/ 1243806003 1001 1001 100644 2160 ` ELF4(UE EEE:EuEEEuEEEڋE% $ > .? : ; ' I@: ; I 4: ; I  I&I}GNU C 4.2.2string//strrchr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src>signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrrchr+g>gp*uch*save,gpc-mwmchar{mE' string/rindex.c*jgug~A0| >AB uu>tstrrchr>GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4>!t't,tf>: 8N[IJ @^,Z H k,zv X   `:L      >strrchr.cstrrchrtx|"&* 4strsep.o/ 1243806004 1001 1001 100644 2292 ` ELFx4(U$EE}u EcEEEEEE EEEE;EEt&}u EEHUEEE}u룋E% $ > .? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strsep.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intstrsep0stringp.delim/s1dspanp2hc3lsc3ptok4tcharK' string/strsep.c/lבghgugZ| AB uutstrsepGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',f>": 8NOJ ^(,Z  kT,zv      x    strsep.cstrsepsw{ $( 4strspn.o/ 1243806004 1001 1001 100644 2480 ` ELF44(U$Eu EEEEEEEE9E EE ?EUED EDE E uEEEEE?EED#EtEȋEU)ЉE܋E% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&I I !I/ $ > GNU C 4.2.2string//strspn.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$u_long%,long unsigned intstrspn%s$charset$s1*lbit+ptbl,\idx-tchar   vL string/../includestrspn.cstddef.hbsdtypes.h$ f/gggA/| AB uutAstrspnGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>: H 8NhzJ ^,Z  k,z<v  Y  yT  4     strspn.cstrspnsw{QUY Ystrstr.o/ 1243806004 1001 1001 100644 2396 ` ELF|4(UE E}E tS u EEE}Et E)E:Euكuu uuMEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2string//strstr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srczsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$strstr*zs)find)c+rsc+slen,tchar`> string/../includestrstr.cstddef.h)jYYu>| zAB _.uuztstrstrzGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4z %+0sB#> 8RdN , b$0^ 4  oT,~z D    L        zstrstr.cstrstrstrlenstrncmp#asw{.26 Kstrtok.o/ 1243806004 1001 1001 100644 2816 ` ELF4(U}uEE}u EEEEE EE;EtEE}Eu߃}uEEdEHEEEEE EEEE;EEt&}u EEHUEEE}u룋EUhu u % $ > .? : ; ' I@: ; I 4: ; I  : ;  I&I .? : ; ' I@ GNU C 4.2.2string//strtok.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong int__strtok_r2s1delim1last1spanp3htok3lc4psc4tcont@&char strtok`,s_delim_lastaX' string/strtok.c1j=׃g{hgugZ2?/| AB AB K. uutuut(__strtok_rstrtokGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 P %,+,0,B> ` `R\N b H^  ohX~,z        /    "(strtok.clast.1326strtok_r__strtok_rstrtoksw{$(,  4 0 4/0 1243806004 1001 1001 100644 2132 ` ELF4(UEP40% $ > : ; I$ > .? : ; ' @: ; I cGNU C 4.2.2syscalls//add_intr_handler.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordBcharadd_intr_handler!intr `I syscalls/../includeadd_intr_handler.ctypes.h =| AB uut#g4add_intr_handlerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!H'H,HY>g: 8NdJ $^l,Z , k,z'v <   D   %   add_intr_handler.cadd_intr_handlerJNR V/20 1243806004 1001 1001 100644 3272 ` ELF,4(U0EEUEP0EEUS]M UEPRQS0EE[U0U0EE% $ > : ; I I$ > &I.? : ; ' I@4: ; I : ; I .? : ; ' @ .? : ; ' I@GNU C 4.2.2syscalls//create_process.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&uid_t'dwordBGcharXGget_pid&pid'tget_parent_pid71, pid6result8tcreate_processT1^XP initial_eipS4 uidS' argsSR parentS pidUp destroy_processi^j get_cmdlinexAjresultyAtxG syscalls/../includecreate_process.ctypes.h%h= .h=.w =n=w .h=| AB AB 1-AB D^ AB jAB uutuu1t12u24u4^t^_u_auajtjkukmumtd]get_pidget_parent_pidcreate_processPdestroy_processqget_cmdlineGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>\: N|J X ^Z ` P kzhv  T  tL   l T   )1-8^ Hjcreate_process.cget_pidget_parent_pidcreate_processdestroy_processget_cmdline}nrv   eim  T04HLdh|debug.o/ 1243806004 1001 1001 100644 2124 ` ELF4(UEPP0% $ > : ; I$ > .? : ; ' @: ; I _GNU C 4.2.2syscalls//debug.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&charsyscall_debug_stacktrace%pid$U> syscalls/../includedebug.ctypes.h$=| AB uut+c)syscall_debug_stacktraceGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!H'H,HY>c: 8NYJ ^`,Z $ k,z/v 4   <  "    debug.csyscall_debug_stacktracetx|GKO K/38 1243806004 1001 1001 100644 2520 ` ELFL4(U0EE% $ > : ; I$ >  : ;  : ; I8  I&I I !I .? : ; ' I@ 4: ; I GNU C 4.2.2syscalls//enumerate_tasks.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&dwordBchar-pid.)#parent_pid/)#status16#eip26# memory_used36#cmdline5#Ctask_info_task_t6N9&task_count:#info_size;#tasks=&# 5 Ktask_info_t> enumerate_tasks  addr!6t5i syscalls/../includeenumerate_tasks.cstddef.htypes.hsyscall_structs.hh=| AB uut"Henumerate_tasksGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!L'L,L>: p 8NmJ ^,Z  k ,zL&v  r  l  L #   enumerate_tasks.cenumerate_tasks~aei vget_phys_addr.o/1243806004 1001 1001 100644 2120 ` ELF4(UEPB0EE% $ >  $ > .? : ; ' I@: ; I 4: ; I gGNU C 4.2.2syscalls//get_phys_addr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharget_phys_addr addressptr!tI0 syscalls/get_phys_addr.ci=| AB uut k&get_phys_addrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!P'P,Pd>k: 8NMJ ^l,Z  k,z$v 0   8     get_phys_addr.cget_phys_addr|=AE =/57 1243806004 1001 1001 100644 2216 ` ELF4(UWVS(0EUuEӉ˹ ȉ ڃ[^_% $ > : ; I$ > .? : ; ' I@4: ; I }GNU C 4.2.2syscalls//get_tick_count.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcAsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordBqwordCcharget_tick_count!'Aeax"dedx"haG syscalls/../includeget_tick_count.ctypes.h #| AAB FuuAt!?get_tick_countAGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4A!x'x,x[>: @8NTeJ x^4Z  k,z%v  A  as<  !   Aget_tick_count.cget_tick_count}W[_ Tget_uid.o/ 1243806004 1001 1001 100644 2124 ` ELF4(UEP0EE% $ > : ; I$ > .? : ; ' I@: ; I 4: ; I bGNU C 4.2.2syscalls//get_uid.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordBcharget_uid pid uid!tY@ syscalls/../includeget_uid.ctypes.hi=| AB uutf+get_uidGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!P'P,Pj>f: 8N ]J ^,Z $ k,zv 4   <(      get_uid.cget_uidvz~<@D M/75 1243806004 1001 1001 100644 2560 ` ELF(4(US]M UEPRQS 0[US]M UEPRQSR0[% $ > : ; I $ > .? : ; ' @: ; I .? : ; ' @GNU C 4.2.2syscalls//init_child_page.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcBsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$pid_t&charinit_child_page!!pid +dest )src )size  init_child_page_copy.!B,pid-+dest-)src-)size- tT syscalls/../includeinit_child_page.cstddef.htypes.h K ?K | !AB A!!AB Auu!t!"u"$u$Bt;Cinit_child_pageinit_child_page_copyBGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4B!x'x,xw>: p PNxJ ^lLZ  kXz?v  O  oH  8 8   !#!!init_child_page.cinit_child_pageinit_child_page_copy~X\`  a48mem_allocate.o/ 1243806004 1001 1001 100644 3628 ` ELFT4(US]M UEPRQ0 EEUS؃[UEu uPEUMU EPRQ=0 EEUUE PR0EEUUE PR>0% $ > : ; I  : ; ( $ >  : ;  : ; I8 .? : ; ' I@ : ; I 4: ; I .? : ; ' @cGNU C 4.2.2syscalls//mem_allocate.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpaddr_t#'vaddr_t$'u>XtXYuY[u[|t|}u}utuutqgmem_dma_allocatemem_allocate\mem_allocate_physicalmem_free!mem_free_physicalGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4  %+0Bg> $ R N b^ P o$~uz  u      _   ;!;.X$D| Mmem_allocate.cmem_dma_allocatemem_allocatemem_allocate_physicalmem_freemem_free_physicalL { "& {  8<@ _48PThlmemory_info.o/ 1243806004 1001 1001 100644 2232 ` ELF44(UM<0EUEUQ% $ > : ; I$ >  : ;  : ; I8 .? : ; ' I@4: ; I GNU C 4.2.2syscalls//memory_info.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src'signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordBchar*Wtotal+#free,#memory_info_t-/memory_info W'result!WpiQ syscalls/../includememory_info.csyscall.htypes.hͭ| 'AB uu'tlmemory_info'GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4'!\'\,\w>: P8NsmJ ^,Z  k ,z8"v  Z  zT  4   'memory_info.cmemory_infoz~ ^ports.o/ 1243806004 1001 1001 100644 2516 ` ELF 4(Uu u 0EEUu u 0EE% $ >  : ; ( : ; I$ > .? : ; ' I@: ; I 4: ; I .? : ; ' I@GNU C 4.2.2syscalls//ports.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src<signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong int<)FALSETRUEbool<dwordBcharrequest_ports!)port 5length 5 eax"5t release_ports/)<,port.5length.5 eax05t\> syscalls/../includeports.ctypes.h h6=1h6=| AB AB uutu!u!<t2Mrequest_portsrelease_ports<GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4<!p'p,p> : D PN`J ^`DZ  kXz6v  2  Rd,   %    ports.crequest_portsrelease_portstx|dhl  K04puts.o/ 1243806004 1001 1001 100644 2088 ` ELF4(UUE PR0% $ > $ >  I&I.? : ; ' I@: ; I _GNU C 4.2.2syscalls//puts.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intchar!syscall_putsnns>' syscalls/puts.c>'Y| AB uut c&syscall_putsnGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!P'P,P^>c: 8NBJ ^T,Z  k,z$v         puts.csyscall_putsnsw{=AE 4pv.o/ 1243806004 1001 1001 100644 2132 ` ELF4(U 0U j0% $ > $ > .? : ; ' @<GNU C 4.2.2syscalls//pv.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharp v  ,=% syscalls/pv.c=x1=|  AB  AB uu t u ut@p,vGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!T'T,T=>@: PNAJ ^DZ   kXXzv <   D        pv.cpvquy $( 37; 204rpc.o/ 1243806004 1001 1001 100644 2636 ` ELF4(UEEju30E}uUEE EEEEEUuuuju70EEE}t΋E% $ > : ; I I$ > .? : ; ' @: ; I 4: ; I .? : ; ' I@ I !I/ 5I)GNU C 4.2.2syscalls//rpc.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srczsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordB1charrpc"*upid!result#t send_message2*z,pid1function1correlation_id1len1 data1+result3tmetadata:'l ' 9 mH syscalls/../includerpc.cstdint.htypes.h!gwQg2g{ ,h=| *AB *PAB uu*t*+u+-u-zt'-<rpcusend_messagezGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4z!',>U-: PNqJ ^DZ   k8Xz+v 4    <       * *Prpc.crpcsend_messagervzEIM  U04/94 1243806004 1001 1001 100644 2112 ` ELF4(UEP20% $ > $ > .? : ; ' @: ; I '  IgGNU C 4.2.2syscalls//set_rpc_handler.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharset_rpc_handlerbrpc_handlerdbG2 syscalls/set_rpc_handler.c=| AB uut"k&set_rpc_handlerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!H'H,H^>k: 8NKJ ^\,Z  k,z&v (   0   #   set_rpc_handler.cset_rpc_handler~;?C ?shared_memory.o/1243806004 1001 1001 100644 2744 ` ELF4(UEP?0EEUEP@0EEUEPA0% $ >  : ; I$ > .? : ; ' I@: ; I 4: ; I .? : ; ' @GNU C 4.2.2syscalls//shared_memory.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcKsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intvaddr_t$dwordBcharcreate_shared_memory*size*id*topen_shared_memory8,id*addrt close_shared_memory8KXid*eF syscalls/../includeshared_memory.ctypes.hi=0i=0=| AB AB 8AB uutuu8t89u9;u;KtV Bcreate_shared_memoryopen_shared_memoryclose_shared_memoryKGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4K!',> : hNiJ h ^|\Z p 0 kz\Zv       M   &98shared_memory.ccreate_shared_memoryopen_shared_memoryclose_shared_memory|`dh   S04HLsleep.o/ 1243806004 1001 1001 100644 1976 ` ELF@4(U0% $ > $ > .? : ; ' @0GNU C 4.2.2syscalls//sleep.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharyield =( syscalls/sleep.c=x|  AB uu t4yield GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 !@'@,@=>}4: P8NAJ ^,Z  k ,zLv  h  `  @    sleep.cyieldtx|'+/ 5timer.o/ 1243806004 1001 1001 100644 2112 ` ELF4(UFu u0% $ > : ; I$ > .? : ; ' @: ; I hGNU C 4.2.2syscalls//timer.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intdwordBcharsyscall_timer!timer_id usec U> syscalls/../includetimer.ctypes.h =| AB uut l)syscall_timerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!L'L,LY>l: 8NYJ ^l,Z  k,z$v (   0      timer.csyscall_timertx|<@D K/113 1243806004 1001 1001 100644 2124 ` ELF4(UEP 0% $ > : ; I$ > .? : ; ' @: ; I `GNU C 4.2.2syscalls//unblock_process.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intpid_t&charunblock_processpid]H syscalls/../includeunblock_process.ctypes.h=| AB uut"d3unblock_processGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!H'H,HY>d: 8NaJ ^h,Z $ k,z&v 4   <  #   unblock_process.cunblock_process~HLP Uvm86.o/ 1243806004 1001 1001 100644 2416 ` ELF4(UUE PRQ0EE% $ >  : ; ( : ; I$ >  : ;  : ; I8 .? : ; ' I@ : ; I 4: ; I  I6GNU C 4.2.2syscalls//vm86.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong int<(FALSETRUEbool<wordAdwordBcharAaxB4#bxC4#cxD4#dxE4#siF4#diG4# dsH4# esI4#vm86_regs_tJX vm86_int( - regs- shm3 result@t  @iR syscalls/../includevm86.ctypes.hsyscall_structs.hhQ=|  AB uu t:vm86_int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 !T'T,T>::  8N5mJ @ ^,Z H  k,zv X    ` ;M      vm86.cvm86_intsw{ _wait_for_rpc.o/ 1243806004 1001 1001 100644 2236 ` ELF4(U0U0% $ > $ > .? : ; ' @bGNU C 4.2.2syscalls//wait_for_rpc.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharwait_for_rpc v_and_wait_for_rpc  ,G/ syscalls/wait_for_rpc.c=x1=x|  AB  AB uu t u ut6f#wait_for_rpcAv_and_wait_for_rpcGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!L'L,L=>f: ,PNKJ |^<DZ   kXz:v    2D   0     wait_for_rpc.cwait_for_rpcv_and_wait_for_rpc{59= Y]a <04seek.o/ 1243806004 1001 1001 100644 3004 ` ELF4(U(E EEE}t E@u E?EEEUEUEEUE@RjhPEE% $ > : ; I  : ;  : ; I8  I : ;  ( $ > .? : ; ' I@ : ; I 4: ; I bGNU C 4.2.2lostio/client/seek.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcosigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t&long unsigned intio_resource_id_t.%1Uid2u#path3U#pid4S#resid5u# buffer_ptr7Q#buffer_size8C#buffer_pos9C#buffer_mode:#ungetc_count< FALSE TRUEbool<~ GidHu#offsetI #originJ# io_seek_request_tKi lio_seek.o io_res- offset- ` origin- seek_request/hp lostio/client../includeseek.cstdint.hstddef.htypes.hio_struct.hio.h-$󓃻h(IO_SEEK | oAB T.uuotflio_seekoGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4o D %+0BPf> T 8RN ^I jT0f  w,   $  $    oseek.clio_seekrpc_get_dwordRXw{ } directory.o/ 1243806004 1001 1001 100644 6272 ` ELF4(UEE j(EUEE@E@E@ E@E@E@E@E@ E@$ uU jUWVS : ; I  : ; (  I$ > &I  : ;  : ; I8  : ;  I!I/ <  : ; : ; I' II' .? : ; ' @: ; I 4: ; I .? : ; ' @.? : ; ' I@: ; I .? : ; ' I@jGNU C 4.2.2lostio/types/directory.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(!long long unsigned intlong intsize_t$pid_t&<|FALSETRUEbool $n name%n# type&# size'# ctime(# mtime)# atime*# ~io_direntry_t, & anchor'# size(#list_nodelist_t)typeid_t <( @y type A# name B# size C# data DU# resid E# flags F# children Hy# parent I#$ J P id Q# pid RW# flags S# source T# pos U# data XU# node Z#lostio_filehandle_t [ ( h id i# not_found j# pre_open k# post_open l# read n9# write o^# seek p~# close q# link s# unlink t#$|W G9UGGG^GGU?~dtypehandle_t u(lostio_type_directory_use_as1Bid0ddir_typehandle2Btlostio_type_directory_useG,dir_readQGXObufOUblocksizePGblockcountPG nodeRXsizeSG\iT`direntry]d~dir_seekoffsethorigin  lostio/types../include../include/sysdirectory.cstdint.hstddef.htypes.htypes.hio_struct.hio.hcollections.hlostio.h0􃟟5g6jIKh,v,澢mt"/9Z@==*3Cu3P\?| AB N.AB H. AB F.VAB Euutuutuutuutgnlostio_type_directory_use_asHlostio_type_directory_usesdir_readdir_seekvfstree_node_tfilehandleGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 @@%(+(0(fBn> R N b^ (@ o~Xkz h   p4p     *1:VC^xdirectory.clostio_type_directory_use_asmallocdir_readdir_seeklostio_register_typehandlelostio_type_directory_uselist_get_element_atstrlenmemcpyH\d{   gko   048 = 48PTtxramfile.o/ 1243806004 1001 1001 100644 6244 ` ELFT4(U hUEE j(EUEE@E@E@ E@E@E@E@E@ E@$ uUVSE@P @EP@)‰ЉEEE;EvEE EEEE@HEP@uPu EHXEڋMAQEHXE@P @11 uE@EPEe[^UVSE EEEE@PH UMM9MrPE9EwU9Uv@EXE UE@@RPCEHE EAQ E UE@@RuPEHXE EڋMAQEHXE@P @11 uE@EPE Ee[^UVS0E EEEEẼ}t\}}tE@PH UЉMԋM;Mw];]rE;Es EMEUAQ~EP@M]M]E@PH UMM9Mr]9]wE9Ev EEP@EUMAQE@P @MAQEHXE@P @11 uE@EPE@EPEE܃0[^% $ > : ; I  : ; (  I$ > &I  : ;  : ; I8 <  : ; : ; I' II' .? : ; ' @.? : ; ' @: ; I 4: ; I .? : ; ' I@: ; I .? : ; ' I@GNU C 4.2.2lostio/types/ramfile.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intuint64_t(long long unsigned intlong intsize_t$pid_t& & anchor' # size(# list_nodelist_t)typeid_t< (@ typeA!# nameB# sizeC# dataDS# residE# flagsF# childrenH# parentI#$1J1 PF idQ# pidRU# flagsS# sourceTF# posU# dataXS# nodeZL#lostio_filehandle_t[ (h idi!# not_foundjA# pre_openkA# post_openlY# readn~# writeo# seekp# closeq# links# unlinkt#$z;;UFSSRGE~SSEE_ESEESSSSSStypehandle_tumlostio_type_ramfile_use0lostio_type_ramfile_use_as9,id8!dramfile_typehandle:tramfile_readOEpX:$MSbufMS NENE remainingPEhsizeQElramfile_writekEpz$jS jEjEdatajS ramfile_seekz$Soffsethorigin  lostio/types../includeramfile.cstdint.hstddef.htypes.hio_struct.hcollections.hlostio.h/g5󃟟6軄'?={;(x""?u{=*3Cu3P\?| AB K.AB N. AB E]. p AB EX.zVAB Euutuutuuptpquqsusztz{u{}u}t}.lostio_type_ramfile_useWlostio_type_ramfile_use_asramfile_read:ramfile_writeramfile_seekblockcountblocksizevfstree_node_tfilehandleGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4 H%+0GBK> R: N b,^ P o~z L =  T]/p 4    #>ERp `zVmramfile.clostio_type_ramfile_uselostio_type_ramfile_use_asmallocramfile_readramfile_writeramfile_seeklostio_register_typehandlememcpyrealloc*`jt y}2  KOS w{     QUY b p ~   48PTtxregcomp.o/ 1243806004 1001 1001 100644 34200 ` ELFXm4(UEEeEtEtDž|eE t0E@;E sDž|AE@‹E )ȉE u E jTE}uDž| E@‹EPE@ P‹EP E@E@ u uDž| UEBUE EE‹EPE@E@EUED UEDHE} ~ۋE@E@E@E@ UEBE@(E@,E@0E@4E@8E@<E@@E@DE@HE@Ljhuo.E@PEP Ethuc2Et u hhu jhu-E@PEP$uu/uu 0E@D~Ruu66uu6E@@u&E@$j u)$E@@t uv jh(u) u EE@9rju#EEBEEPuHEE@9s&E}+t8}?t2}{uEE;E~!j uEEEuuuuSEE@9sG?U@c[w\\]^^__`{{|}}0~6% $ > : ; I I : ;  : ; I8 &I : ;   : ;  ( I !I/ $ > .? : ; ' I@: ; I 4: ; I .: ;' @: ;I 4: ;I 4: ;I .: ;' I@  .: ; ' I@: ;I GNU C 4.2.2posix/regex/regcomp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src<signed charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$long unsigned intchar8Ure_magicV#re_nsubW#re_endpX#re_gY# 8re_gutsTYmagic#strip#csetsize#ncsets# sets#setbits#cflags#nstatesE#firststateE# laststateE#$iflags#(nbol#,neol#0must@#4moffset#8charjump#<matchjump#@mlen#Dnsub#Hbackrefs#LnplusE#Pregex_tZFuch*sopO#sopnoP uptrv#maskw/#hashx#/csetyR: *! CALNUM CALPHA CBLANK CCNTRL CDIGIT CGRAPH CLOWER CPRINT CPUNCT CSPACE CUPPER CXDIGIT citype+cclass.]name/@#fidx0!#cname&name'@#code(8#parsep<4next=@#end>@#error?#strip@# ssizeAE#slenBE#ncsallocC#gD#pbeginF4# pendG4#H ED D regcomppregpatterncflagspa~ghpliplent p_ere"4,up stop!c#8gprevback$Ehprevfwd%Elconc&Epfirst'tp_ere_expO4 XpNcP8cposQEdcountRhcount2SlsubnoTEpwascaretUtp_str ] /pp_bre] pend1end2Elfirstpwasdollartp_simp_re Spstarordinaryc`countdcount2hposElipsubnoEtp_count\pcountpndigitstp_bracket\43 pcsdinverthN ilcip itp_b_termX` pcsc8q8r8sitp_b_cclass.X# p,cs-c/hsp0@lcp1 plen2t/p_b_eclass# $h pcsc8wp_b_symbol8 $% pvalue8wp_b_coll_elem8%8& pendcsp@lcp plent]othercase88&&<S chtolower0&&h c/toupper5&& c4bothcases&L' pcholdnext@poldend@tbracket m 80 DordinaryL''j pchnonnewline '( poldnext @poldend @tbracket  l 8 Drepeat$(S+DV p !Efrom"to# %Epcopy*EtseterrjS++p pheiallocsety+-pxnoz\nc{`nbytes|dcs}hcss~lipfreeset-M.}pcsiltoppcsstfreezesetM.C/pcshfihtoplcs2pcsstfirstchC// \pcsipcsstnch//LpcsilcsspntduplE/0x&pEEretEllenEpdoemit-00np*op+:opnd,doinsertH01pDopE:opndFposGE snIEhsJ:liKpdofwdo1$28plposmEvaluen:enlarge$2~2(p~sizeEsptstripsnug~22Tpgfindmust26spgscanX\newstart`newlenEds:hcp@liEpoffsettaltoffsetK69scanIoffsetJlargestLltryMpsN:tcomputejumps99Epgchpmindextcomputematchjumps9'<pgmindexhsuffixlssuffixppmatchestpluscountE'<<0Tpgscanhs:lplusnestEpmaxnestEt /d D cclasses1T ] D_cnames)z 8 D nulsx posix/regex../includeregcomp.cctype.hregex.hregex2.hstddef.hutils.hcclass.hcname.h fu=柭ZgY葃󟟑ԔKKuK=!! .huvx/(;gggvKZg .lwɻgggg >[KKuZKKZ\Z0KZZ/0520NYY;Z[K,)Z7Yg=7/B/ .g.guv7KK/=rOgKK . f/gZ0KZZZɻghG!gg_ Xj%0[N7"Y7%g=Y/G"g .guv/':.= .gw.KZ.K[7=717//R7/5@!4=Cϡ!MC3Y0% .l3)0[Nן_ן_<7hz6gEC .h/;/,˒[ؑ*CZCZCZuCZCZ#CZCZuCZ?CZCZC0*C .i/C .iUM/W .g/K/-g .gYZx.g1g.ggKK؃ .hB1 .gKKKK؃ .g|u]KK,)^K,)KZ0gu0gY0 .=Y .u)B'2uK00= XhK.gL@z iK .h .hv:= .ugv9Xh)$ .zّ>@>7 @/ X>* .ig0 .g(ɼ.hu|uug=_=Lׄ-Z ȭggghuZggghg=u[ggghg=u5gg0uw0\0gė .lguuYgu[=gL׃-K2B0wgW,"h.ku%W). fug[ڑv0Jw/eL0L93y  .iuv=0g?galnumalphablankcntrldigitgraphlowerprintpunctspaceupperxdigitNULSOHSTXETXEOTENQACKBELalertBSbackspaceHTtabLFnewlineVTvertical-tabFFform-feedCRcarriage-returnSOSIDLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCIS4FSIS3GSIS2RSIS1USexclamation-markquotation-marknumber-signdollar-signpercent-signampersandapostropheleft-parenthesisright-parenthesisasteriskplus-signcommahyphenhyphen-minusperiodfull-stopslashsoliduszeroonetwothreefourfivesixseveneightninecolonsemicolonless-than-signequals-signgreater-than-signquestion-markcommercial-atleft-square-bracketbackslashreverse-solidusright-square-bracketcircumflexcircumflex-accentunderscorelow-linegrave-accentleft-braceleft-curly-bracketvertical-lineright-braceright-curly-brackettildeDELzt2o[:<:]][:>:]]B< m R!!S"".#((((A+A+A+A+A+Q+)*A+A+A+A+A+A+*+| AB v.AB i.4AB Z. WAB Z.] `AB ^. AB |.AB .\,AB I.AB i.XWAB .#^AB K. $AB Z.%&AB |.8&aAB ^.&(AB &(AB &cAB E.L'wAB u.'\AB ~.(4AB .S+0AB  +$AB Dm.".-AB M.AB .C/YAB /QAB /AB Dr.0oAB ~.0AB Dc.19AB $2ZAB c.V.~2_AB g._.2 AB h.6AB .9AB Y.9fAB ^.'<AB uutuu4t45u57u7 t  u u ] t] ^ u^ ` u` t u u tuu\t\]u]_u_tuuXtXYuY[u[#t##u##u# $t $$u$$u$%t%%u%%u%8&t8&9&u9&;&u;&&t&&u&&u&&t&&u&&u&&t&&u&&u&L'tL'M'uM'O'uO''t''u''u'(t( (u ("(u"(S+tS+T+uT+V+uV++t++u++u+-t--u--u-M.tM.N.uN.P.uP.C/tC/D/uD/F/uF//t//u//u//t//u//u/0t00u00u00t00u00u01t11u11u1$2t$2%2u%2'2u'2~2t~22u22u22t22u22u26t66u67u79t99u99u99t99u99u9'<t'<(<u(<*<u*<<tGregcomp<startfinishGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4< v)= % wX/@ 4@bFAB P{VVR ` f\0b h ra n 0P e\4l Rl  rl ll@q6 @u  h0o"( W.] `4~2_>2 G9T9ff'<pS+0w4019'\\,L'w(4 /+$8&a/QC/Y-M.XW#^ $'%&5&(=&(E&cO T$2Z\6 fnu|regcomp.ccclassescnamesdoemitp_erep_strp_brestripsnugfindmustcomputejumpscomputematchjumpspluscountseterrp_ere_expdoinsertdofwdnonnewlinep_bracketordinaryp_countrepeatp_simp_reduplallocsetp_b_termothercasenchfirstchfreesetfreezesetp_b_cclassp_b_eclassp_b_symbolp_b_coll_elemtolowertoupperbothcasesnulsenlargealtoffsetregcompstrlenmallocfreeregfreestrncmpreallocmemsetmemcpymemmovez7889 9:t;;;<%%;(n+x++8#,<G,8j,<-=`0>1?K2<2<s68,9898:8<9 (08@HPX (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx|X\`1111:>B1x41dhl11  A E I 1z 4 4   1/ 3 7 1|   1   14 8 < 1c g k 1   1   1> B F 1z ~  1   1 47 4f j n 1   1&*.111imq114426:1|11EIM111411\`d11v<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,0408P0Tl0p000000004L0Ph0l000000 $0(@0DX0\|0000000 <0@T0Xt0x0000 0regerror.o/ 1243806004 1001 1001 100644 4804 ` ELF| 4(UXEE}uEPu EuEE;Et E EuE%t@EtE@PEPuhEPEE E@E u@E}t>E;Evuu#EHPuuUJEEUE!EPE@RPt E Eu֋Eu EEPhu E EE &1LYs~  -8 LV r}   .<^`% $ > : ; I I : ;  : ; I8 &I<  : ;  .? : ; ' I@ : ; I 4: ; I I!I/ $ > .: ; ' I@FGNU C 4.2.2posix/regex/regerror.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcnsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$long unsigned intchar9Ure_magicV#re_nsubW#re_endpX#re_gY# 9re_gutsregex_tZG rerr PcodeQ#nameRA#explainSA# regerrorr errcoden prego errbufpA errbuf_sizeq rsh lentl targetup svAt convbufw 91regatoiAn,& preg localbufA rt 6 rerrsT&O posix/regex../includeregerror.cregex.hstddef.hih̻vh!g0Y=6iˑREG_NOMATCHregexec() failed to matchREG_BADPATinvalid regular expressionREG_ECOLLATEinvalid collating elementREG_ECTYPEinvalid character classREG_EESCAPEtrailing backslash (\)REG_ESUBREGinvalid backreference numberREG_EBRACKbrackets ([ ]) not balancedREG_EPARENparentheses not balancedREG_EBRACEbraces not balancedREG_BADBRinvalid repetition count(s)REG_ERANGEinvalid character rangeREG_ESPACEout of memoryREG_BADRPTrepetition-operator operand invalidREG_EMPTYempty (sub)expressionREG_ASSERT"can't happen" -- you found a bugREG_INVARGinvalid argument to regex routine*** unknown regexp error code ***REG_0x%x0%d| AB _.oAB ].uutuuntJregerrornGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4n `) % /4FeJB ,XVR  b@n Lj   { Xt      ` tH  o #*29Aregerror.crerrsregatoiregerrorstrcpysprintfstrlenstrncpystrcmp2s DT\ (,48@DLPX\dhpt|y}  E\ 4 8regexec.o/ 1243806005 1001 1001 100644 45356 ` ELF4(UVSEEEE@ @E̋E@$EЋE@tEEtEE EԋE@E EE Eԃ uEԉE؋E;EsDžpfE@4E@<AE@@3E@4EEP4E@DHEE@}}E;Eu Et M4UEԉ)ÉjyQPuԍEP0EԋEȉ‹E%9E+ E;Eu E M4UEԉ)ÉjyQPuԍEPEԋEȃyEE;Eu EEPE%EM4UEԉ)ÉjyQPuԍEPfEԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH}}E;Eu Et M8UEԉ)ÉjyQPuԍEPEԋEȉ‹E%9E+ E;Eu E M8UEԉ)ÉjyQPuԍEPwEԋEȃyEE;Eu EEPE%EM8UEԉ)ÉjyQPuԍEP EԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH}}E;Eu Et M8UEԉ)ÉjyQPuԍEPyEԋEȉ‹E%9E+ E;Eu E M8UEԉ)ÉjyQPuԍEPEԋEȃyEE;Eu EEPE%EM8UEԉ)ÉjyQPuԍEP语EԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH : ; I I : ;  : ; I8 &I : ;  : ; I8 .: ; ' I@ : ; I : ; I 4: ; I 4: ; I .: ;' I@: ;I : ;I 4: ;I 4: ;I .? : ; ' I@ GNU C 4.2.2posix/regex/regexec.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srctpsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&off_t,long unsigned intcharcregoff_tSAUre_magicV#re_nsubW$#re_endpX#re_gYJ# cre_gutsTYJmagic#strip##csetsize#ncsets# sets)#setbits#cflags#nstates#firststate# laststate#$iflags#(nbol#,neol#0mustk#4moffset#8 B/#< |/#@mlen#Dnsub$#Hbackrefs#Lnplus#Pregex_tZ\rm_so]q#rm_eo^q#regmatch_t__wint_t)2mbstate_t/uch *sopONsopnoPuptrv#maskw#hashx#csetysmat8PgQJ# ZR# KS#offpT# /U# V# 6W# RX #dummyY# stZ#$ [#(tmp\#, )]#0mbs^#4 smatcherR gJ  "$ K Z imv5~mRdp@gfXDglXH L PppTcjXmj\ ` d |/h B/l5 xmbrtowc_dummyZ$#, wiU sV nW$ mbsX dummyYsdissectt# XmoRpqr msiu@ssvDeswHspxLstpyPrestzTtail{X|\}`ssp~dsephfldppsbackref1 0D m*R+,- m.lev/rec0i2Dss3Hsp4L5P6Tssp7Xdp8\len9$`hard:ds;ht<qlcs=)pwc>@sfast0< mR mstP Ttmp Xp \c L< `dih6la$psslowp64 mkRlmn mostqP)rTtmpsXpt\cuL<v`wdixhylaz$psstep6h# gJbef chaftcs)`sdpchherellookpitlmat<P gQJ# ZR# KS#offpT# /U# V# 6W# RX #vnY# spaceYk#$stZk#( [k#,tmp\k#0 )]k#4mbs^#8 lmatcherh#+4 gJ  "$ K Z imv ~mdp@gfXDglXH L PppTcjXmj\ ` d |/h B/l ldissectt+1`Pmopqr msiu@ssvDeswHspxLstpyPrestzTtail{X|\}`ssp~dsephfldpplbackref11;m*+,- m.lev/rec0i2Dss3Hsp4L5P6Tssp7Xdp8\len9$`hard:ds;ht<qlcs=)pwc>@lfast;?m mstkP kTtmp kXp \c L< `dih6la$plslowp?'Cmklmn mostqkP)rkTtmpskXpt\cuL<v`wdixhylaz$plstepk'CIRgJbefk chaftkcs)\s`pcdherehlooklipmmat<P1gQJ# ZR# KS#offpT# /U# V# 6W# RX #vnY# spaceYk#$stZk#( [k#,tmp\k#0 )]k#4mbs^#8 mmatcherIQ<p gJ  "$ K Z imvR~mpdp@gfXDglXH L PppTcjXmj\ ` d |/h B/lRmdissecttQwWhmoppqr msiu@ssvDeswHspxLstpyPrestzTtail{X|\}`ssp~dsephfldppmbackref1wWam*p+,- m.lev/rec0i2Dss3Hsp4L5P6Tssp7Xdp8\len9$`hard:ds;ht<qlcs=)pwc>@mfastaemp mstkP kTtmp kXp \c L< `dih6la$pmslowpeimkplmn mostqkP)rkTtmpskXpt\cuL<v`wdixhylaz$pmstepkipgJbefk chaftkcs)\s`pcdherehlooklipregexecptpD preg  "$ K ZԯgJtP  posix/regex../include../include/sysengine.hregexec.cstdint.hstddef.htypes.hregex.hregex2.hwchar.hutils.hgu ug>/g#-g/5kfE郑?g!"CiC/@*"\=="%# f%0l;[gKh& !"}t>gY.tgg;$1$?&`&_iv/uvgZiv/uughgg/hgjgZiv/u%>u$?/g .0~ =Xtiu(K(((FE W-=[!%0tJg@Yvg,=u;.%g6Y,Y,/3g,u1#g׻>u$#?[=%g/K%g=  Xunu="hugu-iuu+u.g/#{v{v#(gh$g[- Xu fu>"ugu-uu+u.g/#{v{v#ggh$gZ=Xnu=//Z/Z/Z/Z/Z/Zg-/[/Z/Z/'KZ/Z/[/Z0Zu/&h0/)0. =x.gu ug>/g#-g/5kfE郑B((((ڭ?g!!!Ci@/@!*"\==!!%# f%0l8[gKh& !!! ttgg;$1$?&`&_iv/uvgZiv/uughgg/hgjgZiv/u%>u$?/g .0~ =Xtiu(K(((FE W-=[!%0tJg@Yvg,=u;.%g6Y,Y,/3g,u1#g׻>u$#?[=%g/K%g=  Xun"ugu-iuu+u.g/#{v{v#%$g[- Xu f"ugu-uu+u.g/#{v{v#g7$gZ=X|=/"Z"Z"Z"Z"Z"Zg-"["Z"Z"8(KhZ"4Z"["Z"4Zu/&"Z")40" =xfgu ug>/g#-g/5kfE郑B(((([?g!!!Ci@/@!*"\==!!%# f%0l8[gKh& !!! ttgg;$1$?&`&_iv/uvgZiv/uughgg/hgjgZiv/u%>u$?/g .0~ =Xtiu(K(((FE W-=[!%0tJg@Yvg,=u;.%g6Y,Y,/3g,u1#g׻>u$#?[=%g/K%g=  Xun"ugu-iuu+u.g/#{v{v#%$g[- Xu f"ugu-uu+u.g/#{v{v#g7$gZ=X|=/"Z"Z"Z"Z"Z"Zg-"["Z"Z"8(KhZ"4Z"["Z"4Zu/&"Z")40" =yfguɑMshut up gcc| @AB Hc.. e.]. .. r._. j.AB  #AB D2.S. ( p AB D .~.X. (0AB DS. {.. .$ZAB DS. u.. 62AB Dh#AB Hc.. e.o. @.A.. r.q. .. +AB D2.S. (1p AB D .~.X. 8;AB Dr.h. ].r.].. ~.{. F.0?AB Dr.h. u.. k.r. 'CAB DDI-AB Hc.. e.o. @.A.. r.q. .. QAB D2.S. (wWp AB D .~.X. 8aAB Dr.h. ].r.].. ~.{. F.0eAB Dr.h. u.. k.r. iAB DplAB Y. uutu u #t#$u$&u& t u u 0t01u13u3tuu6t67u79u9h#th#i#ui#k#uk#+t++u++u+1t11u11u1;t;;u;;u;?t??u??u?'Ct'C(Cu(C*Cu*CItIIuIIuIQtQQuQQuQwWtwWxWuxWzWuzWataauaauaeteeueeueitiiuiiuiptp pu p pu ptpt$regexectpflagchstringfreshmustlastesubnmatchemptybeginpcoldplastccharjumppmatchlastposeflagsclenoldsspstopstoffsavematchjumpendpmatchpssubmustfirststartststartstopGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.debug_str.comment4tp %p+p0p5Bq$> (R N ̯^Ֆ jf ԯ@ wtp   "֞@" Х 0Z /#8 p  A62Gh#P;V?\+e1p n'CtI-}aeQwWp i  plregexec.csmatchersfastsslowxmbrtowc_dummysdissectsbackrefssteplmatcherlfastlslowldissectlbackreflstepmmatchermfastmslowmdissectmbackrefmstepstrlenmemcmpfreemallocmemsetmemcpyregexeco"2#S$o$4%%1$$$P#$#"%#&%'&'$'$'$z(%($[)%)$)$3+$O+$a+$7#;;& <'<#>'?'?&B#B'B'J"K#\L%FM&\M&M$N$N$N%N$O%O$O$Q$Q$Q$^#a!b&fb'b#Ee'_e' f&h#*i'Di'x|  O ] z      $(,A O ] k y    ( 6 D tx|  " 1    / > M \     S W [ q           -  K O S i  x         %  C G K a  p    )  F  T  b  p          *  8  F        7;?U d s    3 bfj      j      D S o ~      < K g v   l z       BFJ_ m {     8 F T b     H W      T c   " 1 @ ]        ) 8 U           \`tx04x|8<TX(,\`x|regfree.o/ 1243806005 1001 1001 100644 3280 ` ELF4(UE=eE@ E}E=EtEEE@tE@ PE@tE@ PE@4tE@4 PE@ : ; I I : ;  : ; I8 &I : ;  .? : ; ' @ : ; I 4: ; I GNU C 4.2.2posix/regex/regfree.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$long unsigned intchar8Ure_magicV#re_nsubW#re_endpX#re_gY# 8re_gutsTYmagic#strip#csetsize#ncsets# sets#setbits#cflags#nstatesE#firststateE# laststateE#$iflags#(nbol#,neol#0must@#4moffset#8charjump#<matchjump#@mlen#Dnsub#Hbackrefs#LnplusE#Pregex_tZFuch*sopO#sopnoP uptrv#maskw/#hashx#/csetyR: regfree8 preg7 g9t e posix/regex../includeregfree.cregex.hregex2.hstddef.hutils.h7iYY!"!g!$FreeBSD: src/lib/libc/regex/regfree.c,v 1.8 2007/06/11 03:05:54 delphij Exp $GCC: (GNU) 4.2.2| AB ].uutregfree.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.comment.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges4 8 0%$+$0$B> h 8RN ^Aak0g  x,   >0       regfree.cregfreefreea}x| rwcpcpy.o/ 1243806005 1001 1001 100644 2208 ` ELF$4(UE EE EEuE% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcpcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src%signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcpcpy2%dst1src1''kR stdlibc/wstring../includewcpcpy.cstdint.hstddef.h1==| %AB uu%tSwcpcpy%GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4%!\'\,\d>: 88NboJ p^,Z x k,z,v  I  i{D  $    %wcpcpy.cwcpcpy{cgk _wcpncpy.o/ 1243806005 1001 1001 100644 2368 ` ELF4(UAE EEu&EE EEM}uEEEE M}uEEE% $ > : ; I.? : ; ' I@: ; I  4: ; I  I &IGNU C 4.2.2stdlibc/wstring/wcpncpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src]signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcpncpy/]dst.src.len.(Aret2t6 6xS stdlibc/wstring../includewcpncpy.cstdint.hstddef.h.g//g/Ǔz | ]AB uu]tbwcpncpy]GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4]!',|>: HN|J  ^d,Z   k,zv (    0        ]wcpncpy.cwcpncpy|sw{ `wcscasecmp.o/ 1243806005 1001 1001 100644 2432 ` ELF4(UGE PEE PEE;EtUE)щMEE EuE ډUE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcscasecmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcisigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcscasecmp.iwcs1-wcs2-wc1/+pwc2/+t+vV stdlibc/wstring../includewcscasecmp.cstdint.hstddef.h-i/==| iAB N.uuitWwcscasecmpiGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4i  %+0sB>  8RzN P bP0^ X  o,~!z h    p   "   iwcscasecmp.cwcscasecmptowlower&kos cwcscat.o/ 1243806005 1001 1001 100644 2264 ` ELF\4(UEEEEuE EEEE uE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcscat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src@signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcscat.@dst-src-wcp/t''oR stdlibc/wstring../includewcscat.cstdint.hstddef.h-ig/I=| @AB uu@tSwcscat@GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4@!t't,ts>: p8NsJ ^ ,Z  k8,zdv    |  \    @wcscat.cwcscat{cgk _wcschr.o/ 1243806005 1001 1001 100644 2232 ` ELF<4(UEE;E t EuE;E uEEEE% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcschr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src=signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcschr*=wcs)wc)'''oR stdlibc/wstring../includewcschr.cstdint.hstddef.h)g/I2| =AB uu=tSwcschr=GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4=!t't,td>: P8NysJ ^,Z  k,zDv  a  \  <    =wcschr.cwcschr{cgk _wcscmp.o/ 1243806005 1001 1001 100644 2256 ` ELFT4(UEEt E.EE 9E u΋Em E )ȉEE% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcscmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcVsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcscmp0Vwcs1/wcs2/'pR stdlibc/wstring../includewcscmp.cstdint.hstddef.h/g/!l| VAB uuVtSwcscmpVGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4V!',d>: h8NtJ ^,Z  k0,z\v  y  t  T    Vwcscmp.cwcscmp{cgk _wcscoll.o/ 1243806005 1001 1001 100644 2272 ` ELF4(Uu u% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcscoll.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcscoll"wcs1!wcs2!(kS stdlibc/wstring../includewcscoll.cstdint.hstddef.h!g| AB L.uutTwcscollGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 p%P+P0PdB> x8RToN b0^  o,~ z  >  ^pd  T    wcscoll.cwcscollwcscmp|eim `wcscpy.o/ 1243806005 1001 1001 100644 2248 ` ELFL4(UEEE EEEE uE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcscpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src1signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcscpy/1dst.src.wcp0t''lR stdlibc/wstring../includewcscpy.cstdint.hstddef.h.ig=| 1AB uu1tSwcscpy1GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment41!h'h,hs>: `8NpJ ^,Z  k(,zTv  q  l  L    1wcscpy.cwcscpy{cgk _wcscspn.o/ 1243806005 1001 1001 100644 2340 ` ELF4(UEE'E EEE9tEEuEEuЋUE)% $ > : ; I.? : ; ' I@: ; I 4: ; I  : ;  I &IGNU C 4.2.2stdlibc/wstring/wcscspn.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcOsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcscspn-(Owcs,set,p.pq/tdone=> 6wS stdlibc/wstring../includewcscspn.cstdint.hstddef.h,jg/g/FxJ | OAB uuOtbwcscspnOGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4O!',>: @N{J ^P,Z  k|,zv           Owcscspn.cwcscspn|sw{ `wcsdup.o/ 1243806005 1001 1001 100644 2444 ` ELF4(U u@EE PE}u EuuuEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsdup.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcXsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsdup)Xwcs(copy*plen+'t55oR stdlibc/wstring../includewcsdup.cstdint.hstddef.h(j!| XAB I.uuXtawcsdupXGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4X %+0sB> $ 8RsN \ b40^ d  od,~z t    |   '    Xwcsdup.cwcsdupwcslenmallocwmemcpy #I{quy _wcslcat.o/ 1243806005 1001 1001 100644 2540 ` ELF(4(UEEE EEEEEt M}uUE)EUE)ЉE}u3 uU‰UD}tEEEMEEu܋EUE )U‰UE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcslcat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcslcat/(dst.src.len.(d0hs1ln2(pdlen3(t66~S stdlibc/wstring../includewcslcat.cstdint.hstddef.h.gggj/I#!gwg>E| AB V.uutbwcslcatGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 | %+0sB[> 8RNN b0^  o,~,z  J  j|p  `     wcslcat.cwcslcatwcslenZ|sw{ `wcslcpy.o/ 1243806005 1001 1001 100644 2400 ` ELF4(UEEE EEE}t2M}t)EEEEEu M}u׃}u!}t EEEuUE )H% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcslcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcslcpy0(dst/src/len/(d1ls2pn3(t66vS stdlibc/wstring../includewcslcpy.cstdint.hstddef.h/gggigg#| AB uutbwcslcpyGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',s>3: 8NzJ 0 ^,Z 8  k,zv H     P *<      wcslcpy.cwcslcpy|sw{ `wcslen.o/ 1243806005 1001 1001 100644 2232 ` ELF<4(UEEEEuUE)% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcslen.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src,signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcslen+',wcs*p,t5mR stdlibc/wstring../includewcslen.cstdint.hstddef.h*ig/I| ,AB uu,tawcslen,GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4,!`'`,`s>: P8N{qJ ^,Z  k,zDv  a  \  <    ,wcslen.cwcslen{quy _wcsncasecmp.o/ 1243806005 1001 1001 100644 2500 ` ELF4(U}ubEnE PEE PEE;EtUE)щM/M}u EEE EuE ډUE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsncasecmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsncasecmp1wcs10wcs20len0,wc12:pwc22:t:~W stdlibc/wstring../includewcsncasecmp.cstdint.hstddef.h0ig==x | AB [.uutfwcsncasecmpGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4 L %+0sB/> \ 8RN b0^  o,~"z    2D8  ( $   wcsncasecmp.cwcsncasecmptowlower3{ dwcsncat.o/ 1243806005 1001 1001 100644 2352 ` ELF4(UEEEEuEEE EEEEEMEt}u܋EE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsncat.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src[signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsncat0[dst/src/len/(p1lq2pr3t66vS stdlibc/wstring../includewcsncat.cstdint.hstddef.h/kg/Igg/!:=| [AB uu[tbwcsncat[GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4[!',s>: 8NzJ ^d,Z   k,zv            [wcsncat.cwcsncat|sw{ `wcsncmp.o/ 1243806005 1001 1001 100644 2308 ` ELF4(U}u EREE 9E tEm E )ȉE"EEu M}uEE% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsncmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srclsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsncmp1lwcs10wcs20len0(6sS stdlibc/wstring../includewcsncmp.cstdint.hstddef.h0hgh#| lAB uultbwcsncmplGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4l!',d>: 8NwJ ^8,Z  kd,zv          lwcsncmp.cwcsncmp|sw{ `wcsncpy.o/ 1243806005 1001 1001 100644 2376 ` ELF4(U}tOEEE EEEEEEt EEM}u M}uE% $ > : ; I.? : ; ' I@: ; I  4: ; I  I &IGNU C 4.2.2stdlibc/wstring/wcsncpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src`signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsncpy4`dst3src3len3( [d6ps7t6 6tS stdlibc/wstring../includewcsncpy.cstdint.hstddef.h3gggi/Ǔ0=| `AB uu`tbwcsncpy`GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4`!',|>: HNxJ  ^l,Z  k,zv 0    8       `wcsncpy.cwcsncpy|sw{ `wcsnlen.o/ 1243806005 1001 1001 100644 2252 ` ELFP4(UEEtEEE;E rE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsnlen.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src,signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsnlen*(,wcs)max)(len+(t6mS stdlibc/wstring../includewcsnlen.cstdint.hstddef.h)i=| ,AB uu,tbwcsnlen,GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4,!`'`,`s>: d8NqJ ^,Z  k,,zXv  v  p  P    ,wcsnlen.cwcsnlen|sw{ `wcspbrk.o/ 1243806005 1001 1001 100644 2304 ` ELF4(UEE/E EEE9uEE!EEu݃EEuEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcspbrk.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcRsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcspbrk-Rwcs,set,p.pq/t((xS stdlibc/wstring../includewcspbrk.cstdint.hstddef.h,jg/g/؄EwJ | RAB uuRtTwcspbrkRGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4R!',s>: 8N|J ^4,Z  k`,zv          Rwcspbrk.cwcspbrk|eim `wcsrchr.o/ 1243806005 1001 1001 100644 2256 ` ELFT4(UEE;E uEEEtEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsrchr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src1signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcsrchr+1wcs*wc*(last,t((pS stdlibc/wstring../includewcsrchr.cstdint.hstddef.h*iviK0=| 1AB uu1tTwcsrchr1GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment41!h'h,hs>: h8NtJ ^,Z  k0,z\v  z  t  T    1wcsrchr.cwcsrchr|eim `wcsspn.o/ 1243806005 1001 1001 100644 2348 ` ELF4(UEE0E EEE9t EEuEt EEuNjUE)% $ > : ; I.? : ; ' I@: ; I 4: ; I  : ;  I &IGNU C 4.2.2stdlibc/wstring/wcsspn.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcXsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsspn-'Xwcs,set,p.pq/tdone@G 5wR stdlibc/wstring../includewcsspn.cstdint.hstddef.h,jg/g/FuJ| XAB uuXtawcsspnXGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4X!',> : @N{J ^X,Z   k,zv            Xwcsspn.cwcsspn{quy _wcsstr.o/ 1243806005 1001 1001 100644 2480 ` ELF4(UE E}E tU u EEE}Et E*E;Eu؃uu uumEEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wcsstr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src}signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwcsstr0}wcs/find/c15lsc15plen2't55tR stdlibc/wstring../includewcsstr.cstdint.hstddef.h/jgguM| }AB `.uu}tawcsstr}GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4} 8 %+0sB'> H 8RxN bx0^  o,~z    #       }wcsstr.cwcsstrwcslenwcsncmp$c{quy _wcstok.o/ 1243806005 1001 1001 100644 2536 ` ELFd4(U}uEE}u EEEEE EE;EtEE}Eu}uEEgEEEEEE EEEE;EEt+}u E EUEEE}u뢋E% $ > : ; I.? : ; ' I@: ; I 4: ; I  : ;  I &IGNU C 4.2.2stdlibc/wstring/wcstok.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intwchar_t&charlong unsigned intwcstok<wcs;delim;last;spanp=htok>lc?'psc?'tcontL&' 'R stdlibc/wstring../includewcstok.cstdint.hstddef.h;k=lghggZ| AB uutSwcstokGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4!',>: x @NJ ^,Z  k@,zlv      d     wcstok.cwcstok{cgk _wmemchr.o/ 1243806005 1001 1001 100644 2288 ` ELFt4(UEE;E uEEEEE;ErEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wmemchr.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src<signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwmemchr.<wcs-wc-6len-(i/(t66oS stdlibc/wstring../includewmemchr.cstdint.hstddef.h-iE| <AB uu<tbwmemchr<GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4<!p'p,ps>: 8NsJ ^$,Z  kP,z|v      t    <wmemchr.cwmemchr|sw{ `wmemcmp.o/ 1243806005 1001 1001 100644 2332 ` ELF4(UE?EE 9t&EE 9~ EEEEEE EE;ErEE% $ > : ; I.? : ; ' I@: ; I 4: ; I  I&IGNU C 4.2.2stdlibc/wstring/wmemcmp.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcbsigned charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwmemcmp0bwcs1/wcs2/len/(i1(t6vS stdlibc/wstring../includewmemcmp.cstdint.hstddef.h/i&KyJ | bAB uubtbwmemcmpbGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4b!',s> : 8NzJ ^P,Z  k|,zv           bwmemcmp.cwmemcmp|sw{ `wmemcpy.o/ 1243806005 1001 1001 100644 2308 ` ELF@4(UEPu u% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wmemcpy.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwmemcpy/ dst.src.len.(66kS stdlibc/wstring../includewmemcpy.cstdint.hstddef.h.gu|  AB S.uu tbwmemcpy GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4  %T+T0TdB> 8RxoN b0^  o,~Dz  b    x    wmemcpy.cwmemcpymemcpy|sw{ `wmemmove.o/ 1243806005 1001 1001 100644 2316 ` ELFD4(UEPu u% $ > : ; I.? : ; ' I@: ; I  I&IGNU C 4.2.2stdlibc/wstring/wmemmove.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwmemmove. dst-src-len-)77lT stdlibc/wstring../includewmemmove.cstdint.hstddef.h-gu|  AB S.uu tcwmemmove GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4  %T+T0TdB> 8RzpN b0^  o,~Hz  g    |    wmemmove.cwmemmovememmove}uy} awmemset.o/ 1243806005 1001 1001 100644 2272 ` ELFd4(UEEEUE EEE;ErE% $ > : ; I.? : ; ' I@: ; I 4: ; I  IGNU C 4.2.2stdlibc/wstring/wmemset.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/src1signed charshort intint32_t"intlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intsize_t$wchar_t&charlong unsigned intwmemset,1wcs+wc+6len+(i-(pp.t6oS stdlibc/wstring../includewmemset.cstdint.hstddef.h+jgH=| 1AB uu1tbwmemset1GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment41!h'h,hl>: x8NsJ ^,Z  k@,zlv      d    1wmemset.cwmemset|sw{ `system/lib/libg.a0000644000175000017500000103307411210574467012752 0ustar tonitoni! / 1243806006 0 0 0 6384 ` /////;;;;;? ? HHHZZ^^^^ddddppppppp """"""""҂҂҂҂҂҂҂...........666666JJ!r!r''''''''2*2*2*2*2*2*8888888888GL*L*L*L*L*L*L*L*L*L*L*L*WWWWWW`````````i~i~i~i~loLsvhvhvhvh~(((((((((((DDD<<<<<<((((հհհհհ    |||'P*.2\2\2\2\2\2\7\7\7\7\7\7\7\7\7\7\7\7\=4=4=4=4=4BEnIvLrOQTHVY~\<^aei@mJpppppppx{R}}*~ 4x D0|NNNNNƪ0˲6``22222ܐܐRddZFDh PakL`r&| j :b"%f(+D. 03_startinit_envvarsrpc_get_envvarssetenvgetenvgetenv_indexgetenv_name_by_indexgetenv_countputenvunsetenvgetcwdchdirinit_service_registerinit_service_getinit_service_get_nameinit_process_exitinit_executelocklockedunlocklock_waitlocked_incrementio_create_linkio_remove_linkio_get_absolute_pathio_split_filenameio_split_dirnamemsleepsleepstring_to_ipip_to_stringmac_to_stringregister_netcardrl_attempted_completion_functionreadlinerl_line_bufferadd_historyservmgr_needqsortstrnlenitoastrtoullstrtoulatoiatolstrcollloader_is_elf32loader_elf32_load_imageloader_is_elf64loader_elf64_load_imageloader_load_flat_bin_imageloader_load_imagelist_createlist_destroylist_poplist_is_emptylist_sizelist_pushlist_get_element_atlist_insertlist_removetree_do_inittree_do_createtree_destroytree_searchtree_inserttree_removetree_prevtree_nexthandle_idrpc_io_openrpc_io_closerpc_io_readrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkrpc_io_unlinklostio_initfilehandleslostio_typeslostio_dispatchget_typehandlelostio_register_typehandleget_filehandlelostio_sync_dispatchlostio_sync_read_waitnext_residvfstree_dirnamevfstree_basenamevfstree_get_node_by_namevfstree_get_node_by_pathvfstree_rootvfstree_create_childvfstree_create_nodevfstree_delete_childvfstree_delete_nodevfstree_clear_nodeaccesschownflockopterroptindgetoptoptresetoptoptoptarggetopt_longgetopt_long_onlygetpidgetppidlinkreadlinkmktempmkstemphtonlhtonsntohlntohsinet_atoninet_ntoagethostbynamegetservbynameopendirclosedirreaddirtelldirrewinddirseekdirfilenofdopenopencreatreadwritelseekclosepreadpwritermdir_signal_default_handlerraisesigismemberkillsignalsigactionsigemptysetsigfillsetsigaddsetsigdelsetsigprocmaskalarmsocketconnectrecvsendrecvfromsendtochmodfchmodstatlstatfstatmkdirmkfifomknodumasktcgetattrtcsetattrtcflushcfgetospeedgettimeofdayunlinkutimeinit_waitpidwait_child_addwaitpidwaitlibrpc_rpc_handlerintr_handlerrpc_response_handlerinit_messagingmessage_handlerregister_message_handlerregister_intr_handlerlibrpc_c_rpc_handlerresponsesinit_sync_messagessync_rpc_response_handlerrpc_get_dwordrpc_get_intrpc_get_stringrpc_get_responserpc_send_responserpc_send_dword_responserpc_send_int_responserpc_send_string_responsetimer_registertimer_callbacktimer_cancelasprintf_putcvasprintfasprintf_assertdirectory_opendirectory_closedirectory_readdirectory_seekdirectory_createis_directoryerrnoexit_exitabortatexitfopensetvbuffreopenfclosefflushfreadfgetcfeoffgetsferrorungetcfwritefputcfputsfseekftellclearerrrewindfpurgesetbufsetbuffersetlinebufremovetmpfilefprintf_putcfprintf_putsnvfprintffprintfdivmodulltoajprintf_putcjprintf_putsnjvprintfinit_memory_managermallocfreecallocreallocprintf_putcprintf_putsnvprintfprintfsrandrandrandomsrandomsnprintf_putcvsnprintfsnprintfsprintf_putcvsprintfsprintfstdinstdoutstderrstdio_initputsnputsputcharputcgetcgetchargetsperrorstrtolsystemtimembrtowcwcrtombwcsrtombsmbsrtowcswcwidthwcswidthiswupperiswloweriswalphaiswdigitiswalnumiswspaceiswblankiswpunctiswprintiswcntrltowuppertowlowerfgetwcgetwcharfputwcputwcharfputwsbcmpbcopybzeroffsffslflsflslindexmemccpymemchrmemcmpmemcpymemmemmemmovememsetmblenmbtowcwctomb__internal_wcsrtombs__internal_mbsrtowcswcstombsmbstowcsrindexstpcpystrcasecmpstrncasecmpstrcasestrstrcatstrchrstrcmpstrcpystrcspnstrdupstrerrorstrlcatstrlcpystrlenstrncatstrncmpstrncpystrnstrstrpbrkstrrchrstrsepstrspnstrstrstrtok_r__strtok_rstrtokadd_intr_handlerget_pidget_parent_pidcreate_processdestroy_processget_cmdlinesyscall_debug_stacktraceenumerate_tasksget_phys_addrget_tick_countget_uidinit_child_pageinit_child_page_copymem_dma_allocatemem_allocatemem_allocate_physicalmem_freemem_free_physicalmemory_inforequest_portsrelease_portssyscall_putsnpvrpcsend_messageset_rpc_handlercreate_shared_memoryopen_shared_memoryclose_shared_memoryyieldsyscall_timerunblock_processvm86_intwait_for_rpcv_and_wait_for_rpclio_seeklostio_type_directory_use_asdir_readdir_seeklostio_type_directory_uselostio_type_ramfile_uselostio_type_ramfile_use_asramfile_readramfile_writeramfile_seekregcompregerrorregexecregfreewcpcpywcpncpywcscasecmpwcscatwcschrwcscmpwcscollwcscpywcscspnwcsdupwcslcatwcslcpywcslenwcsncasecmpwcsncatwcsncmpwcsncpywcsnlenwcspbrkwcsrchrwcsspnwcsstrwcstokwmemchrwmemcmpwmemcpywmemmovewmemset// 132 ` add_intr_handler.o/ create_process.o/ enumerate_tasks.o/ get_tick_count.o/ init_child_page.o/ set_rpc_handler.o/ unblock_process.o/ crt0.o/ 1243806005 1001 1001 100644 1468 ` ELF4( US$EEEE(EE< u}uEEEE] u9rÃ}uEE@)ĉe؋E؃E؋E؉Ehu‹EE ]hj‹EEE;E|؋UEEPuE P u GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4E <%|+|0|8~Ad@  E"+>KXcov}_startinit_memory_managerinit_messaginginit_sync_messagesinit_envvarsinit_waitpidstdio_initget_cmdlinestrlenstrtokmainstdoutfflushexit    ! & v%.<envvars.o/ 1243806005 1001 1001 100644 4024 ` ELF4( UVS hh jE}jjhuE}E@ E@ E[EE uE@Ejuuu uà uEEE@ ‹E@9re[^U(EEEE P@EE@ P@EEEEPuEEEEuRPEPEEEuRPEEEEuPE}SEPuu u uUE(EPuu EE,EuPE}uEEU uE}u E E@EEUuPE}u E E@EEUuPE}u EEEEU PU uE} jE}u Em u@ P‹E u @ P‹EPEt E@u=E PE@ P uE uPERuP u PE@Ru PuPi u @ PE u @Pu u} u E"E@ PUEBEEU(j=uE}u EEUE)ȉEE@)ĉeEEEEEuuPUEEE@UjPRuEEEe}tEEUEbEPuuGE PE@ P uuP EuPE}uU h E}u Ez}u0 u@E u@ PE u@;E w) u@PuuEEEEU uEjuh E uEGET_ENVVCWDGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment43 0 %h+h0h 8uAX p   h j$0@Yhy]4:9 $+1:FJMBSenvvar_listgetenvvarinit_envvarslist_createrpc_get_envvarsregister_message_handlerget_parent_pidrpc_get_responsestrlensetenvpreallocmemcpylist_get_element_atvrpc_send_responsefreestrcmpgetenvgetenv_indexgetenv_name_by_indexgetenv_countlist_sizemalloclist_pushputenvstrchrerrnounsetenvlist_removegetcwdchdirio_get_absolute_path     - FN &<Xv 0<M Dgt";COWdq Ilz!#'3DTY&'init.o/ 1243806005 1001 1001 100644 2972 ` ELF4( USE uà u@ PE uPuu uX u‹ESuP u@ uPjhj ]U u@uPh jUEPjhjUSE u PE uPuu u‹EƒjEPR] u u uPjhj ]UhEh$uEE@)ĉeEEEE̋ẼuuPUEẼ PE}tjuE uE h&E}uEEe u@)ĉeEEEEЋEЃuPEЃh+PEE uEEE)ĉeEEEEԋEԃuPUE/M̋UԋE@QPEԃjPu:Eԃ P@ PEEԃPuEh+jEEe}t }Ee}t}u E uEEE PEEE@EE)ĉeEEEE؋E؃uPEMU؋EQP uEPuh-jE܃}t uE܉EeESERV_REGSERV_GETSERV_NAMSERV_EXI PATH;LOADELF GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4 %4+40468j|AP  %,9*JXn} 7init_service_registerstrlenmallocmemcpysend_messageinit_service_getrpc_get_dwordinit_service_get_namerpc_get_stringinit_process_exitinit_executestrcspnstrncpyio_get_absolute_pathaccessfreegetenvstrcpystrtokwait_child_add %5FX fw   ->P ^z  8Ql~Y}2G lock.o/ 1243806005 1001 1001 100644 812 ` ELF4( UW}0u_UEUEUuuUEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4N $%+098 9   ,(C lock_looplocklockedunlocklock_waitlocked_increment6lost_link.o/ 1243806005 1001 1001 100644 2436 ` ELF4( UH}ubhu E}u E_ u@uPju uE% u E u E}t}uEhuE}uEhuE}uEMEPE@9t EẼ u@EE EE)ĉeȋEȃEȋEȉE܋E܉EUJEPE uuPEEEEPU܋E@RuhPEEE}tB}}tIX}t}tJE7E$ EEẽ u u u uEEċEU8 uE uE}t}uENhuE}uEE܃ u@EE EE)ĉe؋E؃E؋E؉EEEUJEPEuuPEEUE@RuhPEEEԃ}tB}}tIX}t}tJE7E$ EEe܃ u u uElwrrdIO_LINK IO_ULINKGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4Q $`%+08A   {$+=NT[glio_create_linkfopenstrlenfwritefcloseio_split_filenameio_split_dirnameerrnomemcpyrpc_get_intfreeio_remove_link;M [ u     ( H   0 C \ j x    ~    ) 7Elost_path.o/ 1243806005 1001 1001 100644 4328 ` ELF 4( U(EEEEEEE}u EE‹E)ȉEEE܃}:tF}:}}/tU}\t }|trE@EE@EE@E.juuubEjuuuJE}t+E@EE@Euuu EEtEU hE} vE Eu uPU EDUEUEBEUSEEEhPu'uu uEEhPtE Pu!uu uM}tD] uH9s.uuEtM uEuuE}]U(Eu EEjuu uHEuuEEuE@t uEu u u?juE}tE@u E@ uEE@ PEjuu uEE܋EUjjE uEuuuuuEE@ uU(EjjEjuu[ uju ujuE}t E@u uE uEuuuMuuE}uσ uUEEJE PEE@E}t}r }w hEEEEPuE}uEU uEEPu E PE E@E}t"}t'}t(E :E E /E E /E E |E }u uMuuE}\E UEjuu8juE}EhPEE@ PE}t1EuPuEE u uE}uۃ uEE uEEU(EjuuO uE uuSEuEE@E@EuE@.E@ uu u uHPuEEuM hEEE@E@ uuPu uEE@ PEjuu u uE}uۋE PE...:/GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4"  (%X +X 0X 8` r AD   T lffb'> kTuo_$ &8@HQbget_path_elementscreate_path_elementeliminate_dot_elementsresolve_relative_pathresolve_relative_serv_pathcalc_path_lengthcreate_path_stringlist_insertmallocmemcpystrcmplist_removefreestrlenlist_sizelist_get_element_atio_get_absolute_pathlist_createlist_destroygetcwdstrcpyio_split_filenamestrnlenstrncpylist_popio_split_dirnamelist_pushE u.4J_m#8)Ql|+ ?V z ,ESj 1?Ol  msleep.o/ 1243806005 1001 1001 100644 1116 ` ELF4( US$ӋUЍЍډEUEUE;ErE;EwE;Er܃$[UUS$ӋUЍЍЍЍЍډEUUЍЍЍЍЍPhjEUE;ErE;EwE;Erظ]GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4G $8%|+|0|90 Dj j"o(7do_nothingmsleepget_tick_countsleeptimer_registerwait_for_rpcBw   network.o/ 1243806005 1001 1001 100644 1516 ` ELF4( UEE|EE}.t}.|XE0 wME}vLE[MEDЉD METE0D EEEEwEEEUSEȋE؋E%UQSPRhEP E]UWVSEE؋E E܋E؋U܉1؋E؋U܉1E؋UE؋UȋE؋UЋE%SVWQRPh EP Ee[^_U8E EȋEE̋EEEȋỦEUEEjh*EPE؍PjEPR h3ƒ EPjjhR %d.%d.%d.%d%02x:%02x:%02x:%02x:%02x:%02xREGDRV tcpipGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4 P%8+80898qAT  4hH$2}CJ[string_to_ipip_to_stringasprintfmac_to_stringregister_netcardmemcpyinit_service_getsend_messagebk    readline.o/ 1243806005 1001 1001 100644 7628 ` ELF4( UE Pt E PE}tȋEEEUE;E ~WE+E +EE ‹EUE EQRPE+UEEEUE E9E@=~uEE )ȉE UE EQRPE UEQE EPEEEUE+}u"E E PtEE E ;E}!}tNjE E PuE UE}  E^M +}u"E E PtEM } x!}tɋE E PuE @EEUE uEEEE}uۃ uUSTEEE EMЋE ;EtEE t}݋EE u E ;E~EЋE +EЉE؋E@)ĉeEEEEċEEUăuPRU؋EEăjPjEE@)ĉeEEMMȋE@UċMȃPRQ E UȃPuRуE܃}u EEEԋEE܋u}E܋ PEE+MMEE܋E܋QRPuEEE܋E}uċ]Eȃ P9wZ hEuhEEE܋E}uփ hEE܋EEEE܋EjujEE@)ĉeEEEE̋E@ŨPuREE@=w}E+UEЉ)ȍXE MEЉ‹EESQPŰEEuRPEE‹E EE+E‹E uyEEeE]U(EE~E PEE EEEE9EvEEEEEuPuu"E;E wEEEE4EEEp}~ EEEEEUSt PtDž4EEEuh PhjPDžiDžEЋ]E܄tM܃}0EPu܍P;E}~1E)E܋EЃuPP}PPPPuPP h EЃQP h PM܃}  h PH9 h P@kPhDž P4)ȃPh PPRPE싅‹E)ЃPhE쉅 PPRPE+EPhE P3 u  PH;E E }M؃hjP}~,uPhPPPhPPhPP P P P9jPRP h ЃQP h PzHjPRP h ЃQP h PEPRPE)ЋPPRP;uhPP)ȃPh P(E h  PEPPPubuhPP h9Etj+EPhNuhPP)ȃPh P}jPj@E uEEuPuE䉅]Uu  u@ PE}t%uuuP 0@Thp  [3~  %s %s[%dD[%dC%s[%dD [%dD; r  ~  s s GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.rel.rodata.comment4s D )p % h /080P4 \p @I  pR-Ri5=YhK[@DnW| m#*19@J^gn}dbuiltin_commandshistorykeyboard_read_chardelcharinscharfind_word_endfind_word_beginfree_matches_arraycomplete_wordfind_commandrl_attempted_completion_functionstdinfeoffgetwcwmemmoveiswalnumfreewcsncpywcstombsstrlenstrncmpprintfmbstowcswmemcpywcslenwcsncmpreadlinestdoutfflushwmemsetfputwslist_sizelist_get_element_atasprintfmallocrl_line_bufferadd_historylist_createstrcpylist_push.7~)V{.N)Vej(z0?Xu!"##.3<!V$afn!w"!"   !" "F K ] !f "   ! "   ! "H M ^ !g "  % #  &   ' $ , !< $N V !_ "q    ! $   ! "\ a j ! $   ! "! & . !> $\ a i !r "   ! "    ! $9>NS[!k$!"()+$/<(V,^j- (08@HPX` $(,048<@DHLservmgr.o/ 1243806005 1001 1001 100644 960 ` ELF4( US uXuShP]U h E}tENEEDSERVservmgrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4_ 0%+08A  HF4+ 4!/5servmgr_pidservmgr_needstrlenrpc_get_dwordyieldinit_service_get"( = EJ sort.o/ 1243806005 1001 1001 100644 876 ` ELFL4( U uEEE@EUEEERPEЃ~kEEEuPuE@EUEEEuRPE@EEuuP}~MEUE H9[GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 L %+09 4qsortmallocmemcpy `string.o/ 1243806005 1001 1001 100644 1872 ` ELF4( UEEEEu M } uEU0EEuU} wUE0DEUE7DEEuE}uEDEEU EHDӈEM}uEE UVS8EEEEE< tE< tE< tE< tًE<+uEE<-u EEEE؃}t}t3HE E<0u8EERY`loader_is_elf32loader_elf32_load_imageloader_create_threadloader_allocate_memmemcpymemsetloader_assign_mem Q t elf64.o/ 1243806005 1001 1001 100644 689 ` ELF4(U} ?w E5EEE=ELFt EE@<t EEEUGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4Y!',5p )OO loader_is_elf64loader_elf64_load_image flat.o/ 1243806005 1001 1001 100644 864 ` ELF4( U uEuu uh@uuuh@uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4V @ %+09@ ^V07Lloader_load_flat_bin_imageloader_allocate_memmemcpyloader_create_threadloader_assign_mem $7M loader.o/ 1243806005 1001 1001 100644 960 ` ELF4( Uuu tuu uEEuu tuu uEuu uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4~ (%+09h ~~#;Kcloader_load_imageloader_is_elf32loader_elf32_load_imageloader_is_elf64loader_elf64_load_imageloader_load_flat_bin_image(>V o list.o/ 1243806005 1001 1001 100644 2368 ` ELF4( U jEEE@EU uu uU}t Eu EEEU}t Eu E E@EEU}u EU jEUE BEEUEE@PEP;Eu @EEEU}u E~Et>E@EEEEE uE@PEPE;Eu u  HEEEU}tEt} y EEEE EtF;Eu<;E 2t))EEEE}u E'M}uEE EEEEUu u?E}t E@EEEU jEUEB}u E} t6E HPuE}u EZEEUEEEUEE@PEP;Eu;E | @EEEU}u E} tYE HPu9E}t Eu EEEEEE@E u;Eu EsEEEEE@E uE@PEP;Eu+;E ~ H;E u EEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4P (%+ 098@  x  1.=D.(QZ_V*m,woc4Olast_listlast_indexlast_nodelist_get_node_atlist_createmalloclist_destroylist_popfreelist_is_emptylist_sizelist_pushlist_get_element_atlist_insertlist_remove  ; M   _ DLT &0:@  %+2=tree.o/ 1243806005 1001 1001 100644 3920 ` ELFX 4( UjjuUE BUEBE@ @U jEu uuEU uUS$E EEEEEEEUEUiEEuuEUEUM13E ȅt>EUE؉U܋U;UwE;ErU;Us E@E E@E}uUEM]E1ȋU1 Ѕ]USu u1‹E@PEUEH XE!ȋU!ڋ]UU E@)U(E EEEEPuuutEPuEEEUEEE@EEEUEE@t EPEEPEPUEBUEUEEE@EEEUEE@t EPEEPEPUEBUEUE uEE%E @;E u E E E EEU!u uEE @ E @EE @@ ~7uE @ E@ EjPE @@ u$uxE @ E@ {E PuEE@ u EEE UP E@ ЋEP E@ EjPE @ E @EE @@ y7uE @ E@ EjPE @@ u!uE @ E@ vE PKuE@ ЋE P E@ u EEEUP E@ EjPE E } UEE@;Eu;E@ ~EEE@ +E B E@ ~BE9E@ yEEE@ E B E@ yEEEEt }dU(u uEuuPEUE@E@E@ EuEUEEEEPuuu&ujEUEPuEUE;ErE;EwE;Ev UEB UEBjumuu$EEEUE@‹E U(u uEuuEE@u?E@u5juEEPuE EE@tNE@uDjuEPEEPEEPuHE EE@uNE@tDjuTEPEEPEEPuE Ecu uEE@E E@EE@uuugEE@EEEEEEPEPEPEPEP EP E@;Eu E@E@t EPEE@t EPEUEUEE;EuBE@ PEP UEBE@  juuuE}tUEE@ PEP E@ x juuuE E܋EUu uSEEE} u EEeE@uGEEEE}t E@;Et}tuuEEEE/E@E E@EE@uuuyEEUu uEEE} u EEeE@uGEEEE}t E@;Et}tuuEEEE/E@E E@EE@uuuEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4  0 % + 0  9  P NF]'P]4AE8O&^k=x=/lKt & do_searchget_keyto_noderotate_leftrotate_rightlink_from_parentrebalanceadjust_balanceto_tree_itemtree_do_initmemsettree_do_createmalloctree_destroyfreetree_searchtree_inserttree_removetree_prevtree_nextI`yhandler.o/ 1243806005 1001 1001 100644 6040 ` ELFX4( UWVSlj%jEPEẼ j,EЋEЋỦlj%E@(EЉE̋EEԋE@E؋E*Eܡu EE؋EԊuRPu2 E}u.EEPj%u u uE@@%lEԊ@YE@ PE}t E@u E:EPhjPu҃E}E u)ĉEȋEԊ‹EȈ uPE@RuP]ȃ uSPhjE}t E@ u EE@ j%PEPEPuo EEE@P@EEuE uEPj%u ue[^_UEEEPu uju uju uUVS0EEEPuE}u( h ju uE@ PE}t E@uju uE@ uuƋEPE@ƒ)ĉeԋEԃEԋEԉE܋EXEHE@UQPRuӃEEPuu u]E@ PEEHEPE@RPuuуEE@ Puu ue[^U(EEEEPuE}tE@ PE}E@E@ u:EEEPE@ЋE9v-ju uE@ PE}uju ugEHEPE@uRPuуEE@ tE@ Puu uju uUSEEEPuE}uju uwE@ PE}tDE@t:EXEH EP@QRPuӃEEPu uju u]UEEEPuE}t$E@%tju uju uUEEEPuE}tEP@EUEEEPju uU(EE} v4E@ ;Ew&E@@U PR‹E@9tju uEPuEE@PuE}t}uju u~E@ PE}tKE@ tAEP E Puu҃E}tEuu uju uU(EE}v4E@;Ew&E@@UPR‹E@9tju uEPuE}uju uUE@RPEE&E@;Euju uEuPE}uE@ PE}tHE@$t>EP$EPu҃E}tEuu uju uU(E E܋E PE}E PE uE u}taE PE}t8E@t.EPEuuPEP҃E;E/ jE}t E@u EPh#EEPEuuPEP҃u EE PE}twE܃tE@%u EE PE}t4E@t*EPEuuPEP҃u E6E PE}u EE܃tE@%u E j EEBUEBU܋EPUEB E@@E@UEBuPEP @ Ѕu#E@%uE@EPE PE}tE@ tE@ uЃEE؋EUE E;E t EuPE}uփ}uEiuPE@ PE}tE@tE@ uЃ uEEIO_OPEN Filehandle nicht gefundenDatei nicht vorhanden: '%s' GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4  % + 0 @8A    &0<CJRdixOxw?qb'^31.?G]_xkmy_pid.2053lostio_openlostio_closehandle_idrpc_io_openmemsetmallocget_pidrpc_send_responsefreeget_typehandlestrlenmemcpyrpc_get_responserpc_io_closerpc_send_dword_responserpc_io_readget_filehandleputsopen_shared_memoryclose_shared_memoryrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkstrnlenrpc_send_int_responserpc_io_unlinkvfstree_get_node_by_namefilehandleslist_get_element_atvfstree_get_node_by_pathvfstree_dirnameprintflist_pushpvlist_remove . qz  >.3FbUi(DPe(d !!A!V! !! #. !> $J %j  ! ! & ' &) C    ( &L  &    > $J )R $  * $ % + $* ,2 +F x lostio.o/ 1243806005 1001 1001 100644 2320 ` ELF4( U hhhh hhhhhh&hh/hh8hhAhhJUUEEE E:Et!UERPE}uՋEUWVE PE}uuPEUlj e^_UEEEuPE}t E;E uE/IO_OPEN IO_CLOSEIO_READ IO_WRITEIO_SEEK IO_EOF IO_TELL IO_LINK IO_ULINKGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4 %0+000S8Ah  HG &2?Kdq}  EP[*4OCElostio_initlist_createvfstree_rootfilehandleslostio_typesrpc_io_openregister_message_handlerrpc_io_closerpc_io_readrpc_io_writerpc_io_seekrpc_io_eofrpc_io_tellrpc_io_linkrpc_io_unlinklostio_dispatchlostio_sync_dispatchget_typehandlelist_get_element_atlostio_register_typehandlelist_pushget_filehandlepv #,1 6; C HM X ]b mrw       1 ;ev   sync.o/ 1243806005 1001 1001 100644 1316 ` ELF4( UWVS,EE@HX EP@Ή)׉uЉ}ԋEPE@ ‰EE}9}rEE9Ewu9ur5UEHE@RjQPuPEuPE}Oe[^_U jEu UE BUEBEjuPUEuPGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4P p%+098 (%1=Qugnzsync_read_listlostio_sync_dispatchrpc_io_readlist_removelist_get_element_atlostio_sync_read_waitmalloclist_creatememcpylist_push   & 6BJvfstree.o/ 1243806005 1001 1001 100644 3176 ` ELFL4( UE uHEEEPTY_d getopt_long.o/ 1243806005 1001 1001 100644 5720 ` ELF 4( UE} UE EEE E} U}uE U0UE )ЉEU E)ЉEuuEUE)Й}EErEE E܋E܉EEOE;E |E)EEEEEEEUEEEUEEE;E|EE;E|U8E Eԃ}t}t}tEEE EEEE@j=uE}tEU)ЉEE uEEEEuPuEE P;EuEEE}t}ts}uEEeEuTEEPEE@9u8EEPEE@9uEEP EE@ 9tEEEE}u}tE?}*EE@u?}t9EE@uEE@ E?REE@tEE@u>}t E.EE@uEBEE@ubuYEE@uEE@ HE <:u E:E?E܉E}u/5}tHE]E?JUEEE@t#EEPEE@ EEE@ E؋EUS$}u E$ hEE<-uM}u E<+ueE<+t E<-uEutuv;EtC u PRQ )É؉)‰Уt EE <-u@Et)E BEiEu ESu UtK u PRQ )É؉)‰У@Jtu @@<-@@tA u PRQ )É؉)‰УE}E 9<-tEE <-u@ /<:t$PutEuuuuuu E}t]]& E}:Au+}-u uuuE}uG}-uu Eu @EE?}}WE@<;u]@;E|6EE<:u E:E?EEE  ujuuuu = EUUEE<:t@t dE@<:tZ@;E|3EE<:u E:E?]]-E @EEE]Ujuuuu u Ujuuuu ux option requires an argument -- %cillegal option -- %cinvalid option -- %coption `%s%s' requires an argumentoption `%s%.*s' is ambiguousoption `%s%.*s' doesn't allow an argumentunrecognized option `%s%s'----W POSIXLY_CORRECTGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.rodata.comment4  ` )$ % P /4 4@  <^ p Ep  ` "*B5 AWL#Y_*er3v3l`E $ $placenonopt_startnonopt_endrecargcharilloptchardash_prefixgnuoptcharrecargstringambignoargilloptstringgcdpermute_argsparse_long_optionsgetopt_internaloptindstrchrstrlenstrncmpoptoptoptarggetenvoptresetgetopt_longgetopt_long_only!*3<V\i5N]e{} )2AEJTZ`tz $KUZakqw$*.3=CI]chy*dhy- 8 > C N R Z             ) / 4 ? C K q ~     getpid.o/ 1243806005 1001 1001 100644 724 ` ELF4( UU jGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4" %X+X0Xj9  '  getpidget_pidgetppidget_parent_pidgrp.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%link.o/ 1243806005 1001 1001 100644 940 ` ELF4( UUhuE}u E*uuju E uEEElrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4x |0%+08A  T( d!linkerrnoreadlinkfopenfreadfclose& 8U f misc.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%mktemp.o/ 1243806005 1001 1001 100644 1588 ` ELF4( UVS uE}wEVEE%EEuPUEEPBE@EEUuEEE@;Et EuPE}uՃ}u EEEEU uU(EE tJE t@huE}tn uEE u@huE}uE` uE t@huE}uhuE uE tEDrEE tE @t EDwEnE t"E @tEDwEED+EBE tEDrEED+E E tEDrEED+EE t EDaEEDEEPuE}uE uE܋EUu jRuU uQE}uEuuju EEEEU uE}uEuuju EEEEU uE}uE2uu ut E uEEUEE$E@;EuuP EuPE}u}tE PtE uEEU uE}uEm uEjuut EE"]_|ciavuGz@T~ 2#Uwinitializedinit_signalssigactionssigmaskdo_alarmid.2095memset_signal_default_handlerraiseerrnosigismemberkillsend_message_exitsignalsigactionsigemptysetsigfillsetsigaddsetsigdelsetsigprocmaskalarmtimer_canceltimer_register %* BF Uf{7Gq$ G co#27Yhm ',4socket.o/ 1243806005 1001 1001 100644 2224 ` ELF4( Uu EE RPQEEUujjE PMQuPEPU}tEa} tEHjHjEUEPEj,jP u0EEEEU( uEE EE}uEE E@9tEE@ PEE@%E@% fEEPuhEPyEvEh PE}uE7EjjjPEj,uP uE P uEEUuu uUuu uUuuu uUuuu utcpip:/%s:%dr+GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4 %+08,>A   88\".=DPW]dk^swsocketsget_socketcreate_sockettree_searchtree_do_createfilenotree_insertsocketerrnocallocmemsetconnectip_to_stringasprintffopensetvbufmemcpyfreerecvreadsendwriterecvfromsendto) ?O Wf w Ej"9GVdstat.o/ 1243806005 1001 1001 100644 2196 ` ELF4( UUUj4ju E @ƒE P uEjju u‹E PjuuE @,E @‹E @,EкuEUE P0E @‹E @,EкuЅtE @0PE P0E @E @@E PUEhuE} uE}uE uj4ju E @ƒE PE @E @@E P"u u2E uEEEUu uE}ukhuE}tOE @ЉƒE PuhjP‹E PE @0 uEUhuE}uEu u=EEU uu EEEUUU帚rlrGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4- %d+d0d8i{AL      ")/5:@OUelrxN~-  # inode_numlost_statchmodfchmodmemsetftellfseekstatfopendirectory_openerrnodirectory_closefcloselstatfreadfstatfdopenmkdirdirectory_createmkfifomknodumask% D Y g   -5Pb}  (0htermios.o/ 1243806005 1001 1001 100644 780 ` ELF4( Uj ju E @UUUE@<GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4K %+094 0) ) 3 $=tcgetattrmemsettcsetattrtcflushcfgetospeedtime.o/ 1243806005 1001 1001 100644 586 ` ELF4(UEE@GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!T'T,Tf5` <gettimeofdayunlink.o/ 1243806005 1001 1001 100644 648 ` ELF4( U uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 %L+L0L^9p punlinkremove user.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%utime.o/ 1243806005 1001 1001 100644 644 ` ELF4( UGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 |%H+H0HZ9p l utimeerrnowait.o/ 1243806005 1001 1001 100644 2100 ` ELF44( UhMhUEE;EuEE'EuPE}uEEU uE}ud j E}Pj[h hUEE@E@uPUE#E;EuuP EuPE}uU}uw uE}u u uE}Phh hEEPE@U}tr u>E}uEYE@t uu߃} t EPE  uEEEEUjujCHL_EXITposix//wait.cwait_child != NULLGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4 D%+0*8A  d M'M)Q8'EQj~tfwait_listrpc_child_exitwait_child_getwait_child_delinit_waitpidlist_createregister_message_handlerlist_get_element_atwait_child_addpmalloc_assertlist_pushvlist_removewaitpiderrnoyieldget_parent_pidwait  LX {"/; Z| Rwrpchandler.o/ 1243806005 1001 1001 100644 708 ` ELF4(`D$ L$$T$(RPQ a80PD$%tD$ @D$ā ؋DThe Netwide Assembler 2.05.01.symtab.strtab.shstrtab.rel.text.comment@R %.p hS?C+@librpc_rpc_handler.1librpc_rpc_handler.2librpc_c_rpc_handlerlibrpc_rpc_handlermessaging.o/ 1243806005 1001 1001 100644 2068 ` ELFl4( U hE,UƀUǀE}vUjjEPjuEPE EQUuEE0UjPEPu E\E}v} u EDUjEPRUЍE EEUEEUE E PUEEEE}w>E+9EEE P҃}v"}wE- P}EjPEZUUjPRu-UEU PRuuуKE}~@}u UM RQuuЃ}u uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 D% +  0 29p D*]9ATd t]I,uamy_pidintr_handlerrpc_response_handlerinit_messagingget_pidlibrpc_rpc_handlerset_rpc_handlermessage_handlerregister_message_handlermemsetstrncpystrncmpregister_intr_handleradd_intr_handlerlibrpc_c_rpc_handlerraisestrnlentimer_callback   7 J o   9 _l? Qj sync.o/ 1243806005 1001 1001 100644 2932 ` ELF4( UUu jEUEUE BUEB uEuuuUEB uPUEEE,E@;E uuPE;Et EuPE}u}tE@;E uE;EuEEEEUEE@uE)ĉeEEEEEju PEuuPEU PRuhu uuE}tEeUEuuu uE}tE@v E@ EE@ P uEUEuuu uE}tE@v E@ EE@ P uEUEuuu u6E}u EvEPE@ RPEE@ PEE@ uPuEEE@ P uEEEUuuu uEEU uuu hu UE Pju hu UE Pju hu U u uPu hu GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4_  p%+09H  h.G7AT`z)ee!)":$L$d $z/0current_correlation_idsync_rpc_has_responsesync_rpcresponsesinit_sync_messageslist_createsync_rpc_response_handlerrpc_response_handlerpmallocmemcpylist_pushvlist_removelist_get_element_atstrncpysend_messagev_and_wait_for_rpcrpc_get_dwordfreerpc_get_intrpc_get_stringstrnlenrpc_get_responserpc_send_responserpc_send_dword_responserpc_send_int_responserpc_send_string_responsestrlen   # (1 ;f} S Xafo   t8Kf&<!Vtimer.o/ 1243806005 1001 1001 100644 1584 ` ELF 4( Uu  jEUEEPBEEPE@9w EuPE}uСuuPE@u PE@EEUE>E@;Eu0uPEЃ u%EuPE}uUE0E@;Eu"uP uEuPE}uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 P%+090 %18:NZhjvy8hnext_timer_idtimerstimer_registerlist_createmallocplist_get_element_atlist_insertsyscall_timervtimer_callbacklist_removefreetimer_cancel 3AF gs     ! 2? Xdr} asprintf.o/ 1243806005 1001 1001 100644 1156 ` ELF4( UE EEPE@H9uCE@EPE@ERP‹EEu E$EEHŠEQEPEEU(EEEE}u E j@EEu EsE@Euu EPEjEPu E.UE9sEUPREUEEE܋EUEEEPu uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4w L8%+09` :!(1N)asprintf_putcreallocvasprintfmallocjvprintfasprintf@ 1hassert.o/ 1243806005 1001 1001 100644 868 ` ELF4( U}u$ uu uhP Zusicherung fehlgeschlagen: '%s' in '%d' auf Zeile %d GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment42 D %h+h0h78A  $2 _assertstderrfprintfabort $, bsdmalloc.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%directory.o/ 1243806005 1001 1001 100644 1360 ` ELF4( UhuU uU}t ut E. hEujhuEEEUuu uUhuE}u E uEEU uE}t uEEErdwdGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4, `%`+`0`8fxAL   l&-1Z<AHN]cEt@directory_openfopendirectory_closefclosedirectory_readfeofmallocfreaddirectory_seekfseekdirectory_createis_directory ( D a y  errno.o/ 1243806005 1001 1001 100644 547 ` ELF|4(GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!4'4,4F5` errno exit.o/ 1243806005 1001 1001 100644 1456 ` ELF4( Ut.EEEuPE}uۃ uU jUu&uEuPEEUS$EEEEhuUE] j Sj jhP uCHL_EXITGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4# %X+X0X 8asAD@   M&l,M2bU9EKU\kxatexit_listexitlist_get_element_at_exitabortatexitlist_createerrnolist_pushstrcpyget_parent_pidsend_messageinit_process_exitdestroy_process!-D Y ir w| file.o/ 1243806005 1001 1001 100644 7052 ` ELF`4( U;Er ESt PE u PEEUWVSSfrlk={v .G j< |  r 8  R& ,5 ; D %KWR~4Y2cnuget_shmshm_sizeshm_ptrshm_idio_writeclose_shared_memorycreate_shared_memoryopen_shared_memoryfopenio_get_absolute_pathstrlenmemcpyrpc_get_responsefreemallocstrcpysetvbuffreopenfclosefflushrpc_get_dwordfreadreallocfgetcfeoffgetsferrorungetcfwritememchrfputcfputsfseeklio_seekftellclearerrrewindfpurgesetbufsetbuffersetlinebufremoveio_remove_linktmpfile$- 8C KPY af |"O .$2WkqI[     /  F ] c   m   # F  "  " " H \ '      X l r  & )a 0"'  $(,048<@DHLPTX\`dfprintf.o/ 1243806005 1001 1001 100644 1024 ` ELFL4( UE EEUPRUEE}u u EEEuuju UEEEEEEuu EPUEEEPu uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 0%+09 J))B")0k89B)fprintf_putcfputcfprintf_putsnstrlenfwritevfprintfjvprintffprintfDb x  fscanf.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%jprintf.o/ 1243806005 1001 1001 100644 6644 ` ELF4( US$EEE EERPuuEUEM]RPSQE}tUEEU]U8EE؋E E܋EE}t EE$EЉE}v}$v EEE؋U܉EUEEjuuuEUE EuڋEEEE؋U܉EUEPuuuEUMEEEM}űEEԋEUE EEtEUE@RPуEEEUE@t EPE@uu P҃EPEE EE PuEEEE tE;E|̃}tƋEEEU8DžX E TE @E E <%t E uE ‹T)ȃPTullyl E ‹T)ȃt2E ‹T);ltlX‰J lXE % E @E E <%uiE Puppyp puX pXE @E ƅ_Dž`DždDžh E  w!HE _E @E E *t4*|E0 w7E U j PR`UBEЋ`E @E E <.ulE @E E *t4*|E0 w7E U j PRdUBEЋdE @E E htlt8Lt\aDžhE @E E E؉EJj uE}yM/}uXEXE܋E;`ruuuE}yU}tE;EtEXEXuuuE}y E|}tE;EtEX‰[EX0juuE}y M)EXE @E E X0123456789ABCDEFGHIJKLMOPQRSTUVWXYZ0123456789abcdefghijklmopqrstuvwxyzUd UU UU%                               %          ,  l  GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rel.rodata.comment4" X %X+X4X0  <,>E<  ,U gg#B?0>GN__udivdi3__umoddi3divmodulltoajprintf_putcjprintf_putsnjvprintfstrtolstrlen$D a   s Oj % E  @ |    ^    C    +    1   U    l  &   HLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|liballoc.o/ 1243806005 1001 1001 100644 5496 ` ELF 4( UUUE jPEE PhᆳuVEUE PuUUEUE‹E EE;ErEUEE‹E‹E EE;ErEUEEE EEEEEm}wEEEEEEEEM}uEUSEEE‹EѺЅu‹EѺE‹EѺ@E;EvEE PoE}u%EnEE@UEBUEP E@E@E@  ڣ EEE]USdEEEEEEEr}u6] jEau- u]uE+EEP @)ȺEȉŰEEEE;EU;Ur M;MEEE؋P E؋@)ȉEԋEԺEUU;Ur&M;MwE;EvEأEԺEȉŰE;EvjE؋@tE؋@E }uEE u!‹E؉PE؋@E؋PE؉E؋@E؋E؋@E؃‹E؉PE؋@@ E؋@E؋@@E؋PE؉BE؋PEBE؋PEBE؋@EPE؉PMڣE؋@EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfUЉUE؋@‹E؉)ȃEԋE;EE؋PE؃E؋@E؋@BE؋@E؉PE؋@@ E؋@E؋PE؉BE؋PEBE؋PEBE؋@EPE؉PMڣE؋@EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfEЉEE؋@EQE܋@E؋P E؍EԋE܋PE‹E)ЃEԋE;EE܋PE܍‹E܉PE܋PE܉E܋@E܋E@E@ U܋E؉BU܋EBU܋EBE؋@EPE؉PMڣE܃EЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfUЉUE܋@E܋@‹E)‹E܋@)ȃEԋE;EE܋PE܍EE@ E܋PEPUE܉UEBUEBUE؉BE܋PEU܋EBE؋@EPE؉PMڣEEЋEЃEЋEЃE}t+EEEEEЋEЃ‹EfmEЉE~E܋@E܃}E؋@uB}uEE4 uO‹E؉PE؋@tE؋PE؉E؋@E؃}bEE]UWVS,}u!`EfE}w E+EEzEEE@ =tx $ $E@ %=t$E@ %=tE@ %=u(,(,E@Phu E@E E@Ή)׉EPE@)ljPEPE@ ޭދE@t EPEEtEE@BEu EPEPE@;Eu E@;Eu EtEE@BE@t EPE  E@ Ή)׉ E@PuGt>P @)ljEEP E@)ȉEE;EvEOe[^_UEE EE PEEPju EU} u uE9}u u EEEEfE}w E+EEEEE@ =t| $ $E@ %=t$E@ %=tE@ %=u(,(,EbE@EE;E rUE BEE; u Euuu uEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4g  % + 40  9\ \A  ,8@O \(o0w$<1`,\;! }&\-3 2 89 dl_memRootl_bestBetl_pageSizel_pageCountl_allocatedl_inusel_warningCountl_errorCountl_possibleOverrunsla_lockliballoc_lockliballoc_unlockliballoc_allocliballoc_fill_dwordliballoc_freeliballoc_memsetliballoc_memcpyallocate_new_pagepvmem_allocatemem_freeinit_memory_managermallocfreecallocrealloc7tPi5;DJ%n"+1AGPVC I T Z         9 ? [ a     4 : V \ x      6         3 U malloc.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%math.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%printf.o/ 1243806005 1001 1001 100644 1192 ` ELFh4( UE EE PU u EE;E~}uEu PEEu PEEUWV}u uEPe^_UE EEPuEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rel.rodata.comment4 `8 %+4 0  <"E   P  ##V+28y0@I&C.2.1473printf_putcputcharprintf_putsnstrlenputsnvprintfjvprintfprintf0 S j    rand.o/ 1243806005 1001 1001 100644 920 ` ELF4( UEUSӡjh5qRPEEE]UUuGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4m X@%+09X =  C.P 5]rnd_seedsrand__umoddi3randget_tick_countrandomsrandom 1<DWdsnprintf.o/ 1243806005 1001 1001 100644 1020 ` ELF4( UE EE@PE@9v EE@PE@9s EiEPE@H9s&EEHŠEQEPE2EPE@H9uEEPЍBEPEEU(EEE EEEEEEuuEPE}xE;E s EEEUEEEPuu uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4@ %t+t0t9( +b")snprintf_putcvsnprintfjvprintfsnprintf1sprintf.o/ 1243806005 1001 1001 100644 872 ` ELF04( UE EEEHŠEQEPU(EEEEEEEuu EPE}x EEEUEEEPu uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 P%+09 ((00T )sprintf_putcvsprintfjvprintfsprintfDfsscanf.o/ 1243806005 1001 1001 100644 348 ` ELFl4(GCC: (GNU) 4.2.2.shstrtab.text.data.bss.comment 4444F%stdio.o/ 1243806005 1001 1001 100644 3108 ` ELF\4( UhhE}uuhjwPEEƄwtPhwPhwP ujjjPhhE}uuhjwPEEƄwtPh$wPh$wP uhjh Phh&E}uuhjwPEEƄwtPh$wPh$wPjjjP uUuu uEE*Pjuu u EEEEU uuPu E1uh6j j EEUuEEEPjEEu uEEUuEEEPjEEPuEEU uU PUEgE}u5 Pt E_ Pu;$ u} t%EUEE PtEEEEEUPuh8rconsole:/stdinrsconsole:/stdoutaconsole:/stderr %s: errno=%d GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4} h%+  0F8A     ?+17?FN?WTbignuDJ}G\!stdout_bufstdinstdoutstderrstdio_initfopenfreadfreopenfclosesetvbufputsnsyscall_putsnfwriteputsstrlenputcharputcfputcgetcfgetcgetchargetsferrorfeofperrorerrnoprintf  )H ^gp|    !*6 CO Wbjv|         (6FXhv5Kcs4=cot strtol.o/ 1243806005 1001 1001 100644 860 ` ELF4(UEEE< tE< tE< tE< tEDg2Nc0kgmbrtowcmbtowcwcrtombwctombwcsrtombs__internal_wcsrtombserrnombsrtowcs__internal_mbsrtowcswcwidthwcswidth,H Z z  wctype.o/ 1243806005 1001 1001 100644 1436 ` ELF|4( U}@~}Z EEEU}`~}z EEEU}`~}z~ }@~}Z EEEU}/~}9 EEEUuuut EEEU} t} t } t} u EEEU} t} u EEEU ut'uuuu EEEU}U}Uut E EEEEUut E EEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 d8%0+000B9 m' ''N3'%9.37'@;KIR[+d+iswupperiswloweriswalphaiswdigitiswalnumiswspaceiswblankiswpunctiswprintiswcntrltowuppertowlowerH W f wstdio.o/ 1243806005 1001 1001 100644 1360 ` ELF4( U(E uE}u E}UEDEEPEPEPE}u}~}y>EHEEDuPM}EEE܋EU PUuEPE}yE(Eu jPEPu EEEEUPuU&Eu Pu EEEuEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 `%+09p  ]"+1a8?F)OVECfgetwcfgetcmbtowcungetcerrnogetwcharstdinfputwcwctombfwriteputwcharstdoutfputwsJ    0< Z bcmp.o/ 1243806005 1001 1001 100644 626 ` ELF4(U}u E4EEE EEE8EEu M}uދEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4N!',5 ` lNbcmpbcopy.o/ 1243806005 1001 1001 100644 971 ` ELF$4(UE EEE}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5d` bcopy bzero.o/ 1243806005 1001 1001 100644 703 ` ELF4(UEE} w EEM } urEE}t#+EEE)E EEM}uE EEEM}uE E}tEEM}uGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5X` bzero ffs.o/ 1243806005 1001 1001 100644 609 ` ELF4(U}u E$E EEEEtEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4>!t't,t5` \>ffs ffsl.o/ 1243806005 1001 1001 100644 610 ` ELF4(U}u E$E EEEEtEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4>!t't,t5` \>ffslfls.o/ 1243806005 1001 1001 100644 605 ` ELF4(U}u E E EEE}uEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4:!p'p,p5` X:fls flsl.o/ 1243806005 1001 1001 100644 606 ` ELF4(U}u E E EEE}uEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4:!p'p,p5` X:flslindex.o/ 1243806005 1001 1001 100644 607 ` ELF4(UE EE:EuEEEu EE׋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4:!p'p,p5` X:index memccpy.o/ 1243806005 1001 1001 100644 641 ` ELF4(U}tBEEE EEEEEE:EEEtEEM}uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4Z!',5` x Zmemccpy memchr.o/ 1243806005 1001 1001 100644 620 ` ELF4(U}t-EEE;E Et EHEM}uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4E!|'|,|5` dEmemchrmemcmp.o/ 1243806005 1001 1001 100644 652 ` ELF4(U}tMEEE EEE8EEtMEME)MM}uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4e!',5$` ememcmpmemcpy.o/ 1243806005 1001 1001 100644 972 ` ELF$4(UEEE E}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}uEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5d` memcpymemmem.o/ 1243806005 1001 1001 100644 848 ` ELF@4( U(EEEE} t}u EE ;Es E}uEu PuEZE UE)MEE1UU8u uuuuMMEE9EvEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 @%+09 (memmemmemchrmemcmpTmemmove.o/ 1243806005 1001 1001 100644 973 ` ELF$4(UEEE E}E;E{E‹E9EEE EtNE3Eu}wEEE)ȉEE)EEEEEM}uEE}tEUEEM}uEE}EEEEM}uEEEEEEE Et>E3Eu}wEEeE)EMMEEM}uEE}tmmEUM}uEE}tMMEEM}uEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5d`  memmove memset.o/ 1243806006 1001 1001 100644 768 ` ELFX4(UEE} w#E ‹EEM}uEEE E}tE EE EEE}t'+EEE)EE ‹EEM}uEEUEEM}uEE}tE ‹EEM}uEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',"5` memsetmultibyte.o/ 1243806006 1001 1001 100644 2032 ` ELF04( UEE%=u EgE%=u EJE%=u E-ExEu EE EKE;E v E:E#EE%=t EEE;E|ՋEEEUE} u Euu E}uEEw}u Eh+EEE ЋMH!‹EE,EEEEE ? ‹EEE;E|̋EEEU}u E E ;E uE ƒEEE %;E u2E ƒ ‹EMAE ƒ? ЈEE ;E uFE ƒ ‹EMAE ƒ? ЈME ƒ? ЈE[E ƒ ‹EMAE ƒ? ЈME ƒ? ЈME ƒ? ЈEEUE}E EEE rE PE QEPE}u E}tUE)щʋE9rI}tUEMREPQEEE t}yE;Em}t%E uE;EsE EEEEEUE}u^E EEE NE jPEP E}u Ex}tEUEEE E‹E E t}tE;Er}t+E u E;EsE EEEEEUuE PuUuE Pu GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 0%+09 hX**1F{Omblenmbtowcwctomb__internal_wcsrtombsmemcpy__internal_mbsrtowcswcstombsmbstowcsQ  rindex.o/ 1243806006 1001 1001 100644 612 ` ELF4(UE EEE:EuEEEuEEEڋEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4>!t't,t5` \>rindexstpcpy.o/ 1243806006 1001 1001 100644 584 ` ELF4(UE EE EEuEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4#!X'X,Xj5` @#stpcpystrcasecmp.o/ 1243806006 1001 1001 100644 964 ` ELF4(USEEE EEEt EeE P\ËEE PC9tE P+ME P)‰UE]U}@~}Z E EEEEUS}EEE EEPËEEP9t0EPMEPl)‰U!EEu M}uEE]GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4e!',5$  ( tolowerstrcasecmpstrncasecmpstrcasestr.o/ 1243806006 1001 1001 100644 888 ` ELFH4( UE E}E twE PsE u EEE}Et E8E P.:Euʃuu uuMEEEU}@~}Z E EEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 h%+09 @'( tolowerstrcasestrstrlenstrncasecmp8strcat.o/ 1243806006 1001 1001 100644 612 ` ELF4(UEEEEuE EEEE uEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4=!t't,t5` \=strcatstrchr.o/ 1243806006 1001 1001 100644 608 ` ELF4(UE EE:EuEEEu EE׋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4:!p'p,p5` X:strchrstrcmp.o/ 1243806006 1001 1001 100644 636 ` ELF4(UEEt E.EE 8E uЋEЋE H)MEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4U!',5` tUstrcmpstrcpy.o/ 1243806006 1001 1001 100644 592 ` ELF4(UEEE EE EEuEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4,!`'`,`r5` H,strcpystrcspn.o/ 1243806006 1001 1001 100644 749 ` ELFD4(U$Eu EEEEEEE9E EE ?EUED EDE E uEEEEE?EED#EuEȋEU)ЉE܋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5`  strcspn strdup.o/ 1243806006 1001 1001 100644 776 ` ELF4( U u@E uE}u EuuuEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4W %+09@ Wstrdupstrlenmallocmemcpy Estrerror.o/ 1243806006 1001 1001 100644 792 ` ELF4( UUnbekannter FehlerGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.rodata.comment4   )@%  /D4D<WiEh   error_message.1284strerrorstrlcat.o/ 1243806006 1001 1001 100644 792 ` ELF(4( UEEE EEEEM}t EuUE)ȉEUE)ЉE}u1 uU‰U<}tEEEMEEuދEUE )ȋU‰UEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 %+09p  strlcatstrlenVstrlcpy.o/ 1243806006 1001 1001 100644 677 ` ELF4(UEEE EEE}t0M}t'EEEEEu M}uك}u}tEEEuUE )HGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5<`  strlcpy strlen.o/ 1243806006 1001 1001 100644 588 ` ELF4(UEEEEuUE)GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4(!\'\,\n5` D(strlenstrncat.o/ 1243806006 1001 1001 100644 637 ` ELF4(U}tGEEE EEEuEEEEu EM}uًEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4X!',5` t Xstrncat strncmp.o/ 1243806006 1001 1001 100644 657 ` ELF4(U}u EQEE 8E tEЋE H)M!EEu M}uEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4k!',5(`  kstrncmp strncpy.o/ 1243806006 1001 1001 100644 641 ` ELF4(U}tIEEE EEEEEEt EEM}u M}uËEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4Z!',5` x Zstrncpy strnstr.o/ 1243806006 1001 1001 100644 804 ` ELF4( UE E}E tm u EM}tEE}Et E:E:EuЋE;Ev E!uu uuMEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 %+09|  strnstrstrlenstrncmp#{strpbrk.o/ 1243806006 1001 1001 100644 645 ` ELF4(U2E EE;Eu EHE9EE}Eu֋EE}EuEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4_!',5` | _strpbrk strrchr.o/ 1243806006 1001 1001 100644 613 ` ELF4(UE EEE:EuEEEuEEEڋEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4>!t't,t5` \ >strrchr strsep.o/ 1243806006 1001 1001 100644 684 ` ELF4(U$EE}u EcEEEEEE EEEE;EEt&}u EEHUEEE}u룋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5D` strsepstrspn.o/ 1243806006 1001 1001 100644 748 ` ELFD4(U$Eu EEEEEEEE9E EE ?EUED EDE E uEEEEE?EED#EtEȋEU)ЉE܋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5` strspnstrstr.o/ 1243806006 1001 1001 100644 780 ` ELF4( UE E}E tS u EEE}Et E)E:Euكuu uuMEEEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4z %+09d zstrstrstrlenstrncmp#astrtok.o/ 1243806006 1001 1001 100644 936 ` ELFx4( U}uEE}u EEEEE EE;EtEE}Eu߃}uEEdEHEEEEE EEEE;EEt&}u EEHUEEE}u룋EUhu u GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 %,+,0,>9 p& "last.1326strtok_r__strtok_rstrtok/0 1243806006 1001 1001 100644 578 ` ELF4(UEP40GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!H'H,HZ5` 0add_intr_handler/20 1243806006 1001 1001 100644 799 ` ELF4(U0EEUEP0EEUS]M UEPRQS0EE[U0U0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!',5< C 1-'^ 7jget_pidget_parent_pidcreate_processdestroy_processget_cmdline debug.o/ 1243806006 1001 1001 100644 586 ` ELF4(UEPP0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!H'H,HZ5` 0syscall_debug_stacktrace/38 1243806006 1001 1001 100644 581 ` ELF4(U0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!L'L,L^5` 4enumerate_tasks get_phys_addr.o/1243806006 1001 1001 100644 583 ` ELF4(UEPB0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!P'P,Pb5` 8get_phys_addr /57 1243806006 1001 1001 100644 624 ` ELF4(UWVS(0EUuEӉ˹ ȉ ڃ[^_GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4A!x'x,x5` `Aget_tick_countget_uid.o/ 1243806006 1001 1001 100644 577 ` ELF4(UEP0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!P'P,Pb5` 8 get_uid /75 1243806006 1001 1001 100644 662 ` ELF4(US]M UEPRQS 0[US]M UEPRQSR0[GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4B!x'x,x5p p&!!!init_child_pageinit_child_page_copymem_allocate.o/ 1243806006 1001 1001 100644 916 ` ELF44( US]M UEPRQ0 EEUS؃[UEu uPEUMU EPRQ=0 EEUUE PR0EEUUE PR>0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.comment4 %+09 <P;;X$5| >mem_dma_allocatemem_allocatemem_allocate_physicalmem_freemem_free_physicalLmemory_info.o/ 1243806006 1001 1001 100644 593 ` ELF4(UM<0EUEUQGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4'!\'\,\n5` D 'memory_info ports.o/ 1243806006 1001 1001 100644 645 ` ELF4(Uu u 0EEUu u 0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4<!p'p,p5p hrequest_portsrelease_ports puts.o/ 1243806006 1001 1001 100644 583 ` ELF4(UUE PR0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!P'P,Pb5` 8syscall_putsn pv.o/ 1243806006 1001 1001 100644 593 ` ELF4(U 0U j0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!T'T,Tf5p L  pv rpc.o/ 1243806006 1001 1001 100644 698 ` ELF4(UEEju30E}uUEE EEEEEUuuuju70EEE}t΋EGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4z!',58p **Prpcsend_message/94 1243806006 1001 1001 100644 577 ` ELF4(UEP20GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!H'H,HZ5` 0set_rpc_handler shared_memory.o/1243806006 1001 1001 100644 709 ` ELF4(UEP?0EEUEP@0EEUEPA0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4K!',5 =)8create_shared_memoryopen_shared_memoryclose_shared_memory sleep.o/ 1243806006 1001 1001 100644 559 ` ELF4(U0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4 !@'@,@R5` ( yield timer.o/ 1243806006 1001 1001 100644 579 ` ELF4(UFu u0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!L'L,L^5` 4syscall_timer /113 1243806006 1001 1001 100644 577 ` ELF4(UEP 0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!H'H,HZ5` 0unblock_process vm86.o/ 1243806006 1001 1001 100644 582 ` ELF4(UUE PRQ0EEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4 !T'T,Tf5` <  vm86_intwait_for_rpc.o/ 1243806006 1001 1001 100644 613 ` ELF4(U0U0GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.comment4!L'L,L^5p D!  wait_for_rpcv_and_wait_for_rpc seek.o/ 1243806006 1001 1001 100644 824 ` ELF4( U(E EEE}t E@u E?EEEUEUEEUE@RjhPEEIO_SEEK GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.rodata.comment4o (%+0 8A  o lio_seekrpc_get_dwordRXdirectory.o/ 1243806006 1001 1001 100644 1932 ` ELFt4( UEE j(EUEE@E@E@ E@E@E@E@E@ E@$ uU jUWVS$j u)$E@@t uv jh(u) u EE@9rju#EEBEEPuHEE@9s&E}+t8}?t2}{uEE;E~!j uEEEuuuuSEE@9sG?U@c[w\\]^^__`{{|}}0~6alnumalphablankcntrldigitgraphlowerprintpunctspaceupperxdigitNULSOHSTXETXEOTENQACKBELalertBSbackspaceHTtabLFnewlineVTvertical-tabFFform-feedCRcarriage-returnSOSIDLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCIS4FSIS3GSIS2RSIS1USexclamation-markquotation-marknumber-signdollar-signpercent-signampersandapostropheleft-parenthesisright-parenthesisasteriskplus-signcommahyphenhyphen-minusperiodfull-stopslashsoliduszeroonetwothreefourfivesixseveneightninecolonsemicolonless-than-signequals-signgreater-than-signquestion-markcommercial-atleft-square-bracketbackslashreverse-solidusright-square-bracketcircumflexcircumflex-accentunderscorelow-linegrave-accentleft-braceleft-curly-bracketvertical-lineright-braceright-curly-brackettildeDELzt2o[:<:]][:>:]]B< m R!!S"".#((((A+A+A+A+A+Q+)*A+A+A+A+A+A+*+GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.rel.rodata.comment4< M )= % NX /@ 8@04 dQ @EEIGp - \Kh 0o W$] `*~2_42 =9J9f\'<fS+0m4w019'\\,L'w(4 /+$8&a/QC/Y-M.XW#^ $%&+&(3&(;&cE J$2ZR6\dkrwcclassescnamesdoemitp_erep_strp_brestripsnugfindmustcomputejumpscomputematchjumpspluscountseterrp_ere_expdoinsertdofwdnonnewlinep_bracketordinaryp_countrepeatp_simp_reduplallocsetp_b_termothercasenchfirstchfreesetfreezesetp_b_cclassp_b_eclassp_b_symbolp_b_coll_elemtolowertoupperbothcasesnulsenlargealtoffsetregcompstrlenmallocfreeregfreestrncmpreallocmemsetmemcpymemmovez.//0 01t222<%%2(n+x++/#,3G,/j,3-4`0516K2323s6/,9/9/:/<0 (08@HPX (08@HPX`hpx (08@HPX`hpx (08@HPX`hp<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  $(,regerror.o/ 1243806006 1001 1001 100644 2492 ` ELFt4( UXEE}uEPu EuEE;Et E EuE%t@EtE@PEPuhEPEE E@E u@E}t>E;Evuu#EHPuuUJEEUE!EPE@RPt E Eu֋Eu EEPhu E EE &1LYs~  -8 LV r}   .<^`REG_NOMATCHregexec() failed to matchREG_BADPATinvalid regular expressionREG_ECOLLATEinvalid collating elementREG_ECTYPEinvalid character classREG_EESCAPEtrailing backslash (\)REG_ESUBREGinvalid backreference numberREG_EBRACKbrackets ([ ]) not balancedREG_EPARENparentheses not balancedREG_EBRACEbraces not balancedREG_BADBRinvalid repetition count(s)REG_ERANGEinvalid character rangeREG_ESPACEout of memoryREG_BADRPTrepetition-operator operand invalidREG_EMPTYempty (sub)expressionREG_ASSERT"can't happen" -- you found a bugREG_INVARGinvalid argument to regex routine*** unknown regexp error code ***REG_0x%x0%dGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.rel.data.bss.rodata.comment4n L` ) %  /4<.E,   =o'.6rerrsregatoiregerrorstrcpysprintfstrlenstrncpystrcmp2s       DT\  (,48@DLPX\dhpt|regexec.o/ 1243806006 1001 1001 100644 30560 ` ELFq4( UVSEEEE@ @E̋E@$EЋE@tEEtEE EԋE@E EE Eԃ uEԉE؋E;EsDžpfE@4E@<AE@@3E@4EEP4E@DHEE@}}E;Eu Et M4UEԉ)ÉjyQPuԍEP0EԋEȉ‹E%9E+ E;Eu E M4UEԉ)ÉjyQPuԍEPEԋEȃyEE;Eu EEPE%EM4UEԉ)ÉjyQPuԍEPfEԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH}}E;Eu Et M8UEԉ)ÉjyQPuԍEPEԋEȉ‹E%9E+ E;Eu E M8UEԉ)ÉjyQPuԍEPwEԋEȃyEE;Eu EEPE%EM8UEԉ)ÉjyQPuԍEP EԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH}}E;Eu Et M8UEԉ)ÉjyQPuԍEPyEԋEȉ‹E%9E+ E;Eu E M8UEԉ)ÉjyQPuԍEPEԋEȃyEE;Eu EEPE%EM8UEԉ)ÉjyQPuԍEP语EԋEȃyt EEE@!ЄENE@;EuE@uE@;EvEH< uE@tEE@;EuE@u}E@;EvEԊ< uE@tUEE@;Eu E@t}E@;EvEH< uE@uYE@;EEH??BBBJK\LFM\MMNNNNOOOQQQ^a!bfbbEe_e fh*iDiregfree.o/ 1243806006 1001 1001 100644 984 ` ELF4( UE=eE@ E}E=EtEEE@tE@ PE@tE@ PE@4tE@4 PE@ / 1243805999 0 0 0 4 ` math.o/ 1243805999 1001 1001 100644 1192 ` ELF4( % $ > (GNU C 4.2.2stdlibc/math.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcsigned charshort intintlong long intunsigned charshort unsigned intunsigned intlong long unsigned intlong intcharlong unsigned int GCC: (GNU) 4.2.2.symtab.strtab.shstrtab.text.data.bss.debug_abbrev.rel.debug_info.debug_line.comment4!4'4,4>S,:  JV_  math.cquysystem/lib/crttyndur.o0000644000175000017500000000676011210574467014112 0ustar tonitoniELF<4(US$EEEE(EE< u}uEEEE] u9rÃ}uEE@)ĉe؋E؃E؋E؉Ehu‹EE ]hj‹EEE;E|؋UEEPuE P u% $ > : ; I  I$ >  : ;  : ; I8 .? : ; ' @ 4: ; I I !I 4: ; I? < GNU C 4.2.2crt0.c/home/toni/tmp/beta-0.2.1/lbuilds/work/libc-0.2.1-1/src/libc-0.2.1-1/srcEsigned charshort intintlong long intuint8_t%unsigned charshort unsigned intuint32_t'unsigned intlong long unsigned intlong intsize_t$pid_t&Hcharlong unsigned intio_resource_id_t.%1Hid2h#path3B#pid45#resid5h# buffer_ptr73#buffer_size8%#buffer_pos9%#buffer_mode:#ungetc_count<%#ungetc_buffer=H#!io_resource_t>FILE4N _start+E args:B` argc;d pos;h f;l argvR\ resultZp B P stdout7ce ../includecrt0.cstdint.hstddef.htypes.hio_struct.hstdio.h*vYYZYZ^uvh>utth?-P | EAB Dn.uuEt o_startEGCC: (GNU) 4.2.2.symtab.strtab.shstrtab.rel.text.data.bss.debug_abbrev.rel.debug_info.rel.debug_line.rodata.rel.debug_frame.debug_loc.rel.debug_pubnames.rel.debug_aranges.comment4E  %|+|0|B$ > 8R/N ^j4f  w ,8 U  u  l    E"#2ER_jv}crt0.c_startinit_memory_managerinit_messaginginit_sync_messagesinit_envvarsinit_waitpidstdio_initget_cmdlinestrlenstrtokmainstdoutfflushexit !&v%.<imq{ r system/include/0000755000175000017500000000000011210574467012540 5ustar tonitonisystem/include/strings.h0000644000175000017500000000317611210574467014411 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STRINGS_H_ #define _STRINGS_H_ #include int strcasecmp(const char* s1, const char* s2); int strncasecmp(const char* s1, const char* s2, size_t n); #endif // ifndef _STRINGS_H_ system/include/lost/0000755000175000017500000000000011210574467013521 5ustar tonitonisystem/include/lost/config.h0000644000175000017500000000522511210574467015143 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Andreas Klebinger. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _CONFIG_H_ #define _CONFIG_H_ #define MALLOC_LOST 1 #define MALLOC_BSD 2 #define MALLOC_LIBALLOC 3 #define ARCH_I386 1 #define ARCH_AMD64 2 #define SYSCALL_V1 1 #define SYSCALL_V2 2 //%desc "Architektur" //%type "radio" //%values "ARCH_I386,ARCH_AMD64" #define CONFIG_ARCH ARCH_I386 //%desc "Kooperatives Multitasking" //%type "yesno" #undef CONFIG_COOPERATIVE_MULTITASKING //%desc "Timerfrequenz in Hertz" //%type "text" #define CONFIG_TIMER_HZ 50 //%desc "Letzten Syscall fuer Debugausgaben merken" //%type "yesno" #define CONFIG_DEBUG_LAST_SYSCALL //%desc "malloc" //%type "radio" //%values "MALLOC_LOST,MALLOC_BSD,MALLOC_LIBALLOC" #define CONFIG_MALLOC MALLOC_LIBALLOC //%desc "shell - Eingebaute Befehle" //%type "yesno" #define CONFIG_SHELL_BUILTIN_ONLY //%desc "Releaseversion (Einige Pruefungen weglassen)" //%type "yesno" #undef CONFIG_RELEASE_VERSION //%desc "Stubs in der LibC nicht benutzen" //%type "yesno" #define CONFIG_LIBC_NO_STUBS #define TYNDUR_VERSION "0.2.1" #define TYNDUR_RELEASE "Gothmog" #if CONFIG_ARCH == ARCH_I386 #define TYNDUR_ARCH "i386" #elif CONFIG_ARCH == ARCH_AMD64 #define TYNDUR_ARCH "amd64" #else #error Unbekannte Architektur #endif #endif // _CONFIG_H_ system/include/bsdtypes.h0000644000175000017500000000331511210574467014550 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _BSDTYPES_H_ #define _BSDTYPES_H_ #include typedef unsigned char u_char; typedef unsigned int u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef void* caddr_t; #define LONG_BIT 64 #define NBBY 8 #endif system/include/limits.h0000644000175000017500000000404611210574467014216 0ustar tonitoni/* * Copyright (c) 2006-2007 tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _LIMITS_H_ #define _LIMITS_H_ #define NAME_MAX 255 #define SCHAR_MIN (-128) #define SCHAR_MAX 127 #define UCHAR_MAX 255 #define CHAR_MAX SCHAR_MAX #define CHAR_MIN SCHAR_MIN #define CHAR_BIT 8 #define SHRT_MIN (-32768) #define SHRT_MAX 32767 #define USHRT_MAX 65535 #define LONG_MAX 0x7FFFFFFF #define LONG_MIN ((signed long) -0x80000000) #define INT_MAX 0x7FFFFFFF #define INT_MIN ((signed int) -0x80000000) #define ULONG_MAX 0xFFFFFFFF #define UINT_MAX 0xFFFFFFFF #define _POSIX_PATH_MAX 4096 /** Maximale laenge eines Multibyte-Zeichens in Bytes */ #define MB_LEN_MAX 4 #endif system/include/syscall_structs.h0000644000175000017500000000413111210574467016151 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYSCALL_STRUCTS_H_ #define _SYSCALL_STRUCTS_H_ #include "types.h" typedef struct { size_t count; struct { void* start; size_t size; char* cmdline; } modules[]; } init_module_list_t; typedef struct { pid_t pid; pid_t parent_pid; dword status; dword eip; dword memory_used; const char* cmdline; } task_info_task_t; typedef struct { size_t task_count; size_t info_size; task_info_task_t tasks[]; } task_info_t; typedef struct { word ax; word bx; word cx; word dx; word si; word di; word ds; word es; } vm86_regs_t; #endif system/include/setjmp.h0000644000175000017500000000316011210574467014213 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef SETJMP_H #define SETJMP_H #include typedef uintptr_t jmp_buf[9]; int setjmp(jmp_buf env); void longjmp(jmp_buf env, int value); #endif system/include/loader.h0000644000175000017500000000711311210574467014161 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _LOADER_H_ #define _LOADER_H_ #include /// Ueberprueft ob die Datei vom Typ ELF32 ist bool loader_is_elf32(vaddr_t image_start, size_t image_size); /// Laedt ein ELF32-Image bool loader_elf32_load_image(pid_t process, vaddr_t image_start, size_t image_size); /// Ueberprueft ob die Datei vom Typ ELF64 ist bool loader_is_elf64(vaddr_t image_start, size_t image_size); /// Laedt ein ELF64-Image bool loader_elf64_load_image(pid_t process, vaddr_t image_start, size_t image_size); /// Laedt eine flache Binaerdatei bool loader_load_flat_bin_image(pid_t process, vaddr_t image_start, size_t image_size); /// Ausfuehrbare Datei laden bool loader_load_image(pid_t process, vaddr_t image_start, size_t image_size); // Hilfsfunktionen fuer den Loader: /** * Speicher allozieren um ihn spaeter in einen neuen Prozess zu mappen. Diese * Funktion sollte nicht fuer "normale" Allokationen benutzt werden, da immer * ganze Pages alloziert werden. * * @param size minimale Groesse des Bereichs * * @return Adresse, oder NULL falls ein Fehler aufgetreten ist */ vaddr_t loader_allocate_mem(size_t size); /** * Ein Stueck Speicher in den Prozess mappen. Dieser darf dazu noch nicht * gestartet sein. Der Speicher muss zuerst mit loader_allocate_mem alloziert * worden sein, denn sonst kann nicht garantiert werden, dass der Speicher * uebertragen werden kann. * * @param process PID des Prozesses * @param dest_address Adresse an die der Speicher im Zielprozess soll * @param src_address Adresse im aktuellen Kontext die uebetragen werden soll * @param size Groesse des Speicherbereichs in Bytes * * @return TRUE, wenn der bereich gemappt wurde, FALSE sonst */ bool loader_assign_mem(pid_t process, vaddr_t dest_address, vaddr_t src_address, size_t size); /** * Erstellt einen neuen Thread. * * @param process PID * @param address Einsprungsadresse des Threads * * @return bool TRUE, wenn der Thread erstellt wurde, FALSE sonst */ bool loader_create_thread(pid_t process, vaddr_t address); #endif //ifndef _LOADER_H_ system/include/string.h0000644000175000017500000000636511210574467014231 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STRING_H_ #define _STRING_H_ #include void* memcpy(void* dest, const void* src, size_t num); void* memccpy(void* dest, const void* src, int c, size_t num); void* memmove(void* dest, const void* src, size_t num); void* memset(void* addr, int value, size_t len); void* memchr(const void* s, int c, size_t n); void* memmem(const void* find, size_t f_len, const void* mem, size_t m_len); int memcmp(const void* s1, const void* s2, size_t n); char* strcpy(char* dest, const char* src); char* strncpy(char* dest, const char* src, size_t n); size_t strlcpy(char* dest, const char* src, size_t n); int strcmp(const char* s1, const char* s2); int strncmp(const char* s1, const char* s2, size_t n); size_t strlen(const char* s); size_t strnlen(const char* s, size_t maxlen); char* strstr(const char* s1, const char* s2); char* strnstr(const char* s1, const char* s2, size_t s1_len); char* strcasestr(const char* s1, const char* s2); char* strchr(const char* str, int character); char* strrchr(const char* str, int character); char* strcat(char* dest, const char* src); char* strncat(char* dest, const char* src, size_t n); size_t strlcat(char* dest, const char* src, size_t n); char* strsep(char** strp, const char* delim); char* strtok(char* str, const char* delim); size_t strspn(const char* s, const char* charset); size_t strcspn(const char* s, const char* charset); void itoa(unsigned int n, char* s, unsigned int base); unsigned int atoi(const char* s); long atol(const char* str); char* index(const char* p, int ch); char* strdup(const char* str); char *strpbrk(const char *s1, const char *s2); char* strerror(int error_code); int strcasecmp(const char* s1, const char* s2); int strncasecmp(const char* s1, const char* s2, size_t n); int strcoll(const char* s1, const char* s2); #endif /* ndef _STRING_H */ system/include/ports.h0000644000175000017500000000514011210574467014060 0ustar tonitoni/* * Copyright (c) 2006-2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _PORTS_H_ #define _PORTS_H_ #include static inline word inw(word _port) { word result; __asm__ volatile ("inw %1, %0" : "=a" (result) : "Nd" (_port)); return result; } /// in in byte /// static inline byte inb(word _port) { byte result; __asm__ volatile ("inb %1, %0" : "=a" (result) : "Nd" (_port)); return result; } /// in in long(32 bit) /// static inline dword inl(word _port) { dword result; __asm__ volatile ("inl %1, %0" : "=a" (result) : "Nd" (_port)); return result; } /// out in dword /// static inline void outw(word _port, word _data) { __asm__ volatile ("outw %0, %1" : : "a" (_data), "Nd" (_port)); } /// out in byte /// static inline void outb(word _port, byte _data) { __asm__ volatile ("outb %0, %1" : : "a" (_data), "Nd" (_port)); } /// out in long(32 bit) /// static inline void outl(word _port, dword _data) { __asm__ volatile ("outl %0, %1" : : "a"(_data), "Nd" (_port)); } /* Ein Byte an einen IO Port senden und fr langsame Ports kurz verzgern */ static inline void outb_wait(word _port, byte _data) { __asm__ volatile ("outb %0, %1\njmp 1f\n1: jmp 1f\n1:" : : "a" (_data), "Nd" (_port)); } #endif system/include/syscallno.h0000644000175000017500000000547311210574467014731 0ustar tonitoni/* * Copyright (c) 2006-2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef SYSCALLNO_H #define SYSCALLNO_H #define SYSCALL_PUTSN 0 #define SYSCALL_MEM_ALLOCATE 1 #define SYSCALL_MEM_FREE 2 #define SYSCALL_MEM_INFO 60 #define SYSCALL_MEM_ALLOCATE_PHYSICAL 61 #define SYSCALL_MEM_FREE_PHYSICAL 62 #define SYSCALL_MEM_RESOLVE_VADDR 66 #define SYSCALL_SHM_CREATE 63 #define SYSCALL_SHM_ATTACH 64 #define SYSCALL_SHM_DETACH 65 #define SYSCALL_PM_CREATE_PROCESS 3 #define SYSCALL_PM_INIT_PAGE 13 #define SYSCALL_PM_INIT_PAGE_COPY 82 #define SYSCALL_PM_EXIT_PROCESS 5 #define SYSCALL_PM_SLEEP 6 #define SYSCALL_PM_GET_UID 7 #define SYSCALL_PM_SET_UID 8 #define SYSCALL_PM_REQUEST_PORT 9 #define SYSCALL_PM_RELEASE_PORT 10 #define SYSCALL_PM_SLEEP 6 #define SYSCALL_VM86 81 #define SYSCALL_PM_P 11 #define SYSCALL_PM_V 12 #define SYSCALL_PM_V_AND_WAIT_FOR_RPC 19 #define SYSCALL_PM_GET_PID 14 #define SYSCALL_PM_GET_CMDLINE 15 #define SYSCALL_PM_GET_PARENT_PID 16 #define SYSCALL_PM_ENUMERATE_TASKS 18 #define SYSCALL_PM_WAIT_FOR_RPC 17 #define SYSCALL_GET_TICK_COUNT 40 #define SYSCALL_FORTY_TWO 42 #define SYSCALL_SET_RPC_HANDLER 50 #define SYSCALL_RPC 51 #define SYSCALL_ADD_INTERRUPT_HANDLER 52 #define SYSCALL_FASTRPC 55 #define SYSCALL_FASTRPC_RET 56 #define SYSCALL_WAIT_FOR_RPC 57 #define SYSCALL_ADD_TIMER 70 #define SYSCALL_DEBUG_STACKTRACE 80 //ACHTUNG: Muss eine Zahl groesser als die Groesste Syscall-Nummer sein #define SYSCALL_MAX 83 #endif system/include/elf32.h0000644000175000017500000001474111210574467013633 0ustar tonitoni/*- * Copyright (c) 1996-1998 John D. Polstra. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD: /repoman/r/ncvs/src/sys/sys/elf32.h,v 1.11 2005/12/18 19:43:33 kan Exp $ */ #ifndef _SYS_ELF32_H_ #define _SYS_ELF32_H_ 1 #include "types.h" #include "elf_common.h" /* * ELF definitions common to all 32-bit architectures. */ typedef dword Elf32_Addr; typedef word Elf32_Half; typedef dword Elf32_Off; typedef int Elf32_Sword; typedef dword Elf32_Word; typedef Elf32_Word Elf32_Hashelt; /* Non-standard class-dependent datatype used for abstraction. */ typedef Elf32_Word Elf32_Size; typedef Elf32_Sword Elf32_Ssize; /* * ELF header. */ typedef struct { Elf32_Word e_magic; unsigned char e_ident[EI_NIDENT - sizeof(Elf32_Word)]; /* File identification. */ Elf32_Half e_type; /* File type. */ Elf32_Half e_machine; /* Machine architecture. */ Elf32_Word e_version; /* ELF format version. */ Elf32_Addr e_entry; /* Entry point. */ Elf32_Off e_phoff; /* Program header file offset. */ Elf32_Off e_shoff; /* Section header file offset. */ Elf32_Word e_flags; /* Architecture-specific flags. */ Elf32_Half e_ehsize; /* Size of ELF header in bytes. */ Elf32_Half e_phentsize; /* Size of program header entry. */ Elf32_Half e_phnum; /* Number of program header entries. */ Elf32_Half e_shentsize; /* Size of section header entry. */ Elf32_Half e_shnum; /* Number of section header entries. */ Elf32_Half e_shstrndx; /* Section name strings section. */ } Elf32_Ehdr; /* * Section header. */ typedef struct { Elf32_Word sh_name; /* Section name (index into the section header string table). */ Elf32_Word sh_type; /* Section type. */ Elf32_Word sh_flags; /* Section flags. */ Elf32_Addr sh_addr; /* Address in memory image. */ Elf32_Off sh_offset; /* Offset in file. */ Elf32_Word sh_size; /* Size in bytes. */ Elf32_Word sh_link; /* Index of a related section. */ Elf32_Word sh_info; /* Depends on section type. */ Elf32_Word sh_addralign; /* Alignment in bytes. */ Elf32_Word sh_entsize; /* Size of each entry in section. */ } Elf32_Shdr; /* * Program header. */ typedef struct { Elf32_Word p_type; /* Entry type. */ Elf32_Off p_offset; /* File offset of contents. */ Elf32_Addr p_vaddr; /* Virtual address in memory image. */ Elf32_Addr p_paddr; /* Physical address (not used). */ Elf32_Word p_filesz; /* Size of contents in file. */ Elf32_Word p_memsz; /* Size of contents in memory. */ Elf32_Word p_flags; /* Access permission flags. */ Elf32_Word p_align; /* Alignment in memory and file. */ } Elf32_Phdr; /* * Dynamic structure. The ".dynamic" section contains an array of them. */ typedef struct { Elf32_Sword d_tag; /* Entry type. */ union { Elf32_Word d_val; /* Integer value. */ Elf32_Addr d_ptr; /* Address value. */ } d_un; } Elf32_Dyn; /* * Relocation entries. */ /* Relocations that don't need an addend field. */ typedef struct { Elf32_Addr r_offset; /* Location to be relocated. */ Elf32_Word r_info; /* Relocation type and symbol index. */ } Elf32_Rel; /* Relocations that need an addend field. */ typedef struct { Elf32_Addr r_offset; /* Location to be relocated. */ Elf32_Word r_info; /* Relocation type and symbol index. */ Elf32_Sword r_addend; /* Addend. */ } Elf32_Rela; /* Macros for accessing the fields of r_info. */ #define ELF32_R_SYM(info) ((info) >> 8) #define ELF32_R_TYPE(info) ((unsigned char)(info)) /* Macro for constructing r_info from field values. */ #define ELF32_R_INFO(sym, type) (((sym) << 8) + (unsigned char)(type)) /* Types of relocation info */ #define R_386_NONE 0 #define R_386_32 1 #define R_386_PC32 2 #define R_386_COPY 5 #define R_368_GLOB_DAT 6 #define R_368_JMP_SLOT 7 #define R_386_RELATIVE 8 /* * Symbol table entries. */ typedef struct { Elf32_Word st_name; /* String table index of name. */ Elf32_Addr st_value; /* Symbol value. */ Elf32_Word st_size; /* Size of associated object. */ unsigned char st_info; /* Type and binding information. */ unsigned char st_other; /* Reserved (not used). */ Elf32_Half st_shndx; /* Section index of symbol. */ } Elf32_Sym; /* Macros for accessing the fields of st_info. */ #define ELF32_ST_BIND(info) ((info) >> 4) #define ELF32_ST_TYPE(info) ((info) & 0xf) /* Macro for constructing st_info from field values. */ #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) /* Macro for accessing the fields of st_other. */ #define ELF32_ST_VISIBILITY(oth) ((oth) & 0x3) /* Structures used by Sun & GNU symbol versioning. */ typedef struct { Elf32_Half vd_version; Elf32_Half vd_flags; Elf32_Half vd_ndx; Elf32_Half vd_cnt; Elf32_Word vd_hash; Elf32_Word vd_aux; Elf32_Word vd_next; } Elf32_Verdef; typedef struct { Elf32_Word vda_name; Elf32_Word vda_next; } Elf32_Verdaux; typedef struct { Elf32_Half vn_version; Elf32_Half vn_cnt; Elf32_Word vn_file; Elf32_Word vn_aux; Elf32_Word vn_next; } Elf32_Verneed; typedef struct { Elf32_Word vna_hash; Elf32_Half vna_flags; Elf32_Half vna_other; Elf32_Word vna_name; Elf32_Word vna_next; } Elf32_Vernaux; typedef Elf32_Half Elf32_Versym; #endif /* !_SYS_ELF32_H_ */ system/include/wctype.h0000644000175000017500000000766111210574467014236 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _WCTYPE_H_ #define _WCTYPE_H_ #include /** * Testet ob es sich bei einem breiten Zeichen um ein grosses alphabetisches * Zeichen handelt. * @see iswlower * @see iswalpha * @see towupper * @see towlower * @see isupper */ int iswupper(wint_t wc); /** * Testet ob es sich bei einem breiten Zeichen um ein kleines alphabetisches * Zeichen handelt. * @see iswupper * @see iswalpha * @see towlower * @see towupper * @see islower */ int iswlower(wint_t wc); /** * Testet ob es sich bei einem breiten Zeichen um ein alphabetisches Zeichen * handelt. * @see iswalnum * @see isalpha */ int iswalpha(wint_t wc); /** * Testet ob es sich bei einem breiten Zeichen um eine Ziffer handelt. * @see iswalnum * @see isdigit */ int iswdigit(wint_t wc); /** * Testet ob es sich bei einem breiten Zeichen um ein alphabetisches Zeichen * oder eine Ziffer handelt. * @see iswalpha * @see iswdigit * @see isalnum */ int iswalnum(wint_t wc); /** * Testen ob es sich bei einem Breiten Zeichen um ein Leerzeichen oder ein * Zeilenende handelt. * @see iswblank * @see isblank */ int iswspace(wint_t wc); /** * Testen ob es sich bei einem breiten Zeichen um ein Leerzeichen * handelt(einfaches Leerzeichen oder Tab). * @see iswspace * @see isblank */ int iswblank(wint_t wc); /** * TODO: Kann man das irgendwie sinnvoll erklaeren, was da alles * dazugehoert? ;-) Mit Unicode sind das naemlich nicht nur * Punktuationszeichen sondern auch andere Sonderzeichen. * @see ispunct */ int iswpunct(wint_t wc); /** * Testen ob es sich bei einem breiten Zeichen um ein druckbares Zeichen * handelt. Das sind alle Zeichen, die keine Kontrollzeichen(iswcntrl) sind. * @see iswcntrl * @see isprint */ int iswprint(wint_t wc); /** * Testen ob es sich bei einem breiten Zeichen um ein Kontrollzeichen(z.B \n, \t * oder \b) handelt. Diese Zeichen wuerden bei einem iswprint-Aufruf 0 * zurueckgeben. * @see iswprint * @see iscntrl */ int iswcntrl(wint_t wc); /** * Breites Zeichen in einen Grossbuchstaben umwandeln, falls es sich um einen * Kleinbuchstaben handelt. Sonst wird das Zeichen unveraendert zurueckgegeben. * @see iswupper * @see towlower * @see tolower */ wint_t towupper(wint_t wc); /** * Breites Zeichen in einen Kleinbuchstaben umwandeln, falls es sich um einen * Grossbuchstaben umwandeln. Sonst wird das Zeichen unveraendert * zurueckgegeben. * @see iswlower * @see towupper * @see tolower */ wint_t towlower(wint_t wc); #endif /* ndef WCTYPE_H */ system/include/elf_common.h0000644000175000017500000004215311210574467015034 0ustar tonitoni/*- * Copyright (c) 1998 John D. Polstra. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD: /repoman/r/ncvs/src/sys/sys/elf_common.h,v 1.19 2006/05/31 13:47:32 maxim Exp $ */ #ifndef _SYS_ELF_COMMON_H_ #define _SYS_ELF_COMMON_H_ 1 /* * ELF definitions that are independent of architecture or word size. */ /* * Note header. The ".note" section contains an array of notes. Each * begins with this header, aligned to a word boundary. Immediately * following the note header is n_namesz bytes of name, padded to the * next word boundary. Then comes n_descsz bytes of descriptor, again * padded to a word boundary. The values of n_namesz and n_descsz do * not include the padding. */ typedef struct { dword n_namesz; /* Length of name. */ dword n_descsz; /* Length of descriptor. */ dword n_type; /* Type of this note. */ } Elf_Note; /* Indexes into the e_ident array. Keep synced with http://www.sco.com/developers/gabi/latest/ch4.eheader.html */ // Die negativen Zahlen kommen von der verkorxten definition der Elf-Header // struct #define EI_MAG0 -4 /* Magic number, byte 0. */ #define EI_MAG1 -3 /* Magic number, byte 1. */ #define EI_MAG2 -2 /* Magic number, byte 2. */ #define EI_MAG3 -1 /* Magic number, byte 3. */ #define EI_CLASS 0 /* Class of machine. */ #define EI_DATA 1 /* Data format. */ #define EI_VERSION 2 /* ELF format version. */ #define EI_OSABI 3 /* Operating system / ABI identification */ #define EI_ABIVERSION 4 /* ABI version */ #define OLD_EI_BRAND 4 /* Start of architecture identification. */ #define EI_PAD 5 /* Start of padding (per SVR4 ABI). */ #define EI_NIDENT 16 /* Size of e_ident array. */ /* Values for the magic number bytes. */ #define ELFMAG0 0x7f #define ELFMAG1 'E' #define ELFMAG2 'L' #define ELFMAG3 'F' #define ELFMAG "\177ELF" /* magic string */ #define SELFMAG 4 /* magic string size */ /* Values for e_ident[EI_VERSION] and e_version. */ #define EV_NONE 0 #define EV_CURRENT 1 /* Values for e_ident[EI_CLASS]. */ #define ELFCLASSNONE 0 /* Unknown class. */ #define ELFCLASS32 1 /* 32-bit architecture. */ #define ELFCLASS64 2 /* 64-bit architecture. */ /* Values for e_ident[EI_DATA]. */ #define ELFDATANONE 0 /* Unknown data format. */ #define ELFDATA2LSB 1 /* 2's complement little-endian. */ #define ELFDATA2MSB 2 /* 2's complement big-endian. */ /* Values for e_ident[EI_OSABI]. */ #define ELFOSABI_NONE 0 /* UNIX System V ABI */ #define ELFOSABI_HPUX 1 /* HP-UX operating system */ #define ELFOSABI_NETBSD 2 /* NetBSD */ #define ELFOSABI_LINUX 3 /* GNU/Linux */ #define ELFOSABI_HURD 4 /* GNU/Hurd */ #define ELFOSABI_86OPEN 5 /* 86Open common IA32 ABI */ #define ELFOSABI_SOLARIS 6 /* Solaris */ #define ELFOSABI_AIX 7 /* AIX */ #define ELFOSABI_IRIX 8 /* IRIX */ #define ELFOSABI_FREEBSD 9 /* FreeBSD */ #define ELFOSABI_TRU64 10 /* TRU64 UNIX */ #define ELFOSABI_MODESTO 11 /* Novell Modesto */ #define ELFOSABI_OPENBSD 12 /* OpenBSD */ #define ELFOSABI_OPENVMS 13 /* Open VMS */ #define ELFOSABI_NSK 14 /* HP Non-Stop Kernel */ #define ELFOSABI_ARM 97 /* ARM */ #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ #define ELFOSABI_SYSV ELFOSABI_NONE /* symbol used in old spec */ #define ELFOSABI_MONTEREY ELFOSABI_AIX /* Monterey */ /* e_ident */ #define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \ (ehdr).e_ident[EI_MAG1] == ELFMAG1 && \ (ehdr).e_ident[EI_MAG2] == ELFMAG2 && \ (ehdr).e_ident[EI_MAG3] == ELFMAG3) /* Values for e_type. */ #define ET_NONE 0 /* Unknown type. */ #define ET_REL 1 /* Relocatable. */ #define ET_EXEC 2 /* Executable. */ #define ET_DYN 3 /* Shared object. */ #define ET_CORE 4 /* Core file. */ #define ET_LOOS 0xfe00 /* First operating system specific. */ #define ET_HIOS 0xfeff /* Last operating system-specific. */ #define ET_LOPROC 0xff00 /* First processor-specific. */ #define ET_HIPROC 0xffff /* Last processor-specific. */ /* Values for e_machine. */ #define EM_NONE 0 /* Unknown machine. */ #define EM_M32 1 /* AT&T WE32100. */ #define EM_SPARC 2 /* Sun SPARC. */ #define EM_386 3 /* Intel i386. */ #define EM_68K 4 /* Motorola 68000. */ #define EM_88K 5 /* Motorola 88000. */ #define EM_860 7 /* Intel i860. */ #define EM_MIPS 8 /* MIPS R3000 Big-Endian only. */ #define EM_S370 9 /* IBM System/370. */ #define EM_MIPS_RS3_LE 10 /* MIPS R3000 Little-Endian. */ #define EM_PARISC 15 /* HP PA-RISC. */ #define EM_VPP500 17 /* Fujitsu VPP500. */ #define EM_SPARC32PLUS 18 /* SPARC v8plus. */ #define EM_960 19 /* Intel 80960. */ #define EM_PPC 20 /* PowerPC 32-bit. */ #define EM_PPC64 21 /* PowerPC 64-bit. */ #define EM_S390 22 /* IBM System/390. */ #define EM_V800 36 /* NEC V800. */ #define EM_FR20 37 /* Fujitsu FR20. */ #define EM_RH32 38 /* TRW RH-32. */ #define EM_RCE 39 /* Motorola RCE. */ #define EM_ARM 40 /* ARM. */ #define EM_SH 42 /* Hitachi SH. */ #define EM_SPARCV9 43 /* SPARC v9 64-bit. */ #define EM_TRICORE 44 /* Siemens TriCore embedded processor. */ #define EM_ARC 45 /* Argonaut RISC Core. */ #define EM_H8_300 46 /* Hitachi H8/300. */ #define EM_H8_300H 47 /* Hitachi H8/300H. */ #define EM_H8S 48 /* Hitachi H8S. */ #define EM_H8_500 49 /* Hitachi H8/500. */ #define EM_IA_64 50 /* Intel IA-64 Processor. */ #define EM_MIPS_X 51 /* Stanford MIPS-X. */ #define EM_COLDFIRE 52 /* Motorola ColdFire. */ #define EM_68HC12 53 /* Motorola M68HC12. */ #define EM_MMA 54 /* Fujitsu MMA. */ #define EM_PCP 55 /* Siemens PCP. */ #define EM_NCPU 56 /* Sony nCPU. */ #define EM_NDR1 57 /* Denso NDR1 microprocessor. */ #define EM_STARCORE 58 /* Motorola Star*Core processor. */ #define EM_ME16 59 /* Toyota ME16 processor. */ #define EM_ST100 60 /* STMicroelectronics ST100 processor. */ #define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ processor. */ #define EM_X86_64 62 /* Advanced Micro Devices x86-64 */ /* Non-standard or deprecated. */ #define EM_486 6 /* Intel i486. */ #define EM_MIPS_RS4_BE 10 /* MIPS R4000 Big-Endian */ #define EM_ALPHA_STD 41 /* Digital Alpha (standard value). */ #define EM_ALPHA 0x9026 /* Alpha (written in the absence of an ABI) */ /* Special section indexes. */ #define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */ #define SHN_LORESERVE 0xff00 /* First of reserved range. */ #define SHN_LOPROC 0xff00 /* First processor-specific. */ #define SHN_HIPROC 0xff1f /* Last processor-specific. */ #define SHN_LOOS 0xff20 /* First operating system-specific. */ #define SHN_HIOS 0xff3f /* Last operating system-specific. */ #define SHN_ABS 0xfff1 /* Absolute values. */ #define SHN_COMMON 0xfff2 /* Common data. */ #define SHN_XINDEX 0xffff /* Escape -- index stored elsewhere. */ #define SHN_HIRESERVE 0xffff /* Last of reserved range. */ /* sh_type */ #define SHT_NULL 0 /* inactive */ #define SHT_PROGBITS 1 /* program defined information */ #define SHT_SYMTAB 2 /* symbol table section */ #define SHT_STRTAB 3 /* string table section */ #define SHT_RELA 4 /* relocation section with addends */ #define SHT_HASH 5 /* symbol hash table section */ #define SHT_DYNAMIC 6 /* dynamic section */ #define SHT_NOTE 7 /* note section */ #define SHT_NOBITS 8 /* no space section */ #define SHT_REL 9 /* relocation section - no addends */ #define SHT_SHLIB 10 /* reserved - purpose unknown */ #define SHT_DYNSYM 11 /* dynamic symbol table section */ #define SHT_INIT_ARRAY 14 /* Initialization function pointers. */ #define SHT_FINI_ARRAY 15 /* Termination function pointers. */ #define SHT_PREINIT_ARRAY 16 /* Pre-initialization function ptrs. */ #define SHT_GROUP 17 /* Section group. */ #define SHT_SYMTAB_SHNDX 18 /* Section indexes (see SHN_XINDEX). */ #define SHT_LOOS 0x60000000 /* First of OS specific semantics */ #define SHT_GNU_verdef 0x6ffffffd /* Symbol versions provided */ #define SHT_GNU_verneed 0x6ffffffe /* Symbol versions required */ #define SHT_GNU_versym 0x6fffffff /* Symbol version table */ #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ #define SHT_LOPROC 0x70000000 /* reserved range for processor */ #define SHT_HIPROC 0x7fffffff /* specific section header types */ #define SHT_LOUSER 0x80000000 /* reserved range for application */ #define SHT_HIUSER 0xffffffff /* specific indexes */ /* Flags for sh_flags. */ #define SHF_WRITE 0x1 /* Section contains writable data. */ #define SHF_ALLOC 0x2 /* Section occupies memory. */ #define SHF_EXECINSTR 0x4 /* Section contains instructions. */ #define SHF_MERGE 0x10 /* Section may be merged. */ #define SHF_STRINGS 0x20 /* Section contains strings. */ #define SHF_INFO_LINK 0x40 /* sh_info holds section index. */ #define SHF_LINK_ORDER 0x80 /* Special ordering requirements. */ #define SHF_OS_NONCONFORMING 0x100 /* OS-specific processing required. */ #define SHF_GROUP 0x200 /* Member of section group. */ #define SHF_TLS 0x400 /* Section contains TLS data. */ #define SHF_MASKOS 0x0ff00000 /* OS-specific semantics. */ #define SHF_MASKPROC 0xf0000000 /* Processor-specific semantics. */ /* Values for p_type. */ #define PT_NULL 0 /* Unused entry. */ #define PT_LOAD 1 /* Loadable segment. */ #define PT_DYNAMIC 2 /* Dynamic linking information segment. */ #define PT_INTERP 3 /* Pathname of interpreter. */ #define PT_NOTE 4 /* Auxiliary information. */ #define PT_SHLIB 5 /* Reserved (not used). */ #define PT_PHDR 6 /* Location of program header itself. */ #define PT_TLS 7 /* Thread local storage segment */ #define PT_LOOS 0x60000000 /* First OS-specific. */ #define PT_HIOS 0x6fffffff /* Last OS-specific. */ #define PT_LOPROC 0x70000000 /* First processor-specific type. */ #define PT_HIPROC 0x7fffffff /* Last processor-specific type. */ /* Values for p_flags. */ #define PF_X 0x1 /* Executable. */ #define PF_W 0x2 /* Writable. */ #define PF_R 0x4 /* Readable. */ #define PF_MASKOS 0x0ff00000 /* Operating system-specific. */ #define PF_MASKPROC 0xf0000000 /* Processor-specific. */ /* Values for d_tag. */ #define DT_NULL 0 /* Terminating entry. */ #define DT_NEEDED 1 /* String table offset of a needed shared library. */ #define DT_PLTRELSZ 2 /* Total size in bytes of PLT relocations. */ #define DT_PLTGOT 3 /* Processor-dependent address. */ #define DT_HASH 4 /* Address of symbol hash table. */ #define DT_STRTAB 5 /* Address of string table. */ #define DT_SYMTAB 6 /* Address of symbol table. */ #define DT_RELA 7 /* Address of ElfNN_Rela relocations. */ #define DT_RELASZ 8 /* Total size of ElfNN_Rela relocations. */ #define DT_RELAENT 9 /* Size of each ElfNN_Rela relocation entry. */ #define DT_STRSZ 10 /* Size of string table. */ #define DT_SYMENT 11 /* Size of each symbol table entry. */ #define DT_INIT 12 /* Address of initialization function. */ #define DT_FINI 13 /* Address of finalization function. */ #define DT_SONAME 14 /* String table offset of shared object name. */ #define DT_RPATH 15 /* String table offset of library path. [sup] */ #define DT_SYMBOLIC 16 /* Indicates "symbolic" linking. [sup] */ #define DT_REL 17 /* Address of ElfNN_Rel relocations. */ #define DT_RELSZ 18 /* Total size of ElfNN_Rel relocations. */ #define DT_RELENT 19 /* Size of each ElfNN_Rel relocation. */ #define DT_PLTREL 20 /* Type of relocation used for PLT. */ #define DT_DEBUG 21 /* Reserved (not used). */ #define DT_TEXTREL 22 /* Indicates there may be relocations in non-writable segments. [sup] */ #define DT_JMPREL 23 /* Address of PLT relocations. */ #define DT_BIND_NOW 24 /* [sup] */ #define DT_INIT_ARRAY 25 /* Address of the array of pointers to initialization functions */ #define DT_FINI_ARRAY 26 /* Address of the array of pointers to termination functions */ #define DT_INIT_ARRAYSZ 27 /* Size in bytes of the array of initialization functions. */ #define DT_FINI_ARRAYSZ 28 /* Size in bytes of the array of terminationfunctions. */ #define DT_RUNPATH 29 /* String table offset of a null-terminated library search path string. */ #define DT_FLAGS 30 /* Object specific flag values. */ #define DT_ENCODING 32 /* Values greater than or equal to DT_ENCODING and less than DT_LOOS follow the rules for the interpretation of the d_un union as follows: even == 'd_ptr', even == 'd_val' or none */ #define DT_PREINIT_ARRAY 32 /* Address of the array of pointers to pre-initialization functions. */ #define DT_PREINIT_ARRAYSZ 33 /* Size in bytes of the array of pre-initialization functions. */ #define DT_LOOS 0x6000000d /* First OS-specific */ #define DT_HIOS 0x6ffff000 /* Last OS-specific */ #define DT_LOPROC 0x70000000 /* First processor-specific type. */ #define DT_HIPROC 0x7fffffff /* Last processor-specific type. */ #define DT_VERSYM 0x6ffffff0 /* Address of versym section. */ #define DT_VERDEF 0x6ffffffc /* Address of verdef section. */ #define DT_VERDEFNUM 0x6ffffffd /* Number of elems in verdef section */ #define DT_VERNEED 0x6ffffffe /* Address of verneed section. */ #define DT_VERNEEDNUM 0x6fffffff /* Number of elems in verneed section */ /* Values for DT_FLAGS */ #define DF_ORIGIN 0x0001 /* Indicates that the object being loaded may make reference to the $ORIGIN substitution string */ #define DF_SYMBOLIC 0x0002 /* Indicates "symbolic" linking. */ #define DF_TEXTREL 0x0004 /* Indicates there may be relocations in non-writable segments. */ #define DF_BIND_NOW 0x0008 /* Indicates that the dynamic linker should process all relocations for the object containing this entry before transferring control to the program. */ #define DF_STATIC_TLS 0x0010 /* Indicates that the shared object or executable contains code using a static thread-local storage scheme. */ /* Values for n_type. Used in core files. */ #define NT_PRSTATUS 1 /* Process status. */ #define NT_FPREGSET 2 /* Floating point registers. */ #define NT_PRPSINFO 3 /* Process state info. */ /* Symbol Binding - ELFNN_ST_BIND - st_info */ #define STB_LOCAL 0 /* Local symbol */ #define STB_GLOBAL 1 /* Global symbol */ #define STB_WEAK 2 /* like global - lower precedence */ #define STB_LOOS 10 /* Reserved range for operating system */ #define STB_HIOS 12 /* specific semantics. */ #define STB_LOPROC 13 /* reserved range for processor */ #define STB_HIPROC 15 /* specific semantics. */ /* Symbol type - ELFNN_ST_TYPE - st_info */ #define STT_NOTYPE 0 /* Unspecified type. */ #define STT_OBJECT 1 /* Data object. */ #define STT_FUNC 2 /* Function. */ #define STT_SECTION 3 /* Section. */ #define STT_FILE 4 /* Source file. */ #define STT_COMMON 5 /* Uninitialized common block. */ #define STT_TLS 6 /* TLS object. */ #define STT_LOOS 10 /* Reserved range for operating system */ #define STT_HIOS 12 /* specific semantics. */ #define STT_LOPROC 13 /* reserved range for processor */ #define STT_HIPROC 15 /* specific semantics. */ /* Symbol visibility - ELFNN_ST_VISIBILITY - st_other */ #define STV_DEFAULT 0x0 /* Default visibility (see binding). */ #define STV_INTERNAL 0x1 /* Special meaning in relocatable objects. */ #define STV_HIDDEN 0x2 /* Not visible. */ #define STV_PROTECTED 0x3 /* Visible but not preemptible. */ /* Special symbol table indexes. */ #define STN_UNDEF 0 /* Undefined symbol index. */ /* Symbol versioning flags. */ #define VER_DEF_CURRENT 1 #define VER_DEF_IDX(x) VER_NDX(x) #define VER_FLG_BASE 0x01 #define VER_FLG_WEAK 0x02 #define VER_NEED_CURRENT 1 #define VER_NEED_WEAK (1u << 15) #define VER_NEED_HIDDEN VER_NDX_HIDDEN #define VER_NEED_IDX(x) VER_NDX(x) #define VER_NDX_LOCAL 0 #define VER_NDX_GLOBAL 1 #define VER_NDX_GIVEN 2 #define VER_NDX_HIDDEN (1u << 15) #define VER_NDX(x) ((x) & ~(1u << 15)) #endif /* !_SYS_ELF_COMMON_H_ */ system/include/collections.h0000644000175000017500000001451011210574467015230 0ustar tonitoni/* * Copyright (c) 2006-2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef COLLECTIONS_H #define COLLECTIONS_H #include "types.h" #include #include /* Listen **************************************/ typedef struct { struct list_node* anchor; dword size; } list_t; list_t* list_create(void); void list_destroy(list_t* list); list_t* list_push(list_t* list, void* value); void* list_pop(list_t* list); bool list_is_empty(list_t* list); void* list_get_element_at(list_t* list, int index); list_t* list_insert(list_t* list, int index, void* value); void* list_remove(list_t* list, int index); dword list_size(list_t* list); /* Baeume **************************************/ /** * Repraesentiert einen Knoten und bestimmt seine Position im Baum. * * Diese Struktur muss in jedem Typ, der in Baeumen verwendet werden soll, * als Teil enthalten sein. Durch den Offset, den das tree_item in dem * jeweiligen Typ hat, kann ein Pointer auf den Anfang des Objekts berechnet * werden. */ struct tree_item { struct tree_item* parent; struct tree_item* left; struct tree_item* right; int balance; }; /** * Repraesentiert den Baum und erlaubt den Zugriff auf seine Elemente. * * Ein Baum besteht aus Objekten eines einheitlichen Datentyps. Die Objekte * enthalten jeweils mindestens ein tree_item, das Vater und Kinder sowie den * AVL-Balancewert ihres Knotens beschreibt und einen Schluessel, nach dem der * Baum sortiert wird. Der Schluessel muss vom Typ uint64_t sein. */ typedef struct { struct tree_item* root; size_t tree_item_offset; size_t sort_key_offset; /** * AND-Maske, die alle Bits des Schluessels auswaehlt, die zur * Identifikation und Sortierung von Objekten benutzt werden sollen. Diese * Maske darf nicht mehr veraendert werden, sobald der Baum Elemente * enthaelt, da er ansonsten nicht mehr sortiert ist und falsche Ergebnisse * liefert. * * Direkt nach dem Erzeugen eines Baums sind alle Bits gesetzt. */ uint64_t key_mask; } tree_t; /** * Erzeugt einen neuen AVL-Baum * * @param type Datentyp der Objekte im Baum * @param tree_item Name des tree_item-Felds in der Struktur der Objekte * @param sort_key Name des Schluessels in der Struktur der Objekte */ #define tree_create(type, tree_item, sort_key) \ tree_do_create(offsetof(type, tree_item), offsetof(type, sort_key)) /** * Erzeugt einen neuen AVL-Baum. Nicht direkt verwenden, tree_create ist das * Mittel der Wahl. */ tree_t* tree_do_create(size_t tree_item_offset, size_t sort_key_offset); /** * Initialisiert einen neuen AVL-Baum. Dies ist eine Alternative zu * tree_create, wenn der Baum nicht dynamisch alloziert werden soll, sondern * z.B. fest in einer Struktur eingebettet ist. * * @param tree Baum, der initialisiert werden soll * @param type Datentyp der Objekte im Baum * @param tree_item Name des tree_item-Felds in der Struktur der Objekte * @param sort_key Name des Schluessels in der Struktur der Objekte */ #define tree_init(tree, type, tree_item, sort_key) \ tree_do_init(tree, offsetof(type, tree_item), offsetof(type, sort_key)) /** * Initialisiert einen AVL-Baum. Nicht direkt verwenden, tree_do_init ist das * Mittel der Wahl. */ void tree_do_init(tree_t* tree, size_t tree_item_offset, size_t sort_key_offset); /** * Gibt einen AVL-Baum frei. Zu beachten ist, dass keiner seiner Knoten * freigegeben wird, da ein Knoten immer noch ueber eine andere Datenstruktur * erreichbar sein koennte. */ void tree_destroy(tree_t* tree); /** * Sucht nach dem Objekt mit einem gegebenen Schluessel in einem AVL-Baum * * @return Objekt mit dem gesuchten Schluessel oder NULL, wenn kein Objekt mit * dem gesuchten Schluessel im Baum enthalten ist. */ void* tree_search(tree_t* tree, uint64_t key); /** * Fuegt ein neues Objekt in den AVL-Baum ein. * * @param node Einzufuegendes Objekt. Muss den in tree_create angegebenen * Datentyp haben, ansonsten ist das Ergebnis undefiniert. */ tree_t* tree_insert(tree_t* tree, void* node); /** * Entfernt ein Objekt aus dem AVL-Baum. Das uebergebene Objekt muss im Baum * enthalten sein. * * @return Das zu entfernende Objekt */ void* tree_remove(tree_t* tree, void* node); /** * Sucht zu einem gegebenen Objekt den Vorgaenger. * * Der Vorgaenger ist das Objekt mit dem naechstkleineren Schluessel. Der * Vorgaenger von NULL ist das Objekt mit dem groessten Schluessel. * * @return Das Vorgaengerobjekt oder NULL, wenn das uebergebene Objekt das * Objekt mit dem kleinsten Schluessel war. */ void* tree_prev(tree_t* tree, void* node); /** * Sucht zu einem gegebenen Objekt den Nachfolger * * Der Nachfolger ist das Objekt mit dem naechstgroesseren Schluessel. Der * Nachfolger von NULL ist das Objekt mit dem kleinsten Schluessel. * * @return Das Nachfolgerobjekt oder NULL, wenn das uebergebene Objekt das * Objekt mit dem groessten Schluessel war. */ void* tree_next(tree_t* tree, void* node); #endif system/include/inttypes.h0000644000175000017500000000002411210574467014564 0ustar tonitoni#include system/include/elf64.h0000644000175000017500000001661211210574467013637 0ustar tonitoni/*- * Copyright (c) 1996-1998 John D. Polstra. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD: /repoman/r/ncvs/src/sys/sys/elf64.h,v 1.17 2006/10/17 05:43:30 jkoshy Exp $ */ #ifndef _SYS_ELF64_H_ #define _SYS_ELF64_H_ 1 #include #include /* * ELF definitions common to all 64-bit architectures. */ typedef uint64_t Elf64_Addr; typedef uint16_t Elf64_Half; typedef uint64_t Elf64_Off; typedef int32_t Elf64_Sword; typedef int64_t Elf64_Sxword; typedef uint32_t Elf64_Word; typedef uint64_t Elf64_Lword; typedef uint64_t Elf64_Xword; /* * Types of dynamic symbol hash table bucket and chain elements. * * This is inconsistent among 64 bit architectures, so a machine dependent * typedef is required. */ typedef Elf64_Word Elf64_Hashelt; /* Non-standard class-dependent datatype used for abstraction. */ typedef Elf64_Xword Elf64_Size; typedef Elf64_Sxword Elf64_Ssize; /* * ELF header. */ typedef struct { Elf64_Word e_magic; unsigned char e_ident[EI_NIDENT - sizeof(Elf64_Word)]; /* File identification. */ Elf64_Half e_type; /* File type. */ Elf64_Half e_machine; /* Machine architecture. */ Elf64_Word e_version; /* ELF format version. */ Elf64_Addr e_entry; /* Entry point. */ Elf64_Off e_phoff; /* Program header file offset. */ Elf64_Off e_shoff; /* Section header file offset. */ Elf64_Word e_flags; /* Architecture-specific flags. */ Elf64_Half e_ehsize; /* Size of ELF header in bytes. */ Elf64_Half e_phentsize; /* Size of program header entry. */ Elf64_Half e_phnum; /* Number of program header entries. */ Elf64_Half e_shentsize; /* Size of section header entry. */ Elf64_Half e_shnum; /* Number of section header entries. */ Elf64_Half e_shstrndx; /* Section name strings section. */ } Elf64_Ehdr; /* * Section header. */ typedef struct { Elf64_Word sh_name; /* Section name (index into the section header string table). */ Elf64_Word sh_type; /* Section type. */ Elf64_Xword sh_flags; /* Section flags. */ Elf64_Addr sh_addr; /* Address in memory image. */ Elf64_Off sh_offset; /* Offset in file. */ Elf64_Xword sh_size; /* Size in bytes. */ Elf64_Word sh_link; /* Index of a related section. */ Elf64_Word sh_info; /* Depends on section type. */ Elf64_Xword sh_addralign; /* Alignment in bytes. */ Elf64_Xword sh_entsize; /* Size of each entry in section. */ } Elf64_Shdr; /* * Program header. */ typedef struct { Elf64_Word p_type; /* Entry type. */ Elf64_Word p_flags; /* Access permission flags. */ Elf64_Off p_offset; /* File offset of contents. */ Elf64_Addr p_vaddr; /* Virtual address in memory image. */ Elf64_Addr p_paddr; /* Physical address (not used). */ Elf64_Xword p_filesz; /* Size of contents in file. */ Elf64_Xword p_memsz; /* Size of contents in memory. */ Elf64_Xword p_align; /* Alignment in memory and file. */ } Elf64_Phdr; /* * Dynamic structure. The ".dynamic" section contains an array of them. */ typedef struct { Elf64_Sxword d_tag; /* Entry type. */ union { Elf64_Xword d_val; /* Integer value. */ Elf64_Addr d_ptr; /* Address value. */ } d_un; } Elf64_Dyn; /* * Relocation entries. */ /* Relocations that don't need an addend field. */ typedef struct { Elf64_Addr r_offset; /* Location to be relocated. */ Elf64_Xword r_info; /* Relocation type and symbol index. */ } Elf64_Rel; /* Relocations that need an addend field. */ typedef struct { Elf64_Addr r_offset; /* Location to be relocated. */ Elf64_Xword r_info; /* Relocation type and symbol index. */ Elf64_Sxword r_addend; /* Addend. */ } Elf64_Rela; /* Macros for accessing the fields of r_info. */ #define ELF64_R_SYM(info) ((info) >> 32) #define ELF64_R_TYPE(info) ((info) & 0xffffffffL) /* Macro for constructing r_info from field values. */ #define ELF64_R_INFO(sym, type) (((sym) << 32) + ((type) & 0xffffffffL)) #define ELF64_R_TYPE_DATA(info) (((Elf64_Xword)(info)<<32)>>40) #define ELF64_R_TYPE_ID(info) (((Elf64_Xword)(info)<<56)>>56) #define ELF64_R_TYPE_INFO(data, type) \ (((Elf64_Xword)(data)<<8)+(Elf64_Xword)(type)) /* * Note entry header */ typedef Elf_Note Elf64_Nhdr; /* * Move entry */ typedef struct { Elf64_Lword m_value; /* symbol value */ Elf64_Xword m_info; /* size + index */ Elf64_Xword m_poffset; /* symbol offset */ Elf64_Half m_repeat; /* repeat count */ Elf64_Half m_stride; /* stride info */ } Elf64_Move; #define ELF64_M_SYM(info) ((info)>>8) #define ELF64_M_SIZE(info) ((unsigned char)(info)) #define ELF64_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size)) /* * Hardware/Software capabilities entry */ typedef struct { Elf64_Xword c_tag; /* how to interpret value */ union { Elf64_Xword c_val; Elf64_Addr c_ptr; } c_un; } Elf64_Cap; /* * Symbol table entries. */ typedef struct { Elf64_Word st_name; /* String table index of name. */ unsigned char st_info; /* Type and binding information. */ unsigned char st_other; /* Reserved (not used). */ Elf64_Half st_shndx; /* Section index of symbol. */ Elf64_Addr st_value; /* Symbol value. */ Elf64_Xword st_size; /* Size of associated object. */ } Elf64_Sym; /* Macros for accessing the fields of st_info. */ #define ELF64_ST_BIND(info) ((info) >> 4) #define ELF64_ST_TYPE(info) ((info) & 0xf) /* Macro for constructing st_info from field values. */ #define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) /* Macro for accessing the fields of st_other. */ #define ELF64_ST_VISIBILITY(oth) ((oth) & 0x3) /* Structures used by Sun & GNU-style symbol versioning. */ typedef struct { Elf64_Half vd_version; Elf64_Half vd_flags; Elf64_Half vd_ndx; Elf64_Half vd_cnt; Elf64_Word vd_hash; Elf64_Word vd_aux; Elf64_Word vd_next; } Elf64_Verdef; typedef struct { Elf64_Word vda_name; Elf64_Word vda_next; } Elf64_Verdaux; typedef struct { Elf64_Half vn_version; Elf64_Half vn_cnt; Elf64_Word vn_file; Elf64_Word vn_aux; Elf64_Word vn_next; } Elf64_Verneed; typedef struct { Elf64_Word vna_hash; Elf64_Half vna_flags; Elf64_Half vna_other; Elf64_Word vna_name; Elf64_Word vna_next; } Elf64_Vernaux; typedef Elf64_Half Elf64_Versym; typedef struct { Elf64_Half si_boundto; /* direct bindings - symbol bound to */ Elf64_Half si_flags; /* per symbol flags */ } Elf64_Syminfo; #endif /* !_SYS_ELF64_H_ */ system/include/stdlib.h0000644000175000017500000001633311210574467014200 0ustar tonitoni/* * Copyright (c) 2006-2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STDLIB_H_ #define _STDLIB_H_ #include #include "string.h" #include #define EXIT_SUCCESS 0 #define EXIT_FAILURE 1 /** Maximale laenge eines Multibyte-Zeichens in Bytes */ #define MB_CUR_MAX 4 void exit(int result); void abort(void); int atexit(void (*function)(void)); void* malloc(size_t size); void free(void* address); void* realloc(void* address, size_t size); void* calloc(size_t size, size_t count); void init_memory_manager(void); long strtol(const char* str, char** endptr, int base); unsigned long strtoul(const char *nptr, char **endptr, int base); unsigned long long strtoull(const char *nptr, char **endptr, int base); char* getenv(const char* name); int setenv(const char* name, const char* value, int overwrite); /** * Umgebungsvariable setzen * * @param str String in der Form variable=wert * * @return 0 bei Erfolg, -1 im Fehlerfall */ int putenv(const char* str); void unsetenv(const char* name); void qsort(void *base, size_t num, size_t size, int (*comparator)(const void *, const void *)); char* mktemp(char* template); #ifndef CONFIG_LIBC_NO_STUBS double atof(const char* str); #endif /** * Absolutbetrag einer Zahl errechnen */ static inline int abs(int x) { return (x < 0 ? -x : x); } /** * Berechnet den Absolutwert eines long int */ static inline long int labs(long int x) { return (x < 0 ? -x : x); } /** * Berechnet den Absolutwert eines long long int */ static inline long long int llabs(long long int x) { return (x < 0 ? -x : x); } int system(const char* command); /** * Anzahl der Bytes die das erste Zeichen belegt * * @param s Pointer auf den Anfang den Anfang des Zeichens * @param slen Maximale Laenge die das Zeichen haben kann (Stringlaenge) * * @return Laenge des Zeichens oder -1 wenn ein Fehler auftritt (z.B. * ungueltiges Zeichen) */ int mblen(const char* s, size_t slen); /** * Erstes Zeichen im String in einen wchar umwandeln. Wird NULL als wc * uebergeben, gibt die Funktion lediglich die Laenge des Zeichens zurueck * (mblen). Ist s NULL gibt die Funktion 0 zurueck. * * @param wc Pointer auf den wchar in dem das Ergebnis abgelegt werden soll * @param s Pointer auf den Anfang des Zeichens * @param len Maximale Laenge die das Zeichen haben kann (Stringlaenge) * * @return Bei Erfolg wird die Anzahl der benutzten Bytes aus s zurueckgegeben, * im Fehlerfall -1 */ int mbtowc(wchar_t* wc, const char* s, size_t len); /** * Einen wchar in ein Multibyte-Zeichen umwandeln. Der Aufrufer muss * garantieren dass in buf mindestens MB_CUR_MAX Bytes verfuegbar sind. * * Falls buf == NULL uebergeben wird, soll der interne "shift state" * zurueckgesetzt werden und != 0 zurueckgegeben werden, falls die aktuelle * Kodierung sowas hat. Solange wir nur UTF-8 benutzen brauchen wir uns aber * darum nicht zu kuemmern. * * @param buf Puffer in dem das Multibyte-Zeichen abgelegt wird. Dabei koennen * bis zu MB_CUR_MAX Bytes geschrieben werden. * @param wc Der umzuwandelnde wchar * * @return Bei Erfolg wir die Anzahl der in buf geschrieben Bytes * zurueckgegeben, im Fehlerfall -1. Falls buf == NULL war, wird 0 * zurueckgegeben. */ int wctomb(char* buf, wchar_t wc); /** * String aus breiten Zeichen in Multibyte-String umwandeln. Wird ein Zeichen * angetroffen, das nicht umgewandeld werden kann, wird -1 zurueckgegeben. Es * werden maximal len Bytes geschrieben. Das abschliessende L'\0' wird * mitkonvertiert, aber beim Rueckgabewert, wird es nicht mit beruecksichtigt. * Falls der String nicht vollstaendig konvertiert werden konnte, weil buf zu * klein ist, ist das Ergebnis nicht nullterminiert. * * Ist buf == NULL wird len ignoriert und es wird nur die Laenge bestimmt, die * der String haette, ohne das abschliessende 0-Byte. * * Um einen String vollstaendig zu konvertieren, muss buf mindestens die Groesse * wcstombs(NULL, wcs, 0) + 1 haben. * * @param buf Puffer in dem der Multibytestring abgelegt werden soll oder NULL * @param wcs Zeiger auf den String aus breiten Zeichen * @param len Groesse von buf * * @return Anzahl der in buf geschriebenen Bytes ohne abschliessendes '\0', oder * (size_t) -1 wenn ein Zeichen nicht konvertiert werden konnte. */ size_t wcstombs(char* buf, const wchar_t* wcs, size_t len); /** * Multibyte-String in String aus breiten Zeichen umwandeln. Wird ein Zeichen * angetroffen, das nicht umgewandeld werden kann, wird -1 zurueckgegeben. Es * werden maximal len breite Zeichen geschrieben. Das abschliessende '\0' wird * mitkonvertiert, aber beim Rueckgabewert, wird es nicht mit beruecksichtigt. * Falls der String nicht vollstaendig konvertiert werden konnte, weil buf zu * klein ist, ist das Ergebnis nicht L'\0'-terminiert. * * Ist buf == NULL wird len ignoriert und es wird nur die Laenge bestimmt, die * der String haette, ohne das abschliessende L'\0'. * * Um einen String vollstaendig zu konvertieren, muss buf mindestens die Groesse * von mbstowcs(NULL, str, 0) + 1 breiten Zeichen haben. * * @param buf Puffer in dem der String aus breiten Zeichen abgelegt werden soll * oder NULL * @param wcs Zeiger auf den Multibytestring * @param len Groesse von buf in Zeichen * * @return Anzahl der in buf geschriebenen Zeichen ohne abschliessendes L'\0', * oder (size_t) -1 wenn ein Zeichen nicht konvertiert werden konnte. */ size_t mbstowcs(wchar_t* buf, const char* str, size_t len); /** * Seed fuer Zufallszahlgenerator setzen * * @param seed Seed */ void srand(unsigned int seed); /** * Zufallszahl generieren * * @return Zufallszahl */ int rand(void); /** * Zufallszahl generieren * * @return Zufallszahl */ long int random(void); /** * Seed fuer Zufallszahlgenerator setzen * * @param seed Seed */ void srandom(unsigned int seed); #endif system/include/ctype.h0000644000175000017500000000461411210574467014042 0ustar tonitoni/* * Copyright (c) 2006-2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Burkhard Weseloh. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _CTYPE_H_ #define _CTYPE_H_ #define isprint(c) ((c) >= (char) 0x20) #define iscntrl(c) ((c) < (char) 0x20) #define isspace(c) ((c) == ' ' || (c) == '\n' || (c) == '\t' || (c) == '\r') #define isblank(c) ((c) == ' ' || (c) == '\t') #define isdigit(c) ((c) >= '0' && (c) <= '9') #define isalpha(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) #define isalnum(c) (isdigit(c) || isalpha(c)) #define isxdigit(c) (isdigit(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) #define isupper(c) ((c) >= 'A' && (c) <= 'Z') #define islower(c) ((c) >= 'a' && (c) <= 'z') #define ispunct(c) (isprint(c) && (!isspace(c)) && (!isalpha(c))) #define isgraph(c) (isprint(c) && !isspace(c)) static inline int tolower(int c) { return isupper(c) ? c + ('a' - 'A') : c; } static inline int toupper(int c) { return islower(c) ? c - ('a' - 'A') : c; } #endif /* ndef CTYPE_H */ system/include/cdefs.h0000644000175000017500000003313411210574467014001 0ustar tonitoni/* * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Berkeley Software Design, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ #ifndef _SYS_CDEFS_H_ #define _SYS_CDEFS_H_ #define _CDEFS_H_ /* bird: compatability */ #if defined(__cplusplus) #define __BEGIN_DECLS extern "C" { #define __END_DECLS } #else #define __BEGIN_DECLS #define __END_DECLS #endif /* * The __CONCAT macro is used to concatenate parts of symbol names, e.g. * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI * mode -- there must be no spaces between its arguments, and for nested * __CONCAT's, all the __CONCAT's must be at the left. __CONCAT can also * concatenate double-quoted strings produced by the __STRING macro, but * this only works with ANSI C. * * __XSTRING is like __STRING, but it expands any macros in its argument * first. It is only available with ANSI C. */ #if defined(__STDC__) || defined(__cplusplus) #define __P(protos) protos /* full-blown ANSI C */ #define __CONCAT1(x,y) x ## y #define __CONCAT(x,y) __CONCAT1(x,y) #define __STRING(x) #x /* stringify without expanding x */ #define __XSTRING(x) __STRING(x) /* expand x, then stringify */ #define __const const /* define reserved names to standard */ #define __signed signed #define __volatile volatile #if defined(__cplusplus) #define __inline inline /* convert to C++ keyword */ #else #ifndef __GNUC__ #define __inline /* delete GCC keyword */ #endif /* !__GNUC__ */ #endif /* !__cplusplus */ #else /* !(__STDC__ || __cplusplus) */ #define __P(protos) () /* traditional C preprocessor */ #define __CONCAT(x,y) x/**/y #define __STRING(x) "x" #ifndef __GNUC__ #define __const /* delete pseudo-ANSI C keywords */ #define __inline #define __signed #define __volatile /* * In non-ANSI C environments, new programs will want ANSI-only C keywords * deleted from the program and old programs will want them left alone. * When using a compiler other than gcc, programs using the ANSI C keywords * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS. * When using "gcc -traditional", we assume that this is the intent; if * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone. */ #ifndef NO_ANSI_KEYWORDS #define const /* delete ANSI C keywords */ #define inline #define signed #define volatile #endif /* !NO_ANSI_KEYWORDS */ #endif /* !__GNUC__ */ #endif /* !(__STDC__ || __cplusplus) */ /* * Compiler-dependent macros to help declare dead (non-returning) and * pure (no side effects) functions, and unused variables. They are * null except for versions of gcc that are known to support the features * properly (old versions of gcc-2 supported the dead and pure features * in a different (wrong) way). If we do not provide an implementation * for a given compiler, let the compile fail if it is told to use * a feature that we cannot live without. */ #ifdef lint #define __dead2 #define __pure2 #define __unused #define __packed #define __aligned(x) #define __section(x) #else #if __GNUC__ < 2 || __GNUC__ == 2 && __GNUC_MINOR__ < 5 #define __dead2 #define __pure2 #define __unused #endif #if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 #define __dead2 __attribute__((__noreturn__)) #define __pure2 __attribute__((__const__)) #define __unused /* XXX Find out what to do for __packed, __aligned and __section */ #endif #if __GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ == 3 #define __dead2 __attribute__((__noreturn__)) #define __pure2 __attribute__((__const__)) #define __unused __attribute__((__unused__)) #define __packed __attribute__((__packed__)) #define __aligned(x) __attribute__((__aligned__(x))) #define __section(x) __attribute__((__section__(x))) #endif #endif /* XXX: should use `#if __STDC_VERSION__ < 199901'. */ #if !(__GNUC__ == 2 && __GNUC_MINOR__ >= 7 || __GNUC__ >= 3) #define __func__ NULL #endif #if __GNUC__ >= 2 && !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901 #define __LONG_LONG_SUPPORTED #endif /* * GCC 2.95 provides `__restrict' as an extension to C90 to support the * C99-specific `restrict' type qualifier. We happen to use `__restrict' as * a way to define the `restrict' type qualifier without disturbing older * software that is unaware of C99 keywords. */ #if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95) #if __STDC_VERSION__ < 199901 #define __restrict #else #define __restrict restrict #endif #endif /* * We define this here since , , and * require it. */ #define __offsetof(type, field) ((size_t)(&((type *)0)->field)) // FIXME Das gehrt nach stddef.h #ifndef offsetof #define offsetof(type, field) ((size_t)(&((type *)0)->field)) #endif /* * Compiler-dependent macros to declare that functions take printf-like * or scanf-like arguments. They are null except for versions of gcc * that are known to support the features properly (old versions of gcc-2 * didn't permit keeping the keywords out of the application namespace). */ #if __GNUC__ < 2 || __GNUC__ == 2 && __GNUC_MINOR__ < 7 #define __printflike(fmtarg, firstvararg) #define __scanflike(fmtarg, firstvararg) #else #define __printflike(fmtarg, firstvararg) \ __attribute__((__format__ (__printf__, fmtarg, firstvararg))) #define __scanflike(fmtarg, firstvararg) \ __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) #endif /* Compiler-dependent macros that rely on FreeBSD-specific extensions. */ #if __FreeBSD_cc_version >= 300001 #define __printf0like(fmtarg, firstvararg) \ __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) #else #define __printf0like(fmtarg, firstvararg) #endif #ifdef __GNUC__ #define __strong_reference(sym,aliassym) \ extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))); #ifdef __STDC__ #define __weak_reference(sym,alias) \ __asm__(".weak " #alias); \ __asm__(".equ " #alias ", " #sym) #define __warn_references(sym,msg) \ __asm__(".section .gnu.warning." #sym); \ __asm__(".asciz \"" msg "\""); \ __asm__(".previous") #else #define __weak_reference(sym,alias) \ __asm__(".weak alias"); \ __asm__(".equ alias, sym") #define __warn_references(sym,msg) \ __asm__(".section .gnu.warning.sym"); \ __asm__(".asciz \"msg\""); \ __asm__(".previous") #endif /* __STDC__ */ #endif /* __GNUC__ */ #ifdef __GNUC__ #define __IDSTRING(name,string) __asm__(".ident\t\"" string "\"") #else /* * This doesn't work in header files. But it may be better than nothing. * The alternative is: #define __IDSTRING(name,string) [nothing] */ #define __IDSTRING(name,string) static const char name[] __unused = string #endif /* * Embed the rcs id of a source file in the resulting library. Note that in * more recent ELF binutils, we use .ident allowing the ID to be stripped. * Usage: * __FBSDID("$FreeBSD: src/sys/sys/cdefs.h,v 1.69 2003/04/18 18:59:34 bde Exp $"); */ #ifndef __FBSDID #if !defined(lint) && !defined(STRIP_FBSDID) #define __FBSDID(s) __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) #else #define __FBSDID(s) struct __hack #endif #endif #ifndef __RCSID #ifndef NO__RCSID #define __RCSID(s) __IDSTRING(__CONCAT(__rcsid_,__LINE__),s) #else #define __RCSID(s) #endif #endif #ifndef __RCSID_SOURCE #ifndef NO__RCSID_SOURCE #define __RCSID_SOURCE(s) __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s) #else #define __RCSID_SOURCE(s) #endif #endif #ifndef __SCCSID #ifndef NO__SCCSID #define __SCCSID(s) __IDSTRING(__CONCAT(__sccsid_,__LINE__),s) #else #define __SCCSID(s) #endif #endif #ifndef __COPYRIGHT #ifndef NO__COPYRIGHT #define __COPYRIGHT(s) __IDSTRING(__CONCAT(__copyright_,__LINE__),s) #else #define __COPYRIGHT(s) #endif #endif #ifndef __DECONST #define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var)) #endif #ifndef __DEVOLATILE #define __DEVOLATILE(type, var) ((type)(uintptr_t)(volatile void *)(var)) #endif #ifndef __DEQUALIFY #define __DEQUALIFY(type, var) ((type)(uintptr_t)(const volatile void *)(var)) #endif /*- * The following definitions are an extension of the behavior originally * implemented in , but with a different level of granularity. * POSIX.1 requires that the macros we test be defined before any standard * header file is included. * * Here's a quick run-down of the versions: * defined(_POSIX_SOURCE) 1003.1-1988 * _POSIX_C_SOURCE == 1 1003.1-1990 * _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option * _POSIX_C_SOURCE == 199309 1003.1b-1993 * _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, * and the omnibus ISO/IEC 9945-1: 1996 * _POSIX_C_SOURCE == 200112 1003.1-2001 * * In addition, the X/Open Portability Guide, which is now the Single UNIX * Specification, defines a feature-test macro which indicates the version of * that specification, and which subsumes _POSIX_C_SOURCE. * * Our macros begin with two underscores to avoid namespace screwage. */ /* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */ #if _POSIX_C_SOURCE == 1 #undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */ #define _POSIX_C_SOURCE 199009 #endif /* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */ #if _POSIX_C_SOURCE == 2 #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 199209 #endif /* Deal with various X/Open Portability Guides and Single UNIX Spec. */ #ifdef _XOPEN_SOURCE #if _XOPEN_SOURCE - 0 >= 600 #define __XSI_VISIBLE 600 #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112 #elif _XOPEN_SOURCE - 0 >= 500 #define __XSI_VISIBLE 500 #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 199506 #endif #endif /* * Deal with all versions of POSIX. The ordering relative to the tests above is * important. */ #if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) #define _POSIX_C_SOURCE 198808 #endif #ifdef _POSIX_C_SOURCE #if _POSIX_C_SOURCE >= 200112 #define __POSIX_VISIBLE 200112 #define __ISO_C_VISIBLE 1999 #elif _POSIX_C_SOURCE >= 199506 #define __POSIX_VISIBLE 199506 #define __ISO_C_VISIBLE 1990 #elif _POSIX_C_SOURCE >= 199309 #define __POSIX_VISIBLE 199309 #define __ISO_C_VISIBLE 1990 #elif _POSIX_C_SOURCE >= 199209 #define __POSIX_VISIBLE 199209 #define __ISO_C_VISIBLE 1990 #elif _POSIX_C_SOURCE >= 199009 #define __POSIX_VISIBLE 199009 #define __ISO_C_VISIBLE 1990 #else #define __POSIX_VISIBLE 198808 #define __ISO_C_VISIBLE 0 #endif /* _POSIX_C_SOURCE */ #else /*- * Deal with _ANSI_SOURCE: * If it is defined, and no other compilation environment is explicitly * requested, then define our internal feature-test macros to zero. This * makes no difference to the preprocessor (undefined symbols in preprocessing * expressions are defined to have value zero), but makes it more convenient for * a test program to print out the values. * * If a program mistakenly defines _ANSI_SOURCE and some other macro such as * _POSIX_C_SOURCE, we will assume that it wants the broader compilation * environment (and in fact we will never get here). */ #if defined(_ANSI_SOURCE) /* Hide almost everything. */ #define __POSIX_VISIBLE 0 #define __XSI_VISIBLE 0 #define __BSD_VISIBLE 0 #define __ISO_C_VISIBLE 1990 #elif defined(_C99_SOURCE) /* Localism to specify strict C99 env. */ #define __POSIX_VISIBLE 0 #define __XSI_VISIBLE 0 #define __BSD_VISIBLE 0 #define __ISO_C_VISIBLE 1999 #else /* Default environment: show everything. */ #define __POSIX_VISIBLE 200112 #define __XSI_VISIBLE 600 #define __BSD_VISIBLE 1 #define __ISO_C_VISIBLE 1999 #endif #endif /* bird: toolkit pollution */ #define __TCPPROTO(args) __P(args) #define TCPCALL _System /* zap: For backward compatibility with GCC/EMX */ #ifndef _System #define _System #endif #endif /* !_SYS_CDEFS_H_ */ system/include/stdarg.h0000644000175000017500000000345611210574467014205 0ustar tonitoni /* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STDARG_H_ #define _STDARG_H_ // Alle diese Definitionen funktionieren vermutlich nur mit gcc ;-) typedef __builtin_va_list va_list; #define va_start(v, l) __builtin_va_start(v,l) #define va_end(v) __builtin_va_end(v) #define va_arg(v, l) __builtin_va_arg(v,l) #define va_copy(d, s) __builtin_va_copy(d,s) #endif //ifndef _STDARG_H_ system/include/errno.h0000644000175000017500000000445611210574467014047 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ERRNO_H_ #define _ERRNO_H_ #define ERANGE 1 #define EINVAL 2 #define ENOMEM 3 #define EINTR 4 #define ENOENT 5 #define EEXIST 6 #define EBADF 7 #define EPERM 8 #define EIO 9 #define EXDEV 10 #define EFAULT 11 #define E2BIG 12 #define ENOTDIR 13 #define EACCES 14 #define EMFILE 15 #define ENOEXEC 16 #define ECHILD 17 #define EAGAIN 18 #define ENFILE 19 #define EISDIR 20 #define ENODEV 21 #define ENOTTY 22 #define EDOM 23 #define ENXIO 24 #define ESRCH 25 #define EPIPE 26 #define EILSEQ 27 #define EAFNOSUPPORT 28 #define ETIMEDOUT 29 #define EPROTOTYPE 30 #define ECONNREFUSED 31 #define ENOTCONN 32 #define ECONNRESET 33 #define EINPROGRESS 34 #define EALREADY 35 #define EISCONN 36 #define EOPNOTSUPP 37 #define EROFS 38 #define ENOSPC 39 #define EBUSY 40 #define EOVERFLOW 41 #define EFBIG 42 #define EDEADLK 43 extern int errno; #endif system/include/lock.h0000644000175000017500000000401611210574467013642 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _LOCK_H_ #define _LOCK_H_ #include #define LOCK_LOCKED 1 #define LOCK_UNLOCKED 0 /// Typ fuer einen Lock typedef volatile bool lock_t; /// Einen Lock sperren void lock(lock_t* l); /// Sperre aufheben void unlock(lock_t* l); /// Testen ob ein Lock gesperrt ist bool locked(lock_t* l); /// Wartet, bis ein Lock nicht mehr gesperrt ist. void lock_wait(lock_t* l); /// Eine Variable inkrementieren, waehrend der Bus gesperrt ist. void locked_increment(volatile dword* var); #endif //ifndef _LOCK_H_ system/include/arpa/0000755000175000017500000000000011210574467013463 5ustar tonitonisystem/include/arpa/inet.h0000644000175000017500000000331711210574467014577 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ARPA_INET_H_ #define _ARPA_INET_H_ unsigned long int htonl(unsigned long int hostlong); unsigned short int htons(unsigned short int hostshort); unsigned long int ntohl(unsigned long int netlong); unsigned short int ntohs(unsigned short int netshort); #endif system/include/assert.h0000644000175000017500000000343511210574467014217 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ // Lautmanpage muss das Makro bei jedem einbinden neu definiert werden #ifdef assert #undef assert #endif #ifdef NDEBUG #define assert(x) ((void) 0) #else void _assert(const char* assertion, const char* file, int line, int expression); // Das #x verwandelt x in einen String #define assert(x) _assert(#x, __FILE__, __LINE__, x) #endif system/include/dirent.h0000644000175000017500000000352711210574467014205 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _DIRENT_H_ #define _DIRENT_H_ #include #include struct dirent { unsigned short d_reclen; char d_name[MAX_FILENAME_LEN + 1]; }; typedef io_resource_t DIR; DIR* opendir(const char * name); int closedir(DIR * dir); struct dirent* readdir(DIR * dir); long telldir(DIR * dir); void rewinddir(DIR * dir); void seekdir(DIR * dir, long offset); #endif system/include/dir.h0000644000175000017500000000353511210574467013475 0ustar tonitoni/* * Copyright (c) 2006-2007 tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _DIR_H_ #define _DIR_H_ #include "types.h" #include "stdio.h" #include "io.h" io_resource_t* directory_open(const char* dirname); int directory_close(io_resource_t* io_res); io_direntry_t* directory_read(io_resource_t* io_res); int directory_seek(io_resource_t* io_res, long int offset, int origin); bool directory_create(const char* dirname); bool is_directory(const char* dirname); #endif system/include/env.h0000644000175000017500000000352611210574467013507 0ustar tonitoni/* * Copyright (c) 2008 tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ENV_H_ #define _ENV_H_ #include #include void init_envvars(void); char* getenv(const char* name); char* getenv_index(int index); char* getenv_name_by_index(int index); int getenv_count(void); int setenv(const char* name, const char* value, int overwrite); void unsetenv(const char* name); char* getcwd(char* dest, size_t size); int chdir(const char* path); #endif system/include/fcntl.h0000644000175000017500000000361111210574467014020 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _FCNTL_H_ #define _FCNTL_H_ #include #define O_RDONLY 1 #define O_WRONLY 2 #define O_RDWR 4 #define O_APPEND 8 #define O_CREAT 16 #define O_EXCL 32 #define O_TRUNC 64 #define O_BINARY 128 /// Emulierter Unix-Syscall zum oeffnen von Dateien int open(const char* filename, int flags, ...); /// Emulierter Unix-Syscall zum erstellen von Dateien int creat(const char *pathname, mode_t mode); #endif //ifndef _FCNTL_H_ system/include/getopt.h0000644000175000017500000001406011210574467014214 0ustar tonitoni/* * Copyright (c) 2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _GETOPT_H_ #define _GETOPT_H_ // Fuer den has_arg-Member in der option-struct #define no_argument 0 #define required_argument 1 #define optional_argument 2 /** * Struktur die eine lange Option fuer getopt_long oder getopt_long_only * beschreibt */ struct option { /** Name der Option (der Text wie sie benutzt wird) */ const char* name; /** * 0 oder no_argument wenn die Option kein Argument nimmt * 1 oder required_argument wenn die Option ein Argument haben muss * 2 oder optional_argument wenn die Option ein Argument haben kann, aber * nicht muss */ int has_arg; /** * Ist dieser Pointer != NULL, wird an dieser Speicherstelle der Wert val * abgelegt, wenn diese Option gefunden wird. */ int* flag; /** * Wert den die Funktionen zurueckgeben oder allenfalls ind *flag ablegen * */ int val; }; /** Pointer auf den aktuellen argumentstring zur aktuellen Option oder NULL */ extern char* optarg; /** Index des naechsten zu Verarbeitenden Elements in argv */ extern int optind; /** Aktuelles Zeichen, auch wenn der getopt-Aufruf nicht erfolgreich war. */ extern int optopt; /** Wenn dieser Wert auf 0 gesetzt ist, gibt getopt keine Fehlermeldungen aus */ extern int opterr; /** Auf != 0 setzen damit getopt beim naechsten Aufruf vorne Anfaengt. */ extern int optreset; /** * Kommandozeilenoptionen in der Form "-x[arg]" verarbeiten, wobei x nur ein * nahezu beiliebiges Zeichen(nicht -+:) sein kann. Mit jedem Aufruf wird eine * Option verarbeitet. Um alle Optionen zu verarbeiten, muss getopt solange * aufgerufen werden, bis es -1 zurueckgibt. * * Bei Erfolg aktualisiert die Funktion den Pointer optarg so dass er auf den * Argumenttext zeigt, falls die aktuelle Option ein Argument nimmt, oder auf * NULL wenn nicht. * * @param argc Anzahl der Elemente in argv * @param argv Pointer auf ein Array mit den Parametern * @param optstring String der die akzeptierten Optionen beschreibt. Diesser * String besteht aus den Zeichen fuer die einzelnen Optionen, * die von einem Doppelpunkt gefolgt werden koennen, wenn ein * Argument folgen muss. In diesem Fall wird der Pointer optarg * nach dem Aufruf auf den Argumenttext zeigen. * * @return Die Verarbeitete Option bei Erfolg, im Fehlerfall ':' wenn das * Argument zu einer Option fehlt, '?' wenn eine ungueltige Option gefunden * wurde, oder -1 wenn die Optionen alle verarbeitet wurden. */ int getopt(int argc, char* const argv[], const char* optstring); /** * Diese Funktion arbeitet gleich wie getopt, akzeptiert aber auch lange * Optionen, die mit zwei Minuszeichen eingeleitet werden. Argumente koennen * ihnen entweder in der form --param arg oder --param=arg uebergeben werden. * * Die langen Optionen werden mit einem Array von struct option beschrieben. * Das letzte Element in diesem Array muss alle Member auf Null gesetzt haben. * * @param argc Anzahl der Elemente in argv * @param argv Pointer auf ein Array mit den Parametern * @param optstring Optstring wie bei getopt * @param longopts Array von struct option * @param longindex Wenn != NULL, wird in ihr der Index der Option abgelegt, * relativ zu longopts * * @return Wenn eine lange Option gefunden wurde, haeng das Resultat vom * flag-Member in der struct option ab. Ist er NULL wird der val-Member * zurueckgegeben, sonst wird der Wert des val-Members in diese Speicherstelle * geschrieben. Wenn eine kurze Option gefunden wurde, ist das Verhalten gleich * wie bei getopt, ebenfalls wenn keine gefunden wurde. */ int getopt_long(int argc, char* const argv[], const char* optstring, const struct option* longopts, int* longindex); /** * Diese Funktion verhaelt sich aehnlich wie getopt_long. Der Unterschied ist, * dass getopt_long_only auch lange optionen akzeptiert, die mit nur einem * Bindestrich eingeleitet werden, also -option. Werden hier mehrere Buchstaben * nach einem Minus gefunden, die auf kein Element in longopts passen, werden * sie wie einzelne kurze Optionen verarbeitet. * * @param argc Anzahl der Elemente in argv * @param argv Pointer auf ein Array mit den Parametern * @param optstring Optstring wie bei getopt * @param longopts Array von struct option * @param longindex Wenn != NULL, wird in ihr der Index der Option abgelegt, * relativ zu longopts * * @return Gleich wie bei getopt_long. */ int getopt_long_only(int argc, char* const argv[], const char* optstring, const struct option* longopts, int* longindex); #endif system/include/grp.h0000644000175000017500000000444611210574467013511 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _GRP_H_ #define _GRP_H_ #include #include /** Repraesentiert einen Eintrag in der Gruppendatenbank */ struct group { /** Gruppenname */ char* gr_name; /** Gruppen-ID */ gid_t gr_gid; /** Zeiger auf ein Nullterminiertes Array mit den Mitgliedern */ char** gr_mem; }; #ifndef CONFIG_LIBC_NO_STUBS /** * Gruppendatebank-Eintrag anhand des Namens holen * * @param name Benutzername * * @return Pointer auf internen Speicher, der bei weiteren Aufrufen * ueberschrieben wird. */ struct group* getgrnam(const char* name); /** * Gruppendatebank-Eintrag ahnand der GID holen * * @return Pointer auf internen Speicher, der bei weiteren Aufrufen * ueberschrieben wird. */ struct group* getgrgid(gid_t gid); #endif /* ndef CONFIG_LIBC_NO_STUBS */ #endif /* ndef _GRP_H */ system/include/gui/0000755000175000017500000000000011210574467013324 5ustar tonitonisystem/include/gui/commands.h0000644000175000017500000000335211210574467015301 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef GUI_COMMANDS_H #define GUI_COMMANDS_H #define GUI_CREATE_WINDOW 0 #define GUI_CLOSE_WINDOW 1 #define GUI_REPAINT_WINDOW 3 #define GUI_MOVE_WINDOW 4 #define GUI_RESIZE_WINDOW 5 #define GUI_GET_FONT 6 #define GUI_DROP_FONT 7 #define GUI_SET_CALLBACK_FUNCTION 2 #endif system/include/gui/events.h0000644000175000017500000000366211210574467015010 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef GUI_EVENTS_H #define GUI_EVENTS_H typedef struct event_t { dword windowid; dword type; dword data[10]; } event_t; #define EVENT_MOUSE_ENTERED_AREA 0 #define EVENT_MOUSE_LEFT_AREA 1 #define EVENT_MOUSE_MOVED 2 #define EVENT_MOUSE_BUTTON_PRESSED 3 #define EVENT_MOUSE_BUTTON_RELEASED 4 #define EVENT_KEYBOARD_BUTTON_PRESSED 9 #define EVENT_WINDOW_PAINT 5 #define EVENT_WINDOW_RESIZED 6 #define EVENT_CLOSE_WINDOW 7 #define EVENT_BUTTON_PRESSED 8 #endif system/include/gui/gui.h0000644000175000017500000000644111210574467014266 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef GUI_GUI_H #define GUI_GUI_H #include "types.h" #include "video/bitmap.h" #include "gui/events.h" #include "collections.h" typedef struct widget_t { int x; int y; dword width; dword height; dword type; dword id; dword *data; } widget_t; typedef struct window_t { int x; int y; dword width; dword height; dword flags; dword id; dword shmid; bitmap_t bitmap; list_t *widgets; char *title; } window_t; typedef struct font_t { char *name; int size; dword id; dword shmid; byte *data; } font_t; #define GUI_WINDOW_FRAME 1 #define GUI_WINDOW_RESIZEABLE (1<<1) #define GUI_WINDOW_MINIMIZE (1<<2) #define GUI_WINDOW_MAXIMIZE (1<<3) #define GUI_WINDOW_CLOSE (1<<4) #define GUI_WINDOW_NO_FOCUS (1<<5) #define GUI_WINDOW_ALWAYS_ON_BOTTOM (1<<6) #define GUI_WINDOW_ALWAYS_ON_TOP (1<<7) #define GUI_WINDOW_NO_BACKGROUND (1<<8) extern font_t *titlefont; int init_gui(void); int close_gui(void); window_t *gui_create_window(int x, int y, int width, int height, dword flags); void gui_delete_window(window_t *window); void gui_repaint_window(window_t *window); void gui_start_moving_window(window_t *window); void gui_start_resizing_window(window_t *window, dword position); void gui_set_window_title(window_t *window, const char *title); const char *gui_get_window_title(window_t *window); void gui_send_event(event_t event); void gui_set_callback(void (*cb)(event_t)); font_t *gui_get_font(const char *name, int size); void gui_delete_font(font_t *font); int render_char(bitmap_t bitmap, font_t *font, unsigned char c, int x, int y); void render_text(bitmap_t bitmap, font_t *font, const char *string, int x, int y); dword get_text_width(font_t *font, const char *string); dword get_string_position(font_t *font, const char *string, int x); #endif system/include/gui/widgets.h0000644000175000017500000000371111210574467015145 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef GUI_WIDGETS_H #define GUI_WIDGETS_H #include "gui/gui.h" #include "gui/events.h" #define GUI_WIDGET_BUTTON 1 #define GUI_WIDGET_EDITBOX 2 #define GUI_WIDGET_LABEL 3 widget_t *create_button(window_t *window, int x, int y, int width, int height, char *label); widget_t *create_edit_box(window_t *window, int x, int y, int width, int height, char *value); int process_event(window_t *window, event_t event); void draw_widgets(window_t *window); void destroy_widgets(window_t *window); #endif system/include/init.h0000644000175000017500000000416611210574467013663 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _INIT_H_ #define _INIT_H_ #include #include #define INIT_PID 1 extern void stdio_init(void); #ifndef MODULE_INIT void init_service_register(char* name); pid_t init_service_get(char* name); char *init_service_get_name(pid_t pid); void init_process_exit(int result); pid_t init_execute(const char* cmd); #endif //ifndef _INIT_H_ #ifdef _USE_START_ #undef _USE_START_ #warning _USE_START_ sollte nicht mehr verwendet werden #else struct service_s { pid_t pid; char* name; }; struct service_s* get_service_by_name(const char* name); struct service_s* get_service_by_pid(pid_t pid); #endif #endif system/include/io.h0000644000175000017500000000653311210574467013327 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _IO_H_ #define _IO_H_ #include #include #include #include typedef struct { char name[MAX_FILENAME_LEN]; io_direntry_type_t type; uint64_t size; time_t ctime; time_t mtime; time_t atime; } __attribute__ ((packed)) io_direntry_t; #ifdef MODULE_INIT void io_init(void); void rpc_io_open(pid_t pid, dword correlation_id, size_t data_size, void* data); #else typedef struct { io_resource_id_t id; size_t blocksize; size_t blockcount; uint32_t shared_mem_id; } __attribute__ ((packed)) io_read_request_t; typedef struct { io_resource_id_t id; size_t blocksize; size_t blockcount; uint32_t shared_mem_id; uint8_t data[]; } __attribute__ ((packed)) io_write_request_t; typedef struct { io_resource_id_t id; uint64_t offset; int origin; } __attribute__ ((packed)) io_seek_request_t; typedef struct { io_resource_id_t id; } __attribute__ ((packed)) io_eof_request_t; typedef struct { io_resource_id_t id; } __attribute__ ((packed)) io_tell_request_t; typedef struct { io_resource_id_t target_id; io_resource_id_t dir_id; size_t name_len; char name[]; } __attribute__ ((packed)) io_link_request_t; typedef struct { io_resource_id_t dir_id; size_t name_len; char name[]; } __attribute__ ((packed)) io_unlink_request_t; #endif int io_create_link(const char* target_path, const char* link_path, bool hardlink); int io_remove_link(const char* link_path); char* io_get_absolute_path(const char* path); char* io_split_filename(const char* path); char* io_split_dirname(const char* path); #endif //ifndef _IO_H_ system/include/io_struct.h0000644000175000017500000000454411210574467014733 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _IO_STRUCT_H_ #define _IO_STRUCT_H_ #include #include #define MAX_FILENAME_LEN 255 #define IO_DIRENTRY_FILE 1 #define IO_DIRENTRY_DIR 2 #define IO_OPEN_MODE_READ 1 #define IO_OPEN_MODE_WRITE 2 #define IO_OPEN_MODE_APPEND 4 #define IO_OPEN_MODE_TRUNC 8 #define IO_OPEN_MODE_DIRECTORY 16 #define IO_OPEN_MODE_CREATE 32 #define IO_OPEN_MODE_LINK 64 #define IO_OPEN_MODE_SYNC 128 typedef uint32_t io_resource_id_t; typedef uint8_t io_direntry_type_t; typedef struct { io_resource_id_t id; char* path; pid_t pid; io_resource_id_t resid; void* buffer_ptr; size_t buffer_size; size_t buffer_pos; uint8_t buffer_mode; size_t ungetc_count; uint8_t* ungetc_buffer; } __attribute__ ((packed)) io_resource_t; #endif //ifndef _IO_STRUCT_H_ system/include/kbd.h0000644000175000017500000000542611210574467013460 0ustar tonitoni/* * Copyright (c) 2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _KBD_H_ #define _KBD_H_ #define KBD_RPC_REGISTER_CALLBACK "RPCREGIS" #define KBD_RPC_CALLBACK "KBDEVENT" /** * Das sind einige der Keycodes die KBC ueber die Callback-Funktion verschickt. * Es handelt sich dabei aber nur um diese Keycodes, die auf allen Layouts am * selben Ort sind. */ #define KEYCODE_SHIFT_LEFT 42 #define KEYCODE_SHIFT_RIGHT 54 #define KEYCODE_CONTROL_LEFT 29 #define KEYCODE_CONTROL_RIGHT 97 #define KEYCODE_ALT 56 #define KEYCODE_ALTGR 100 #define KEYCODE_INSERT 110 #define KEYCODE_DELETE 111 #define KEYCODE_PAGE_UP 104 #define KEYCODE_PAGE_DOWN 109 #define KEYCODE_HOME 102 #define KEYCODE_END 107 #define KEYCODE_F1 59 #define KEYCODE_F2 60 #define KEYCODE_F3 61 #define KEYCODE_F4 62 #define KEYCODE_F5 63 #define KEYCODE_F6 64 #define KEYCODE_F7 65 #define KEYCODE_F8 66 #define KEYCODE_F9 67 #define KEYCODE_F10 68 #define KEYCODE_F11 87 #define KEYCODE_F12 88 #define KEYCODE_ARROW_UP 103 #define KEYCODE_ARROW_DOWN 108 #define KEYCODE_ARROW_LEFT 105 #define KEYCODE_ARROW_RIGHT 106 #define KEYCODE_SCROLL_LOCK 70 #endif // ifndef _KBD_H_ system/include/locale.h0000644000175000017500000000624011210574467014152 0ustar tonitoni/* * Copyright (c) 2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _LOCALE_H_ #define _LOCALE_H_ #include struct lconv { /* Allgemeine Definitionen */ char *decimal_point; char *thousands_sep; char *grouping; /* Waehrungen */ char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; /** * Position des Vorzeichens bei positiven Betraegen * 1: + 100 EUR und + $100 * 2: 100 EUR + und $100 + * 3: 100 + EUR und + $100 * 4: 100 EUR + und $ +100 */ char p_sign_posn; /// Position des Vorzeichens bei negativen Betraegen char n_sign_posn; }; /** Moegliche Werte fuer setlocale */ enum { LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, }; #ifndef CONFIG_LIBC_NO_STUBS /** * Gibt Informationen zur aktiven Locale zurueck */ static inline struct lconv* localeconv(void) { static struct lconv lconv = { .decimal_point = ",", .thousands_sep = " ", .mon_decimal_point = ",", .mon_thousands_sep = " ", .int_curr_symbol = "EUR", .currency_symbol = "EUR", .positive_sign = "+", .negative_sign = "-", .p_sign_posn = 1, .n_sign_posn = 1, }; return &lconv; }; /** * Aktuelles Locale anpassen. Ist locale == NULL wird nichts gemacht. * * @return Nach dem Aufruf aktives locale */ static inline char* setlocale(int category, const char* locale) { return "de_DE.UTF-8"; } #endif #endif system/include/lostio.h0000644000175000017500000001260011210574467014221 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** \addtogroup LostIO * @{ */ #ifndef _LOSTIO_H_ #define _LOSTIO_H_ #include "types.h" #include "collections.h" #include "io.h" #include ///ID des Verzeichnis Typs #define LOSTIO_TYPES_DIRECTORY 1 ///ID des Ramfile Typs #define LOSTIO_TYPES_RAMFILE 128 #define LOSTIO_FLAG_EOF 0x10000 #define LOSTIO_FLAG_BROWSABLE 0x20000 ///Der Knoten ist ein Symlink. #define LOSTIO_FLAG_SYMLINK 0x40000 /// EOF nicht automatisch setzen wenn beim Oeffnen die Groesse 0 ist #define LOSTIO_FLAG_NOAUTOEOF 0x80000 /*#define LOSTIO_MODE_READ 0x1 #define LOSTIO_MODE_WRITE 0x2 #define LOSTIO_MODE_APPEND 0x4 #define LOSTIO_MODE_BROWSE 0x8 */ ///Typ der Typehandle-IDs typedef byte typeid_t; ///Knoten im VFS-Baum typedef struct vfstree_node_t { typeid_t type; char* name; qword size; void* data; qword resid; dword flags; list_t* children; struct vfstree_node_t* parent; } vfstree_node_t; ///Handle fuer eine geoeffnete Datei typedef struct { dword id; pid_t pid; dword flags; io_resource_t* source; qword pos; ///Modulspezifische Daten void* data; vfstree_node_t* node; } lostio_filehandle_t; ///Rueckgabe der typedef struct { void* data; size_t size; } read_hdl_reply; ///Handle um einen bestimmten Knotentyp zu beschreiben typedef struct { typeid_t id; bool (*not_found)(char**, byte, pid_t,io_resource_t*); bool (*pre_open)(char**, byte, pid_t,io_resource_t*); void (*post_open)(lostio_filehandle_t*); size_t (*read)(lostio_filehandle_t*,void*,size_t,size_t); size_t (*write)(lostio_filehandle_t*,size_t,size_t,void*); int (*seek)(lostio_filehandle_t*,uint64_t,int); int (*close)(lostio_filehandle_t*); int (*link)(lostio_filehandle_t*,lostio_filehandle_t*, const char*); int (*unlink)(lostio_filehandle_t*,const char*); } typehandle_t; /// Geoeffnete Datei auf Clientseite (Wrapper fuer FILE) struct lostio_internal_file { io_resource_t res; bool free_buffer; }; ///LostIO-Schnittstelle initialisieren void lostio_init(void); ///LostIO-Interne vorgaenge abarbeiten void lostio_dispatch(void); ///Typehandle in die Liste einfuegen void lostio_register_typehandle(typehandle_t* typehandle); ///Typehandle anhand der ID finden typehandle_t* get_typehandle(typeid_t id); ///Neuen Knoten im VFS-Baum erstellen bool vfstree_create_node(char* path, typeid_t type, size_t size, void* data, dword flags); ///Neuen Kindknoten erstellen bool vfstree_create_child(vfstree_node_t* parent, char* name, typeid_t type, size_t size, void* data, dword flags); ///Knoten aus dem VFS-Baum loeschen bool vfstree_delete_node(char* path); ///Kindknoten loeschen bool vfstree_delete_child(vfstree_node_t* parent, const char* name); /// void vfstree_clear_node(vfstree_node_t* node); ///Dateinamen aus einem ganzen Pfad extrahieren char* vfstree_basename(char* path); ///Verzeichnisnamen aus einem Pfad extrahieren char* vfstree_dirname(char* path); ///Pointer auf einen Knoten anhand des Elternknotens und es Namens ermitteln vfstree_node_t* vfstree_get_node_by_name(vfstree_node_t* parent, char* name); ///Pointer auf einen Knoten anhand seines Pfades ermitteln vfstree_node_t* vfstree_get_node_by_path(char* path); ///Den Ramfile-Typ benutzbar machen void lostio_type_ramfile_use(void); ///Den Ramfile-Typ unter einer bestimmten ID benutzbar machen void lostio_type_ramfile_use_as(typeid_t id); ///Den Verzechnis-Typ benutzbar machen void lostio_type_directory_use(void); ///Den Verzechnis-Typ unter einer bestimmten ID benutzbar machen void lostio_type_directory_use_as(typeid_t id); /// Stream-Position setzen bool lio_seek(io_resource_t* res, uint64_t off, int whence); /** @} */ #endif system/include/math.h0000644000175000017500000000316711210574467013651 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _MATH_H_ #define _MATH_H_ #include // Betrag einer reelen Zahl errechen #ifndef CONFIG_LIBC_NO_STUBS double fabs(double x); #endif #endif system/include/netdb.h0000644000175000017500000000435011210574467014007 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _NETDB_H_ #define _NETDB_H_ struct hostent { char* h_name; char** h_aliases; int h_addrtype; int h_length; char** h_addr_list; #define h_addr h_addr_list[0] }; struct servent { char* s_name; char** s_aliases; /// Portnummer des Diensts, in Big Endian int s_port; char* s_proto; }; struct hostent* gethostbyname(const char* name); /** * Gibt Informationen zu einem Netzwerkdienst zurueck. Wenn der Dienst nicht * gefunden werden kann, wird NULL zurueckgegeben. * * @param name Name des Diensts (z.B. "imap") * @param protocol Name des Transportprotokolls (z.B. "tcp"). Falls nicht * angegeben, soll jeder Treffer zaehlen. */ struct servent* getservbyname(const char* name, const char* protocol); #endif system/include/netinet/0000755000175000017500000000000011210574467014206 5ustar tonitonisystem/include/netinet/in.h0000644000175000017500000000427111210574467014771 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _NETINET_IN_H_ #define _NETINET_IN_H_ #include #include #include typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; }; /// Adresse fuer das INET-Protokol (IPv4) struct sockaddr_in { sa_family_t sin_family; struct in_addr sin_addr; uint32_t sin_port; }; /** * Wandelt einen String, der eine IP-Adresse der Form a.b.c.d enthaelt in einen * 32-Bit-Wert um. * * @return 0 im Fehlerfall; ungleich 0 bei Erfolg */ int inet_aton(const char* ip_string, struct in_addr* ip); /** * Wandelt eine 32-Bit-Adresse in einen String um. Der String ist in einem * statischen Puffer und wird beim naechsten Aufruf ueberschrieben. */ char* inet_ntoa(struct in_addr ip); #endif system/include/network.h0000644000175000017500000000415211210574467014404 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _NETWORK_H_ #define _NETWORK_H_ #include "types.h" #define RPC_ETHERNET_RECEIVE_PACKET "ETH_RECV" #define RPC_ETHERNET_SEND_PACKET "ETH_SEND" #define RPC_ETHERNET_REGISTER_RECEIVER "ETH_REG " #define RPC_IP_REGISTER_DRIVER "REGDRV " #define big_endian_word(x) ((((x) & 0xFF) << 8) | (((x) & 0xFF00) >> 8)) #define big_endian_dword(x) \ ((big_endian_word((x) & 0xFFFF) << 16) | \ (big_endian_word((x) >> 16))) struct net_device { dword number; uint64_t mac; dword ip; }; dword string_to_ip(const char* ip); char* ip_to_string(dword ip); char* mac_to_string(uint64_t mac); void register_netcard(dword device_numer, uint64_t mac, dword ip); #endif system/include/pci.h0000644000175000017500000000406111210574467013465 0ustar tonitoni/* * Copyright (c) 2007-2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _PCI_H_ #define _PCI_H_ #include "collections.h" #define PCI_RESOURCE_MEM 0 #define PCI_RESOURCE_PORT 1 #define PCI_RESOURCE_IRQ 2 struct pci_device { word bus; word device; word function; word vendor_id; word device_id; byte rev_id; byte irq; byte interface_id; byte subclass_id; byte class_id; /// XXX: Fuer Abwaertskompatibilitaet eingefuehrt byte :8 ; list_t* resources; } __attribute__ ((packed)); struct pci_resource { dword type; dword start; dword length; } __attribute__ ((packed)); #endif system/include/pwd.h0000644000175000017500000000453511210574467013512 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _PWD_H_ #define _PWD_H_ #include #include /** Repraesentiert einen Eintrag in der Benutzerdatenbank */ struct passwd { /** Benutzername */ char* pw_name; /** Benutzer-ID */ uid_t pw_uid; /** Gruppen-ID */ gid_t pw_gid; /** Homeverzeichnis */ char* pw_dir; /** Login-Shell */ char* pw_shell; }; #ifndef CONFIG_LIBC_NO_STUBS /** * Benutzerdatenbank-Eintrag anhand des Namens holen * * @param name Benutzername * * @return Pointer auf internen Speicher, der bei weiteren Aufrufen * ueberschrieben wird. */ struct passwd* getpwnam(const char* name); /** * Benutzerdatenbank-Eintrag ahnand der UID holen * * @return Pointer auf internen Speicher, der bei weiteren Aufrufen * ueberschrieben wird. */ struct passwd* getpwuid(uid_t uid); #endif /* ndef CONFIG_LIBC_NO_STUBS */ #endif /* ndef _PWD_H */ system/include/readline/0000755000175000017500000000000011210574467014323 5ustar tonitonisystem/include/readline/history.h0000644000175000017500000000314311210574467016176 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _READLINE_HISTORY_H_ #define _READLINE_HISTORY_H_ /** * Nimmt eine Zeile in die readline-History auf */ void add_history(char* line); #endif system/include/readline/readline.h0000644000175000017500000000405511210574467016263 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _READLINE_H_ #define _READLINE_H_ /** * Typ fuer den attemped_completion-Handler. * * @param text Text, der vervollstaendigt werden soll * @param start Position im Zeilenpuffer an der das Wort beginnt * @param end Position im Zeilenpuffer an der das Wort endet * */ typedef char** (__rl_attemped_completion_func_t)(const char* text, int start, int end); /** Pointer auf den attemped_completion-Handler */ extern __rl_attemped_completion_func_t* rl_attempted_completion_function; /** * Prompt anzeigen und Zeile von der Tastatur einlesen */ char* readline(const char* prompt); #endif system/include/regex.h0000644000175000017500000001273411210574467014032 0ustar tonitoni /* $NetBSD: regex.h,v 1.13 2005/09/13 01:44:32 christos Exp $ */ /*- * Copyright (c) 1992, 1993 * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * Henry Spencer of the University of Toronto. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)regex.h 8.2 (Berkeley) 1/3/94 */ /*- * Copyright (c) 1992 Henry Spencer. * * This code is derived from software contributed to Berkeley by * Henry Spencer of the University of Toronto. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)regex.h 8.2 (Berkeley) 1/3/94 */ #ifndef _REGEX_H_ #define _REGEX_H_ #include #include /* types */ typedef off_t regoff_t; typedef struct { int re_magic; size_t re_nsub; /* number of parenthesized subexpressions */ const char *re_endp; /* end pointer for REG_PEND */ struct re_guts *re_g; /* none of your business :-) */ } regex_t; typedef struct { regoff_t rm_so; /* start of match */ regoff_t rm_eo; /* end of match */ } regmatch_t; /* regcomp() flags */ #define REG_BASIC 0000 #define REG_EXTENDED 0001 #define REG_ICASE 0002 #define REG_NOSUB 0004 #define REG_NEWLINE 0010 #define REG_NOSPEC 0020 #define REG_PEND 0040 #define REG_DUMP 0200 /* regerror() flags */ #define REG_NOMATCH 1 #define REG_BADPAT 2 #define REG_ECOLLATE 3 #define REG_ECTYPE 4 #define REG_EESCAPE 5 #define REG_ESUBREG 6 #define REG_EBRACK 7 #define REG_EPAREN 8 #define REG_EBRACE 9 #define REG_BADBR 10 #define REG_ERANGE 11 #define REG_ESPACE 12 #define REG_BADRPT 13 #define REG_EMPTY 14 #define REG_ASSERT 15 #define REG_INVARG 16 #define REG_ENOSYS 17 #define REG_ATOI 255 /* convert name to number (!) */ #define REG_ITOA 0400 /* convert number to name (!) */ /* regexec() flags */ #define REG_NOTBOL 00001 #define REG_NOTEOL 00002 #define REG_STARTEND 00004 #define REG_TRACE 00400 /* tracing of execution */ #define REG_LARGE 01000 /* force large representation */ #define REG_BACKR 02000 /* force use of backref code */ __BEGIN_DECLS int regcomp(regex_t * __restrict, const char * __restrict, int); size_t regerror(int, const regex_t * __restrict, char * __restrict, size_t); int regexec(const regex_t * __restrict, const char * __restrict, size_t, regmatch_t [], int); void regfree(regex_t *); __END_DECLS #endif /* !_REGEX_H_ */ system/include/rpc.h0000644000175000017500000000561311210574467013502 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef RPC_H #define RPC_H #include "types.h" #include #define MAX_MESSAGE_HANDLERS 32 #define RPC_FUNCTION_NAME_LENGTH 8 #define RPC_SIGNALS_START 256 #define RPC_SIGNALS_END 511 #define RPC_MESSAGE 512 #define RPC_RESPONSE 513 #define RPC_TIMER 514 #define RPC_TRPC_FIRST 1024 #define RPC_TRPC_LAST 4095 typedef void (*handler_function_t)(pid_t, dword, size_t, void*); typedef struct { dword pid; dword correlation_id; size_t data_length; void* data; } response_t; extern handler_function_t rpc_response_handler; void init_messaging(void); bool register_message_handler(char* fnname, handler_function_t handler); void register_intr_handler(byte intr, void (*handler)(uint8_t)); dword rpc_get_dword(pid_t pid, char* function_name, size_t data_length, char* data); int rpc_get_int(pid_t pid, char* function_name, size_t data_length, char* data); char* rpc_get_string(pid_t pid, char* function_name, size_t data_length, char* data); response_t* rpc_get_response(pid_t pid, char* function_name, size_t data_length, char* data); void rpc_send_response(pid_t pid, dword correlation_id, size_t len, char* data); void rpc_send_dword_response(pid_t pid, dword correlation_id, dword response); void rpc_send_int_response(pid_t pid, dword correlation_id, int response); void rpc_send_string_response(pid_t pid, dword correlation_id, char* response); dword timer_register(void (*callback)(void), dword usec); void timer_cancel(dword timer_id); #endif system/include/services.h0000644000175000017500000000327311210574467014541 0ustar tonitoni/* * Copyright (c) 2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SERVICES_H_ #define _SERVICES_H_ #include /** * Service vom service-Manager starten lassen. * * @param name Service Name * * @return TRUE bei Erfolg, FALSE sonst. */ bool servmgr_need(const char* service_name); #endif system/include/signal.h0000644000175000017500000001167611210574467014201 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SIGNAL_H_ #define _SIGNAL_H_ #include #include typedef uint32_t sig_atomic_t; // Signale /// Verbindung zu Terminal Verloren #define SIGHUP 1 /// Unterbrechung vom Benutzer angeforder (Ctrl + C) #define SIGINT 2 /// TODO #define SIGQUIT 3 /// Fehlerhafte Instruktion #define SIGILL 4 /// Debug #define SIGTRAP 5 /// Prozess terminieren (Kann zwar abgefangen werden, aber nach abarbeiten der /// Routine wird der Prozess trotzdem beendet). #define SIGABRT 6 /// TODO #define SIGBUS 7 /// Fehler bei einer arithmetischen Operation #define SIGFPE 8 /// Prozess terminieren (kann _nicht_ abgefangen werden) #define SIGKILL 9 /// Benutzerdefiniertes Signal 1 #define SIGUSR1 10 /// Speicherzugriffsfehler #define SIGSEGV 11 /// Benutzerdefiniertes Signal 2 #define SIGUSR2 12 /// Pipe-Fehler #define SIGPIPE 13 /// alarm()-Timer ist abgelaufen #define SIGALRM 14 /// Prozess terminieren (kann abgefangen werden) #define SIGTERM 15 /// Start des frei verwendbaren Bereichs #define SIGRTMIN 32 /// Ende des frei verwendbaren Bereichs #define SIGRTMAX 63 // Hier sollte noch viel mehr kommen /// Nur fuer interne Verwendung. Muss immer 1 groesser sein als die groesste /// Signalnummer und teilbar durch 8 #define _SIGNO_MAX 64 // Gehoert nach Spezifikation da nicht rein. void _signal_default_handler(int signal); /// Standard-Signalhandler #define SIG_DFL (&_signal_default_handler) /// Das gibt signal im Fehlerfall zurueck #define SIG_ERR ((sighandler_t) -1) /// Signalhandler fuer ignonierte Signale #define SIG_IGN (NULL) // Verwaltung von sigsets /// Typ fuer eine Sammlung von Signalen typedef struct { uint8_t bitmask[_SIGNO_MAX/8]; } sigset_t; /// Sigset leeren int sigemptyset(sigset_t *sigset); /// Alle Signale ins sigset packen int sigfillset(sigset_t *sigset); /// Einzelnes Signal zu sigset hinzufuegen int sigaddset(sigset_t *sigset, int signal); /// Einzelnes Signal aus sigset loeschen int sigdelset(sigset_t *sigset, int signal); /// Pruefen ob ein Signal im sigset enthalten ist int sigismember(const sigset_t *sigset, int signal); // Signal-Handler /// Typ fuer einen Pointer auf einen Signal-Handler typedef void (*sighandler_t)(int); /// Bei einem Signal auszufuehrende Aktion struct sigaction { sighandler_t sa_handler; sigset_t sa_mask; int sa_flags; }; enum { SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK, }; /** * Aendert die auszufuehrende Aktion fuer ein Signal und gibt die alte Aktion * zurueck. * * @param sig Nummer des Signals, fuer das die Aktion geaendert wird * @param action Neue Aktion. Wenn NULL, wird nur die aktuelle Aktion * zurueckgegeben, aber keine Aenderung vorgenommen * @param old Wenn nicht NULL, wird hier die alte Aktion gespeichert */ int sigaction(int sig, const struct sigaction* action, struct sigaction* old); /// Einen Signal-Handler aendern sighandler_t signal(int signum, sighandler_t handler); /** * Verwaltung von blockierten Signalen * * @param mode * SIG_BLOCK: Alle Signale aus sigset blockieren * SIG_UNBLOCK: Alle Signale aus sigset wieder aktivieren * SIG_SETMASK: sigset als neue Signal-Maske benutzen * * @return 0 bei Erfolg. -1 und errno = EINVAL, wenn mode einen unerlaubten * Wert hat. */ int sigprocmask(int mode, const sigset_t* sigset, sigset_t* oldset); /// Ein Signal zum aktuellen Prozess senden int raise(int signal); /// Ein Signal an einen anderen Prozess senden int kill(pid_t pid, int signal); #endif // ifndef _SIGNAL_H_ system/include/sleep.h0000644000175000017500000000313111210574467014017 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SLEEP_H_ #define _SLEEP_H_ #include "types.h" #include "syscall.h" void msleep(unsigned long msec); #endif //ifndef _SLEEP_H_ system/include/stdio.h0000644000175000017500000000774211210574467014045 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STDIO_H_ #define _STDIO_H_ #include #include #include #include #define SEEK_SET 0 #define SEEK_CUR 1 #define SEEK_END 2 #define EOF -1 #define _IONBF 1 #define _IOFBF 2 #define _IOLBF 3 #define BUFSIZ 512 #define P_tmpdir "file:/tmp" typedef io_resource_t FILE; extern FILE* stdin; extern FILE* stdout; extern FILE* stderr; int putc(int c, FILE *stream); int putchar(int c); int puts(const char* str); void perror(const char* message); int getc(FILE* io_res); int getchar(void); int ungetc(int c, FILE* io_res); char* gets(char* dest); int printf(const char * format, ...); int sprintf(char * buffer, const char * format, ...); int snprintf(char * buffer, size_t size, const char * format, ...); int fprintf(FILE * fp, const char * format, ...); int asprintf(char ** buffer, const char * format, ...); int vprintf(const char * format, va_list); int vsprintf(char * buffer, const char * format, va_list); int vsnprintf(char * buffer, size_t size, const char * format, va_list); int vfprintf(FILE * fp, const char * format, va_list); int vasprintf(char ** buffer, const char * format, va_list); #ifndef CONFIG_LIBC_NO_STUBS int fscanf(FILE* fp, const char* format, ...); int sscanf(const char* str, const char* format, ...); #endif //Dateihandling FILE* fopen(const char* filename, const char* mode); FILE* fdopen(int fd, const char* mode); FILE* freopen(const char* filename, const char* mode, FILE* stream); int fclose(FILE* io_res); FILE* tmpfile(void); size_t fread(void* dest, size_t blocksize, size_t blockcount, FILE* io_res); int fgetc(FILE* io_res); char* fgets(char* dest, int length, FILE *io_res); size_t fwrite(const void* src, size_t blocksize, size_t blockcount, FILE* io_res); int fputc(int c, FILE *io_res); int fputs(const char *str, FILE *io_res); int fseek(FILE* io_res, long int offset, int origin); long ftell(FILE* io_res); int feof(FILE* io_res); int ferror(FILE* io_res); void clearerr(FILE* io_res); void rewind(FILE* io_res); int fflush(io_resource_t* io_res); int fpurge(io_resource_t* io_res); int setvbuf(FILE* io_res, char* buffer, int mode, size_t size); int setbuf(FILE* io_res, char* buffer); int setbuffer(FILE* io_res, char* buffer, size_t size); int setlinebuf(FILE* io_res); int remove(const char* filename); #ifndef CONFIG_LIBC_NO_STUBS /// Datei verschieben int rename(const char *oldpath, const char *newpath); #endif /// Den Filedeskriptor holen, um diese Datei mit den Unix-Dateifunktionen /// benutzen zu koennen int fileno(FILE* io_res); #endif system/include/sys/0000755000175000017500000000000011210574467013356 5ustar tonitonisystem/include/sys/stat.h0000644000175000017500000001075511210574467014512 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_STAT_H_ #define _SYS_STAT_H_ #include #include // Modus Format: 3 Bits fuer Dateityp /// Zurgriffsberechtigungen #define S_IRUSR 0 #define S_IWUSR 0 #define S_IXUSR 0 #define S_IRGRP 0 #define S_IWGRP 0 #define S_IXGRP 0 #define S_IROTH 0 #define S_IWOTH 0 #define S_IXOTH 0 #define S_IRWXU 0 #define S_IRWXG 0 #define S_IRWXO 0 /* Sowas haben wir momentan eh nicht */ #define S_ISUID (1 << 5) #define S_ISGID (1 << 5) #define S_ISVTX (1 << 5) /// Modus: Maske fuer Dateityp #define S_IFMT 0x7 /// Modus: Blockdatei #define S_IFBLK 0x0 /// Modus: Character Datei #define S_IFCHR 0x1 /// Modus: Regulaere Datei #define S_IFREG 0x2 /// Modus: FIFO #define S_IFIFO 0x3 /// Modus: Verzeichnis #define S_IFDIR 0x4 /// Modus: Symlink #define S_IFLNK 0x5 /// Modus: Socket #define S_IFSOCK 0x6 /// Ueberprueft ob es sich bei einem st_mode-Feld um eine Regulaere Datei /// handelt #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) /// Ueberprueft ob es sich bei einem st_mode-Feld um ein Verzeichnis handelt #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) /// Ueberprueft ob es sich bei einem st_mode-Feld um einen Symlink handelt #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) /// Spezialdateien aus UNIX #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) #define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) /// Information zu einer Datei struct stat { dev_t st_dev; /// Geraet auf dem die Datei liegt ino_t st_ino; /// Serielle Dateinummer mode_t st_mode; /// Modus (u.A Zugriffsberechtigungen) nlink_t st_nlink; /// Anzahl der Verknuepfungen auf diese Datei uid_t st_uid; /// Benutzernummer gid_t st_gid; /// Gruppennummer dev_t st_rdev; /// Geraetenummer bei speziellen Dateien wie /// Geraetedateien. off_t st_size; /// Dateigroesse in Bytes (nur bei normalen /// Dateien) time_t st_atime; /// Letzter Zugriff time_t st_mtime; /// Letzte Aenderung time_t st_ctime; /// Letzter Statuswechsel blksize_t st_blksize; /// Ideale Blockgroesse blkcnt_t st_blocks; /// Anzahl der Blocks }; /// Modus einer Datei aendern int chmod(const char* filename, mode_t mode); /// Modus einer geoeffneten Datei aendern int fchmod(int file, mode_t mode); /// Informationen zu einer Datei auslesen int stat(const char* filename, struct stat* stat_buf); /// Informationen zu einer Verknuepfung auslesen int lstat(const char* filename, struct stat* stat_buf); /// Informationen zu einer geoeffneten Datei auslesen int fstat(int file, struct stat* stat_buf); /// Verzeichnis erstellen int mkdir(const char* path, mode_t mode); /// FIFO erstellen int mkfifo(const char* filename, mode_t mode); /// Geraetedatei erstellen int mknod(const char* filename, mode_t mode, dev_t device); /// Modus fuer neue Dateien festlegen mode_t umask(mode_t mode); #endif //ifndef _SYS_STAT_H_ system/include/sys/utsname.h0000644000175000017500000000365411210574467015213 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_UTSNAME_H_ #define _SYS_UTSNAME_H_ #include struct utsname { char sysname[32]; char nodename[32]; char release[32]; char version[32]; char machine[32]; }; static int uname(struct utsname* utsname) { strcpy(utsname->sysname, "tyndur"); strcpy(utsname->nodename, "tyndur"); strcpy(utsname->release, TYNDUR_RELEASE); strcpy(utsname->version, TYNDUR_VERSION); strcpy(utsname->machine, TYNDUR_ARCH); return 0; } #endif system/include/sys/time.h0000644000175000017500000000331311210574467014465 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_TIME_H_ #define _SYS_TIME_H_ #include struct timeval { time_t tv_sec; suseconds_t tv_usec; }; #ifndef CONFIG_LIBC_NO_STUBS int gettimeofday(struct timeval *tv, void* tz); #endif #endif //ifndef _SYS_TIME_H_ system/include/sys/file.h0000644000175000017500000000344511210574467014454 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_FILE_H_ #define _SYS_FILE_H_ #ifndef CONFIG_LIBC_NO_STUBS /** * Datei-Lock nehmen oder abgeben * * @param fd Filedeskriptor der betroffenen Datei * @param operation LOCK_SH (Shared Lock), LOCK_EX (Exklusiver Lock), LOCK_UN * (Lock abgeben) * * @return 0 bei Erfolg, -1 im Fehlerfall */ int flock(int fd, int operation); #endif #endif system/include/sys/select.h0000644000175000017500000000573011210574467015013 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_SELECT_H_ #define _SYS_SELECT_H_ #include #include #ifndef CONFIG_LIBC_NO_STUBS /** * Menge von Dateideskriptoren * * FIXME Irgendwann will man da sicher mehr als 32 benutzen koennen */ typedef struct { uint32_t bits; } fd_set; #define FD_ZERO(fdset) do { (fdset)->bits = 0; } while (0) #define FD_SET(fd, fdset) do { (fdset)->bits |= (1 << (fd)); } while (0) #define FD_CLR(fd, fdset) do { (fdset)->bits &= ~(1 << (fd)); } while (0) #define FD_ISSET(fd, fdset) ((fdset)->bits & (1 << (fd))) /** * Prueft, welche der gegebenen Dateideskriptoren bereit zum Lesen oder * Schreiben sind oder ein Fehler fuer sie aufgetreten ist. Dateideskriptoren * die nicht bereit bzw. in einem Fehlerzustand sind, werden aus der Menge * entfernt. * * @param number_fds Nummer des hoechsten Dateideskriptors in einem der * uebergebenen Mengen. * @param readfds Dateideskriptoren, bei denen ueberprueft werden soll, ob sie * zum Lesen bereit sind. * @param writefds Dateideskriptoren, bei denen ueberprueft werden soll, ob sie * zum Schreiben bereit sind. * @param errfds Dateideskriptoren, bei denen ueberprueft werden soll, ob sie * in einem Fehlerzustand sind. * @param timeout Maximales Timeout, das gewartet werden soll, falls kein * Deskriptor bereit ist. NULL fuer dauerhaftes Blockieren. * * @return Anzahl der Dateideskriptoren, die bereit bzw. in einem Fehlerzustand * sind */ int select(int number_fds, fd_set* readfds, fd_set* writefds, fd_set* errfds, struct timeval* timeout); #endif #endif system/include/sys/param.h0000644000175000017500000000316511210574467014634 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_PARAM_H_ #define _SYS_PARAM_H_ // Kuenstliche Begrenzung fuer Programme die sie benutzen wollen #define MAXPATHLEN 4096 #endif //ifndef _SYS_PARAM_H_ system/include/sys/types.h0000644000175000017500000000423411210574467014676 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_TYPES_H_ #define _SYS_TYPES_H_ #include // FIXME #define _NO_LOST_TYPES #include #undef _NO_LOST_TYPES // FIXME: Diese Deklarationen sind nur da, damit das Fake-stat() benutzt werden // kann. typedef unsigned int dev_t; typedef unsigned int ino_t; typedef unsigned int mode_t; typedef unsigned int nlink_t; typedef signed int off_t; typedef unsigned int blksize_t; typedef unsigned int blkcnt_t; typedef long time_t; typedef unsigned long suseconds_t; typedef uint64_t clock_t; typedef uint8_t u_int8_t; typedef uint16_t u_int16_t; typedef uint32_t u_int32_t; typedef uint64_t u_int64_t; typedef unsigned int u_int; typedef unsigned long u_long; #endif //ifndef _SYS_TYPES_H_ system/include/sys/wait.h0000644000175000017500000000335211210574467014476 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_WAIT_H_ #define _SYS_WAIT_H_ #include // TODO #define WIFEXITED(staus) (1) #define WIFSIGNALED(status) (0) #define WEXITSTATUS(status) (status) pid_t wait(int* status); pid_t waitpid(pid_t pid, int* status, int options); #endif //ifndef _SYS_WAIT_H_ system/include/sys/socket.h0000644000175000017500000000727411210574467015031 0ustar tonitoni/* * Copyright (c) 2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _SYS_SOCKET_H_ #define _SYS_SOCKET_H_ #include #include typedef int socklen_t; typedef unsigned int sa_family_t; /** * Beschreibt die Adresse einer Gegenstelle fuer einen Socket. * * Diese struct dient als "Vaterklasse" fuer weitere structs, die fuer die * einzelnen Adressfamilien definiert sind. */ struct sockaddr { /// Adressfamilie (AF_*) sa_family_t sa_family; /// Adressfamilienspezifische Daten char sa_data[]; }; struct sockaddr_storage { sa_family_t ss_family; }; /// Protokolltypen enum { /// Verbindungsoriertierter Socket (z.B. TCP) SOCK_STREAM, }; /// Adressfamilien enum { /// IPv4 AF_INET, }; /// Protokolle fuer IP enum { IPPROTO_TCP, IPPROTO_UDP, }; /** * Erstellt einen Socket * * @param domain Protokollfamilie (AF_*, z.B. AF_INET fuer IPv4) * @param type Protokolltyp (SOCK_*, z.B. SOCK_STREAM fuer TCP) * @param protocol Wird ignoriert; tyndur benutzt immer das Default-Protokoll, * das zu domain und type passt * * @return Socketnummer. Im Fehlerfall -1 und errno wird gesetzt. */ int socket(int domain, int type, int protocol); /** * Verbindet einen Socket (als Client) mit einer Gegenstelle * * @param socket Socket, der verbunden werden soll * @param address Adresse der Gegenstelle (z.B. IP-Adresse/TCP-Port) * @param address_len Laenge der Adresse in Bytes * * @return 0 bei Erfolg. Im Fehlerfall -1 und errno wird gesetzt. */ int connect(int socket, struct sockaddr* address, socklen_t address_len); /** * Liest eine Anzahl Bytes aus einem Socket */ ssize_t recv(int socket, const void *buffer, size_t length, int flags); /** * Sendet eine Nachricht ueber einen Socket */ ssize_t send(int socket, const void *buffer, size_t length, int flags); /** * Liest eine Anzahl Bytes aus einem Socket * * Fuer TCP werden die zusaetzlichen Parameter ignoriert */ ssize_t recvfrom(int socket, const void *buffer, size_t length, int flags, const struct sockaddr* from, socklen_t from_len); /** * Sendet eine Anzahl Bytes ueber einen Socket * * Fuer TCP werden die zusaetzlichen Parameter ignoriert */ ssize_t sendto(int socket, const void *buffer, size_t length, int flags, const struct sockaddr* to, socklen_t to_len); #endif system/include/syscall.h0000644000175000017500000000627011210574467014370 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef SYSCALL_H #define SYSCALL_H #include "types.h" #include "syscallno.h" #include "syscall_structs.h" typedef struct { vaddr_t virt; paddr_t phys; } dma_mem_ptr_t; typedef struct { dword total; dword free; } memory_info_t; //int puts(const char* s); int syscall_putsn(unsigned int n, const char* s); void* mem_allocate(dword size, dword flags); void *mem_allocate_physical(dword size, dword position, dword flags); dma_mem_ptr_t mem_dma_allocate(dword size, dword flags); bool mem_free(void* address, dword size); void mem_free_physical(void* address, dword size); memory_info_t memory_info(void); void* get_phys_addr(void* address); dword create_shared_memory(dword size); void *open_shared_memory(dword id); void close_shared_memory(dword id); bool request_ports(dword port, dword length); bool release_ports(dword port, dword length); void yield(void); void wait_for_rpc(void); void p(void); void v(void); void set_rpc_handler(void (*rpc_handler)(void)); void add_intr_handler(dword intr); void rpc(pid_t pid); int send_message(pid_t pid, dword function, dword correlation_id, dword len, char* data); void wait_for_rpc(void); void v_and_wait_for_rpc(void); pid_t get_pid(void); pid_t get_parent_pid(pid_t pid); pid_t create_process(dword initial_eip, uid_t uid, const char* path, pid_t parent_pid); void destroy_process(void); void init_child_page (pid_t pid, void* dest, void* src, size_t size); void init_child_page_copy (pid_t pid, void* dest, void* src, size_t size); void unblock_process(pid_t pid); char* get_cmdline(void); bool vm86_int(vm86_regs_t *regs, dword *shm); task_info_t* enumerate_tasks(void); qword get_tick_count(void); void syscall_timer(dword timer_id, dword usec); void syscall_debug_stacktrace(pid_t pid); #endif system/include/termios.h0000644000175000017500000001060411210574467014374 0ustar tonitoni/* * Copyright (c) 2008 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _TERMIOS_H_ #define _TERMIOS_H_ #ifndef CONFIG_LIBC_NO_STUBS /// Namen fuer Zeichen in c_cc enum { VINTR, VQUIT, VERASE, VKILL, VEOF, VTIME, VMIN, VSTART, VSTOP, VSUSP, VEOL, VWERASE, VLNEXT, VEOL2, /// Anzahl der Kontrollzeichen NCCS }; // Eingabeflags /// CR => NL bei der Eingabe #define ICRNL (1 << 0) /// NL => CR bei der Eingabe #define INLCR (1 << 1) /// ignoriere CR #define IGNCR (1 << 2) /// TODO #define ISTRIP (1 << 3) /// #define IXON (1 << 4) /// #define BRKINT (1 << 5) /// #define PARMRK (1 << 6) /// #define IGNBRK (1 << 7) /// #define IGNPAR (1 << 8) /// #define INPCK (1 << 9) /// #define IXOFF (1 << 10) // Ausgabeflags /// #define OPOST (1 << 0) // Kontrollflags /// Groesse eines Zeichens in Bit #define CSIZE ((1 << 0) | (1 << 1)) #define CS5 (0 << 0) #define CS6 (1 << 0) #define CS7 (2 << 0) #define CS8 (3 << 0) /// Baudrate #define CBAUD ((1 << 2) | (1 << 3) | (1 << 4) | (1 << 5)) #define B0 (0 << 2) #define B50 (1 << 2) #define B75 (2 << 2) #define B110 (3 << 2) #define B134 (4 << 2) #define B150 (5 << 2) #define B200 (6 << 2) #define B300 (7 << 2) #define B600 (8 << 2) #define B1200 (9 << 2) #define B1800 (10 << 2) #define B2400 (11 << 2) #define B4800 (12 << 2) #define B9600 (13 << 2) #define B19200 (14 << 2) #define B38400 (15 << 2) /// #define CLOCAL (1 << 6) /// #define CREAD (1 << 7) /// #define CSTOPB (1 << 8) /// #define HUPCL (1 << 9) /// #define PARENB (1 << 10) /// #define PARODD (1 << 11) // Lokale Flags /// #define ECHO (1 << 0) /// #define ECHONL (1 << 1) /// Cannonical Input #define ICANON (1 << 2) /// Signale Aktivieren #define ISIG (1 << 3) /// #define IEXTEN (1 << 4) /// #define NOFLSH (1 << 5) /// #define ECHOE (1 << 6) /// #define ECHOK (1 << 7) // Fuer tcflush /// Flush pending input. Flush untransmitted output. #define TCIFLUSH 0 /// Flush both pending input and untransmitted output. #define TCIOFLUSH 1 /// Flush untransmitted output. #define TCOFLUSH 2 // Fuer tcsetattr /// Change attributes immediately. #define TCSANOW 0 /// Change attributes when output has drained. #define TCSADRAIN 1 /// Change attributes when output has drained; also flush pending input. #define TCSAFLUSH 2 typedef unsigned int speed_t; typedef unsigned int tcflag_t; typedef char cc_t; struct termios { tcflag_t c_iflag; tcflag_t c_oflag; tcflag_t c_cflag; tcflag_t c_lflag; cc_t c_cc[NCCS]; }; int tcgetattr(int file, struct termios* tios); int tcsetattr(int fd, int optional_actions, const struct termios* tios); int tcflush(int fd, int queue_selector); speed_t cfgetospeed(const struct termios* tios); #endif #endif system/include/time.h0000644000175000017500000000444011210574467013651 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _TIME_H_ #define _TIME_H_ #include #include struct tm { int tm_sec; /// Sekunden 0-60 int tm_min; /// Minuten 0-59 int tm_hour; /// Stunde 0-23 int tm_mday; /// Tag 1-31 int tm_mon; /// Monat 1-12 int tm_year; /// Jahre seit 1900 int tm_wday; /// Wochentag 0-6 (Wobei 0 = Sonntag) int tm_yday; /// Tag des Jahres 0-365 int tm_isdst; /// Todo }; time_t time(time_t* t); #ifndef CONFIG_LIBC_NO_STUBS /// Datum und Uhrzeit in einen String umwandeln char* ctime(const time_t* time_ptr); /// Zeit und Datum als String char* asctime(const struct tm* time_ptr); /// Timestamp in tm-Struct einfuellen struct tm* gmtime(const time_t* time_ptr); struct tm* localtime(const time_t* time_ptr); time_t mktime(struct tm* time_ptr); #endif #endif system/include/unistd.h0000644000175000017500000001113511210574467014220 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _UNISTD_H_ #define _UNISTD_H_ #include #include /// Nummer der des Posix-Deskriptors fuer stdin #define STDIN_FILENO 0 /// Nummer der des Posix-Deskriptors fuer stdout #define STDOUT_FILENO 1 /// Nummer der des Posix-Deskriptors fuer stderr #define STDERR_FILENO 2 /// Fuer ed #define _PC_PATH_MAX 4096 #ifndef CONFIG_LIBC_NO_STUBS int isatty(int desc); #endif /// PID des aktuellen Prozesses auslesen pid_t getpid(void); /// PID des Elternprozesses auslesen pid_t getppid(void); /// Hardlink erstellen int link(const char* oldpath, const char* newpath); /// Aktuelles Arbeitsverzeichnis auslesen char* getcwd(char* dest, size_t size); /// Arbeitsverzeichnis wechseln int chdir(const char* path); /// Prozess sofort und ohne leeren der Buffer loeschen void _exit(int result); /// Eine Datei loeschen int unlink(const char* filename); /// Ein Verzeichnis loeschen int rmdir(const char* dirname); /// Ziel eines symbolischen Links auslesen ssize_t readlink(const char* path, char* buf, size_t bufsize); // Makros fuer access() #define F_OK 1 #define R_OK 2 #define W_OK 4 #define X_OK 8 /// Prueft ob der aktuelle Prozess auf die Datei zugreiffen darf int access(const char *pathname, int mode); /// Eigentuemer einer Datei aendern int chown(const char* path, uid_t owner, gid_t group); /// Gegebene Anzahl von Sekunden warten unsigned int sleep(unsigned int sec); // UNIX-Dateifunktionen: ACHTUNG: Emuliert Unix-Dateien => // Geschwindigkeitsbremse! /// Daten aus einer Datei auslesen ssize_t read(int fd, void* buffer, size_t size); /// Daten in eine Datei schreiben ssize_t write(int fd, const void* buffer, size_t size); /// Datei-Zeiger verschieben off_t lseek(int fd, off_t offset, int whence); /// Unix-Datei schliessen int close(int fd); /// Dateinamen fuer temporaere Datei erstellen char* mktemp(char* template); /// Temporaere Datei anlegen int mkstemp(char* template); /// In eine Datei mit gegebenem Offset lesen ssize_t pread(int fd, void *buf, size_t count, off_t offset); /// In eine Datei mit gegebenem Offset schreiben ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); /// Timer setzen nach dem ein SIGALARM gesendet werden soll long alarm(long seconds); #ifndef CONFIG_LIBC_NO_STUBS /// Prozess klonen pid_t fork(void); /// Pipe einrichten int pipe(int mode[2]); /// Ersetzt das aktuelle Prozessimage int execvp(const char* path, char* const argv[]); /// Dateideskriptor duplizieren int dup(int fd); /// Dateideskriptor duplizieren int dup2(int fd, int new_fd); /// Warten bis zeit abgelaufen ist, oder Signal eintrifft unsigned int sleep(unsigned int seconds); /// Datei umbenennen oder verschieben int rename(const char* path_old, const char* path_new); /// Gibt die aktuelle Benutzer-ID zurueck uid_t getuid(void); /// Gibt die effektive Benutzer-ID zurueck uid_t geteuid(void); /// Gibt die aktuelle Gruppen-ID zurueck gid_t getgid(void); // /// Gibt die effektive Gruppen-ID zurueck gid_t getegid(void); /// Gibt den Hostnamen dieses Rechners zurueck #include static inline int gethostname(char* buf, size_t len) { strncpy(buf, "tyndur", len); return 0; } #endif #endif system/include/utime.h0000644000175000017500000000336511210574467014043 0ustar tonitoni/* * Copyright (c) 2006-2007 tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _UTIME_H_ #define _UTIME_H_ #include struct utimbuf { time_t actime; /// Zugriffszeit time_t modtime; /// Modifikationszeit }; /// Aendert Zugriffs- und Modifikationszeit einer Datei int utime(const char* filename, const struct utimbuf* buffer); #endif // system/include/video/0000755000175000017500000000000011210574467013646 5ustar tonitonisystem/include/video/bitmap.h0000644000175000017500000000446211210574467015301 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef VIDEO_BITMAP_H #define VIDEO_BITMAP_H #include "types.h" #include "collections.h" typedef struct bitmap_t { dword width; dword height; dword bpp; byte *data; } bitmap_t; typedef struct sprite_t { dword bpp; dword span_count; sword *span_data; dword pixel_count; byte *pixel_data; } sprite_t; void draw_dot_4p(bitmap_t bitmap, int x, int y, byte c); void convert_bitmap_to_4(bitmap_t *bitmap); void convert_bitmap(bitmap_t *bitmap, dword bpp); sprite_t convert_bitmap_to_sprite(bitmap_t bitmap, dword transparent); void bitmap_clear(bitmap_t bitmap, dword color); void bitmap_draw_rect(bitmap_t bitmap, dword color, int x, int y, dword width, dword height); void bitmap_draw_bitmap(bitmap_t bitmap, bitmap_t bitmap2, int x, int y, dword width, dword height); void bitmap_draw_sprite(bitmap_t bitmap, sprite_t sprite, int x, int y); #endif system/include/video/color.h0000644000175000017500000000330111210574467015132 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef VIDEO_COLOR_H #define VIDEO_COLOR_H #include "types.h" byte convert_color_24_to_8(dword color); byte convert_color_24_to_4(dword color); dword convert_color_8_to_24(byte color); dword convert_color_4_to_24(byte color); #endif system/include/video/commands.h0000644000175000017500000000345511210574467015627 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef VIDEO_COMMANDS_H #define VIDEO_COMMANDS_H #define VIDEO_REGISTER 0 #define VIDEO_UNREGISTER 1 #define VIDEO_INIT 2 #define VIDEO_CLOSE 3 #define VIDEO_SET_RESOLUTION 4 #define VIDEO_GET_RESOLUTION 5 #define VIDEO_GET_RESOLUTION_LIST 6 #define VIDEO_GET_PALETTE 7 #define VIDEO_NEED_UPDATE 8 #define VIDEO_NEED_PARTIAL_UPDATE 9 #endif system/include/video/video.h0000644000175000017500000000425211210574467015130 0ustar tonitoni/* * Copyright (c) 2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Mathias Gottschlag. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef VIDEO_H #define VIDEO_H #include "types.h" typedef struct resolution_t { dword width; dword height; dword bpp; } resolution_t; typedef struct resolution_list_t { dword res_count; resolution_t *resolutions; } resolution_list_t; typedef struct palette_t { dword color_count; dword *colors; } palette_t; int video_init(char *driver_name); void video_close(void); void *set_resolution(dword width, dword height, dword bpp); resolution_t video_get_resolution(void); resolution_list_t video_get_resolutions(void); palette_t video_get_palette(void); void *get_screen_buffer(void); int video_update_screen(void); int video_update_screen_partially(int x, int y, int width, int height); #endif system/include/wchar.h0000644000175000017500000004764611210574467014036 0ustar tonitoni/* * Copyright (c) 2008-2009 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _WCHAR_H_ #define _WCHAR_H_ #include #include #define WEOF ((wint_t) -1) /** * Sollte theoretisch alle Werte von wchar_t und zusaetzlich WEOF annehmen * koennen. */ typedef wchar_t wint_t; /** * Repraesentiert den internen Shift-Status einer Funktion, brauchen wir mit * UTF-8 nicht. */ typedef int mbstate_t; /* WSTRINGS */ /** * Reentrante Variante von mbtowc, bei uns mit UTF-8 aber identisch. * @see mbtowc */ size_t mbrtowc(wchar_t* wc, const char* s, size_t len, mbstate_t* ps); /** * Reentrante Variante von wctomb, bei uns mit UTF-8 aber identisch. * @see wctomb */ size_t wcrtomb(char* buf, wchar_t wc, mbstate_t* ps); /** * Reentrante Variante von wcstombs. Der einzige wesentliche Unterschied fuer * uns mit UTF8 ist, dass *wcs so aktualisiert wird, dass es bei einem Abbruch, * sei es weil buf zu klein ist oder weil ein ungueltiges Zeichen angetroffen * wurde, auf das betreffende Zeichen zeigt. Wird der String erfolgreich * verarbeitet, wird *wcs auf NULL gesetzt. * @see wcstombs */ size_t wcsrtombs(char* buf, const wchar_t** wcs, size_t len, mbstate_t* ps); /** * Reentrante Variante von mbstowcs. Der einzige wesentliche Unterschied fuer * uns mit UTF8 ist, dass *str so aktualisiert wird, dass es bei einem Abbruch, * sei es weil buf zu klein ist oder weil ein ungueltiges Zeichen angetroffen * wurde, auf das betreffende Zeichen zeigt. Wird der String erfolgreich * verarbeitet, wird *str auf NULL gesetzt. * @see mbstowcs */ size_t mbsrtowcs(wchar_t* buf, const char** str, size_t len, mbstate_t* ps); /** * Anzahl der Spalten, die ein Zeichen in Anspruch nimmt, errechnen. Fuer c = 0 * wird 0 zuruekgegeben. Falls es sich nicht um ein druckbares Zeichen handelt, * wird -1 zurueckgegeben. * * @param wc Das breite Zeichen * * @return Anzahl Spalten, oder -1 wenn das Zeichen nicht druckbar ist. */ int wcwidth(wchar_t wc); /** * Anzahl der Spalten, die ein String aus breiten Zeichen in Anspruch nimmt, * errechnen. Wird ein nicht druckbares Zeichen erkannt, wird abgebrochen. * * @see wcwidth * @param wcs Zeiger auf das erste Zeichen * @param len Anzahl der Zeichen * * @return Anzahl der Zeichen oder -1 im Fehlerfall. */ int wcswidth(const wchar_t* wcs, size_t len); /** * Einen String aus breiten Zeichen kopieren, das ist das Pendant zu stpcpy. Die * beiden Strings duerfen sich nicht ueberlappen. Das abschliessende L'0' wird * mitkopiert. * * @see stpcpy * @see wcscpy * @see wcpncpy * @param dst Zeiger auf die Speicherstelle in die der Kopiertestring abgelegt * werden soll. Dabei muss vom Aufrufer sichergestellt werden, dass * dort mindestens speicher fuer wcslen(src) + 1 breite Zeichen ist. * @param src * * @return Zeiger auf das Ende (L'0') des Zielstrings. */ wchar_t* wcpcpy(wchar_t* dst, const wchar_t* src); /** * String aus breiten Zeichen kopieren. Dabei werden hoechstens len Zeichen * kopiert. Sind in src weniger als len Zeichen wird dst mit L'\0' aufgefuellt. * Ist src laenger als oder gleich lang wie len wird der String in dst nich * nullterminiert, der Rueckgabewert zeigt also nich auf ein L'\0'. Die beiden * Speicherbereiche duerfen sich nicht ueberlappen. Diese Funktion ist das * Pendant zu strncpy. * * @see strncpy * @see wcpncpy * @param dst Zeiger auf den Speicherbereich der len breite Zeichen aufnehmen * kann. Es werden genau len Zeichen hineingeschrieben. * @param src Quellstring * @param len Anzahl der Zeichen, die in dst geschrieben werden sollen. * * @return Zeiger auf das letzte geschriebene Byte, also immer dst + len - 1 */ wchar_t* wcpncpy(wchar_t* dst, const wchar_t* src, size_t len); /** * Zwei Strings aus breiten Zeichen ohne Unterscheidung von * Gross-/Kleinschreibung vergleichen inklusive abschliessendes L'\0'. Diese * Funktion ist das Pendant zu strcasecmp. * * @see strcasecmp * @see wcscmp * @see towlower * @param wcs1 Erster String * @param wcs2 Zweiter String * * @return 0 wenn die Strings gleich sind, oder <0 wenn das erste * ungleiche Zeichen in wcs1 kleiner ist als das in wcs2, ist es * groesser >0. */ int wcscasecmp(const wchar_t* wcs1, const wchar_t* wcs2); /** * Zwei Strings aus breiten Zeichen aneinanderhaengen. Dabei wird der Inhalt von * src inklusive dem abschliessenden L'\0' ans Ende von dst kopiert. Der * Aufrufer muss sicherstellen, dass nach dst genug Speicher frei ist. Diese * Funktion ist das Pendant zu strcat. * * @see strcat * @see wcsncat * @param dst Zeiger auf den String an dessen Ende src angehaengt werden soll. * @param src Zeiger auf den String der an dst angehaengt werden soll. * * @return dst */ wchar_t* wcscat(wchar_t* dst, const wchar_t* src); /** * Erstes Vorkommen eines breiten Zeichens aus einem String aus breiten Zeichen * heraussuchen. Diese Funktion ist das Pendant zu strchr. * * @see strchr * @param wcs Zeiger auf den String in dem gesucht werden soll. * @param wc Zeichen das gesucht werden soll. * * @return Zeiger auf das erste gefundene Zeichen oder NULL wenn keines gefunden * wurde. */ wchar_t* wcschr(const wchar_t* wcs, wchar_t wc); /** * Zwei Strings aus breiten Zeichen inklusive dem abschliessenden L'\0' * vergleichen. Diese Funktion ist das Pendant zu strcmp. * * @param wcs1 Erster String * @param wcs2 Zweiter String * * @return 0 wenn die Strings gleich sind, oder <0 wenn das erste * ungleiche Zeichen in wcs1 kleiner ist als das in wcs2, ist es * groesser >0. */ int wcscmp(const wchar_t* wcs1, const wchar_t* wcs2); /** * TODO */ int wcscoll(const wchar_t* wcs1, const wchar_t* wcs2); /** * String aus Breiten Zeichen inklusive abschliessendem L'\0' kopieren. Der * Aufrufer hat sicherzustellen, dass dst genug Platz bietet. Die beiden Strings * duerfen sich nicht uberlappen. Diese Funktion ist das Pendant zu strcpy. * * @see strcpy * @see wcsncpy * @see wcpcpy * @param dst Zeiger auf den Speicherbereich in dem die Kopie abgelegt werden * soll. * @param src Zeiger auf den String der kopiert werden soll. * * @return dst */ wchar_t* wcscpy(wchar_t* dst, const wchar_t* src); /** * String aus breiten Zeichen nach einem Vorkommen eines Zeichens aus set * durchsuchen. Diese Funktion ist das Pendant zu strcspn. * * @see strcspn * @see wcsspn * @param wcs Zeiger auf den String, dar durchsucht werden soll * @param set Zeiger auf den String mit den zu suchenden Zeichen. * * @return Offset vom Anfang des Strings oder wcslen(wcs) wenn kein Vorkommen * gefunden wurde. */ size_t wcscspn(const wchar_t* wcs, const wchar_t* set); /** * String aus breiten Zeichen in einen neu allozierten Speicherbereich kopieren. * Diese Funktion ist das Pendant zu strdup. * * @see strdup * @param wcs Zeiger auf den zu kopierenden String * * @return Zeiger auf die Kopie. Muss vom Aufrufer freigegeben werden. Im * Fehlerfall NULL. */ wchar_t* wcsdup(const wchar_t* wcs); /** * Kopiert src an das Ende des Strings dst. Dabei wird der String dst auf * maximal len - 1 Zeichen und L'\0' verlaengert, ausser wenn len == 0. * * @see wcsncat * @param dst Zeiger auf String an den src angehaengt werden soll * @param src Zeiger auf String der an dst angehaengt werden soll * @param len Anzahl Zeichen auf die dst Maximal verlaengert werden darf * inklusiv L'\0.' * * @return wcslen(urspruengliches dst) + wcslen(src); Wenn der Rueckgabewert >= * len ist, wurde src nich vollstaendig kopiert. */ size_t wcslcat(wchar_t* dst, const wchar_t* src, size_t len); /** * Kopiert einen String aus breiten Zeichen. Dabei werden maximal len - 1 * Zeichen kopiert, und dst wird immer mit L'\0' terminiert, wenn len != 0 ist. * * @see wcscpy * @param dst Zeiger auf den Speicherbereich in dem die Kopie abgelegt werden * soll. * @param src Zeiger auf den Quellstring * @param len Anzahl der Zeichen inklusiv abschliessendes L'\0', die maximal in * dst geschrieben werden sollen. * * @return wcslen(src); Wenn der Rueckgabewert <= len ist, wurde src nicht * vollstaendig kopiert. */ size_t wcslcpy(wchar_t* dst, const wchar_t* src, size_t len); /** * Laenge eines Strings aus breiten Zeichen bestimmen. Dabei werden die Zeichen * gezaehlt, bis ein abschliessendes L'\0' gefunden wird. Das L'\0' wird nicht * mitgezaehlt. Diese Funktion ist das Pendant zu strlen. * * @see strlen * @param wcs Zeiger auf den String * * @return Laenge des Strings in Zeichen */ size_t wcslen(const wchar_t* wcs); /** * Zwei Strings aus breiten Zeichen ohne Unterscheidung von * Gross-/Kleinschreibung vergleichen. Dabei werden maximal die ersten len * Zeichen von Beiden Strings verglichen. Diese Funktion ist das Pendant zu * strncasecmp. * * @see strncasecmp * @see wcscasecmp * @param wcs1 Erster String * @param wcs2 Zweiter String * @param len Anzahl der Zeichen, die maximal verglichen werden sollen, wenn * vorher kein L'\0' gefunden wird. * * @return 0 wenn die beiden Strings gleich sind, < 0 wenn das Zeichen in wcs2 * groesser ist als das in wcs1 und > 0 wenn das Zeichen in wcs1 * groesser ist als das in wcs2. */ int wcsncasecmp(const wchar_t* wcs1, const wchar_t* wcs2, size_t len); /** * Zwei Strings aus breiten Zeichen aneinanderhaengen. Dabei werden maximal len * Zeichen aus src kopiert. Der Aufrufer muss sicherstellen, dass nach dem * String, auf den dst zeigt, noch mindestens len + 1 Zeichen platz haben. dst * wird in jedem Fall mit L'\0' terminiert. Diese Funktion ist das Pendant zu * strncat. * * @see strncat * @see wcscat * @param dst String an den src angehaengt werden soll * @param src String der an dst angehaengt werden soll * @param len Anzahl der Zeichen, die maximal kopiert werden aus src * * @return dst */ wchar_t* wcsncat(wchar_t* dst, const wchar_t* src, size_t len); /** * Zwei Strings aus breiten Zeichen vergleichen. Dabei werden maximal len * Zeichen verglichen. Diese Funktion ist das Pendant zu strncmp. * * @see strncmp * @see wcscmp * @param wcs1 Erster String * @param wcs2 Zweiter String * @param len Anzahl der Zeichen, die maximal verglichen werden sollen, wenn * vorher kein abschliessendes L'\0' angetroffen wurde. * * @return 0 wenn die Strings gleich sind, oder <0 wenn das erste * ungleiche Zeichen in wcs1 kleiner ist als das in wcs2, ist es * groesser >0. */ int wcsncmp(const wchar_t* wcs1, const wchar_t* wcs2, size_t len); /** * String aus breiten Zeichen kopieren. Dabei werden maximal len Zeichen * kopiert. Die restlichen Zeichen im Puffer werden mit L'\0' gefuellt. Ist src * gleich lang wie oder laenger als len, wird dst nicht mit L'\0' terminiert. * Die beiden Strings duerfen sich nicht ueberlappen. Diese Funktion ist das * Pendant zu strncpy. * * @see strncpy * @see wcscpy * @param src String der kopiert werden soll * @param dst Zeiger auf den Speicherbereich in den src kopiert werden soll * @param len Anzahl der Zeichen, die maximal kopiert werden sollen * * @return dst */ wchar_t* wcsncpy(wchar_t* dst, const wchar_t* src, size_t len); /** * Laenge eines Strings aus breiten Zeichen errechnen. Dabei werden maximal max * Zeichen gezaehlt. Diese Funktion ist das Pendant zu strnlen. * * @see strnlen * @see wcslen * @param wcs String * @param max Anzahl der Zeichen, die maximal gezaehlt werden sollen * * @return Anzahl der Zeichen ohne abschliessendes L'\0' */ size_t wcsnlen(const wchar_t* wcs, size_t max); /** * Erstes vorkommen eines breiten Zeichens aus set im String aus breiten Zeichen * wcs suchen. Diese Funktion ist das Pendant zu strpbrk. * * @see strpbrk * @see wcschr * @param wcs String der durchsucht werden soll * @param set String aus Zeichen nach denen gesucht werden soll * * @return Zeiger auf die Position an der ein Zeichen gefunden wurde oder NULL * falls keines gefunden wurde. */ wchar_t* wcspbrk(const wchar_t* wcs, const wchar_t* set); /** * Letztes Vorkommen eines breiten Zeichens in einem String aus breiten Zeichen * suchen. Diese Funktion ist das Pendant zu strrchr. * * @see strrchr * @see wcschr * @param wcs String der durchsucht werden soll * @param wc Zeichen das gesucht werden soll * * @return Zeiger auf das letzte gefundene Vorkommen, oder NULL falls das * Zeichen nicht gefunden wurde. */ wchar_t* wcsrchr(const wchar_t* wcs, wchar_t wc); /** * Durchsucht einen String aus breiten Zeichen nach dem ersten Zeichen das nicht * in set vorkommt. Diese Funktion ist das Pendant zu strspn. * * @see strspn * @see wcschr * @param wcs String der durchsucht werden soll * @param set Zeichen die zugelassen sind * * @return Offset des ersten Zeichens das nicht in set vorkommt, oder * wcslen(wcs) falls alle Zeichen in set enthalten sind. */ size_t wcsspn(const wchar_t* wcs, const wchar_t* set); /** * Erstes Vorkommen des Breiten Strings find in wcs suchen. Diese Funktion ist * das Pendant zu strstr. * * @see strstr * @see wcschr * @param wcs String der durchsucht werden soll * @param find String der gesucht werden soll * * @return Zeiger auf das erste Vorkommen in wcs oder NULL falls keines gefunden * wurde. */ wchar_t* wcsstr(const wchar_t* wcs, const wchar_t* find); /** * String aus breiten Zeichen in Tokens aufspalten, die durch die in delim * angegebenen Zeichen getrennt werden. wcs wird dabei veraendert. Ist wcs != * NULL beginnt die suche dort, sonst wird bei *last begonnen. *last wird * jeweils auf den Anfang des naechsten Token gesetzt, oder auf NULL, wenn das * Ende erreicht wurde. * Diese Funktion ist das Pendant zu strtok. * * @see strtok * @param wcs Zeiger auf das Zeichen bei dem die Zerlegung in Tokens begonnen * werden soll, oder NULL, wenn der Wert von *last genommen werden * soll. * @param delim Zeichen die zwei Tokens voneinander trennen koennen * @param last Zeiger auf die Speicherstelle an der die Funktion die Position * des naechsten token speichern kann fuer den internen Gebrauch, * um beim Naechsten Aufruf mit wcs == NULL das naechste Token * zurueck geben zu koennen. * * @return Zeiger auf das aktuelle Token, oder NULL wenn keine Tokens mehr * vorhanden sind. */ wchar_t* wcstok(wchar_t* wcs, const wchar_t* delim, wchar_t** last); /** * Speicherbereich aus breiten Zeichen nach einem bestimmten Zeichen * durchsuchen. Diese Funktion ist das Pendant zu memchr. * * @see memchr * @see wcschr * @param wcs Zeiger auf den Speicherbereich * @param wc Zu suchendes Zeichen * @param len Laenge des Speicherbereichs * * @return Zeiger auf das gefundene Zeichen oder NULL falls keines gefunden * wurde. */ wchar_t* wmemchr(const wchar_t* wcs, wchar_t wc, size_t len); /** * Zwei Speicherbereiche aus breiten Zeichen vergleichen. Diese Funktion ist das * Pendant zu memcmp. * * @see memcmp * @see wcscpm * @see wcsncmp * @param wcs1 Zeiger auf den ersten Speicherbereich * @param wcs2 Zeiger auf den zweiten Speicherbereich * @param len Laenge der beiden Speicherbereiche * * @return 0 wenn die beiden Speicherbereiche gleich sind, < 0 wenn das erste * unterschiedliche Zeichen in wcs1 kleiner ist als das * Korrespondierende in wcs2 oder > 0 wenn es groesser ist. */ int wmemcmp(const wchar_t* wcs1, const wchar_t* wcs2, size_t len); /** * Speicherbereich aus breiten Zeichen kopieren. Die beiden Speicherbereiche * duerfen sich nicht ueberlappen. Diese Funktion ist das Pendant zu memcpy. * * @see memcpy * @see wcsncpy * @see wcscpy * @param dst Speicherbereich in den kopiert werden soll * @param src Speicherbereich der kopiert werden soll * @param len Laenge der Speicherbereiche * * @return dst */ wchar_t* wmemcpy(wchar_t* dst, const wchar_t* src, size_t len); /** * Speicherbereich aus breiten Zeichen kopieren. Die beiden Speicherbereiche * duerfen sich ueberlappen. Diese Funktion ist das Pendant zu memcpy. * * @see memmove * @see wmemcpy * @param dst Speicherbereich in den kopiert werden soll * @param src Speicherbereich der kopiert werden soll * @param len Laenge der Speicherbereiche * * @return dst */ wchar_t* wmemmove(wchar_t* dst, const wchar_t* src, size_t len); /** * Speicherbereich aus breiten Zeichen mit einem bestimmten Zeichen ausfuellen. * Diese Funktion ist das pendant zu memset. * * @see memset * @param wcs Zeiger auf den Speicherbereich * @param wc Zeichen mit dem der Speicherbereich gefuellt werden soll * @param len Laenge des Speicherbereichs * * @return wcs */ wchar_t* wmemset(wchar_t* wcs, wchar_t wc, size_t len); /* WSTDIO */ /** * Breites Zeichen aus einer Datei lesen. * * @param stream Die geoeffnete Datei * * @return Das gelesene Zeichen oder WEOF im Fehlerfall. */ wint_t fgetwc(FILE* stream); /** * Wie fgetwc, mit dem Unterschied, dass getwc als Makro implementiert werden * darf, das den Parameter mehrmals auswertet * * @see fgetwc */ #define getwc(stream) fgetwc(stream) /** * Breites Zeichen von der Standardeingabe lesen. * * @see fgetwc */ wint_t getwchar(void); /** * Ein breites Zeichen in eine Datei schreiben, dabei wird das Zeichen * entsprechend codiert. * * @param wc Das zu schreibende Zeichen * @param stream Die geoeffnete Datei * * @return Das geschriebene Zeichen oder WEOF im Fehlerfall */ wint_t fputwc(wchar_t wc, FILE* stream); /** * Wie fputwc, mit dem Unterschied, dass putwc als Makro implementiert werden * darf, das seine Parameter mehrmals auswertet. * * @see fputwc */ #define putwc(wc, stream) fputwc(wc, stream) /** * Breites Zeichen auf die Standardausgabe schreiben * * @see fputwc * @param wc Das zu schreibende Zeichen * * @return Das geschriebene Zeichen oder WEOF im Fehlerfall */ wint_t putwchar(wchar_t wc); /** * Einen String aus breiten Zeichen in den angegebenen Stream schreiben. * * @param wcs Zeiger auf den String aus breiten Zeichen * @param stream Die geoeffnete Datei * * @return Bei Erfolg > 0, im Fehlerfall -1 */ int fputws(const wchar_t* wcs, FILE* stream); #endif //ifndef _WCHAR_H_ system/include/page.h0000644000175000017500000000470111210574467013627 0ustar tonitoni/* * Copyright (c) 2006-2007 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Burkhard Weseloh. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _PAGE_H_ #define _PAGE_H_ #define PAGE_SHIFT 12 #define PAGE_SIZE (1 << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE - 1)) #define PAGE_DIRECTORY_LENGTH 1024 #define PAGE_TABLE_LENGTH 1024 #define PGDIR_SHIFT 22 // TODO: Muss das Kernelzeug wirklich hier sein? :/ // Die Adresse, an der der Kernel-Adressraum beginnt #define KERNEL_MEM_START 0x00000000 #define KERNEL_MEM_END 0x40000000 #define PAGETABLES_MEM_START 0x3fc00000 #define PAGETABLES_MEM_END 0x40000000 #define USER_MEM_START 0x40000000 #define USER_MEM_END 0xffffffff #define USER_STACK_START 0 #define USER_STACK_SIZE 0x1000 // Die Anzahl der Pages, die von n Bytes belegt werden. #define NUM_PAGES(n) ((((n) + ~PAGE_MASK) & PAGE_MASK) / PAGE_SIZE) // Rundet eine Adresse auf das kleinste Vielfache von PAGE_SIZE > n auf #define PAGE_ALIGN_ROUND_UP(n) (((n) + ~PAGE_MASK) & PAGE_MASK) // Rundet eine Adresse auf das grï¿œte Vielfache von PAGE_SIZE < n ab #define PAGE_ALIGN_ROUND_DOWN(n) ((n) & PAGE_MASK) #endif system/include/stddef.h0000644000175000017500000000325311210574467014165 0ustar tonitoni/* * Copyright (c) 2006-2007 tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STDDEF_H_ #define _STDDEF_H_ #include #include #define NULL (void*) 0 typedef __SIZE_TYPE__ size_t; typedef int ptrdiff_t; typedef int32_t wchar_t; #endif system/include/stdint.h0000644000175000017500000000455111210574467014223 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Antoine Kaufmann. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _STDINT_H_ #define _STDINT_H_ typedef signed char int8_t; typedef signed short int16_t; typedef signed int int32_t; typedef signed long long int64_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; typedef int8_t int_least8_t; typedef int32_t int_least16_t; typedef int32_t int_least32_t; typedef int64_t int_least64_t; typedef uint8_t uint_least8_t; typedef uint32_t uint_least16_t; typedef uint32_t uint_least32_t; typedef uint64_t uint_least64_t; typedef int8_t int_fast8_t; typedef int32_t int_fast16_t; typedef int32_t int_fast32_t; typedef int64_t int_fast64_t; typedef uint8_t uint_fast8_t; typedef uint32_t uint_fast16_t; typedef uint32_t uint_fast32_t; typedef uint64_t uint_fast64_t; typedef unsigned int uintptr_t; typedef long int intptr_t; typedef int64_t intmax_t; typedef uint64_t uintmax_t; #endif system/include/types.h0000644000175000017500000000446311210574467014064 0ustar tonitoni/* * Copyright (c) 2006 The tyndur Project. All rights reserved. * * This code is derived from software contributed to the tyndur Project * by Kevin Wolf. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _TYPES_H_ #define _TYPES_H_ #include typedef signed int ssize_t; typedef void * paddr_t; typedef void * vaddr_t; typedef unsigned int pid_t; typedef unsigned int uid_t; typedef unsigned int gid_t; #endif // FIXME Um pid_t aus sys/types holen zu koennen #ifndef _NO_LOST_TYPES // Schutz vor mehrfachen Deklarationen #ifndef _LOST_TYPES_ #define _LOST_TYPES_ #ifndef __cplusplus // FIXME: HACK #ifdef TRUE #undef TRUE #endif #ifdef FALSE #undef FALSE #endif typedef enum { FALSE = 0, TRUE } bool; #endif typedef unsigned char byte; typedef unsigned short word; typedef unsigned int dword; typedef unsigned long long qword; typedef signed char sbyte; typedef signed short sword; typedef signed int sdword; typedef signed long long sqword; typedef qword timestamp_t; typedef dword syscall_id_t; #endif // ndef _LOST_TYPES_ #endif // ndef _NO_LOST_TYPES