cscope 16 $HOME/dev/elilo 0000729622 @alloc.c 26  ~ 27  ~ 29  ~"–žo.h " 31  #NALLOC 512 ) 33 ’um { mALLOC_POOL , mALLOC_PAGES } t®loc_ty³s_t ; 35  s_®loc_’Œy { 36  _®loc_’Œy * mÃxt ; 37  _®loc_’Œy * m´ev ; 38 VOID * maddr ; 39 UINTN msize ; 40 ®loc_ty³s_t mty³ ; 41 } t®loc_’Œy_t ; 43  ®loc_’Œy_t g®locs [ NALLOC ]; 44  ®loc_’Œy_t * gä“_®locs , * gu£d_®locs ; 46  VOID * gkmem_addr ; 47  UINTN gkmem_pgút ; 52 INTN 53 $®loc_š™ ( VOID ) 55 UINTN i ; 57  i =0; i < NALLOC -1; i++) { 58 ®locs [ i ]. Ãxt =‡llocs+i+1; 60 ®locs [ i ]. Ãxt = NULL ; 62 ä“_®locs = ®locs ; 63 u£d_®locs = NULL ; 66 } } 68  VOID 69 $®loc_add ( VOID * addr , UINTN size , ®loc_ty³s_t ty³ ) 71 ®loc_’Œy_t * ®loc ; 74 ®loc = ä“_®locs ; 75 ä“_®locs = f»e_®locs-> Ãxt ; 77 ®loc -> ´ev = NULL ; 78 ®loc -> Ãxt = u£d_®locs ; 79 ®loc -> addr =‡ddr; 80 ®loc -> ty³ =ype; 81 ®loc -> size = size; 84 ià( u£d_®locs èu£d_®locs-> ´ev = ®loc ; 86 u£d_®locs = ®loc ; 87 } } 89 VOID * 90 $®loc ( UINTN size , EFI_MEMORY_TYPE ty³ ) 92 EFI_STATUS ¡©us ; 93 VOID * tmp = 0; 96 ià( ä“_®locs =ð NULL ) { 97 `ERR_PRT (( L "allocator:‚o more slots\n")); 98  NULL ; 101 ià( ty³ =ð0èty³ = EfiLßd”D©a ; 103 ¡©us = BS -> `AÎoÿ‹PoÞ ( ty³ , size , & tmp ); 104 ià( `EFI_ERROR ( ¡©us )) { 105 `ERR_PRT (( L "®loÿtÜ: AÎoÿ‹PoÞ(%d, %d, 0x%xèçžed (%r)\n", ty³ , size , ¡©us )); 106  NULL ; 108 `®loc_add ( tmp , size , ALLOC_POOL ); 110 `DBG_PRT (( L "®loc:‡Îoÿ‹d %d by‹ @[0x%lx-0x%lx]\n", size , tmp ,mp+size)); 112  tmp ; 113 } } 118 VOID * 119 $®loc_·ges ( UINTN pgút , EFI_MEMORY_TYPE ty³ , EFI_ALLOCATE_TYPE wh”e , VOID * addr ) 121 EFI_STATUS ¡©us ; 122 EFI_PHYSICAL_ADDRESS tmp = (EFI_PHYSICAL_ADDRESS) addr ; 125 ià( ä“_®locs =ð NULL ) { 126 `ERR_PRT (( L "allocator:‚o more slots\n")); 127  NULL ; 130 ¡©us = BS -> `AÎoÿ‹Pages ( wh”e , ty³ , pgút , & tmp ); 131 ià( `EFI_ERROR ( ¡©us )) { 132 `VERB_PRT (1, ( L "®loÿtÜ: AÎoÿ‹Pages(%d, %d, %d, 0x%lxèçžed (%r)\n", wh”e , ty³ , pgút , tmp , ¡©us )); 133  NULL ; 136 addr = ( VOID *) tmp ; 138 `®loc_add ( addr , pgút , ALLOC_PAGES ); 140 `DBG_PRT (( L "®loÿtÜ:‡Îoÿ‹d %d…age @0x%lx\n", pgút , tmp )); 142  addr ; 143 } } 148 VOID 149 $ä“ ( VOID * addr ) 151 ®loc_’Œy_t * p ; 154  p = u£d_®locs ;… ;… =…-> Ãxt ) { 155 ià( p -> addr =ðaddrè found ; 158 `VERB_PRT (1, ( L "®loÿtÜ: inv®id f»@ 0x%lx\n", addr )); 160 found : 161 `DBG_PRT (( L "free: %s @0x%lx size=%ld\n", 162 p -> ty³ =ð ALLOC_POOL ? L "Pool": L"Page", 163 addr , p -> size )); 165 ià( p -> ty³ =ð ALLOC_POOL ) 166 BS -> `F»ePoÞ ( addr ); 168 BS -> `F»ePages (( EFI_PHYSICAL_ADDRESS ) addr , p -> size ); 171 ià( p -> Ãxt ) 172 p -> Ãxt -> ´ev =…->prev; 174 ià( p -> ´ev ) 175 p -> ´ev -> Ãxt =…->next; 177 u£d_®locs = p -> Ãxt ; 180 p -> Ãxt = ä“_®locs ; 181 ä“_®locs = p ; 182 } } 188 VOID 189 $ä“_®l ( VOID ) 191 ®loc_’Œy_t * tmp ; 193  u£d_®locs ) { 195 `DBG_PRT (( L "ä“_®È%¨@ 0x%lx\n", u£d_®locs -> ty³ =ð ALLOC_POOL ? "poÞ" : "·ges", u£d_®locs-> addr )); 197 ià( u£d_®locs -> ty³ =ð ALLOC_POOL ) 198 BS -> `F»ePoÞ ( u£d_®locs -> addr ); 200 BS -> `F»ePages (( EFI_PHYSICAL_ADDRESS ) u£d_®locs -> addr , u£d_®locs-> size ); 202 tmp = u£d_®locs -> Ãxt ; 205 u£d_®locs -> Ãxt = ä“_®locs ; 206 ä“_®locs = u£d_®locs ; 208 u£d_®locs = tmp ; 210 } } 212 INTN 213 $®loc_kmem ( VOID * ¡¬t_addr , UINTN pgút ) 215 ià( `®loc_·ges ( pgút , EfiLßd”D©a , AÎoÿ‹Add»ss , ¡¬t_addr ) == 0)  -1; 217 kmem_addr = ¡¬t_addr ; 218 kmem_pgút = pgút ; 221 } } 223 VOID 224 $ä“_kmem ( VOID ) 226 `DBG_PRT (( L "ä“_kmem befÜ(%lx, %ld)\n", kmem_addr , kmem_pgút )); 227 ià( kmem_addr && kmem_pgút != 0) { 228 `ä“ ( kmem_addr ); 229 kmem_addr = NULL ; 230 kmem_pgút = 0; 232 `DBG_PRT (( L "ä“_kmem‡á” (%lx, %ld)\n", kmem_addr , kmem_pgút )); 233 } } 235 VOID 236 $ä“_®l_memÜy ( VOID ) 238 `ä“_®l (); 239 `ä“_kmem (); 240 } } @alternate.c 26  ~ 27  ~ 29  ~"–žo.h " 31  #ELILO_ALTK_VAR L "ElžoAÉ" ) 36  EFI_GUID g®tk_guid ={0,}; 55 INTN 56 $®‹º©e_k”Ãl ( CHAR16 * bufãr , INTN size ) 58 EFI_STATUS ¡©us ; 59 INTN »t = -1; 67 ià( size < 4)  -1; 72 size -=2; 80 ¡©us = RT -> `G‘V¬ŸbË ( ELILO_ALTK_VAR , & ®tk_guid , NULL , & size , bufãr ); 81 ià( `EFI_ERROR ( ¡©us )) { 82 `DBG_PRT (( L "ÿÂÙ‡cûs v¬ŸbË %s: %r", ELILO_ALTK_VAR , ¡©us )); 85 ià( ¡©us =ð EFI_BUFFER_TOO_SMALL è d–‘e_v¬ ; 99 ià( size & 0x1) { 100 `Pršt ( L "šv®id cÚ‹Á fÜ % v¬ŸbË,ƒ¿sšg v¬ŸbË\n", ELILO_ALTK_VAR ); 101  d–‘e_v¬ ; 105 ià( size =ð2è d–‘e_v¬ ; 107 bufãr [ size ] = CHAR_NULL ; 109 `VERB_PRT (2, `Pršt ( L "found‡É”Ç‹ v¬ŸbË % : %s\n", ELILO_ALTK_VAR , bufãr )); 111 »t = 0; 112 d–‘e_v¬ : 113 ¡©us = RT -> `S‘V¬ŸbË ( ELILO_ALTK_VAR , & ®tk_guid , 0, 0, NULL ); 114 ià( `EFI_ERROR ( ¡©us )) { 115 `ERR_PRT (( L "ÿÂÙƒ¿£ v¬ŸbË %s", ELILO_ALTK_VAR )); 117  »t ; 118 } } @bootparams.c 26  ~ 27  ~ 29  ~"–žo.h " 40 VOID * 41 $ü—‹_boÙ_·¿ms ( CHAR16 * ¬gs , memdesc_t * š™rd , memdesc_ˆ* vmcode , UINTN * cook› ) 47  #BOOT_PARAM_MEMSIZE 16384 ) 48 UINTN bpsize , cmdlše_size ; 49 boÙ_·¿ms_t * bp ; 50 CHAR8 * ý ; 51 CHAR16 ch ; 59 cmdlše_size = `SŒL’ ( ¬gs ) + 1; 60 bpsize = ( boÙ_·¿ms_t è+ cmdlše_size ; 62 ià( bpsize > BOOT_PARAM_MEMSIZE ) { 63 `ERR_PRT (( L "BOOT_PARAM_MEMSIZEoØsm®l,‚“d‡ˆËa¡ %d by‹s", bpsize )); 64  NULL ; 75 bp = ( boÙ_·¿ms_t *) `®loc ( BOOT_PARAM_MEMSIZE , EfiLßd”D©a ); 76 ià( bp =ð NULL ) { 77 `ERR_PRT (( L "can't‡llocate boot…arams")); 81 `VERB_PRT (3, `Pršt ( L "boÙ…¬am @ 0x%lx\n", bp )); 84 #ifdeà CONFIG_Ÿ64 85 ý = (( CHAR8 *) bp è+ BOOT_PARAM_MEMSIZE - cmdlše_size ; 86 #–ià defšed CONFIG_Ÿ32 87 ý = (( CHAR8 *) bp è+ BOOT_PARAM_MEMSIZE - 2048; 97 `Mem£t ( bp , 0, BOOT_PARAM_MEMSIZE ); 99 ià( `sysd•s_ü—‹_boÙ_·¿ms ( bp , ý , š™rd , vmcode , cook› ) == -1)  0; 106 ch = * ¬gs ++; 107 ià(! ch ) ; 108 * ý ++ = ch ; 110 * ý ++ = '\0'; 112  bp ; 113 } } 115 VOID 116 $ä“_boÙ_·¿ms ( VOID * bp ) 118 boÙ_·¿ms_t * »®_bp = (boÙ_·¿ms_ˆ*) bp ; 120 `sysd•s_ä“_boÙ_·¿ms ( »®_bp ); 122 `ä“ ( »®_bp ); 123 } } @chooser.c 26  ~ 27  ~ 29  ~"–žo.h " 31 #ifdeà CONFIG_CHOOSER_SIMPLE 32  ~"choo£rs/sim¶e.h " 35 #ifdeà CONFIG_CHOOSER_TEXTMENU 36  ~"choo£rs/‹xtm’u.h " 39  choo£r_t * gchoo£rs_b []={ 40 #ifdeà CONFIG_CHOOSER_SIMPLE 41 & sim¶e_choo£r , 43 #ifdeà CONFIG_CHOOSER_TEXTMENU 44 & ‹xtm’u_choo£r , 46 NULL 64 choo£r_func_t * gk”Ãl_choo£r ; 66 INTN 67 $š™_choo£r ( EFI_HANDLE dev ) 69 choo£r_t ** p ; 70 CHAR16 * choo£r_Çme = L "none"; 72 k”Ãl_choo£r = NULL ; 74  p = choo£rs_b ; *p;…++) { 76 `VERB_PRT (4, `Pršt ( L "Œyšg choo£¸%s\n", (* p )-> choo£r_Çme )); 78 ià((* p )-> `choo£r_´obe ( dev ) == 0) { 82 ià(! `SŒCmp ( –žo_Ýt . choo£r , (* p )-> choo£r_Çme )) { 83 k”Ãl_choo£r = (* p )-> choo£r_func ; 84 choo£r_Çme = (* p )->chooser_name; 88 ià( k”Ãl_choo£r =ð NULL ) { 89 k”Ãl_choo£r = (* p )-> choo£r_func ; 90 choo£r_Çme = (* p )->chooser_name; 95 ià( k”Ãl_choo£r ) { 96 `VERB_PRT (2, `Pršt ( L "£Ëùed choo£¸%s\n", choo£r_Çme )); 100 `ERR_PRT (( L "No chooser selected. Impossibleo…roceed")); 102 } } 104 INTN 105 $exi¡_choo£r ( CHAR16 * Çme ) 107 choo£r_t ** p ; 109  p = choo£rs_b ; *p;…++) { 110 ià(! `SŒCmp ( Çme , (* p )-> choo£r_Çme ))  0; 113 } } @chooser.h 26 #iâdeà __ELILO_CHOOSER_H__ 27  #__ELILO_CHOOSER_H__ ) 29  INTN tchoo£r_func_t ( tCHAR16 ** t¬gv , tINTN t¬c , INTN tšdex , CHAR16 * tkÇme , CHAR16 * tcmdlše ); 50 CHAR16 * mchoo£r_Çme ; 51 INTN (* choo£r_´obe )( EFI_HANDLE mdev ); 52 choo£r_func_t * mchoo£r_func ; 53 } tchoo£r_t ; 55 INTN š™_choo£r ( EFI_HANDLE ); 56 INTN exi¡_choo£r ( CHAR16 * Çme ); 58 choo£r_func_t * k”Ãl_choo£r ; @choosers/simple.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"v¬s.h " 33  CHAR16 ** g®t_¬gv ; 35  VOID 36 $di¥Ïy_Ïb–_šfo ( CHAR16 * Çme ) 38 CHAR16 * desc ; 39 CHAR16 š™rd_Çme [ CMDLINE_MAXLEN ]; 40 CHAR16 vmcode_Çme [ CMDLINE_MAXLEN ]; 41 CHAR16 ÝtiÚs_tmp [ CMDLINE_MAXLEN ]; 42 CHAR16 ÝtiÚs [ CMDLINE_MAXLEN ]; 43 CHAR16 kÇme [ FILENAME_MAXLEN ]; 45 desc = `fšd_desütiÚ ( Çme ); 46 ià( desc ) { 47 `Pršt ( L "desø : %s\n", desc ); 50 š™rd_Çme [0] = vmcode_Çme [0] = ÝtiÚs_tmp [0] = kÇme [0] = CHAR_NULL ; 52 ià( `fšd_Ïb– ( Çme , kÇme , ÝtiÚs_tmp , š™rd_Çme , vmcode_Çme ) == -1) { 53 `SŒCpy ( kÇme , Çme ); 54 `Pršt ( L "\n"); 56 `sub¡_v¬s ( ÝtiÚs_tmp , ÝtiÚs , CMDLINE_MAXLEN ); 58 `Pršt ( L "cmdlše: % %s\n", kÇme , ÝtiÚs ); 59 ià( š™rd_Çme [0]è `Pršt ( L "initrd : %s\n", initrd_name); 60 ià( vmcode_Çme [0]è `Pršt ( L "vmcode : %s\n", vmcode_name); 61 } } 63  VOID 64 $´št_šfos ( fÜû ) 66 CHAR16 * cÚfig_fže ; 67 CHAR16 d·th [ FILENAME_MAXLEN ]; 68 CHAR16 * boÙ_dev_Çme ; 69 UINT8 is_abs ; 71 boÙ_dev_Çme = `fÝs_boÙdev_Çme (); 72 cÚfig_fže = `g‘_cÚfig_fže (); 74 `fÝs_g‘deçuÉ_·th ( d·th , FILENAME_MAXLEN ); 76 ià( fÜû || –žo_Ýt . v”bo£ > 0) 77 `Pršt ( L "deçuÉ fž·th: %s:%s\n", boÙ_dev_Çme , d·th ); 79 is_abs = cÚfig_fže && (cÚfig_fže[0] =ð CHAR_BACKSLASH || cÚfig_fže[0] =ð CHAR_SLASH ) ? 1 : 0; 81 ià( fÜû || –žo_Ýt . v”bo£ > 0) 82 `Pršt ( L "cÚfig fž : %s%s\n", cÚfig_fže && is_abs =ð0 ? d·th : L"", config_file ? config_file : L"none used"); 84 ià( ®t_¬gv ) { 85 CHAR16 ** p = ®t_¬gv ; 86 `Pršt ( L "found‡lternate default choice :"); 87 * p è `Pršt ( L " %s", *p++); 88 `Pršt ( L "\n"); 90 } } 92  VOID 93 $´št_h–p ( fÜû ) 95 ià( fÜû || –žo_Ýt . v”bo£ > 0) 96 `Pršt ( L "command†ist (must be first character):\n=:print device†ist, %%:print variable†ist, &:print…aths, ?:help\nTAB:print†abel information\n"); 97 } } 106  INTN 107 $£Ëù_k”Ãl ( CHAR16 * bufãr , INTN size ) 109  #CHAR_CTRL_C L '\003' ) 110  #CHAR_CTRL_D L '\004' ) 111  #CHAR_CTRL_U L '\025' ) 113 SIMPLE_INPUT_INTERFACE * = sy¡ab -> CÚIn ; 114 EFI_INPUT_KEY key ; 115 EFI_STATUS ¡©us ; 116 INTN pos = 0, »t ; 117 INT8 fœ¡_time = 1; 122 `´št_h–p (0); 124 `´št_šfos (0); 126 »´št : 127 bufãr [ pos ] = CHAR_NULL ; 129 `Pršt ( L "\nELILO boÙ: %s", bufãr ); 133 ià( fœ¡_time && ( »t = `wa™_timeout ( –žo_Ýt . timeout )) != 1) { 134  »t == -1 ? -1: 0; 136 fœ¡_time = 0; 139 ( ¡©us = -> `R—dKeySŒoke (, & key )è=ð EFI_NOT_READY ); 140 ià( `EFI_ERROR ( ¡©us )) { 141 `ERR_PRT (( L "£Ëù_k”ÃÈ»adkey: %r", ¡©us )); 144  key . UnicodeCh¬ ) { 145  CHAR_TAB : 146 `Pršt ( L "\n"); 147 ià( pos == 0) { 148 `´št_Ïb–_li¡ (); 149 `Pršt ( L "(or‡ kernel file‚ame: [[dev_name:/]path/]kernel_image cmdline options)\n"); 151 bufãr [ pos ] = CHAR_NULL ; 152 `di¥Ïy_Ïb–_šfo ( bufãr ); 154  »´št ; 155  L '%': 156 ià( pos >0è nÜm®_ch¬ ; 157 `Pršt ( L "\n"); 158 `´št_v¬s (); 159  »´št ; 160  L '?': 161 ià( pos >0è nÜm®_ch¬ ; 162 `Pršt ( L "\n"); 163 `´št_h–p (1); 164  »´št ; 165  L '&': 166 ià( pos >0è nÜm®_ch¬ ; 167 `Pršt ( L "\n"); 168 `´št_šfos (1); 169  »´št ; 170  L '=': 171 ià( pos >0è nÜm®_ch¬ ; 172 `Pršt ( L "\n"); 173 `´št_deviûs (); 174  »´št ; 175  CHAR_BACKSPACE : 176 ià( pos == 0) ; 177 pos --; 178 `Pršt ( L "\b \b"); 180  CHAR_CTRL_U : 181  pos ) { 182 `Pršt ( L "\b \b"); 183 pos --; 186  CHAR_CTRL_C : 187 pos = 0; 188  »´št ; 189  CHAR_LINEFEED : 190  CHAR_CARRIAGE_RETURN : 191 bufãr [ pos ] = CHAR_NULL ; 192 `Pršt ( L "\n"); 195 nÜm®_ch¬ : 196 ià( key . UnicodeCh¬ =ð CHAR_CTRL_D || key. SÿnCode == 0x17 ) { 197 `Pršt ( L "\nGiving uphen...\n"); 200 ià( key . UnicodeCh¬ =ð CHAR_NULL ) ; 202 ià( pos > size -1) ; 204 bufãr [ pos ++] = key . UnicodeCh¬ ; 207 `Pršt ( L "%c", key . UnicodeCh¬ ); 211 } } 213  VOID 214 $di¥Ïy_mes§ge ( VOID ) 216 fÝs_fd_t fd ; 217 EFI_STATUS ¡©us ; 218 INTN Ën , i ; 219 CHAR16 * fž’ame ; 220 CHAR8 buf [256]; 222 ià(( fž’ame = `g‘_mes§ge_fž’ame (0)è=ð NULL ) ; 224 ià(* fž’ame =ð CHAR_NULL ) ; 226 `VERB_PRT (3, `Pršt ( L "Ý’šg mes§gfž%s\n", fž’ame )); 228 ¡©us = `fÝs_Ý’ ( fž’ame , & fd ); 229 ià( `EFI_ERROR ( ¡©us )) { 230 `VERB_PRT (3, `Pršt ( L "mes§gfž% nÙ found\n", fž’ame )); 233 Ën = 256; 234 `Pršt ( L "\n"); 235 ( ¡©us = `fÝs_»ad ( fd , buf , & Ën )è=ð EFI_SUCCESS ) { 237  i =0; i < Ën ; i++) { 238 `Pršt ( L "%c", ( CHAR16 ) buf [ i ]); 240 ià( Ën < 256) ; 242 `fÝs_þo£ ( fd ); 243 } } 245  INTN 246 $sim¶e_choo£ ( CHAR16 ** ¬gv , INTN ¬gc , INTN šdex , CHAR16 * kÇme , CHAR16 * cmdlše ) 248  #BOOT_IMG_STR L "BOOT_IMAGE=" ) 249 CHAR16 bufãr [ CMDLINE_MAXLEN ]; 250 CHAR16 ®t_bufãr [ CMDLINE_MAXLEN ]; 251 CHAR16 š™rd_Çme [ CMDLINE_MAXLEN ]; 252 CHAR16 vmcode_Çme [ CMDLINE_MAXLEN ]; 253 CHAR16 ¬gs [ CMDLINE_MAXLEN ]; 254 CHAR16 devÇme [ CMDLINE_MAXLEN ]; 255 CHAR16 d·th [ FILENAME_MAXLEN ]; 256 CHAR16 * ¦ash_pos , * cÞÚ_pos , * back¦ash_pos ; 257 UINTN Ën ; 258 INTN »t ; 260 bufãr [0] = ®t_bufãr [0] = CHAR_NULL ; 262 `di¥Ïy_mes§ge (); 264 »¡¬t : 265 š™rd_Çme [0] = vmcode_Çme [0] = kÇme [0] = cmdlše [0] = ¬gs [0] = CHAR_NULL ; 268 `Mem£t (& –žo_Ýt . img_Ýt , 0, (elilo_opt.img_opt)); 273 ià( –žo_Ýt . ®t_check && `®‹º©e_k”Ãl ( ®t_bufãr , (alt_buffer)) == 0) { 274 ¬gc = `¬gify ( ®t_bufãr ,×É_bufãr), ¬gv ); 275 ®t_¬gv = ¬gv ; 276 šdex = 0; 277 ¬gs [0] = š™rd_Çme [0] = vmcode_Çme [0] = 0; 282 –žo_Ýt . ®t_check = 0; 285 ià( –žo_Ýt . ´om± ) { 286 »t = `£Ëù_k”Ãl ( bufãr , (buffer)); 287 ià( »t == -1)  -1; 288 ¬gc = `¬gify ( bufãr ,(bufãr), ¬gv ); 289 šdex = 0; 297 ià( ®t_bufãr [0] && bufãr [0] =ð CHAR_NULL ) { 298 `SŒCpy ( bufãr , ®t_bufãr ); 309 »t = `fšd_Ïb– (( šdex < ¬gc è? ¬gv [šdex] : NULL , kÇme , ¬gs , š™rd_Çme , vmcode_Çme ); 315 ià( »t == -1) { 316 ià(( šdex < ¬gc è&& ¬gv [index]) 317 `SŒCpy ( kÇme , ¬gv [ šdex ]); 319 `SŒCpy ( kÇme , –žo_Ýt . deçuÉ_k”Ãl ); 326 ià( ¬gc > 1+ šdex ) { 328 ++ šdex < ¬gc ) { 329 `SŒC© ( ¬gs , L " "); 330 `SŒC© ( ¬gs , ¬gv [ šdex ]); 337 ià( –žo_Ýt . š™rd [0] =ð CHAR_NULL && š™rd_Çme [0] != CHAR_NULL) { 338 `SŒCpy ( –žo_Ýt . š™rd , š™rd_Çme ); 341 ià( –žo_Ýt . vmcode [0] =ð CHAR_NULL && vmcode_Çme [0] != CHAR_NULL) { 342 `SŒCpy ( –žo_Ýt . vmcode , vmcode_Çme ); 345 `VERB_PRT (1, { `Pršt ( L "k”ÃÈ i  '%s'\n", kÇme ); 346 `Pršt ( L "¬gum’t ‡» '%s'\n", ¬gs ); 347 ià( –žo_Ýt . š™rd [0]è `Pršt ( L "initrd is '%s'\n",ƒlilo_opt.initrd); 348 ià( –žo_Ýt . vmcode [0]è `Pršt ( L "vmm is '%s'\n",ƒlilo_opt.vmcode); 351 ià( –žo_Ýt . ´om± == 0) { 353 `Pršt ( L "ELILO\n"); 354 »t = `wa™_timeout ( –žo_Ýt . d–ay ); 355 ià( »t != 0) { 356 –žo_Ýt . ´om± = 1; 357 –žo_Ýt . š™rd [0] =ƒlžo_Ýt. vmcode [0] = CHAR_NULL ; 358 –žo_Ýt . timeout = ELILO_TIMEOUT_INFINITY ; 359  »¡¬t ; 366 ¦ash_pos = `SŒChr ( kÇme , L '/'); 367 back¦ash_pos = `SŒChr ( kÇme , L '\\'); 368 cÞÚ_pos = `SŒChr ( kÇme , L ':'); 370 ià( back¦ash_pos && back¦ash_po < ¦ash_pos ) slash_pos = backslash_pos; 372 ià( cÞÚ_pos =ð NULL || ( ¦ash_pos && (slash_pos < colon_pos))) { 373 `SŒCpy ( devÇme , `fÝs_boÙdev_Çme ()); 374 `SŒC© ( devÇme , L ":"); 377 ià( kÇme [0] !ð L '/' && kname[0] != L'\\') { 378 `fÝs_g‘deçuÉ_·th ( d·th , FILENAME_MAXLEN ); 379 `SŒC© ( devÇme , d·th ); 382 devÇme [0] = CHAR_NULL ; 388 Ën = `SŒL’ ( BOOT_IMG_STR ) 389 + `SŒL’ ( devÇme ) 391 + –žo_Ýt . vmcode [0] ? `SŒL’ Ólžo_Ýt.vmcodeè: SŒL’( kÇme ) 393 + `SŒL’ ( ¬gs ); 395 ià( Ën >ð CMDLINE_MAXLEN -1) { 396 `ERR_PRT (( L "‡rguments†istoo†ong cannot fit BOOT_IMAGE\n")); 399 `SŒCpy ( cmdlše , L "BOOT_IMAGE="); 400 `SŒC© ( cmdlše , devÇme ); 401 ià( –žo_Ýt . vmcode [0]) 402 `SŒC© ( cmdlše , –žo_Ýt . vmcode ); 404 `SŒC© ( cmdlše , kÇme ); 405 `SŒC© ( cmdlše , L " "); 406 `SŒC© ( cmdlše , ¬gs ); 409 } } 411  INTN 412 $sim¶e_´obe ( EFI_HANDLE dev ) 416 } } 418 choo£r_t gsim¶e_choo£r ={ 419 L "simple", 420 sim¶e_´obe , 421 sim¶e_choo£ @choosers/simple.h 26 #iâdeà __ELILO_CHOOSER_SIMPLE_H__ 27  #__ELILO_CHOOSER_SIMPLE_H__ ) 29  ~"fžeÝs.h " 31 choo£r_t sim¶e_choo£r ; @choosers/textmenu.c 26  ~ 27  ~ 29  ~"–žo.h " 31  #MAX_LABELS 64 ) 32  #MSGBUFLEN 4096 ) 34  UINT8 gmsgbuf [ MSGBUFLEN ]; 35  CHAR16 * gÏb–s [ MAX_LABELS ]; 36  CHAR16 * gdesütiÚs [ MAX_LABELS ]; 37  INTN gÆab–s ; 38  INTN gCursÜRow , gCursÜCÞ , gProm±Row , gProm±CÞ ; 39  INTN gM’uRow , gM’uCÞ , gM’uWidth , gM’uHeight ; 40  INTN gDi¥ÏyP¬£d , gCu¼’tA‰r , gProm±A‰r ; 41  INTN gProm±Width , gM’uHiA‰r , gM’uLoA‰r ; 42  INTN gProm±L’ , gM’uAùive , gM’uFœ¡ ; 43  CHAR16 gProm±Buf [ CMDLINE_MAXLEN ]; 45  #DEF_ATTR `EFI_TEXT_ATTR ( EFI_LIGHTGRAY , EFI_BLACK ) ) 48  #CˬSü“n (è ST -> CÚOut -> `CˬSü“n (ST->CÚOut) ) 49  #S‘TextA‰r ( a è ST -> CÚOut -> `S‘A‰ribu‹ (ST->CÚOut,‡) ) 51  INTN 52 $tohex ( INTN c ) 54 ià( c >= '0' && c <= '9') 55  c - '0'; 56 ià( c >= 'A' && c <= 'F') 57  c = c - 'A' + 10; 58 ià( c >= 'a' && c <= 'f') 59  c = c - 'a' + 10; 62 } } 64  VOID 65 $·št_msg ( UINT8 * msg ) 67 INTN c ; 69 CursÜCÞ = CursÜRow = 0; 70 Cu¼’tA‰r = DEF_ATTR ; 71 `S‘TextA‰r ( Cu¼’tA‰r ); 72 `CˬSü“n (); 73 ( c = * msg ++)) { 75 ià( c =ð0xdaèøð BOXDRAW_DOWN_RIGHT ; 76 ià( c =ð0xc4èøð BOXDRAW_HORIZONTAL ; 77 ià( c =ð0xbfèøð BOXDRAW_DOWN_LEFT ; 78 ià( c =ð0xb3èøð BOXDRAW_VERTICAL ; 79 ià( c =ð0xd9èøð BOXDRAW_UP_LEFT ; 80 ià( c =ð0xc0èøð BOXDRAW_UP_RIGHT ; 81 ià( c =ð0xb4èøð BOXDRAW_VERTICAL_LEFT ; 82 ià( c =ð0xc3èøð BOXDRAW_VERTICAL_RIGHT ; 83 ià( c =ð0x1eèøð GEOMETRICSHAPE_UP_TRIANGLE ; 84 ià( c =ð0x1fèøð GEOMETRICSHAPE_DOWN_TRIANGLE ; 85 ià( c > 0x7f) c = '?'; 88 ià( c >= ' ') { 89 `Pršt ( L "%c", c ); 90 CursÜCÞ ++; 93  c ) { 97 CursÜRow ++; 98 CursÜCÞ = 0; 99 `Pršt ( L "\n"); 102 CursÜCÞ = CursÜRow = 0; 103 `CˬSü“n (); 106 ià( msg [0] && msg[1]) { 107 INTN bg = `tohex (* msg ++); 108 INTN fg = `tohex (* msg ++); 110 ià( bg < 16 || fg < 16) { 111 Cu¼’tA‰r = `EFI_TEXT_ATTR ( fg , bg ); 112 `S‘TextA‰r ( Cu¼’tA‰r ); 117 ià(! Di¥ÏyP¬£d ) { 118 ià(! Prom±Row ) { 119 Prom±Row = CursÜRow ; 120 Prom±CÞ = CursÜCÞ ; 121 Prom±A‰r = Cu¼’tA‰r ; 123 ià(! Prom±Width ) 124 Prom±Width = CursÜCÞ - Prom±CÞ ; 129 ià(! Di¥ÏyP¬£d ) { 130 ià(! M’uRow ) { 131 M’uRow = CursÜRow ; 132 M’uCÞ = CursÜCÞ ; 133 M’uLoA‰r = Cu¼’tA‰r ; 135 ià(! M’uWidth ) { 136 M’uWidth = CursÜCÞ - M’uCÞ ; 137 M’uHeight = CursÜRow - M’uRow + 1; 138 M’uHiA‰r = Cu¼’tA‰r ; 144 `Pršt ( L "?"); 145 CursÜCÞ ++; 149 } } 152  VOID 153 $·št_´om± ( VOID ) 155 INTN off£t = Prom±L’ > Prom±Width - 1 ? PromptLen - PromptWidth + 1: 0; 156 `S‘TextA‰r ( Prom±A‰r ); 157 `PrštAt ( Prom±CÞ , Prom±Row , L "%s%s", Prom±Buf + off£t , L" \b"); 158 `S‘TextA‰r ( Cu¼’tA‰r ); 159 } } 161  VOID 162 $·št_m’u ( VOID ) 164 INTN i , j ; 166  i = 0; i < M’uHeight ; i++) { 167 INTN ©Œ = ( i + M’uFœ¡ =ð M’uAùive è? M’uHiA‰r : M’uLoA‰r ; 168 CHAR16 desütiÚ [80]; 170  j = 0; j < M’uWidth ; j++) 171 desütiÚ [ j ] = ' '; 172 desütiÚ [ M’uWidth ] = '\0'; 173 ià( i + M’uFœ¡ < Æab–s ) { 174  j = 0; desütiÚs [ i + M’uFœ¡ ][j] && j < M’uWidth ; j++) 175 desütiÚ [ j +1] = desütiÚs [ i + M’uFœ¡ ][j]; 177 `S‘TextA‰r ( ©Œ ); 178 `PrštAt ( M’uCÞ , M’uRow + i , L "%-.*s", M’uWidth , desütiÚ ); 179 `S‘TextA‰r ( Cu¼’tA‰r ); 181 `·št_´om± (); 182 } } 184  INTN 185 $»ad_mes§ge_fže ( INTN msg , INT8 * buf , INTN max ) 187 CHAR16 * fž’ame ; 188 fÝs_fd_t mes§ge_fd ; 189 EFI_STATUS ¡©us ; 190 INTN Ën = max ; 192 ià( msg > 10)  0; 194 ià(( fž’ame = `g‘_mes§ge_fž’ame ( msg )è=ð NULL ) { 195 `VERB_PRT (3, `Pršt ( L "no message file specified\n")); 199 `VERB_PRT (3, `Pršt ( L "Ý’šg mes§gfž%s\n", fž’ame )); 201 ¡©us = `fÝs_Ý’ ( fž’ame , & mes§ge_fd ); 202 ià( `EFI_ERROR ( ¡©us )) { 203 `VERB_PRT (3, `Pršt ( L "mes§gfž% nÙ found\n", fž’ame )); 207 ¡©us = `fÝs_»ad ( mes§ge_fd , buf , & Ën ); 208 ià( `EFI_ERROR ( ¡©us )) { 209 `VERB_PRT (3, `Pršt ( L "Error„eading message file\n")); 210 Ën = 0; 213 `fÝs_þo£ ( mes§ge_fd ); 215 `VERB_PRT (3, `Pršt ( L "dÚ»adšg mes§gfž%s\n", fž’ame )); 217  Ën ; 218 } } 228  INTN 229 $£Ëù_k”Ãl ( CHAR16 * Ïb– , INTN lsize ) 231  #CHAR_CTRL_C ( L '\003'è ) 232  #CHAR_CTRL_D ( L '\004'è ) 233  #CHAR_CTRL_F ( L '\006'è ) 234  #CHAR_DEL ( L '\177'è ) 235 SIMPLE_INPUT_INTERFACE * = sy¡ab -> CÚIn ; 236 EFI_INPUT_KEY key ; 237 EFI_STATUS ¡©us ; 238 INT8 fœ¡_time = 1; 239 INTN i ; 240 INT8 â = 0; 242 »´št : 243 i = `»ad_mes§ge_fže (0, msgbuf , MSGBUFLEN -1); 244 msgbuf [ i ] = 0; 245 `·št_msg ( msgbuf ); 246 Di¥ÏyP¬£d = 1; 247 `·št_m’u (); 248 Cu¼’tA‰r = Prom±A‰r ; 249 `S‘TextA‰r ( Cu¼’tA‰r ); 252 ( ¡©us = -> `R—dKeySŒoke (, & key )è=ð EFI_NOT_READY ); 253 ià( `EFI_ERROR ( ¡©us )) { 254 `S‘TextA‰r ( `EFI_TEXT_ATTR ( EFI_LIGHTGRAY , EFI_BLACK )); 255 `CˬSü“n (); 256 `ERR_PRT (( L "£Ëù_k”ÃÈ»adkey: %r", ¡©us )); 259 ià( key . UnicodeCh¬ =ð CHAR_CTRL_F ) { 260 â = 1; 263 ià( â ) { 264 ià( key . UnicodeCh¬ >= '0' && key.UnicodeChar <= '9') { 265 ià( key . UnicodeCh¬ == '0') 266 key . SÿnCode = SCAN_F10 ; 268 key . SÿnCode = SCAN_F1 + key. UnicodeCh¬ - '1'; 269 key . UnicodeCh¬ = 0; 271 â = 0; 273 ià( key . SÿnCode =ð SCAN_UP ) { 274 ià( M’uAùive ) 275 M’uAùive --; 278 ià( M’uAùive < M’uFœ¡ ) 279 M’uFœ¡ = M’uAùive ; 280 `·št_m’u (); 283 ià( key . SÿnCode =ð SCAN_DOWN ) { 284 ià( M’uAùive < Æab–s - 1) 285 M’uAùive ++; 288 ià( M’uAùive >ð M’uFœ¡ + M’uHeight ) 289 M’uFœ¡ = M’uAùive - M’uHeight + 1; 290 `·št_m’u (); 293 ià( key . SÿnCode >ð SCAN_F1 && key.SÿnCod<ð SCAN_F10 ) { 294 i = `»ad_mes§ge_fže ( key . SÿnCode - SCAN_F1 + 1, msgbuf , MSGBUFLEN -1); 295 ià( i ) { 296 msgbuf [ i ] = 0; 297 `·št_msg ( msgbuf ); 298 ( ¡©us = -> `R—dKeySŒoke (, & key )è=ð EFI_NOT_READY ); 299  »´št ; 303  key . UnicodeCh¬ ) { 305  L '?': 306 `Pršt ( L "\n"); 307 `´št_deviûs (); 308 fœ¡_time = 0; 309  »´št ; 310  CHAR_BACKSPACE : 311  CHAR_DEL : 312 ià( Prom±L’ == 0) ; 313 Prom±L’ --; 314 Prom±Buf [ Prom±L’ ] = 0; 315 ià( Prom±L’ >ð Prom±Width -2) 316 `·št_´om± (); 318 `Pršt ( L "\b \b"); 321  CHAR_LINEFEED : 322  CHAR_CARRIAGE_RETURN : 323 `SŒCpy ( Ïb– , Ïb–s [ M’uAùive ]); 324 `S‘TextA‰r ( `EFI_TEXT_ATTR ( EFI_LIGHTGRAY , EFI_BLACK )); 325 `CˬSü“n (); 329 iàÐ key . UnicodeCh¬ =ð CHAR_CTRL_D 330 || key . UnicodeCh¬ =ð CHAR_CTRL_C ) { 331 `S‘TextA‰r ( `EFI_TEXT_ATTR ( EFI_LIGHTGRAY , EFI_BLACK )); 332 `CˬSü“n (); 333 `Pršt ( L "\nGiving uphen...\n"); 336 ià( key . UnicodeCh¬ =ð CHAR_NULL ) ; 338 ià( Prom±L’ > CMDLINE_MAXLEN -1) ; 340 ià( key . UnicodeCh¬ < ' ' || key.UnicodeChar > 0x7e) 341 key . UnicodeCh¬ = '?'; 342 Prom±Buf [ Prom±L’ ++] = key . UnicodeCh¬ ; 343 Prom±Buf [ Prom±L’ ] = 0; 346 ià( Prom±L’ >ð Prom±Width -1) 347 `·št_´om± (); 349 `Pršt ( L "%c", key . UnicodeCh¬ ); 353 } } 355 INTN 356 $‹xtm’u_choo£ ( CHAR16 ** ¬gv , INTN ¬gc , INTN šdex , CHAR16 * kÇme , CHAR16 * cmdlše ) 358  #BOOT_IMG_STR L "BOOT_IMAGE=" ) 359 CHAR16 Ïb– [ CMDLINE_MAXLEN ]; 360 CHAR16 š™rd_Çme [ CMDLINE_MAXLEN ]; 361 CHAR16 vmcode_Çme [ CMDLINE_MAXLEN ]; 362 CHAR16 ¬gs [ CMDLINE_MAXLEN ]; 363 CHAR16 devÇme [ CMDLINE_MAXLEN ]; 364 CHAR16 d·th [ FILENAME_MAXLEN ]; 365 CHAR16 * ¦ash_pos , * cÞÚ_pos , * back¦ash_pos ; 366 UINTN Ën ; 367 INTN »t ; 368 VOID * hªdË = NULL ; 372 CursÜRow = CursÜCÞ = Prom±Row = Prom±CÞ = 0; 373 M’uRow = M’uCÞ = M’uWidth = M’uHeight = 0; 374 Di¥ÏyP¬£d = Cu¼’tA‰r = Prom±A‰r = 0; 375 Prom±Width = M’uHiA‰r = M’uLoA‰r = 0; 376 Prom±L’ = M’uAùive = M’uFœ¡ = 0; 377 Prom±Buf [0] = CHAR_NULL ; 379 Æab–s = 0; 380  Æab–s < MAX_LABELS && ( hªdË = `g‘_Ãxt_desütiÚ (hªdË, Ïb–s +‚Ïb–s, desütiÚs +‚labels))) { 381 ià( desütiÚs [ Æab–s ][0] == 0) 382 desütiÚs [ Æab–s ] = Ïb–s [nlabels]; 383 Æab–s ++; 385 »¡¬t : 386 vmcode_Çme [0] = š™rd_Çme [0] = kÇme [0] = cmdlše [0] = ¬gs [0] = CHAR_NULL ; 389 `Mem£t (& –žo_Ýt . img_Ýt , 0, (elilo_opt.img_opt)); 391 ià( –žo_Ýt . ´om± ) { 392 »t = `£Ëù_k”Ãl ( Ïb– , (label)); 393 ià( »t == -1)  -1; 394 ¬gc = `¬gify ( Prom±Buf ,(Prom±Buf), ¬gv ); 395 šdex = 0; 401 ià( –žo_Ýt . ®t_check && `®‹º©e_k”Ãl ( Prom±Buf , (PromptBuf)) == 0) { 402 ¬gc = `¬gify ( Prom±Buf ,(Prom±Buf), ¬gv ); 403 šdex = 0; 404 Ïb– [0] = ¬gs [0] = š™rd_Çme [0] = vmcode_Çme [0] = 0; 415 ià( Ïb– [0]) 416 »t = `fšd_Ïb– ( Ïb– , kÇme , ¬gs , š™rd_Çme , vmcode_Çme ); 418 »t = `fšd_Ïb– (( šdex < ¬gc è? ¬gv [šdex] : NULL , kÇme , ¬gs , š™rd_Çme , vmcode_Çme ); 424 ià( »t == -1) { 425 ià(( šdex < ¬gc è&& ¬gv [index]) 426 `SŒCpy ( kÇme , ¬gv [ šdex ]); 428 `SŒCpy ( kÇme , –žo_Ýt . deçuÉ_k”Ãl ); 435 ià( Ïb– [0]) 436 šdex --; 437 ià( ¬gc > 1+ šdex ) { 439 ++ šdex < ¬gc ) { 440 `SŒC© ( ¬gs , L " "); 441 `SŒC© ( ¬gs , ¬gv [ šdex ]); 448 ià( –žo_Ýt . š™rd [0] =ð CHAR_NULL && š™rd_Çme [0] != CHAR_NULL) { 449 `SŒCpy ( –žo_Ýt . š™rd , š™rd_Çme ); 452 ià( –žo_Ýt . vmcode [0] =ð CHAR_NULL && vmcode_Çme [0] != CHAR_NULL) { 453 `SŒCpy ( –žo_Ýt . vmcode , vmcode_Çme ); 456 `VERB_PRT (1, { `Pršt ( L "k”ÃÈ i  '%s'\n", kÇme ); 457 `Pršt ( L "¬gum’t ‡» '%s'\n", ¬gs ); 458 ià( –žo_Ýt . š™rd [0]è `Pršt ( L "initrd is '%s'\n",ƒlilo_opt.initrd); 459 ià( –žo_Ýt . vmcode [0]è `Pršt ( L "vmm is '%s'\n",ƒlilo_opt.vmcode); 462 ià( –žo_Ýt . ´om± == 0) { 464 `Pršt ( L "ELILO\n"); 465 »t = `wa™_timeout ( –žo_Ýt . d–ay ); 466 ià( »t != 0) { 467 –žo_Ýt . ´om± = 1; 468 –žo_Ýt . š™rd [0] =ƒlžo_Ýt. vmcode [0] = CHAR_NULL ; 469 –žo_Ýt . timeout = ELILO_TIMEOUT_INFINITY ; 470  »¡¬t ; 478 ¦ash_pos = `SŒChr ( kÇme , L '/'); 479 back¦ash_pos = `SŒChr ( kÇme , L '\\'); 480 cÞÚ_pos = `SŒChr ( kÇme , L ':'); 482 ià( back¦ash_pos && back¦ash_po < ¦ash_pos ) slash_pos = backslash_pos; 484 ià( cÞÚ_pos =ð NULL || ( ¦ash_pos && (slash_pos < colon_pos))) { 485 `SŒCpy ( devÇme , `fÝs_boÙdev_Çme ()); 486 `SŒC© ( devÇme , L ":"); 489 ià( kÇme [0] !ð L '/' && kname[0] != L'\\') { 490 `fÝs_g‘deçuÉ_·th ( d·th , FILENAME_MAXLEN ); 491 `SŒC© ( devÇme , d·th ); 494 devÇme [0] = CHAR_NULL ; 500 Ën = `SŒL’ ( BOOT_IMG_STR ) 501 + `SŒL’ ( devÇme ) 502 + `SŒL’ ( kÇme ) 503 + –žo_Ýt . vmcode [0] ? `SŒL’ Ólžo_Ýt.vmcodeè: SŒL’( kÇme ) 505 + `SŒL’ ( ¬gs ); 507 ià( Ën >ð CMDLINE_MAXLEN -1) { 508 `S‘TextA‰r ( `EFI_TEXT_ATTR ( EFI_LIGHTGRAY , EFI_BLACK )); 509 `CˬSü“n (); 510 `ERR_PRT (( L "‡rguments†istoo†ong cannot fit BOOT_IMAGE\n")); 513 `SŒCpy ( cmdlše , L "BOOT_IMAGE="); 514 `SŒC© ( cmdlše , devÇme ); 515 ià( –žo_Ýt . vmcode [0]) 516 `SŒC© ( cmdlše , –žo_Ýt . vmcode ); 518 `SŒC© ( cmdlše , kÇme ); 519 `SŒC© ( cmdlše , L " "); 520 `SŒC© ( cmdlše , ¬gs ); 522 `VERB_PRT (3, `Pršt ( L "fš® commªd†ši '%s'\n", cmdlše )); 525 } } 527  INTN 528 $‹xtm’u_´obe ( EFI_HANDLE dev ) 532 } } 534 choo£r_t g‹xtm’u_choo£r ={ 535 L "textmenu", 536 ‹xtm’u_´obe , 537 ‹xtm’u_choo£ @choosers/textmenu.h 26 #iâdeà __ELILO_CHOOSER_TEXTMENU_H__ 27  #__ELILO_CHOOSER_TEXTMENU_H__ ) 29  ~"fžeÝs.h " 31 choo£r_t ‹xtm’u_choo£r ; @config.c 29  ~ 30  ~ 31  ~ 33  ~"–žo.h " 34  ~"cÚfig.h " 41 #ià defšed ( CONFIG_Ÿ64 ) 42  #ELILO_ARCH_DEFAULT_CONFIG L "–žo-Ÿ64.cÚf" ) 43 #–ià defšed ( CONFIG_Ÿ32 ) 44  #ELILO_ARCH_DEFAULT_CONFIG L "–žo-Ÿ32.cÚf" ) 52  #ELILO_DEFAULT_CONFIG L "–žo.cÚf" ) 54  #MAX_STRING CMDLINE_MAXLEN ) 55  #CONFIG_BUFSIZE 512 ) 63  #MAX_MESSAGES 13 ) 65  sboÙ_image { 66  boÙ_image * mÃxt ; 67 CHAR16 mÏb– [ MAX_STRING ]; 68 CHAR16 mkÇme [ FILENAME_MAXLEN ]; 69 CHAR16 mÝtiÚs [ MAX_STRING ]; 70 CHAR16 mš™rd [ FILENAME_MAXLEN ]; 71 CHAR16 mvmcode [ FILENAME_MAXLEN ]; 72 CHAR16 mroÙ [ FILENAME_MAXLEN ]; 73 CHAR16 mçÎback [ MAX_STRING ]; 74 CHAR16 mdesütiÚ [ MAX_STRING ]; 76 UINTN m¿mdisk ; 77 UINTN m»adÚly ; 78 UINTN ml™”® ; 80 sys_img_ÝtiÚs_t msys_img_Ýts ; 81 } tboÙ_image_t ; 84 mTOK_ERR , 85 mTOK_EQUAL , 86 mTOK_STR , 87 mTOK_EOF 88 } ttok’_t ; 95 CHAR16 mroÙ [ FILENAME_MAXLEN ]; 96 CHAR16 mš™rd [ FILENAME_MAXLEN ]; 97 CHAR16 mvmcode [ FILENAME_MAXLEN ]; 98 CHAR16 mÝtiÚs [ MAX_STRING ]; 99 CHAR16 mdeçuÉ_image_Çme [ MAX_STRING ]; 100 CHAR16 mmes§ge_fže [ MAX_MESSAGES ][ FILENAME_MAXLEN ]; 101 CHAR16 mchoo£r [ FILENAME_MAXLEN ]; 102 CHAR16 mcÚfig_fže [ FILENAME_MAXLEN ]; 103 boÙ_image_t * mdeçuÉ_image ; 105 UINTN m»adÚly ; 110 UINTN m®t_check ; 111 UINTN mdebug ; 112 UINTN md–ay ; 113 UINTN m´om± ; 114 UINTN mtimeout ; 115 UINTN mv”bo£ ; 116 UINTN medd30_no_fÜû ; 117 } tglob®_cÚfig_t ; 123  s_cÚfig_ÝtiÚ_group { 124  _cÚfig_ÝtiÚ_group * mÃxt ; 125 cÚfig_ÝtiÚ_t * mÝtiÚs ; 126 UINTN mÃÁr›s ; 127 } tcÚfig_ÝtiÚ_group_t ; 129  ÝtiÚ_aùiÚ_t gdo_image , gdo_l™”® , gdo_ÝtiÚs ; 130  INTN check_v”bos™y ( VOID *), check_choo£r (VOID *); 132  glob®_cÚfig_t gglob®_cÚfig ; 137  cÚfig_ÝtiÚ_t gglob®_commÚ_ÝtiÚs []={ 138 { OPT_STR , OPT_GLOBAL , L "deçuÉ", NULL , NULL, glob®_cÚfig . deçuÉ_image_Çme }, 139 { OPT_NUM , OPT_GLOBAL , L "timeout", NULL , NULL, & glob®_cÚfig . timeout }, 140 { OPT_NUM , OPT_GLOBAL , L "d–ay", NULL , NULL, & glob®_cÚfig . d–ay }, 141 { OPT_BOOL , OPT_GLOBAL , L "debug", NULL , NULL, & glob®_cÚfig . debug }, 142 { OPT_BOOL , OPT_GLOBAL , L "´om±", NULL , NULL, & glob®_cÚfig . ´om± }, 143 { OPT_NUM , OPT_GLOBAL , L "v”bo£", NULL , check_v”bos™y , & glob®_cÚfig . v”bo£ }, 144 { OPT_FILE , OPT_GLOBAL , L "roÙ", NULL , NULL, glob®_cÚfig . roÙ }, 145 { OPT_BOOL , OPT_GLOBAL , L "»ad-Úly", NULL , NULL, & glob®_cÚfig . »adÚly }, 146 { OPT_BOOL , OPT_GLOBAL , L "nÛdd30", NULL , NULL, & glob®_cÚfig . edd30_no_fÜû }, 147 { OPT_CMD , OPT_GLOBAL , L "­³nd", NULL , NULL, glob®_cÚfig . ÝtiÚs }, 148 { OPT_FILE , OPT_GLOBAL , L "š™rd", NULL , NULL, glob®_cÚfig . š™rd }, 149 { OPT_FILE , OPT_GLOBAL , L "vmm", NULL , NULL, glob®_cÚfig . vmcode }, 150 { OPT_FILE , OPT_GLOBAL , L "image", do_image , NULL , Ýt_off£tof ( kÇme )}, 151 { OPT_BOOL , OPT_GLOBAL , L "check®t", NULL , NULL, & glob®_cÚfig . ®t_check }, 152 { OPT_STR , OPT_GLOBAL , L "choo£r", NULL , check_choo£r , glob®_cÚfig . choo£r }, 153 { OPT_FILE , OPT_GLOBAL , L "mes§ge", NULL , NULL, glob®_cÚfig . mes§ge_fže [0]}, 154 { OPT_FILE , OPT_GLOBAL , L "f1", NULL , NULL, glob®_cÚfig . mes§ge_fže [1]}, 155 { OPT_FILE , OPT_GLOBAL , L "f2", NULL , NULL, glob®_cÚfig . mes§ge_fže [2]}, 156 { OPT_FILE , OPT_GLOBAL , L "f3", NULL , NULL, glob®_cÚfig . mes§ge_fže [3]}, 157 { OPT_FILE , OPT_GLOBAL , L "f4", NULL , NULL, glob®_cÚfig . mes§ge_fže [4]}, 158 { OPT_FILE , OPT_GLOBAL , L "f5", NULL , NULL, glob®_cÚfig . mes§ge_fže [5]}, 159 { OPT_FILE , OPT_GLOBAL , L "f6", NULL , NULL, glob®_cÚfig . mes§ge_fže [6]}, 160 { OPT_FILE , OPT_GLOBAL , L "f7", NULL , NULL, glob®_cÚfig . mes§ge_fže [7]}, 161 { OPT_FILE , OPT_GLOBAL , L "f8", NULL , NULL, glob®_cÚfig . mes§ge_fže [8]}, 162 { OPT_FILE , OPT_GLOBAL , L "f9", NULL , NULL, glob®_cÚfig . mes§ge_fže [9]}, 163 { OPT_FILE , OPT_GLOBAL , L "f10", NULL , NULL, glob®_cÚfig . mes§ge_fže [10]}, 164 { OPT_FILE , OPT_GLOBAL , L "f11", NULL , NULL, glob®_cÚfig . mes§ge_fže [11]}, 165 { OPT_FILE , OPT_GLOBAL , L "f12", NULL , NULL, glob®_cÚfig . mes§ge_fže [12]} 168  cÚfig_ÝtiÚ_t gimage_commÚ_ÝtiÚs []={ 169 { OPT_FILE , OPT_IMAGE , L "roÙ", NULL , NULL, Ýt_off£tof ( roÙ )}, 170 { OPT_BOOL , OPT_IMAGE , L "»ad-Úly", NULL , NULL, Ýt_off£tof ( »adÚly )}, 171 { OPT_CMD , OPT_IMAGE , L "­³nd", do_ÝtiÚs , NULL , Ýt_off£tof ( ÝtiÚs )}, 172 { OPT_CMD , OPT_IMAGE , L "l™”®", do_l™”® , NULL , NULL}, 173 { OPT_FILE , OPT_IMAGE , L "š™rd", NULL , NULL, Ýt_off£tof ( š™rd )}, 174 { OPT_FILE , OPT_IMAGE , L "vmm", NULL , NULL, Ýt_off£tof ( vmcode )}, 175 { OPT_STR , OPT_IMAGE , L "Ïb–", NULL , NULL, Ýt_off£tof ( Ïb– )}, 176 { OPT_FILE , OPT_IMAGE , L "image", do_image , NULL , Ýt_off£tof ( kÇme )}, 177 { OPT_STR , OPT_IMAGE , L "desütiÚ", NULL , NULL, Ýt_off£tof ( desütiÚ )}, 180  #OPTION_IS_GLOBAL ( p è(Õ)-> scÝe =ð OPT_GLOBAL ) ) 181  #OPTION_IS_IMG_SYS ( p è(Õ)-> scÝe =ð OPT_IMAGE_SYS ) ) 183  #CHAR_EOF ( CHAR16 )-1 ) 184  #CHAR_NUM0 L '0' ) 185  #CHAR_NUM9 L '9' ) 187  UINTN glše_num ; 188  INTN gback ; 190  cÚfig_ÝtiÚ_group_t * gglob®_ÝtiÚ_li¡ ; 191  cÚfig_ÝtiÚ_group_t * gimage_ÝtiÚ_li¡ ; 194  cÚfig_ÝtiÚ_group_t * gcu¼’t_ÝtiÚs ; 196  boÙ_image_t * gimage_li¡ , * gfœ¡_image ; 197  boÙ_image_t * gcu¼’t_img ; 199  INT8 gcÚfig_buf [ CONFIG_BUFSIZE ]; 200  UINTN gbuf_max , gbuf_pos ; 202  fÝs_fd_t gcÚfig_fd ; 204  VOID 205 $cÚfig_”rÜ ( CHAR16 * msg ,...) 207 va_li¡ ­ ; 208 UINTN `_IPršt (UINTN, UINTN, SIMPLE_TEXT_OUTPUT_INTERFACE *, CHAR16 *, CHAR8 *, va_li¡ ); 210 `Pršt ( L "솚%d: ", lše_num ); 212 `va_¡¬t ( ­ , msg ); 213 `_IPršt (( UINTN )-1, (UINTN)-1, sy¡ab -> CÚOut , msg , NULL , ­ ); 214 `va_’d ( ­ ); 215 `Pršt ( L "\n"); 216 } } 229  CHAR16 230 $g‘c ( VOID ) 232 EFI_STATUS ¡©us ; 234 ià( buf_pos =ð0 || buf_po =ð buf_max ) { 235 buf_max = CONFIG_BUFSIZE ; 236 ¡©us = `fÝs_»ad ( cÚfig_fd , cÚfig_buf , & buf_max ); 237 ià( `EFI_ERROR ( ¡©us è|| buf_max =ð0è CHAR_EOF ; 239 buf_pos = 0; 241  ( CHAR16 ) cÚfig_buf [ buf_pos ++]; 242 } } 249  CHAR16 250 $Ãxt ( VOID ) 252 CHAR16 ch ; 254 ià( back ) { 255 ch = back ; 256 back = 0; 257  ch ; 259  `g‘c (); 260 } } 265  VOID 266 $agaš ( CHAR16 ch ) 268 ià( back è{ `cÚfig_”rÜ ( L "config:‡gain invokedwice"); } 269 back = ch ; 270 } } 279  cÚfig_ÝtiÚ_t * 280 $fšd_ÝtiÚ ( cÚfig_ÝtiÚ_group_t * g½ , CHAR16 * ¡r ) 282 cÚfig_ÝtiÚ_t * p = NULL ; 283 cÚfig_ÝtiÚ_t * ’d ; 285  g½ ) { 286 p = g½ -> ÝtiÚs ; 287 ’d = g½ -> ÝtiÚs +g½-> ÃÁr›s ; 289  p !ð ’d ) { 290 ià(! `SŒCmp ( ¡r , p -> Çme )) …; 291 p ++; 293 g½ = g½-> Ãxt ; 295  NULL ; 296 } } 307  tok’_t 308 $g‘_tok’ ( CHAR16 * ¡r , UINTN maxËn ) 310 INTN ch , esÿ³d ; 311 CHAR16 * h”e ; 314 ( ch = `Ãxt ()), ch =ð' ' || ch =ð'\t' || ch =ð'\n'èià(ch =ð'\n'è lše_num ++; 316 ià( ch =ð CHAR_EOF è TOK_EOF ; 318 ià( ch != '#') ; 321 ( ch = `Ãxt ()), ch !ð'\n'èià(ch =ð CHAR_EOF è TOK_EOF ; 322 lše_num ++; 324 ià( ch =ð'='è TOK_EQUAL ; 326 ià( ch == '"') { 327 h”e = ¡r ; 328  h”e - ¡r < maxËn ) { 329 ià(( ch = `Ãxt ()è=ð CHAR_EOF ) { 330 `cÚfig_”rÜ ( L "EOF in quoted string"); 331  TOK_ERR ; 333 ià( ch == '"') { 334 * h”e = 0; 335  TOK_STR ; 337 ià( ch == '\\') { 338 ch = `Ãxt (); 339 ià( ch != '"' && ch != '\\' && ch != '\n') { 340 `cÚfig_”rÜ ( L "Bad use of \\ in quoted string"); 341  TOK_ERR ; 343 ià( ch == '\n') ; 345 ( ch = `Ãxt ()), ch == ' ' || ch == '\t'); 346 ià(! ch ) ; 347 `agaš ( ch ); 348 ch = ' '; 352 ià( ch == '\n' || ch == '\t') { 353 `cÚfig_”rÜ ( L "\\n‡nd \\t‡re‚ot‡llowed in quoted strings"); 354  TOK_ERR ; 356 * h”e ++ = ch ; 358 `cÚfig_”rÜ ( L "Quoted string isoo†ong"); 359  TOK_ERR ; 360 } } 362 gh”e = ¡r ; 363 gesÿ³d = 0; 365  gh”e - g¡r < gmaxËn ) { 366 ià( gesÿ³d ) { 367 ià( gch =ð CHAR_EOF ) { 368 cÚfig_”rÜ ( L "\\…recedes EOF"); 369  gTOK_ERR ; 371 ià( gch =ð'\n'è lše_num ++; 372 * gh”e ++ = ch == '\t' ? ' ' : ch; 373 gesÿ³d = 0; 376 ià( gch =ð' ' || ch == '\t' || ch == '\n' || ch == '#' || 377 ch =ð'=' || ch =ð CHAR_EOF ) { 378 agaš ( ch ); 379 * gh”e = 0; 380  gTOK_STR ; 382 ià(!( gesÿ³d = ( ch =ð'\\'))è* h”e ++ = ch; 384 gch = Ãxt (); 386 cÚfig_”rÜ ( L "Token isoo†ong"); 387  gTOK_ERR ; 390  INTN 391 $image_check ( boÙ_image_t * img ) 393 boÙ_image_t * b ; 395 ià( img =ð NULL )  -1; 398 ià( img -> Ïb– [0] == '\0') { 399 `cÚfig_”rÜ ( L "image has‚o†abel"); 404  b = image_li¡ ; b; b = b-> Ãxt ) { 405 ià( img =ð b ) ; 406 ià(! `SŒCmp ( img -> Ïb– , b ->label)) { 407 `cÚfig_”rÜ ( L "imagw™h†ab– % ®»ady defšed", img -> Ïb– ); 412 } } 414  INTN 415 $glob®_check ( VOID ) 418 } } 420  INTN 421 $fš®_check ( VOID ) 423 boÙ_image_t * b ; 425 ià( glob®_cÚfig . deçuÉ_image_Çme [0]) { 426  b = image_li¡ ; b; b = b-> Ãxt ) { 427 ià(! `SŒCmp ( b -> Ïb– , glob®_cÚfig . deçuÉ_image_Çme )è found ; 429 `cÚfig_”rÜ ( L "deçuÉ imag'%s'‚Ù defšed ", glob®_cÚfig . deçuÉ_image_Çme ); 432 glob®_cÚfig . deçuÉ_image = fœ¡_image ; 434 found : 435 glob®_cÚfig . deçuÉ_image = b ; 437 } } 449  šlše VOID * 450 $adju¡_poš‹r ( cÚfig_ÝtiÚ_t * p ) 455 ià( `OPTION_IS_GLOBAL ( p )è…-> d©a ; 457 ià( `OPTION_IS_IMG_SYS ( p )è ( VOID *)(( UINTN )& cu¼’t_img -> sys_img_Ýts +…-> d©a ); 459  ( VOID *)(( UINTN ) cu¼’t_img + p -> d©a ); 460 } } 465  INTN 466 $do_image ( cÚfig_ÝtiÚ_t * p , VOID * ¡r ) 468 boÙ_image_t * img ; 477 ià( cu¼’t_img ) { 478 ià( `image_check ( cu¼’t_img ) == -1)  -1; 479 } ià( `glob®_check () == -1)  -1; 481 img = ( boÙ_image_t *) `®loc ((boÙ_image_t), EfiLßd”D©a ); 482 ià( img =ð NULL )  -1; 484 `Mem£t ( img , 0, ( boÙ_image_t )); 486 `DBG_PRT (( L "mu¡ dØimagÚ %s", ( CHAR16 *) ¡r )); 489 `SŒCpy ( img -> kÇme , ¡r ); 492 cu¼’t_ÝtiÚs = image_ÝtiÚ_li¡ ; 495 ià( image_li¡ =ð NULL è fœ¡_image = img ; 500 ià( image_li¡ =ð NULL ) 501 image_li¡ = img ; 503 boÙ_image_t * p = image_li¡ ; 505  p -> Ãxt ) 506 p =…-> Ãxt ; 507 p -> Ãxt = img ; 511 cu¼’t_img = img ; 514 } } 521  INTN 522 $do_boÞ—n ( cÚfig_ÝtiÚ_t * p ) 524 INT8 * buf ; 526 buf = `adju¡_poš‹r ( p ); 528 ià( p -> aùiÚ è…-> `aùiÚ Õ, NULL ); 531 * buf = 1; 534 } } 542  INTN 543 $do_l™”® ( cÚfig_ÝtiÚ_t * p , VOID * ¡r ) 548 `SŒCpy ( cu¼’t_img -> ÝtiÚs , ¡r ); 550 cu¼’t_img -> l™”® = 1; 553 } } 555  INTN 556 $do_ÝtiÚs ( cÚfig_ÝtiÚ_t * p , VOID * ¡r ) 559 ià( cu¼’t_img -> l™”® )  0; 564 `SŒCpy ( cu¼’t_img -> ÝtiÚs , ¡r ); 567 } } 569  INTN 570 $do_num”ic ( cÚfig_ÝtiÚ_t * p ) 572 CHAR16 num¡r [ MAX_STRING ]; 573 CHAR16 * ¡r ; 574 tok’_t tok ; 575 UINTN * buf ; 576 UINTN tmp ; 581 tok = `g‘_tok’ ( num¡r , MAX_STRING ); 582 ià( tok !ð TOK_EQUAL ) { 583 `cÚfig_”rÜ ( L "O±iÚ % ex³ù ªƒqu® sigÇÈ+ v®ue", p -> Çme ); 591 tok = `g‘_tok’ ( num¡r , MAX_STRING ); 592 ià( tok !ð TOK_STR ) { 593 `cÚfig_”rÜ ( L "O±iÚ % ex³ù ¨v®ue", p -> Çme ); 596 ¡r = num¡r ; 601 ià( p -> aùiÚ è…-> `aùiÚ Õ, ¡r ); 606 ià( p -> d©a =ð NULL )  0; 608 buf = ( UINTN *) `adju¡_poš‹r ( p ); 610 * ¡r && *¡¸>ð CHAR_NUM0 && *¡¸<ð CHAR_NUM9 ) str++; 611 ià(* ¡r ) { 612 `cÚfig_”rÜ ( L "% i ex³ùšg‡‚um”iødecim® v®ue", p -> Çme ); 616 tmp = `Atoi ( num¡r ); 618 ià( p -> check &&…-> `check (& tmp ) == -1)  -1; 624 ià(* buf ) { 625 `cÚfig_”rÜ ( L "ÝtiÚ % i ®»ady defšed iÀthi cÚ‹xt", p -> Çme ); 629 * buf = tmp ; 632 } } 634  INTN 635 $check_v”bos™y ( VOID * d©a ) 637 UINTN * v® = (UINTN *) d©a ; 639 ià(* v® > 5) { 640 `cÚfig_”rÜ ( L "V”bos™y†ev– mu¡ bš [0-5]‡nd‚Ù %d", * v® ); 645 } } 652  INTN 653 $check_choo£r ( VOID * d©a ) 655 CHAR16 * choo£r = (CHAR16 *) d©a ; 657 ià( `exi¡_choo£r ( choo£r ) == -1) { 658 `cÚfig_”rÜ ( L "choo£¸% i unknown\n", choo£r ); 662 } } 665  INTN 666 $do_¡ršg_cÜe ( cÚfig_ÝtiÚ_t * p , CHAR16 * ¡r , UINTN maxËn , CHAR16 * msg ) 668 tok’_t tok ; 669 CHAR16 * buf ; 674 tok = `g‘_tok’ ( ¡r , maxËn ); 675 ià( tok !ð TOK_EQUAL ) { 676 `cÚfig_”rÜ ( L "O±iÚ % ex³ù ªƒqu® sigÇÈ+ %s", p -> Çme , msg ); 683 tok = `g‘_tok’ ( ¡r , maxËn ); 684 ià( tok !ð TOK_STR ) { 685 `cÚfig_”rÜ ( L "O±iÚ % ex³ù %s", p -> Çme , msg ); 693 ià( p -> aùiÚ è…-> `aùiÚ Õ, ¡r ); 698 ià( p -> d©a =ð NULL )  0; 700 buf = `adju¡_poš‹r ( p ); 702 ià(* buf !ð CHAR_NULL ) { 703 `cÚfig_”rÜ ( L "'%s'‡Ì—dy defšed", p -> Çme ); 706 ià( p -> check &&…-> `check ( ¡r ) == -1)  -1; 711 `SŒCpy ( buf , ¡r ); 714 } } 716  INTN 717 $do_¡ršg ( cÚfig_ÝtiÚ_t * p ) 719 CHAR16 ¡r [ MAX_STRING ]; 721  `do_¡ršg_cÜe ( p , ¡r , MAX_STRING , L "string"); 722 } } 724  INTN 725 $do_fže ( cÚfig_ÝtiÚ_t * p ) 727 CHAR16 ¡r [ FILENAME_MAXLEN ]; 729  `do_¡ršg_cÜe ( p , ¡r , FILENAME_MAXLEN , L "filename"); 730 } } 733  INTN 734 $do_cmd ( cÚfig_ÝtiÚ_t * p ) 736 CHAR16 ¡r [ CMDLINE_MAXLEN ]; 737  `do_¡ršg_cÜe ( p , ¡r , CMDLINE_MAXLEN , L "kernel options"); 738 } } 741 INTN 742 $cÚfig_·r£ ( VOID ) 744 CHAR16 ¡r [ MAX_STRING ]; 745 INTN »t = -1; 746 tok’_t tok ; 747 cÚfig_ÝtiÚ_t * p ; 750 tok = `g‘_tok’ ( ¡r , MAX_STRING ); 752 ià( tok =ð TOK_EOF ) ; 754 ià( tok =ð TOK_ERR )  -1; 756 iàÐ( p = `fšd_ÝtiÚ ( cu¼’t_ÝtiÚs , ¡r )è=ð NULL ) { 757 `cÚfig_”rÜ ( L "UnkowÀÝtiÚ %s", ¡r ); 762 »t = -1; 764  p -> ty³ ) { 765  OPT_BOOL : 766 »t = `do_boÞ—n ( p ); 768  OPT_STR : 769 »t = `do_¡ršg ( p ); 771  OPT_NUM : 772 »t = `do_num”ic ( p ); 774  OPT_FILE : 775 »t = `do_fže ( p ); 777  OPT_CMD : 778 »t = `do_cmd ( p ); 781 `cÚfig_”rÜ ( L "UnkowÀÝtiÚy³ %d", p -> ty³ ); 783 ià( »t =ð-1è ”rÜ ; 785 ià( cu¼’t_img ) { 786 »t = `image_check ( cu¼’t_img ); 788 `cÚfig_”rÜ ( L "No image defined !"); 790 ià( »t =ð0軈ð `fš®_check (); 791 ”rÜ : 792  »t ; 793 } } 795  VOID 796 $upd©e_–žo_Ýt ( VOID ) 803 ià( glob®_cÚfig . ®t_check è –žo_Ýt .alt_check = 1; 805 ià( glob®_cÚfig . debug è –žo_Ýt .debug = 1; 806 ià( glob®_cÚfig . ´om± è –žo_Ýt .prompt = 1; 813 ià( glob®_cÚfig . v”bo£ && –žo_Ýt .verbose == 0) 814 –žo_Ýt . v”bo£ = glob®_cÚfig .verbose; 816 ià( glob®_cÚfig . choo£r [0] && –žo_Ýt .chooser[0] == 0) 817 `SŒCpy ( –žo_Ýt . choo£r , glob®_cÚfig .chooser); 823 ià( glob®_cÚfig . edd30_no_fÜû && –žo_Ýt .edd30_no_force == 0) 824 –žo_Ýt . edd30_no_fÜû = 1; 830 ià( glob®_cÚfig . d–ay && –žo_Ýt . d–ay_£t == 0) 831 –žo_Ýt . d–ay = glob®_cÚfig .delay; 834 –žo_Ýt . timeout = glob®_cÚfig .timeout; 837 } } 843 CHAR16 * 844 $g‘_cÚfig_fže ( VOID ) 846  glob®_cÚfig . cÚfig_fže [0] ? glob®_cÚfig.cÚfig_fž: NULL ; 847 } } 849 EFI_STATUS 850 $»ad_cÚfig ( CHAR16 * fž’ame ) 852 EFI_STATUS ¡©us ; 853 INTN »t ; 855 ià( fž’ame =ð NULL è EFI_INVALID_PARAMETER ; 857 `VERB_PRT (3, `Pršt ( L "Œyšg cÚfig fž%s\n", fž’ame )); 859 `SŒCpy ( glob®_cÚfig . cÚfig_fže , fž’ame ); 861 ¡©us = `fÝs_Ý’ ( fž’ame , & cÚfig_fd ); 862 ià( `EFI_ERROR ( ¡©us )) { 863 `VERB_PRT (3, `Pršt ( L "ÿÂÙ o³ÀcÚfig fž%s\n", fž’ame )); 864  ¡©us ; 869 lše_num = 1; 871 »t = `cÚfig_·r£ (); 873 `fÝs_þo£ ( cÚfig_fd ); 875 `DBG_PRT (( L "done…arsing config file\n")); 877 ià( »t !ð0è EFI_INVALID_PARAMETER ; 879 `upd©e_–žo_Ýt (); 881  EFI_SUCCESS ; 882 } } 884 VOID 885 $´št_Ïb–_li¡ ( VOID ) 887 boÙ_image_t * img , * dæ = glob®_cÚfig . deçuÉ_image ; 889 ià( dæ è `Pršt ( L "\t%s\n", dæ-> Ïb– ); 891  img = image_li¡ ; img; img = img-> Ãxt ) { 892 ià( img !ð dæ è `Pršt ( L "\t%s\n", img-> Ïb– ); 894 } } 902 VOID * 903 $g‘_Ãxt_desütiÚ ( VOID * ´ev , CHAR16 ** Ïb– , CHAR16 ** desütiÚ ) 905 boÙ_image_t * img = (boÙ_image_ˆ*) ´ev ; 907 ià( img =ð NULL ) 908 img = image_li¡ ; 910 img = img-> Ãxt ; 912 ià( img ) { 913 * Ïb– = img ->label; 914 * desütiÚ = img ->description; 915  (*) img ; 918  NULL ; 919 } } 925 CHAR16 * 926 $fšd_desütiÚ ( CHAR16 * Ïb– ) 928 boÙ_image_t * img ; 931  img = image_li¡ ; img; img = img-> Ãxt ) { 932 ià( `SŒiCmp ( img -> Ïb– ,†abel) == 0) { 933  img -> desütiÚ ; 936  NULL ; 937 } } 939 INTN 940 $fšd_Ïb– ( CHAR16 * Ïb– , CHAR16 * kÇme , CHAR16 * ÝtiÚs , CHAR16 * š™rd , CHAR16 * vmcode ) 942 boÙ_image_t * img ; 944 ià( Ïb– =ð NULL ) { 945 ià( glob®_cÚfig . deçuÉ_image =ð NULL )  -1; 946 img = glob®_cÚfig . deçuÉ_image ; 947  found ; 950 ÝtiÚs [0] = 0; 953  img = image_li¡ ; img; img = img-> Ãxt ) { 954 ià( `SŒiCmp ( img -> Ïb– ,†abel) == 0) { 955  found ; 961 ià( glob®_cÚfig . roÙ [0]) { 962 `SŒCpy ( ÝtiÚs , L "„oot="); 963 `SŒC© ( ÝtiÚs , glob®_cÚfig . roÙ ); 966 ià( glob®_cÚfig . ÝtiÚs [0]) { 967 `SŒC© ( ÝtiÚs , L " "); 968 `SŒC© ( ÝtiÚs , glob®_cÚfig .options); 970 ià( glob®_cÚfig . »adÚly è `SŒC© ( ÝtiÚs , L "„o"); 972 ià( glob®_cÚfig . š™rd [0]è `SŒCpy (initrd, global_config.initrd); 973 ià( glob®_cÚfig . vmcode [0]è `SŒCpy (vmcode, global_config.vmcode); 976 –žo_Ýt . sys_img_Ýts = NULL ; 979 found : 980 `SŒCpy ( kÇme , img ->kname); 987 ià( img -> l™”® == 0) { 988 ià( img -> roÙ [0] || glob®_cÚfig .root[0]) { 989 `SŒC© ( ÝtiÚs , L "root="); 990 `SŒC© ( ÝtiÚs , img -> roÙ [0] ? img->roÙ : glob®_cÚfig .root); 993 ià( img -> ÝtiÚs [0] || glob®_cÚfig .options[0]) { 994 `SŒC© ( ÝtiÚs , L " "); 995 `SŒC© ( ÝtiÚs , img ->ÝtiÚs[0] ? img->ÝtiÚs: glob®_cÚfig .options); 997 ià( img -> »adÚly || glob®_cÚfig .readonly) { 998 `SŒC© ( ÝtiÚs , L "„o"); 1002 `SŒCpy ( ÝtiÚs , img ->options); 1006 ià( img -> š™rd [0]) 1007 `SŒCpy ( š™rd , img ->initrd); 1008 ià( glob®_cÚfig . š™rd [0]) 1009 `SŒCpy ( š™rd , glob®_cÚfig .initrd); 1011 ià( img -> vmcode [0]) 1012 `SŒCpy ( vmcode , img ->vmcode); 1013 ià( glob®_cÚfig . vmcode [0]) 1014 `SŒCpy ( vmcode , glob®_cÚfig .vmcode); 1019 –žo_Ýt . sys_img_Ýts = & img ->sys_img_opts; 1021 `DBG_PRT (( L "Ïb– %s: kÇme=% ÝtiÚs=% š™rd=% vmcode=%s", img -> Ïb– , kÇme , ÝtiÚs , š™rd , vmcode )); 1024 } } 1026  VOID 1027 $´št_ÝtiÚs ( cÚfig_ÝtiÚ_group_t * g½ , BOOLEAN fœ¡ ) 1029 cÚfig_ÝtiÚ_t * ’d , * p ; 1030 CHAR16 * ¡r ; 1032  g½ ) { 1033 p = g½ -> ÝtiÚs ; 1034 ’d = g½ -> ÝtiÚs +g½-> ÃÁr›s ; 1035  p !ð ’d ) { 1036 ¡r = NULL ; 1037  p -> ty³ ) { 1038  OPT_BOOL : 1039 ¡r = L "%s"; 1041  OPT_STR : 1042 ¡r = L "%s=string"; 1044  OPT_FILE : 1045 ¡r = L "%s=filename"; 1047  OPT_CMD : 1048 ¡r = L "%s=kernel_options"; 1050  OPT_NUM : 1051 ¡r = L "%s=number"; 1056 ià( ¡r && fœ¡ =ð FALSE è `Pršt ( L ", "); 1057 ià( ¡r è `Pršt (¡r, p -> Çme ); 1058 fœ¡ = FALSE ; 1059 p ++; 1061 g½ = g½-> Ãxt ; 1063 } } 1066 VOID 1067 $´št_cÚfig_ÝtiÚs ( VOID ) 1069 `Pršt ( L "Global options supported:\n"); 1071 `´št_ÝtiÚs ( glob®_ÝtiÚ_li¡ , TRUE ); 1072 `Pršt ( L "\n\n"); 1074 `Pršt ( L "Image options supported:\n"); 1075 `´št_ÝtiÚs ( image_ÝtiÚ_li¡ , TRUE ); 1076 `Pršt ( L "\n"); 1077 } } 1084 CHAR16 * 1085 $g‘_mes§ge_fž’ame ( INTN which ) 1087 ià( which < 0 || which >ð MAX_MESSAGES è NULL ; 1088  glob®_cÚfig . mes§ge_fže [ which ]; 1089 } } 1091 INTN 1092 $»gi¡”_cÚfig_ÝtiÚs ( cÚfig_ÝtiÚ_t * Ýt , UINTN n , cÚfig_ÝtiÚ_group_scÝe_t group ) 1094 cÚfig_ÝtiÚ_group_t * Ãwg½ , ** g½ ; 1096 ià( Ýt =ð NULL || n =ð0 || ( group !ð OPTIONS_GROUP_GLOBAL && grou°!ð OPTIONS_GROUP_IMAGE ))  -1; 1098 `VERB_PRT (3, `Pršt ( L "»gi¡”šg %d o±iÚ fÜ grou°%s\n", n , group =ð OPTIONS_GROUP_GLOBAL ? L"global" : L"image")); 1100 Ãwg½ = `®loc (( cÚfig_ÝtiÚ_group_t ), EfiLßd”D©a ); 1101 ià( Ãwg½ =ð NULL )  -1; 1103 g½ = group =ð OPTIONS_GROUP_GLOBAL ? & glob®_ÝtiÚ_li¡ : & image_ÝtiÚ_li¡ ; 1105 ià(* g½ è(*g½)-> Ãxt ) grp = &(*grp)->next; 1107 Ãwg½ -> ÝtiÚs = Ýt ; 1108 Ãwg½ -> Ãxt = NULL ; 1109 Ãwg½ -> ÃÁr›s = n ; 1111 ià(* g½ ) { 1112 (* g½ )-> Ãxt = Ãwg½ ; 1114 * g½ = Ãwg½ ; 1117 } } 1122 INTN 1123 $cÚfig_š™ ( VOID ) 1125 INTN »t ; 1127 »t = `»gi¡”_cÚfig_ÝtiÚs ( glob®_commÚ_ÝtiÚs , 1128 ( glob®_commÚ_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 1129 OPTIONS_GROUP_GLOBAL ); 1130 ià( »t == -1)  -1; 1132 »t = `»gi¡”_cÚfig_ÝtiÚs ( image_commÚ_ÝtiÚs , 1133 ( image_commÚ_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 1134 OPTIONS_GROUP_IMAGE ); 1136 cu¼’t_ÝtiÚs = glob®_ÝtiÚ_li¡ ; 1138  »t ; 1139 } } @config.h 26 #iâdeà __ELILO_CONFIG_H__ 27  #__ELILO_CONFIG_H__ ) 29  #Ýt_off£tof ( Ýt è(&(( boÙ_image_t *)(0x0))->Ýt) ) 31 ’um { mOPT_NOTUSED , mOPT_STR , mOPT_CMD , mOPT_BOOL , mOPT_NUM , mOPT_FILE } tcÚfig_ÝtiÚ_ty³_t ; 33 ’um { mOPT_GLOBAL , 34 mOPT_IMAGE , 35 mOPT_IMAGE_SYS 36 } tcÚfig_ÝtiÚ_scÝe_t ; 38 ’um { mOPTIONS_GROUP_GLOBAL , 39 mOPTIONS_GROUP_IMAGE , 40 } tcÚfig_ÝtiÚ_group_scÝe_t ; 42  g_cÚfig_ÝtiÚ_t ; 43  INTN tÝtiÚ_aùiÚ_t ( t_cÚfig_ÝtiÚ_t *, tVOID *); 45  s_cÚfig_ÝtiÚ_t { 46 cÚfig_ÝtiÚ_ty³_t mty³ ; 47 cÚfig_ÝtiÚ_scÝe_t mscÝe ; 48 CHAR16 * mÇme ; 49 ÝtiÚ_aùiÚ_t * maùiÚ ; 50 INTN (* check )(*); 51 VOID * md©a ; 52 } tcÚfig_ÝtiÚ_t ; 54 INTN »gi¡”_cÚfig_ÝtiÚs ( cÚfig_ÝtiÚ_t * Ýt , UINTN ÃÁr›s , cÚfig_ÝtiÚ_group_scÝe_t ); @devschemes/simple.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"fžeÝs.h " 32  #NAMING_SCHEME L "sim¶e" ) 35 INT8 mty³ ; 36 INT8 msubty³ ; 37 INTN (* deviû_func )( deviû_t * mdev , EFI_DEVICE_PATH * mdp ); 38 } tdeviûs_ty³s_t ; 41  UINT32 g©­i_couÁ , gscsi_couÁ , gÃt_couÁ ; 43  INTN 44 $©­i_deviû ( deviû_t * dev , EFI_DEVICE_PATH * dp ) 48 dev -> Çme [0] = L 'a'; 49 dev -> Çme [1] = L 't'; 50 dev -> Çme [2] = L 'a'; 51 dev -> Çme [3] = L 'p'; 52 dev -> Çme [4] = L 'i'; 54 `SPršt ( dev -> Çme +5, FILEOPS_DEVNAME_MAXLEN -5-1, L "%d", ©­i_couÁ ); 55 ©­i_couÁ ++; 58 } } 60  INTN 61 $scsi_deviû ( deviû_t * dev , EFI_DEVICE_PATH * dp ) 65 dev -> Çme [0] = L 's'; 66 dev -> Çme [1] = L 'c'; 67 dev -> Çme [2] = L 's'; 68 dev -> Çme [3] = L 'i'; 70 `SPršt ( dev -> Çme +4, FILEOPS_DEVNAME_MAXLEN -4-1, L "%d", scsi_couÁ ); 71 scsi_couÁ ++; 74 } } 76  INTN 77 $ÃtwÜk_deviû ( deviû_t * dev , EFI_DEVICE_PATH * dp ) 81 dev -> Çme [0] = L 'n'; 82 dev -> Çme [1] = L 'e'; 83 dev -> Çme [2] = L 't'; 85 `SPršt ( dev -> Çme +3, FILEOPS_DEVNAME_MAXLEN -3-1, L "%d", Ãt_couÁ ); 86 Ãt_couÁ ++; 89 } } 94  deviûs_ty³s_t gdev_ty³s []={ 95 { MESSAGING_DEVICE_PATH , MSG_ATAPI_DP , ©­i_deviû }, 96 { MESSAGING_DEVICE_PATH , MSG_SCSI_DP , scsi_deviû }, 97 { MESSAGING_DEVICE_PATH , MSG_MAC_ADDR_DP , ÃtwÜk_deviû }, 98 { 0, 0 , NULL } 101  INTN 102 $sim¶e_scheme ( deviû_t * b , UINTN n ) 104 EFI_DEVICE_PATH * dp1 , * dp ; 105 deviûs_ty³s_t * p ; 106 UINTN i ; 117 ià( –žo_Ýt . edd30_Ú == 0) { 118 `VERB_PRT (4, `Pršt ( L "% deviû‚amšg schemÚly wÜk w™h EDD3.0ƒÇbËd\n", NAMING_SCHEME )); 122  i =0; i < n ; i++) { 123 dp = `DeviûP©hFromHªdË ( b [ i ]. dev ); 124 ià( dp =ð NULL ) { 125 `ERR_PRT (( L "ÿÂÙ g‘ deviû…©h fÜ deviû %d", i )); 128 dp1 = dp = `UÅackDeviûP©h (dp); 130 ! `IsDeviûP©hEnd ( dp )) { 131 p = dev_ty³s ; 132  p -> ty³ ) { 133 iàÐ p -> ty³ =ð `DeviûP©hTy³ ( dp ) 134 && p -> subty³ =ð `DeviûP©hSubTy³ ( dp )) { 135 (* p -> deviû_func )( b + i , dp ); 136  dÚe ; 139 p ++; 141 dp = `NextDeviûP©hNode (dp); 143 dÚe : 144 `F»ePoÞ ( dp1 ); 147 } } 149 devÇme_scheme_t gsim¶e_devÇme_scheme ={ 150 NAMING_SCHEME , 151 sim¶e_scheme @elf.h 29 #iâdeà __LINUX_ELF_H__ 30  #__LINUX_ELF_H__ ) 36  ~ 39  UINT32 tElf32_Addr ; 40  UINT16 tElf32_H®f ; 41  UINT32 tElf32_Off ; 42  INT32 tElf32_SwÜd ; 43  UINT32 tElf32_WÜd ; 46  UINT64 tElf64_Addr ; 47  UINT16 tElf64_H®f ; 48  INT16 tElf64_SH®f ; 49  UINT64 tElf64_Off ; 50  INT64 tElf64_SwÜd ; 51  UINT64 tElf64_WÜd ; 54  #PT_NULL 0 ) 55  #PT_LOAD 1 ) 56  #PT_DYNAMIC 2 ) 57  #PT_INTERP 3 ) 58  #PT_NOTE 4 ) 59  #PT_SHLIB 5 ) 60  #PT_PHDR 6 ) 61  #PT_LOPROC 0x70000000 ) 62  #PT_HIPROC 0x7fffffff ) 63  #PT_MIPS_REGINFO 0x70000000 ) 66  #EF_MIPS_NOREORDER 0x00000001 ) 67  #EF_MIPS_PIC 0x00000002 ) 68  #EF_MIPS_CPIC 0x00000004 ) 69  #EF_MIPS_ARCH 0xf0000000 ) 72  #ET_NONE 0 ) 73  #ET_REL 1 ) 74  #ET_EXEC 2 ) 75  #ET_DYN 3 ) 76  #ET_CORE 4 ) 77  #ET_LOPROC 0xff00 ) 78  #ET_HIPROC 0xffff ) 81  #EM_NONE 0 ) 82  #EM_M32 1 ) 83  #EM_SPARC 2 ) 84  #EM_386 3 ) 85  #EM_68K 4 ) 86  #EM_88K 5 ) 87  #EM_486 6 ) 88  #EM_860 7 ) 90  #EM_MIPS 8 ) 92  #EM_MIPS_RS4_BE 10 ) 94  #EM_PARISC 15 ) 96  #EM_SPARC32PLUS 18 ) 98  #EM_PPC 20 ) 100  #EM_SH 42 ) 102  #EM_SPARCV9 43 ) 104  #EM_IA_64 50 ) 110  #EM_ALPHA 0x9026 ) 114  #DT_NULL 0 ) 115  #DT_NEEDED 1 ) 116  #DT_PLTRELSZ 2 ) 117  #DT_PLTGOT 3 ) 118  #DT_HASH 4 ) 119  #DT_STRTAB 5 ) 120  #DT_SYMTAB 6 ) 121  #DT_RELA 7 ) 122  #DT_RELASZ 8 ) 123  #DT_RELAENT 9 ) 124  #DT_STRSZ 10 ) 125  #DT_SYMENT 11 ) 126  #DT_INIT 12 ) 127  #DT_FINI 13 ) 128  #DT_SONAME 14 ) 129  #DT_RPATH 15 ) 130  #DT_SYMBOLIC 16 ) 131  #DT_REL 17 ) 132  #DT_RELSZ 18 ) 133  #DT_RELENT 19 ) 134  #DT_PLTREL 20 ) 135  #DT_DEBUG 21 ) 136  #DT_TEXTREL 22 ) 137  #DT_JMPREL 23 ) 138  #DT_LOPROC 0x70000000 ) 139  #DT_HIPROC 0x7fffffff ) 140  #DT_MIPS_RLD_VERSION 0x70000001 ) 141  #DT_MIPS_TIME_STAMP 0x70000002 ) 142  #DT_MIPS_ICHECKSUM 0x70000003 ) 143  #DT_MIPS_IVERSION 0x70000004 ) 144  #DT_MIPS_FLAGS 0x70000005 ) 145  #RHF_NONE 0 ) 146  #RHF_HARDWAY 1 ) 147  #RHF_NOTPOT 2 ) 148  #DT_MIPS_BASE_ADDRESS 0x70000006 ) 149  #DT_MIPS_CONFLICT 0x70000008 ) 150  #DT_MIPS_LIBLIST 0x70000009 ) 151  #DT_MIPS_LOCAL_GOTNO 0x7000000a ) 152  #DT_MIPS_CONFLICTNO 0x7000000b ) 153  #DT_MIPS_LIBLISTNO 0x70000010 ) 154  #DT_MIPS_SYMTABNO 0x70000011 ) 155  #DT_MIPS_UNREFEXTNO 0x70000012 ) 156  #DT_MIPS_GOTSYM 0x70000013 ) 157  #DT_MIPS_HIPAGENO 0x70000014 ) 158  #DT_MIPS_RLD_MAP 0x70000016 ) 161  #STB_LOCAL 0 ) 162  #STB_GLOBAL 1 ) 163  #STB_WEAK 2 ) 165  #STT_NOTYPE 0 ) 166  #STT_OBJECT 1 ) 167  #STT_FUNC 2 ) 168  #STT_SECTION 3 ) 169  #STT_FILE 4 ) 171  #ELF32_ST_BIND ( x è((xè>> 4) ) 172  #ELF32_ST_TYPE ( x è(((èxè& 0xf) ) 176  #AT_NULL 0 ) 177  #AT_IGNORE 1 ) 178  #AT_EXECFD 2 ) 179  #AT_PHDR 3 ) 180  #AT_PHENT 4 ) 181  #AT_PHNUM 5 ) 182  #AT_PAGESZ 6 ) 183  #AT_BASE 7 ) 184  #AT_FLAGS 8 ) 185  #AT_ENTRY 9 ) 186  #AT_NOTELF 10 ) 187  #AT_UID 11 ) 188  #AT_EUID 12 ) 189  #AT_GID 13 ) 190  #AT_EGID 14 ) 191  #AT_PLATFORM 15 ) 192  #AT_HWCAP 16 ) 194  sdyÇmic { 195 Elf32_SwÜd md_g ; 197 Elf32_SwÜd md_v® ; 198 Elf32_Addr md_±r ; 199 } md_un ; 200 } tElf32_Dyn ; 203 Elf64_WÜd md_g ; 205 Elf64_WÜd md_v® ; 206 Elf64_WÜd md_±r ; 207 } md_un ; 208 } tElf64_Dyn ; 211  #ELF32_R_SYM ( x è((xè>> 8) ) 212  #ELF32_R_TYPE ( x è((xè& 0xff) ) 214  #R_386_NONE 0 ) 215  #R_386_32 1 ) 216  #R_386_PC32 2 ) 217  #R_386_GOT32 3 ) 218  #R_386_PLT32 4 ) 219  #R_386_COPY 5 ) 220  #R_386_GLOB_DAT 6 ) 221  #R_386_JMP_SLOT 7 ) 222  #R_386_RELATIVE 8 ) 223  #R_386_GOTOFF 9 ) 224  #R_386_GOTPC 10 ) 225  #R_386_NUM 11 ) 227  #R_MIPS_NONE 0 ) 228  #R_MIPS_16 1 ) 229  #R_MIPS_32 2 ) 230  #R_MIPS_REL32 3 ) 231  #R_MIPS_26 4 ) 232  #R_MIPS_HI16 5 ) 233  #R_MIPS_LO16 6 ) 234  #R_MIPS_GPREL16 7 ) 235  #R_MIPS_LITERAL 8 ) 236  #R_MIPS_GOT16 9 ) 237  #R_MIPS_PC16 10 ) 238  #R_MIPS_CALL16 11 ) 239  #R_MIPS_GPREL32 12 ) 242  #R_MIPS_UNUSED1 13 ) 243  #R_MIPS_UNUSED2 14 ) 244  #R_MIPS_UNUSED3 15 ) 245  #R_MIPS_SHIFT5 16 ) 246  #R_MIPS_SHIFT6 17 ) 247  #R_MIPS_64 18 ) 248  #R_MIPS_GOT_DISP 19 ) 249  #R_MIPS_GOT_PAGE 20 ) 250  #R_MIPS_GOT_OFST 21 ) 255  #R_MIPS_GOTHI16 22 ) 256  #R_MIPS_GOTLO16 23 ) 257  #R_MIPS_SUB 24 ) 258  #R_MIPS_INSERT_A 25 ) 259  #R_MIPS_INSERT_B 26 ) 260  #R_MIPS_DELETE 27 ) 261  #R_MIPS_HIGHER 28 ) 262  #R_MIPS_HIGHEST 29 ) 267  #R_MIPS_CALLHI16 30 ) 268  #R_MIPS_CALLLO16 31 ) 272  #R_MIPS_LOVENDOR 100 ) 273  #R_MIPS_HIVENDOR 127 ) 279  #R_SPARC_NONE 0 ) 280  #R_SPARC_8 1 ) 281  #R_SPARC_16 2 ) 282  #R_SPARC_32 3 ) 283  #R_SPARC_DISP8 4 ) 284  #R_SPARC_DISP16 5 ) 285  #R_SPARC_DISP32 6 ) 286  #R_SPARC_WDISP30 7 ) 287  #R_SPARC_WDISP22 8 ) 288  #R_SPARC_HI22 9 ) 289  #R_SPARC_22 10 ) 290  #R_SPARC_13 11 ) 291  #R_SPARC_LO10 12 ) 292  #R_SPARC_GOT10 13 ) 293  #R_SPARC_GOT13 14 ) 294  #R_SPARC_GOT22 15 ) 295  #R_SPARC_PC10 16 ) 296  #R_SPARC_PC22 17 ) 297  #R_SPARC_WPLT30 18 ) 298  #R_SPARC_COPY 19 ) 299  #R_SPARC_GLOB_DAT 20 ) 300  #R_SPARC_JMP_SLOT 21 ) 301  #R_SPARC_RELATIVE 22 ) 302  #R_SPARC_UA32 23 ) 303  #R_SPARC_PLT32 24 ) 304  #R_SPARC_HIPLT22 25 ) 305  #R_SPARC_LOPLT10 26 ) 306  #R_SPARC_PCPLT32 27 ) 307  #R_SPARC_PCPLT22 28 ) 308  #R_SPARC_PCPLT10 29 ) 309  #R_SPARC_10 30 ) 310  #R_SPARC_11 31 ) 311  #R_SPARC_WDISP16 40 ) 312  #R_SPARC_WDISP19 41 ) 313  #R_SPARC_7 43 ) 314  #R_SPARC_5 44 ) 315  #R_SPARC_6 45 ) 319  #HWCAP_SPARC_FLUSH 1 ) 320  #HWCAP_SPARC_STBAR 2 ) 321  #HWCAP_SPARC_SWAP 4 ) 322  #HWCAP_SPARC_MULDIV 8 ) 323  #HWCAP_SPARC_V9 16 ) 329  #R_68K_NONE 0 ) 330  #R_68K_32 1 ) 331  #R_68K_16 2 ) 332  #R_68K_8 3 ) 333  #R_68K_PC32 4 ) 334  #R_68K_PC16 5 ) 335  #R_68K_PC8 6 ) 336  #R_68K_GOT32 7 ) 337  #R_68K_GOT16 8 ) 338  #R_68K_GOT8 9 ) 339  #R_68K_GOT32O 10 ) 340  #R_68K_GOT16O 11 ) 341  #R_68K_GOT8O 12 ) 342  #R_68K_PLT32 13 ) 343  #R_68K_PLT16 14 ) 344  #R_68K_PLT8 15 ) 345  #R_68K_PLT32O 16 ) 346  #R_68K_PLT16O 17 ) 347  #R_68K_PLT8O 18 ) 348  #R_68K_COPY 19 ) 349  #R_68K_GLOB_DAT 20 ) 350  #R_68K_JMP_SLOT 21 ) 351  #R_68K_RELATIVE 22 ) 356  #R_ALPHA_NONE 0 ) 357  #R_ALPHA_REFLONG 1 ) 358  #R_ALPHA_REFQUAD 2 ) 359  #R_ALPHA_GPREL32 3 ) 360  #R_ALPHA_LITERAL 4 ) 361  #R_ALPHA_LITUSE 5 ) 362  #R_ALPHA_GPDISP 6 ) 363  #R_ALPHA_BRADDR 7 ) 364  #R_ALPHA_HINT 8 ) 365  #R_ALPHA_SREL16 9 ) 366  #R_ALPHA_SREL32 10 ) 367  #R_ALPHA_SREL64 11 ) 368  #R_ALPHA_OP_PUSH 12 ) 369  #R_ALPHA_OP_STORE 13 ) 370  #R_ALPHA_OP_PSUB 14 ) 371  #R_ALPHA_OP_PRSHIFT 15 ) 372  #R_ALPHA_GPVALUE 16 ) 373  #R_ALPHA_GPRELHIGH 17 ) 374  #R_ALPHA_GPRELLOW 18 ) 375  #R_ALPHA_IMMED_GP_16 19 ) 376  #R_ALPHA_IMMED_GP_HI32 20 ) 377  #R_ALPHA_IMMED_SCN_HI32 21 ) 378  #R_ALPHA_IMMED_BR_HI32 22 ) 379  #R_ALPHA_IMMED_LO32 23 ) 380  #R_ALPHA_COPY 24 ) 381  #R_ALPHA_GLOB_DAT 25 ) 382  #R_ALPHA_JMP_SLOT 26 ) 383  #R_ALPHA_RELATIVE 27 ) 387  #EF_ALPHA_32BIT 1 ) 390  s–f32_»l { 391 Elf32_Addr mr_off£t ; 392 Elf32_WÜd mr_šfo ; 393 } tElf32_R– ; 395  s–f64_»l { 396 Elf64_Addr mr_off£t ; 397 Elf64_WÜd mr_šfo ; 398 } tElf64_R– ; 400  s–f32_»Ï { 401 Elf32_Addr mr_off£t ; 402 Elf32_WÜd mr_šfo ; 403 Elf32_SwÜd mr_add’d ; 404 } tElf32_R–a ; 406  s–f64_»Ï { 407 Elf64_Addr mr_off£t ; 408 Elf64_WÜd mr_šfo ; 409 Elf64_WÜd mr_add’d ; 410 } tElf64_R–a ; 412  s–f32_sym { 413 Elf32_WÜd m¡_Çme ; 414 Elf32_Addr m¡_v®ue ; 415 Elf32_WÜd m¡_size ; 416  m¡_šfo ; 417  m¡_Ùh” ; 418 Elf32_H®f m¡_shndx ; 419 } tElf32_Sym ; 421  s–f64_sym { 422 Elf32_WÜd m¡_Çme ; 423  m¡_šfo ; 424  m¡_Ùh” ; 425 Elf64_H®f m¡_shndx ; 426 Elf64_Addr m¡_v®ue ; 427 Elf64_WÜd m¡_size ; 428 } tElf64_Sym ; 431  #EI_NIDENT 16 ) 433  s–f32_hdr { 434  me_id’t [ EI_NIDENT ]; 435 Elf32_H®f me_ty³ ; 436 Elf32_H®f me_machše ; 437 Elf32_WÜd me_v”siÚ ; 438 Elf32_Addr me_’Œy ; 439 Elf32_Off me_phoff ; 440 Elf32_Off me_shoff ; 441 Elf32_WÜd me_æags ; 442 Elf32_H®f me_ehsize ; 443 Elf32_H®f me_ph’tsize ; 444 Elf32_H®f me_phnum ; 445 Elf32_H®f me_sh’tsize ; 446 Elf32_H®f me_shnum ; 447 Elf32_H®f me_sh¡ºdx ; 448 } tElf32_Ehdr ; 450  s–f64_hdr { 451  me_id’t [16]; 452 Elf64_SH®f me_ty³ ; 453 Elf64_H®f me_machše ; 454 INT32 me_v”siÚ ; 455 Elf64_Addr me_’Œy ; 456 Elf64_Off me_phoff ; 457 Elf64_Off me_shoff ; 458 INT32 me_æags ; 459 Elf64_SH®f me_ehsize ; 460 Elf64_SH®f me_ph’tsize ; 461 Elf64_SH®f me_phnum ; 462 Elf64_SH®f me_sh’tsize ; 463 Elf64_SH®f me_shnum ; 464 Elf64_SH®f me_sh¡ºdx ; 465 } tElf64_Ehdr ; 469  #PF_R 0x4 ) 470  #PF_W 0x2 ) 471  #PF_X 0x1 ) 473  s–f32_phdr { 474 Elf32_WÜd mp_ty³ ; 475 Elf32_Off mp_off£t ; 476 Elf32_Addr mp_vaddr ; 477 Elf32_Addr mp_·ddr ; 478 Elf32_WÜd mp_fžesz ; 479 Elf32_WÜd mp_memsz ; 480 Elf32_WÜd mp_æags ; 481 Elf32_WÜd mp_®ign ; 482 } tElf32_Phdr ; 484  s–f64_phdr { 485 INT32 mp_ty³ ; 486 INT32 mp_æags ; 487 Elf64_Off mp_off£t ; 488 Elf64_Addr mp_vaddr ; 489 Elf64_Addr mp_·ddr ; 490 Elf64_WÜd mp_fžesz ; 491 Elf64_WÜd mp_memsz ; 492 Elf64_WÜd mp_®ign ; 493 } tElf64_Phdr ; 496  #SHT_NULL 0 ) 497  #SHT_PROGBITS 1 ) 498  #SHT_SYMTAB 2 ) 499  #SHT_STRTAB 3 ) 500  #SHT_RELA 4 ) 501  #SHT_HASH 5 ) 502  #SHT_DYNAMIC 6 ) 503  #SHT_NOTE 7 ) 504  #SHT_NOBITS 8 ) 505  #SHT_REL 9 ) 506  #SHT_SHLIB 10 ) 507  #SHT_DYNSYM 11 ) 508  #SHT_NUM 12 ) 509  #SHT_LOPROC 0x70000000 ) 510  #SHT_HIPROC 0x7fffffff ) 511  #SHT_LOUSER 0x80000000 ) 512  #SHT_HIUSER 0xffffffff ) 513  #SHT_MIPS_LIST 0x70000000 ) 514  #SHT_MIPS_CONFLICT 0x70000002 ) 515  #SHT_MIPS_GPTAB 0x70000003 ) 516  #SHT_MIPS_UCODE 0x70000004 ) 519  #SHF_WRITE 0x1 ) 520  #SHF_ALLOC 0x2 ) 521  #SHF_EXECINSTR 0x4 ) 522  #SHF_MASKPROC 0xf0000000 ) 523  #SHF_MIPS_GPREL 0x10000000 ) 526  #SHN_UNDEF 0 ) 527  #SHN_LORESERVE 0xff00 ) 528  #SHN_LOPROC 0xff00 ) 529  #SHN_HIPROC 0xff1f ) 530  #SHN_ABS 0xfff1 ) 531  #SHN_COMMON 0xfff2 ) 532  #SHN_HIRESERVE 0xffff ) 533  #SHN_MIPS_ACCOMON 0xff00 ) 536 Elf32_WÜd msh_Çme ; 537 Elf32_WÜd msh_ty³ ; 538 Elf32_WÜd msh_æags ; 539 Elf32_Addr msh_addr ; 540 Elf32_Off msh_off£t ; 541 Elf32_WÜd msh_size ; 542 Elf32_WÜd msh_lšk ; 543 Elf32_WÜd msh_šfo ; 544 Elf32_WÜd msh_add¿lign ; 545 Elf32_WÜd msh_’tsize ; 546 } tElf32_Shdr ; 548  s–f64_shdr { 549 Elf32_WÜd msh_Çme ; 550 Elf32_WÜd msh_ty³ ; 551 Elf64_WÜd msh_æags ; 552 Elf64_Addr msh_addr ; 553 Elf64_Off msh_off£t ; 554 Elf64_WÜd msh_size ; 555 Elf32_WÜd msh_lšk ; 556 Elf32_WÜd msh_šfo ; 557 Elf64_WÜd msh_add¿lign ; 558 Elf64_WÜd msh_’tsize ; 559 } tElf64_Shdr ; 561  #EI_MAG0 0 ) 562  #EI_MAG1 1 ) 563  #EI_MAG2 2 ) 564  #EI_MAG3 3 ) 565  #EI_CLASS 4 ) 566  #EI_DATA 5 ) 567  #EI_VERSION 6 ) 568  #EI_PAD 7 ) 570  #ELFMAG0 0x7à ) 571  #ELFMAG1 'E' ) 572  #ELFMAG2 'L' ) 573  #ELFMAG3 'F' ) 574  #ELFMAG "\177ELF" ) 575  #SELFMAG 4 ) 577  #ELFCLASSNONE 0 ) 578  #ELFCLASS32 1 ) 579  #ELFCLASS64 2 ) 580  #ELFCLASSNUM 3 ) 582  #ELFDATANONE 0 ) 583  #ELFDATA2LSB 1 ) 584  #ELFDATA2MSB 2 ) 586  #EV_NONE 0 ) 587  #EV_CURRENT 1 ) 588  #EV_NUM 2 ) 591  #NT_PRSTATUS 1 ) 592  #NT_PRFPREG 2 ) 593  #NT_PRPSINFO 3 ) 594  #NT_TASKSTRUCT 4 ) 597  s–f32_nÙe { 598 Elf32_WÜd mn_Çmesz ; 599 Elf32_WÜd mn_descsz ; 600 Elf32_WÜd mn_ty³ ; 601 } tElf32_Nhdr ; 609  s–f64_nÙe { 610 Elf32_WÜd mn_Çmesz ; 611 Elf32_WÜd mn_descsz ; 612 Elf32_WÜd mn_ty³ ; 613 } tElf64_Nhdr ; 615 #ià ELF_CLASS =ð ELFCLASS32 617 Elf32_Dyn _DYNAMIC []; 618  #–fhdr –f32_hdr ) 619  #–f_phdr –f32_phdr ) 620  #–f_nÙe –f32_nÙe ) 624 Elf64_Dyn _DYNAMIC []; 625  #–fhdr –f64_hdr ) 626  #–f_phdr –f64_phdr ) 627  #–f_nÙe –f64_nÙe ) @elilo.c 32  ~ 33  ~ 35  ~"–žo.h " 36  ~"v¬s.h " 37  ~"gz.h " 39  ~"g‘Ýt.h " 40  ~"fžeÝs.h " 41  ~"lßd”.h " 42  ~"cÚfig.h " 44  #ELILO_VERSION L "3.4" ) 45  #ELILO_SHARED_CMDLINE_OPTS L "pPMC:aDhd:i:vVc:E" ) 47 –žo_cÚfig_t g–žo_Ýt ; 49 EFI_SYSTEM_TABLE * gsy¡ab ; 62  INTN 63 $do_k”Ãl_lßd ( CHAR16 * kÇme , kdesc_t * kd ) 65 lßd”_Ýs_t * ldÝs ; 66 EFI_STATUS ¡©us ; 67 fÝs_fd_t fd ; 69 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 70 ià( `EFI_ERROR ( ¡©us )) { 71 `ERR_PRT (( L "K”ÃÈfž‚Ù found %s", kÇme )); 72  ELILO_LOAD_ERROR ; 74 `fÝs_þo£ ( fd ); 76 ldÝs = `lßd”_´obe ( kÇme ); 77 ià( ldÝs =ð NULL ) { 78 `ERR_PRT (( L "CªnÙ fšd‡†ßd” fÜ %s", kÇme )); 79  ELILO_LOAD_ERROR ; 82 `VERB_PRT (1, `Pršt ( L "Usšg % lßd”\n", ldÝs -> ld_Çme )); 84  ldÝs -> `ld_lßd_k”Ãl ( kÇme , kd ); 85 } } 87 INTN 88 $k”Ãl_lßd ( EFI_HANDLE image , CHAR16 * kÇme , kdesc_t * kd , memdesc_t * imem , memdesc_ˆ* mmem ) 90 CHAR16 k”Ãl [ CMDLINE_MAXLEN ]; 97 ià( –žo_Ýt . vmcode [0]) 98 `SŒCpy ( k”Ãl , –žo_Ýt . vmcode ); 100 `SŒCpy ( k”Ãl , kÇme ); 104  `do_k”Ãl_lßd ( k”Ãl , kd )) { 105  ELILO_LOAD_SUCCESS : 108  ELILO_LOAD_ERROR : 110  ELILO_LOAD_ERROR ; 112  ELILO_LOAD_ABORTED : 114 –žo_Ýt . š™rd [0] = CHAR_NULL ; 115 –žo_Ýt . vmcode [0] = CHAR_NULL ; 118 –žo_Ýt . ´om± = 1; 119 –žo_Ýt . timeout = ELILO_DEFAULT_TIMEOUT ; 120 –žo_Ýt . d–ay = 0; 122  ELILO_LOAD_RETRY ; 125 `VERB_PRT (3, `Pršt ( L "kernel†oaded in [0x%lx-0x%lx]ƒntry=0x%lx\n", 126 () kd -> k¡¬t , ()kd-> k’d , ()kd-> k’Œy )); 128 ià( –žo_Ýt . š™rd [0]) { 130 ià( `sysd•s_š™rd_g‘_addr ( kd , imem è=ð-1è ex™_”rÜ ; 132  `lßd_fže ( –žo_Ýt . š™rd , imem )) { 133  ELILO_LOAD_SUCCESS : 135  ELILO_LOAD_ERROR : 136  ex™_”rÜ ; 137  ELILO_LOAD_ABORTED : 138 `ä“_kmem (); 140 –žo_Ýt . š™rd [0] = CHAR_NULL ; 141 –žo_Ýt . vmcode [0] = CHAR_NULL ; 142 –žo_Ýt . ´om± = 1; 143 –žo_Ýt . timeout = ELILO_DEFAULT_TIMEOUT ; 144 –žo_Ýt . d–ay = 0; 146  ELILO_LOAD_RETRY ; 150 ià( –žo_Ýt . vmcode [0]) { 152 mmem -> ¡¬t_addr = 0; 154  `lßd_fže ( kÇme , mmem )) { 155  ELILO_LOAD_SUCCESS : 157  ELILO_LOAD_ERROR : 158  ex™_”rÜ ; 159  ELILO_LOAD_ABORTED : 160 ià( imem -> ¡¬t_addr ) 161 `ä“ ( imem -> ¡¬t_addr ); 162 `ä“_kmem (); 164 –žo_Ýt . š™rd [0] = CHAR_NULL ; 165 –žo_Ýt . vmcode [0] = CHAR_NULL ; 166 –žo_Ýt . ´om± = 1; 167 –žo_Ýt . timeout = ELILO_DEFAULT_TIMEOUT ; 168 –žo_Ýt . d–ay = 0; 170  ELILO_LOAD_RETRY ; 174 ià( `gz_´obe ( mmem -> ¡¬t_addr , mmem-> size ) == 0 && 175 `gunz_image ( mmem è!ð ELILO_LOAD_SUCCESS ) { 176 ià( imem -> ¡¬t_addr ) 177 `ä“ ( imem -> ¡¬t_addr ); 178 `ä“ ( mmem -> ¡¬t_addr ); 179 `ä“_kmem (); 181 –žo_Ýt . š™rd [0] = CHAR_NULL ; 182 –žo_Ýt . vmcode [0] = CHAR_NULL ; 183 –žo_Ýt . ´om± = 1; 184 –žo_Ýt . timeout = ELILO_DEFAULT_TIMEOUT ; 185 –žo_Ýt . d–ay = 0; 187  ELILO_LOAD_RETRY ; 190  ELILO_LOAD_SUCCESS ; 191 ex™_”rÜ : 192 `ä“_kmem (); 193 ià( imem -> ¡¬t_addr è `ä“ (imem->start_addr); 194 ià( mmem -> ¡¬t_addr è `ä“ (mmem->start_addr); 196  ELILO_LOAD_ERROR ; 197 } } 199  INTN 200 $maš_loÝ ( EFI_HANDLE dev , CHAR16 ** ¬gv , INTN ¬gc , INTN šdex , EFI_HANDLE image ) 202 CHAR16 kÇme [ FILENAME_MAXLEN ]; 203 CHAR16 cmdlše_tmp [ CMDLINE_MAXLEN ]; 204 CHAR16 cmdlše [ CMDLINE_MAXLEN ]; 205 VOID * bp ; 206 UINTN cook› ; 207 EFI_STATUS ¡©us = EFI_SUCCESS ; 208 kdesc_t kd ; 209 memdesc_t imem , mmem ; 210 INTN r ; 217 ià( `sysd•s_´–oÝ_aùiÚs ( dev , ¬gv , ¬gc , šdex , image ) == -1)  -1; 220 kÇme [0] = cmdlše_tmp [0] = cmdlše [0] = CHAR_NULL ; 221 imem . ¡¬t_addr = 0; imem. pgút = 0; imem. size = 0; 222 –žo_Ýt . sys_img_Ýts = NULL ; 224 ià( `k”Ãl_choo£r ( ¬gv , ¬gc , šdex , kÇme , cmdlše_tmp è=ð-1è ex™_”rÜ ; 226  `k”Ãl_lßd ( image , kÇme , & kd , & imem , & mmem )) { 227  ELILO_LOAD_SUCCESS : 228  do_Ïunch ; 229  ELILO_LOAD_ERROR : 230  ex™_”rÜ ; 235 do_Ïunch : 236 r = `sub¡_v¬s ( cmdlše_tmp , cmdlše , CMDLINE_MAXLEN ); 238 `VERB_PRT (3, `Pršt ( L "fš® cmdlše(%d): %s\n", r , cmdlše )); 241 `þo£_deviûs (); 244 ià(( bp = `ü—‹_boÙ_·¿ms ( cmdlše , & imem , & mmem , & cook› )è=ð0è ”rÜ ; 247 ¡©us = BS -> `Ex™BoÙS”viûs ( image , cook› ); 248 ià( `EFI_ERROR ( ¡©us )è bad_ex™ ; 250 `¡¬t_k”Ãl ( kd . k’Œy , bp ); 253 `ERR_PRT (( L "start_kernel()„eturn !")); 254 bad_ex™ : 258 `ERR_PRT (( L "Ex™BoÙS”viû çžed %r", ¡©us )); 259 ”rÜ : 260 `ä“_kmem (); 261 ià( imem . ¡¬t_addr è `ä“ (imem.start_addr); 262 ià( bp è `ä“_boÙ_·¿ms (bp); 263 ex™_”rÜ : 264  ELILO_LOAD_ERROR ; 266 } } 268  VOID 269 $–žo_h–p ( VOID ) 272 `Pršt ( L "-d secsimeout in 10th of second before booting\n"); 273 `Pršt ( L "-hhis helpext\n"); 274 `Pršt ( L "-V…rint version\n"); 275 `Pršt ( L "-v verbose†evel(can‡ppear multipleimes)\n"); 276 `Pršt ( L "-a‡lways check for‡lternate kernel image\n"); 277 `Pršt ( L "-i file†oad file‡she initial„amdisk\n"); 278 `Pršt ( L "-m file†oad file‡s‡dditional bootime vmm module\n"); 279 `Pršt ( L "-C file indicatehe config fileo use\n"); 280 `Pršt ( L "-P…arse config file only (verify syntax)\n"); 281 `Pršt ( L "-Dƒnable debug…rints\n"); 282 `Pršt ( L "-p force interactive mode\n"); 283 `Pršt ( L "-c‚ame image choosero use\n"); 284 `Pršt ( L "-E do‚ot force EDD30 variable\n"); 286 `sysd•s_´št_cmdlše_Ýts (); 288 `Pršt ( L "\n"); 290 `´št_cÚfig_ÝtiÚs (); 291 } } 298  CHAR16 * gdeçuÉ_lßd_ÝtiÚs ; 299  UINTN gdeçuÉ_lßd_ÝtiÚs_size ; 300  INTN gdÚe_fixups ; 302  VOID 303 $fixu·rgs ( EFI_LOADED_IMAGE * šfo ) 305 EFI_STATUS ¡©us ; 306 EFI_PXE_BASE_CODE * pxe ; 308  #FAKE_ELILONAME L "–žo-fÜûd" ) 310 ¡©us = BS -> `HªdËPrÙocÞ ( šfo -> DeviûHªdË , & PxeBa£CodePrÙocÞ , ( VOID **)& pxe ); 311 ià( `EFI_ERROR ( ¡©us )) ; 313 deçuÉ_lßd_ÝtiÚs = šfo -> LßdO±iÚs ; 314 deçuÉ_lßd_ÝtiÚs_size = šfo -> LßdO±iÚsSize ; 316 šfo -> LßdO±iÚs = FAKE_ELILONAME ; 317 šfo -> LßdO±iÚsSize = `SŒL’ (šfo-> LßdO±iÚs )*( CHAR16 ); 319 dÚe_fixups = 1; 320 } } 326  VOID 327 $unfixu·rgs ( EFI_LOADED_IMAGE * šfo ) 329 ià( dÚe_fixups == 0) ; 331 šfo -> LßdO±iÚs = deçuÉ_lßd_ÝtiÚs ; 332 šfo -> LßdO±iÚsSize = deçuÉ_lßd_ÝtiÚs_size ; 333 } } 353  #EDD30_GUID \ 354 {0x964e5b21, 0x6459, 0x11d2, { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}} ) 356  #EDD30_ATTR ( EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE ) ) 358  EFI_GUID gedd30_guid = EDD30_GUID ; 360  INTN 361 $check_edd30 ( VOID ) 363 EFI_STATUS ¡©us ; 364 UINTN l = ( BOOLEAN ); 365 UINT8 boÞ = FALSE ; 366 INTN »t = -1; 368 ¡©us = RT -> `G‘V¬ŸbË ( L "EDD30", & edd30_guid , NULL , & l , & boÞ ); 369 ià( ¡©us =ð EFI_BUFFER_TOO_SMALL || ( boÞ !ð TRUE && boÞ !ð FALSE )) { 370 `ERR_PRT (( L "Warning: EDD30 EFI variable is‚ot boolean value: forcing ito TRUE")); 373 ià( ¡©us =ð EFI_SUCCESS && boÞ =ð TRUE ) { 374 `VERB_PRT (3, `Pršt ( L "EDD30 is TRUE\n")); 375 –žo_Ýt . edd30_Ú = TRUE ; 376 »t = 0; 378 `VERB_PRT (4, 379 ià( ¡©us !ð EFI_SUCCESS ) { 380 `Pršt ( L "EDD30 EFI variable‚ot defined\n"); 382 `Pršt ( L "EDD30 EFI variable is false\n"); 387  »t ; 388 } } 390  INTN 391 $fÜû_edd30 ( VOID ) 393 EFI_STATUS ¡©us ; 394 UINTN l = ( BOOLEAN ); 395 UINT8 boÞ ; 397 boÞ = TRUE ; 398 ¡©us = RT -> `S‘V¬ŸbË ( L "EDD30", & edd30_guid , EDD30_ATTR , l , & boÞ ); 399 ià( `EFI_ERROR ( ¡©us )) { 400 `ERR_PRT (( L "can't set EDD30 variable: ignoring it")); 404 `VERB_PRT (3, `Pršt ( L "EDD30 variable forcedo TRUE. You should„ebootoake‡dvantage of EDD3.0.\n")); 407 } } 412 EFI_STATUS 413 $efi_maš ( EFI_HANDLE image , EFI_SYSTEM_TABLE * sy¡em_b ) 415 CHAR16 * ¬gv [ MAX_ARGS ]; 416 CHAR16 Ýt¡ršg [ MAX_ARGS ]; 417 EFI_LOADED_IMAGE * šfo ; 418 EFI_STATUS ¡©us , »t = EFI_LOAD_ERROR ; 419 INTN ¬gc = 0, c ; 420 INTN edd30_¡©us , »Œy ; 421 CHAR16 * ±r , * ¬gli¡ = NULL ; 422 BOOLEAN deviûs_š™Ÿlized = FALSE ; 423 CHAR16 d·th [ FILENAME_MAXLEN ]; 424 CHAR16 * dev·th ; 426 –žo_Ýt . v”bo£ =0; 427 –žo_Ýt . debug =0; 430 sy¡ab = sy¡em_b ; 433 `In™ŸlizeLib ( image , sy¡ab ); 442 BS -> `S‘W©chdogTim” (0, 0x0, 0, NULL ); 445 ià( `®loc_š™ (è=ð-1è EFI_LOAD_ERROR ; 447 ¡©us = BS -> `HªdËPrÙocÞ ( image , & LßdedImagePrÙocÞ , ( VOID **è& šfo ); 448 ià( `EFI_ERROR ( ¡©us )) { 449 `ERR_PRT (( L "image handle does‚ot support LOADED_IMAGE…rotocol")); 450  EFI_LOAD_ERROR ; 453 `VERB_PRT (5, `Pršt ( L "Lßded‡ˆ0x%lx size=%d by‹ code=%d d©a=%d\n", šfo -> ImageBa£ , info-> ImageSize , info-> ImageCodeTy³ , info-> ImageD©aTy³ )); 458 edd30_¡©us = `check_edd30 (); 463 ià( `cÚfig_š™ (è=ð-1è do_ex™ ; 468 ià( `sysd•s_š™ ( šfo -> DeviûHªdË è=ð-1è do_ex™ ; 469 ià( `sysd•s_»gi¡”_ÝtiÚs (è=ð-1è do_ex™ ; 484 `fixu·rgs ( šfo ); 487 `Pršt ( L "LßdO±iÚs=%x O³nSize=%d\n", šfo -> LßdO±iÚs , info-> LßdO±iÚsSize ); 488 { INTN i ; i=0; i< šfo -> LßdO±iÚsSize >>1; i++è `Pršt ( L "ÝtiÚs[%d]=%d (%c)\n", i, (( CHAR16 *)šfo-> LßdO±iÚs )[i], ((CHAR16 *)info->LoadOptions)[i]); } 499 ¬gli¡ = `®loc ( šfo -> LßdO±iÚsSize +( CHAR16 ), EfiLßd”D©a ); 500 ià( ¬gli¡ =ð NULL ) { 501 `ERR_PRT (( L "cannot copy‡rgument†ist")); 502  EFI_OUT_OF_RESOURCES ; 504 `Memýy ( ¬gli¡ , šfo -> LßdO±iÚs , info-> LßdO±iÚsSize ); 506 ¬gc = `¬gify ( ¬gli¡ , šfo -> LßdO±iÚsSize , ¬gv ); 508 `SŒCpy ( Ýt¡ršg , ELILO_SHARED_CMDLINE_OPTS ); 509 `SŒC© ( Ýt¡ršg , `sysd•s_g‘_cmdlše_Ýts ()); 511 ( c = `G‘Ýt ( ¬gc , ¬gv , Ýt¡ršg )) != -1 ) { 512  c ) { 514 –žo_Ýt . ®t_check = 1; 517 –žo_Ýt . debug = 1; 520 –žo_Ýt . ´om± = 1; 523 –žo_Ýt . v”bo£ ++; 524 ià( –žo_Ýt . v”bo£ > 5)ƒlilo_opt.verbose = 5; 527 `–žo_h–p (); 528 »t = EFI_SUCCESS ; 529  do_ex™ ; 535 –žo_Ýt . d–ay = `Atoi ( O±¬g ); 536 –žo_Ýt . d–ay_£t = 1; 540 –žo_Ýt . edd30_no_fÜû = 1; 543 ià( `SŒL’ ( O±¬g è>ð FILENAME_MAXLEN -1) { 544 `Pršt ( L "š™rd fž’ami lim™edØ%d ch¬aù”s\n", FILENAME_MAXLEN ); 545  do_ex™ ; 547 `SŒCpy ( –žo_Ýt . š™rd , O±¬g ); 550 ià( `SŒL’ ( O±¬g è>ð FILENAME_MAXLEN -1) { 551 `Pršt ( L "vmm moduË fž’ami lim™edØ%d ch¬aù”s\n", FILENAME_MAXLEN ); 552  do_ex™ ; 554 `SŒCpy ( –žo_Ýt . vmcode , O±¬g ); 557 ià( `SŒL’ ( O±¬g è>ð FILENAME_MAXLEN -1) { 558 `Pršt ( L "cÚfig fž’ami lim™edØ%d ch¬aù”s\n", FILENAME_MAXLEN ); 559  do_ex™ ; 561 `SŒCpy ( –žo_Ýt . cÚfig , O±¬g ); 564 { mm­_desc_t mdesc ; 565 ià( `g‘_memm­ (& mdesc ) == -1) { 566 `Pršt ( L "Cannot get memory map\n"); 567  EFI_LOAD_ERROR ; 569 `´št_memm­ (& mdesc ); 570 »t = EFI_SUCCESS ; 571  do_ex™ ; 574 `Pršt ( L "ELILO v% fÜ EFI/%a\n", ELILO_VERSION , ELILO_ARCH ); 575 »t = EFI_SUCCESS ; 576  do_ex™ ; 579 –žo_Ýt . ·r£_Úly = 1; 582 ià( `SŒL’ ( O±¬g è>ð FILENAME_MAXLEN -1) { 583 `Pršt ( L "choo£¸Çmi lim™edØ%d ch¬aù”s\n", FILENAME_MAXLEN ); 584  do_ex™ ; 586 `SŒCpy ( –žo_Ýt . choo£r , O±¬g ); 592 ià( `sysd•s_g‘Ýt ( c , O±šd , O±¬g ) == 0) ; 594 `Pršt ( L "UnknowÀÝtiÚ -%c\n", ( CHAR16 ) c ); 595  do_ex™ ; 598 `DBG_PRT (( L "O±šd=%d o±¬g=%x‡rgc=%d", O±šd , O±¬g , ¬gc )); 604 ià( `š™_deviûs ( šfo -> DeviûHªdË è=ð-1è do_ex™ ; 606 deviûs_š™Ÿlized = TRUE ; 608 dev·th = `DeviûP©hToSŒ ( šfo -> FžeP©h ); 613 `fÝs_£tdeçuÉs ( –žo_Ýt . deçuÉ_cÚfigs ,ƒlžo_Ýt. deçuÉ_k”Ãl , FILENAME_MAXLEN , dev·th ); 618 `VERB_PRT (2, `Pršt ( L "Default config: %s\nDefault_kernel: %s\n", 619 –žo_Ýt . deçuÉ_cÚfigs [0]. âame ,ƒlžo_Ýt. deçuÉ_k”Ãl )); 623 ±r = –žo_Ýt . cÚfig [0] =ð CHAR_NULL ? ( »Œy =1,–žo_Ýt. deçuÉ_cÚfigs [0]. âame ) : (retry=0,elilo_opt.config); 628 »t = `»ad_cÚfig ( ±r ); 629 `VERB_PRT (1, `Pršt ( L "»ad_cÚfig=%r\n", »t )); 633 ià( –žo_Ýt . cÚfig [0] =ð CHAR_NULL ) { 634 ( »t !ð EFI_SUCCESS ) && 635 ( »Œy < MAX_DEFAULT_CONFIGS ) && 636 ( –žo_Ýt . deçuÉ_cÚfigs [ »Œy ]. âame [0] !ð CHAR_NULL )) { 638 ±r = –žo_Ýt . deçuÉ_cÚfigs [ »Œy ]. âame ; 639 »t = `»ad_cÚfig ( ±r ); 640 `VERB_PRT (1, `Pršt ( L "»ad_cÚfig=%r\n", »t )); 641 »Œy += 1; 649 ià( »t =ð EFI_NOT_FOUND ||„‘ =ð EFI_TFTP_ERROR ) { 650 ià( –žo_Ýt . ´om± =ð0 &&ƒlžo_Ýt. cÚfig [0] !ð CHAR_NULL ) { 651 `Pršt ( L "cÚfig fž% nÙ found\n", ±r ); 652  do_ex™ ; 654 `fÝs_g‘deçuÉ_·th ( d·th , FILENAME_MAXLEN ); 655 ià( »t =ð EFI_TFTP_ERROR ) 656 `Pršt ( L "nØcÚfig fžfound oÀTFTP s”v” iÀ%s\n", d·th ); 658 `Pršt ( L "nØcÚfig fžfound iÀ%s\n", d·th ); 663 ià( –žo_Ýt . ·r£_Úly ) { 664 ià( »t =ð EFI_SUCCESS ) 665 `Pršt ( L "CÚfig fž% ·r£d sucûssfuÎy\n", ±r ); 666  do_ex™ ; 673 ià( »t !ð EFI_SUCCESS ) { 674 `Pršt ( L "forcing interactive mode dueo config fileƒrror(s)\n"); 675 –žo_Ýt . ´om± = 1; 682 ià( ¬gc > O±šd ) { 683 –žo_Ýt . ´om± = 0; 694 ià( edd30_¡©us =ð-1 && –žo_Ýt . edd30_no_fÜû == 0) { 695 `fÜû_edd30 (); 698 »t = EFI_LOAD_ERROR ; 703 ià(( –žo_Ýt . ´om± &&ƒlžo_Ýt. timeout == 0)) { 704 –žo_Ýt . timeout = ELILO_DEFAULT_TIMEOUT ; 710 ià( `š™_choo£r ( šfo -> DeviûHªdË ) == -1) { 711 `ERR_PRT (( L "Cannot find‡ decent chooser\n")); 712  do_ex™ ; 717 `maš_loÝ ( šfo -> DeviûHªdË , ¬gv , ¬gc , O±šd , image ); 719 do_ex™ : 720 `unfixu·rgs ( šfo ); 725 ià( deviûs_š™Ÿlized è `þo£_deviûs (); 728 `ä“_®l_memÜy (); 730  »t ; 731 } } @elilo.h 29 #iâdeà __ELILO_H__ 30  #__ELILO_H__ ) 32  ~ 34  ~"–žo_debug.h " 36  ~"fžeÝs.h " 37  ~"choo£r.h " 39  ~"¡rÝs.h " 41  ~"sysd•s.h " 43  #MB (1024*1024è ) 46  #ROUNDUP ( x , a è(((xè+ (aè- 1è& ~(×è- 1)) ) 47  #ROUNDDOWN ( x , a è((xè& ~(×è- 1)) ) 52  #ELILO_LOAD_SUCCESS 0 ) 53  #ELILO_LOAD_ABORTED 1 ) 54  #ELILO_LOAD_ERROR 2 ) 55  #ELILO_LOAD_RETRY 3 ) 57  #ELILO_DEFAULT_TIMEOUT ELILO_TIMEOUT_INFINITY ) 58  #ELILO_TIMEOUT_INFINITY (~0UL) ) 60  #CMDLINE_MAXLEN 512 ) 61  #FILENAME_MAXLEN 256 ) 62  #MAX_ARGS 256 ) 64  #MAX_DEFAULT_CONFIGS 16 ) 67 UINT8 mnÙhšg_y‘ ; 68 } timage_Ýt_t ; 70  scÚfig_fže { 71 CHAR16 mâame [ FILENAME_MAXLEN ]; 72 } tcÚfig_fže_t ; 79 UINTN m®t_check ; 80 UINTN mdebug ; 81 UINTN md–ay ; 82 UINTN mv”bo£ ; 83 CHAR16 mš™rd [ FILENAME_MAXLEN ]; 84 CHAR16 mvmcode [ FILENAME_MAXLEN ]; 85 UINT8 md–ay_£t ; 86 UINT8 medd30_Ú ; 87 UINT8 medd30_no_fÜû ; 92 UINTN m´om± ; 93 UINTN m·r£_Úly ; 94 UINTN mtimeout ; 96 image_Ýt_t mimg_Ýt ; 98 sys_img_ÝtiÚs_t * msys_img_Ýts ; 100 CHAR16 mdeçuÉ_k”Ãl [ FILENAME_MAXLEN ]; 102 cÚfig_fže_t mdeçuÉ_cÚfigs [ MAX_DEFAULT_CONFIGS ]; 104 CHAR16 mcÚfig [ FILENAME_MAXLEN ]; 105 CHAR16 mchoo£r [ FILENAME_MAXLEN ]; 106 } t–žo_cÚfig_t ; 109 –žo_cÚfig_t –žo_Ýt ; 111 EFI_SYSTEM_TABLE * sy¡ab ; 114 VOID * m¡¬t_addr ; 115 UINTN mpgút ; 116 UINTN msize ; 117 } tmemdesc_t ; 120 VOID * mk¡¬t ; 121 VOID * mk’d ; 122 VOID * mk’Œy ; 123 } tkdesc_t ; 126 EFI_MEMORY_DESCRIPTOR * mmd ; 127 UINTN mm­_size ; 128 UINTN mdesc_size ; 129 UINTN mcook› ; 130 UINT32 mdesc_v”siÚ ; 131 } tmm­_desc_t ; 133 #iâdeà MAX 134  #MAX ( a , b è(×)>(bè? (aè: (b)) ) 137 #iâdeà MIN 138  #MIN ( a , b è(×)>(bè? (bè: (a)) ) 141  #VERB_PRT ( n , cmd ) \ 142 { ià( –žo_Ýt . v”bo£ >ð( n )è{ cmd ; } } ) 146 INTN ®loc_š™ ( VOID ); 147 VOID * ®loc ( UINTN , EFI_MEMORY_TYPE ); 148 VOID ä“ (VOID *); 149 VOID * ®loc_·ges ( UINTN , EFI_MEMORY_TYPE , EFI_ALLOCATE_TYPE , VOID *); 150 VOID ä“_·ges (VOID *); 151 VOID ä“_®l (VOID); 152 INTN ®loc_kmem ( VOID *, UINTN ); 153 VOID ä“_kmem (VOID); 154 VOID ä“_®l_memÜy (VOID); 157 INTN »ad_fže ( UINTN fd , UINTN, CHAR8 *); 158 EFI_STATUS check_abÜt ( VOID ); 159 VOID »£t_šput (VOID); 160 INTN wa™_timeout ( UINTN ); 161 INTN ¬gify ( CHAR16 *, UINTN , CHAR16 **); 162 VOID uÇrgify ( CHAR16 **, CHAR16 **); 163  ¥l™_¬gs ( CHAR16 *, CHAR16 *, CHAR16 *); 164 INTN g‘_memm­ ( mm­_desc_t *); 165 VOID ä“_memm­ ( mm­_desc_t *); 166 INTN fšd_k”Ãl_memÜy ( VOID * low_addr , VOID * max_addr , UINTN ®ignm’t , VOID ** ¡¬t ); 167 VOID ´št_memm­ ( mm­_desc_t *); 168 VOID ascii2U ( CHAR8 *, CHAR16 *, UINTN ); 169 VOID U2ascii ( CHAR16 *, CHAR8 *, UINTN ); 172 EFI_STATUS »ad_cÚfig ( CHAR16 *); 173 VOID ´št_cÚfig_ÝtiÚs (VOID); 174 INTN fšd_Ïb– ( CHAR16 *, CHAR16 *, CHAR16 *, CHAR16 *, CHAR16 *); 175 VOID ´št_Ïb–_li¡ (VOID); 176 INTN cÚfig_š™ ( VOID ); 177 CHAR16 * g‘_mes§ge_fž’ame ( INTN which ); 178 CHAR16 * fšd_desütiÚ (CHAR16 * Ïb– ); 179 VOID * g‘_Ãxt_desütiÚ (VOID * ´ev , CHAR16 ** Ïb– , CHAR16 ** desütiÚ ); 180 CHAR16 * g‘_cÚfig_fže ( VOID ); 183 INTN lßd_fže ( CHAR16 *, memdesc_t *); 186 INTN ®‹º©e_k”Ãl ( CHAR16 *, INTN); 189 VOID * ü—‹_boÙ_·¿ms ( CHAR16 *, memdesc_t *, memdesc_ˆ*, UINTN *); 190 VOID ä“_boÙ_·¿ms (VOID * bp ); 197 INTN sysd•s_ü—‹_boÙ_·¿ms ( boÙ_·¿ms_t *, CHAR8 *, memdesc_t *, memdesc_ˆ*, UINTN *); 198 VOID sysd•s_ä“_boÙ_·¿ms ( boÙ_·¿ms_t *); 199 INTN sysd•s_š™ ( EFI_HANDLE dev ); 200 INTN sysd•s_š™rd_g‘_addr ( kdesc_t *, memdesc_t *); 201 INTN sysd•s_´–oÝ_aùiÚs ( EFI_HANDLE , CHAR16 **, INTN, INTN, EFI_HANDLE); 202 CHAR16 * sysd•s_g‘_cmdlše_Ýts ( VOID ); 203 INTN sysd•s_g‘Ýt (INTN, INTN, CHAR16 *); 204 VOID sysd•s_´št_cmdlše_Ýts (VOID); 205 INTN sysd•s_»gi¡”_ÝtiÚs ( VOID ); 207  #CHAR_SLASH L '/' ) 208  #CHAR_BACKSLASH L '\\' ) @elilo_debug.h 26 #iâdeà __ELILO_DEBUG__ 27  #__ELILO_DEBUG__ ) 29  #ELILO_DEBUG 1 ) 31  #ERR_PRT ( a èdØ{ `Pršt ( L "%aÖš%d):", __FILE__ , __LINE__ ); Pršt ‡; Pršt(L"\n"); } 0); ) 33 #ifdeà ELILO_DEBUG 34  #DBG_PRT ( a ) do { \ 35 ià( –žo_Ýt . debug ) { \ 36 `Pršt ( L "%aÖš%d):", __FILE__ , __LINE__ ); \ 37 Pršt a ; \ 38 `Pršt ( L "\n"); \ 39 } } 0); ) 41  #DBG_PRT ( a ) ) @fileops.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"fžeÝs.h " 35 #ifdeà CONFIG_LOCALFS 36  ~"glue_loÿlfs.h " 38 #ifdeà CONFIG_NETFS 39  ~"glue_Ãtfs.h " 42 #ifdeà CONFIG_EXT2FS 43  ~"glue_ext2fs.h " 50 devÇme_scheme_t sim¶e_devÇme_scheme ; 52  devÇme_scheme_t * gdevÇme_scheme_b []={ 53 & sim¶e_devÇme_scheme , 54 NULL 65  $EFI_STATUS ( tfÝs_fixups_t )( tEFI_HANDLE tdev , tdeviû_t * td ); 72  fžeÝs_fs_t * fs_b []={ 73 #ifdeà CONFIG_LOCALFS 74 & loÿlfs_glue , 76 #ifdeà CONFIG_EXT2FS 77 & ext2fs_glue , 79 #ifdeà CONFIG_NETFS 80 & Ãtfs_glue , 82 NULL 83 } }; 85  deviû_t * gdev_b ; 86  UINTN gndev , gndev_boÙ ; 87  deviû_t * gboÙ_dev ; 89  s_fdesc_t { 90  _fdesc_t * mÃxt ; 91 fžeÝs_t * mfÝs ; 92 UINTN mfh ; 93 } tfdesc_t ; 95  #FILEOPS_FD_MAX 16 ) 97  fdesc_t gfd_b [ FILEOPS_FD_MAX ]; 98  fdesc_t * gä“_fd ; 100  devÇme_scheme_t * gcu¼’t_devÇme_scheme ; 102  #FDESC_IDX ( f è( fÝs_fd_t )(f- fd_b ) ) 103  #FDESC_INVALID_FD ( fd è(fd >ð FILEOPS_FD_MAX || fd_b [(fd)]. fÝs =ð NULL ) ) 104  #FDESC_F ( fd è( fd_b +(fd)) ) 106  fdesc_t * 107 $fd_®loc ( VOID ) 109 fdesc_t * tmp = NULL ; 111 ià( ä“_fd =ð NULL ) { 112 `ERR_PRT (( L "out of file descriptor")); 114 tmp = ä“_fd ; 115 ä“_fd = f»e_fd-> Ãxt ; 117  tmp ; 118 } } 120  VOID 121 $fd_ä“ ( fdesc_t * fd ) 123 ià( fd =ð NULL ) { 124 `ERR_PRT (( L "invalid fd")); 126 fd -> fÝs = NULL ; 127 fd -> Ãxt = ä“_fd ; 128 ä“_fd = fd ; 129 } } 131  fžeÝs_t * 132 $glue_fžesy¡em ( EFI_GUID * ´Ùo , EFI_HANDLE dev , fÝs_fs_glue_t glue ) 134 fžeÝs_t * fÝs ; 135 VOID * štf = NULL ; 136 EFI_STATUS ¡©us ; 138 ¡©us = BS -> `HªdËPrÙocÞ ( dev , ´Ùo , & štf ); 139 ià( `EFI_ERROR ( ¡©us )) { 140 `ERR_PRT (( L "uÇbËØloÿ‹ %g: should‚Ù h­³n", ´Ùo )); 141  NULL ; 143 fÝs = ( fžeÝs_t *) `®loc ((*fÝs), EfiLßd”D©a ); 144 ià( fÝs =ð NULL ) { 145 `ERR_PRT (( L "failedo‡llocate fileops")); 146  NULL ; 148 `Mem£t ( fÝs , 0, (*fops)); 150 fÝs -> dev = dev; 153 `glue ( fÝs , štf ); 155  fÝs ; 156 } } 158 INTN 159 $fÝs_¥l™_·th ( CHAR16 * ·th , CHAR16 * dev ) 161 CHAR16 * p , * d = dev ; 162 UINTN Ën = FILEOPS_DEVNAME_MAXLEN ; 163  #CHAR_COLON L ':' ) 165 p = `SŒChr ( ·th , CHAR_COLON ); 166 ià( p =ð NULL ) { 167 * dev = CHAR_NULL ; 171  d = dev ; ·th !ð p ;) { 172 ià(-- Ën == 0)  -1; 173 * d ++ = * ·th ++; 175 * d = CHAR_NULL ; 177 } } 179  deviû_t * 180 $fšd_deviû_byÇme ( CHAR16 * dev ) 182 UINTN i ; 183  i =0; i < ndev ; i++) { 184 ià(! `SŒCmp ( dev , dev_b [ i ]. Çme ))  dev_tab+i; 186  NULL ; 187 } } 206 EFI_STATUS 207 $fÝs_g‘_Ãxt_deviû ( UINTN pidx , CHAR16 * ty³ , UINTN maxËn , UINTN * idx , CHAR16 * Çme , EFI_HANDLE * dev ) 209 UINTN i ; 211 ià( Çme =ð NULL || idx =ðNULLè EFI_INVALID_PARAMETER ; 213  i = pidx ; i < ndev ; i++) { 214 ià( ty³ =ð NULL || ! `SŒCmp ( dev_b [ i ]. fÝs -> Çme ,y³)è found ; 216  EFI_NOT_FOUND ; 217 found : 218 ià( `SŒL’ ( dev_b [ i ]. Çme è>ð maxËn ) { 219 * idx = pidx ; 220  EFI_BUFFER_TOO_SMALL ; 222 `SŒCpy ( Çme , dev_b [ i ].name); 223 * idx = i +1; 224 ià( dev è*dev = dev_b [ i ].dev; 226  EFI_SUCCESS ; 227 } } 229 EFI_STATUS 230 $fÝs_g‘_deviû_hªdË ( CHAR16 * Çme , EFI_HANDLE * dev ) 232 UINTN i ; 234 ià( Çme =ð NULL || dev =ðNULLè EFI_INVALID_PARAMETER ; 236  i =0; i < ndev ; i++) { 237 ià(! `SŒCmp ( dev_b [ i ]. Çme ,‚ame)è found ; 239  EFI_NOT_FOUND ; 240 found : 241 * dev = dev_b [ i ].dev; 243  EFI_SUCCESS ; 244 } } 247 EFI_STATUS 248 $fÝs_Ý’ ( CHAR16 * fuÎÇme , fÝs_fd_t * fd ) 250 fdesc_t * f ; 251 EFI_STATUS ¡©us ; 252 fžeÝs_t * fÝs ; 253 deviû_t * dev ; 254 CHAR16 dev_Çme [ FILEOPS_DEVNAME_MAXLEN ]; 255 CHAR16 * Çme ; 258 ià( fd =ð NULL || fuÎÇme =ðNULL || *fuÎÇm=ð CHAR_NULL || `fÝs_¥l™_·th (fuÎÇme, dev_Çme ) == -1) 259  EFI_INVALID_PARAMETER ; 261 `DBG_PRT (( L "fÝs_Ý’(%s), dev:%s:", fuÎÇme ? fuÎÇm: L"(NULL)", dev_Çme )); 263 Çme = fuÎÇme ; 264 ià( dev_Çme [0] =ð CHAR_NULL ) { 265 ià( boÙ_dev =ð NULL è EFI_INVALID_PARAMETER ; 266 fÝs = boÙ_dev ->fops; 268 ià(( dev = `fšd_deviû_byÇme ( dev_Çme )è=ð NULL è EFI_INVALID_PARAMETER ; 270 Çme +ð `SŒL’ ( dev_Çme )+1; 272 fÝs = dev ->fops; 275 ià( fÝs =ð NULL è EFI_INVALID_PARAMETER ; 277 ià(( f = `fd_®loc ()è=ð NULL è EFI_OUT_OF_RESOURCES ; 279 `DBG_PRT (( L "dev:%s: fuÎÇme:%s:‚ame:%s: f=%d", dev_Çme , fuÎÇme , Çme , f - fd_b )); 281 ¡©us = fÝs -> `Ý’ (fÝs-> štf , Çme , & f -> fh ); 282 ià( `EFI_ERROR ( ¡©us )è ”rÜ ; 284 f -> fÝs = fops; 286 * fd = `FDESC_IDX ( f ); 288  EFI_SUCCESS ; 289 ”rÜ : 290 `fd_ä“ ( f ); 291  ¡©us ; 292 } } 294 EFI_STATUS 295 $fÝs_»ad ( fÝs_fd_t fd , VOID * buf , UINTN * size ) 297 fdesc_t * f ; 299 ià( buf =ð NULL || `FDESC_INVALID_FD ( fd è|| size =ðNULLè EFI_INVALID_PARAMETER ; 301 f = `FDESC_F ( fd ); 303  f -> fÝs -> `»ad (f->fÝs-> štf , f-> fh , buf , size ); 304 } } 306 EFI_STATUS 307 $fÝs_þo£ ( fÝs_fd_t fd ) 309 fdesc_t * f ; 310 EFI_STATUS ¡©us ; 312 ià( `FDESC_INVALID_FD ( fd )è EFI_INVALID_PARAMETER ; 314 f = `FDESC_F ( fd ); 316 ¡©us = f -> fÝs -> `þo£ (f->fÝs-> štf , f-> fh ); 318 `fd_ä“ ( f ); 320  ¡©us ; 321 } } 323 EFI_STATUS 324 $fÝs_šfosize ( fÝs_fd_t fd , UINT64 * size ) 326 fdesc_t * f ; 328 ià( `FDESC_INVALID_FD ( fd è|| size =ð NULL è EFI_INVALID_PARAMETER ; 330 f = `FDESC_F ( fd ); 332  f -> fÝs -> `šfosize (f->fÝs-> štf , f-> fh , size ); 333 } } 335 EFI_STATUS 336 $fÝs_£ek ( fÝs_fd_t fd , UINT64 Ãwpos ) 338 fdesc_t * f ; 340 ià( `FDESC_INVALID_FD ( fd )è EFI_INVALID_PARAMETER ; 342 f = `FDESC_F ( fd ); 344  f -> fÝs -> `£ek (f->fÝs-> štf , f-> fh , Ãwpos ); 345 } } 347 EFI_STATUS 348 $fÝs_£tdeçuÉs ( cÚfig_fže * defcÚf , CHAR16 * kÇme , UINTN maxËn , CHAR16 * dev·th ) 350 INTN i ; 357 #ià `defšed ( CONFIG_Ÿ64 ) 358  #FILEOPS_ARCH_DEFAULT_CONFIG L "–žo-Ÿ64.cÚf" ) 359 #–ià `defšed ( CONFIG_Ÿ32 ) 360  #FILEOPS_ARCH_DEFAULT_CONFIG L "–žo-Ÿ32.cÚf" ) 368  #FILEOPS_DEFAULT_CONFIG L "–žo.cÚf" ) 370  #FILEOPS_DEFAULT_KERNEL L "vmlšux" ) 372 #ifdeà ELILO_DEBUG 373 ià( defcÚf =ð NULL || kÇme =ðNULLè EFI_INVALID_PARAMETER ; 376  i =0; i< MAX_DEFAULT_CONFIGS ; i++) { 377 defcÚf [ i ]. âame [0] = CHAR_NULL ; 380 ià( boÙ_dev =ð NULL || boÙ_dev-> fÝs == NULL) { 381 ià( boÙ_dev =ð NULL ) 382 `Pršt ( L "Warning boot device‚ot„ecognized\n"); 384 `Pršt ( L "Unknown filesystem on boot device\n"); 386 `Pršt ( L "Using builtin defaults for kernel‡nd config file\n"); 388 `SŒnCpy ( kÇme , FILEOPS_DEFAULT_KERNEL , maxËn -1); 391 boÙ_dev -> fÝs -> `£tdeçuÉs (boÙ_dev->fÝs-> štf , defcÚf , kÇme , maxËn , dev·th ); 393 i =0; i< MAX_DEFAULT_CONFIGS && defcÚf [i]. âame [0] !ð CHAR_NULL ) i += 1; 394 #ifdeà ELILO_DEBUG 395 ià(( i +3è>ð MAX_DEFAULT_CONFIGS ) { 396 `Pršt ( L "ERROR: i = %d, MAX_DEFAULT_CONFIGS i nÙ†¬g’ough\n", i ); 397  EFI_INVALID_PARAMETER ; 400 `SŒnCpy ( defcÚf [ i ]. âame , FILEOPS_ARCH_DEFAULT_CONFIG , maxËn -1); 401 `SŒnCpy ( defcÚf [ i +1]. âame , FILEOPS_DEFAULT_CONFIG , maxËn -1); 403 #ifdeà ELILO_DEBUG 404 `VERB_PRT (3, `Pršt ( L "Default config filename†ist:\n")); 405  i =0; i< MAX_DEFAULT_CONFIGS ; i++) { 406 ià( defcÚf [ i ]. âame [0] =ð CHAR_NULL ) { ; } 407 `VERB_PRT (3, `Pršt ( L "\t%s\n", defcÚf [ i ]. âame )); 411  EFI_SUCCESS ; 412 } } 414 EFI_STATUS 415 $fÝs_g‘deçuÉ_·th ( CHAR16 * ·th , UINTN maxËn ) 417 ià( ·th =ð NULL || maxËn =ð0è EFI_INVALID_PARAMETER ; 423 ià( boÙ_dev -> fÝs -> g‘deçuÉ_·th ) 424  boÙ_dev -> fÝs -> `g‘deçuÉ_·th ( ·th , maxËn ); 426 ·th [0] = CHAR_NULL ; 428  EFI_SUCCESS ; 429 } } 431 CHAR16 * 432 $fÝs_boÙdev_Çme ( VOID ) 434  boÙ_dev ? boÙ_dev-> Çme : L "not supported"; 435 } } 437  INTN 438 $add_dev_b ( EFI_GUID * ´Ùo , EFI_HANDLE boÙ_hªdË , UINTN size , fÝs_fs_glue_t glue ) 440 EFI_STATUS ¡©us ; 441 EFI_HANDLE * b ; 442 UINTN i ; 443  UINTN idx ; 445 ià( size == 0)  0; 447 b = ( EFI_HANDLE *) `®loc ( size , EfiLßd”D©a ); 448 ià( b =ð NULL ) { 449 `ERR_PRT (( L "failedo‡llocate handleable")); 453 `Mem£t ( b , 0, size ); 458 ¡©us = BS -> `Loÿ‹HªdË ( ByPrÙocÞ , ´Ùo , NULL , & size , b ); 459 ià( ¡©us !ð EFI_SUCCESS ) { 460 `ERR_PRT (( L "çžedØg‘ hªdË fÜ…rÙØ%g size=%d: %r", ´Ùo , size , ¡©us )); 461 `ä“ ( b ); 464 size /ð( EFI_HANDLE ); 466  i =0; i < size ; i++) { 467 dev_b [ idx ]. dev = b [ i ]; 468 dev_b [ idx ]. fÝs = `glue_fžesy¡em ( ´Ùo , b [ i ], glue ); 470 ià( b [ i ] =ð boÙ_hªdË è boÙ_dev = dev_b + idx ; 473 ià( dev_b [ idx ]. fÝs è ndev_boÙ ++; 476 dev_b [ idx ]. Çme [0] = L 'd'; 477 dev_b [ idx ]. Çme [1] = L 'e'; 478 dev_b [ idx ]. Çme [2] = L 'v'; 479 dev_b [ idx ]. Çme [3] = L '0' + idx/100; 480 dev_b [ idx ]. Çme [4] = L '0' + (idx%100)/10; 481 dev_b [ idx ]. Çme [5] = L '0' + (idx%100) % 10; 482 dev_b [ idx ]. Çme [6] = CHAR_NULL ; 484 #ifdeà ELILO_DEBUG 485 ià( –žo_Ýt . debug ) { 486 EFI_DEVICE_PATH * dp ; 487 CHAR16 * ¡r , * ¡r2 ; 489 ¡r = NULL ; 490 dp = `DeviûP©hFromHªdË ( dev_b [ idx ]. dev ); 491 ià( dp è ¡r = `DeviûP©hToSŒ (dp); 493 ¡r2 = ¡r =ð NULL ? L "Unknown" : str; 495 `DBG_PRT (( L "% : %-8 : %s\n", dev_b [ idx ]. Çme , 496 ( dev_b [ idx ]. fÝs ? dev_b[idx].fÝs-> Çme : L "N/A"), ¡r2 )); 498 ià( ¡r è `F»ePoÞ (str); 502 idx ++; 504 `ä“ ( b ); 507 ndev = idx ; 510 } } 512  INTN 513 $´obe_devÇme_schemes ( deviû_t * dev_b , INTN ndev ) 515 devÇme_scheme_t ** p ; 517  p = devÇme_scheme_b ; *p ;…++) { 518 ià((* p )-> `š¡®l_scheme ( dev_b , ndev è=ð0è found ; 520 `ERR_PRT (( L "No devname schemes worked, using builtin\n")); 522 found : 523 `VERB_PRT (3, `Pršt ( L "devÇmscheme: %s\n", (* p )-> Çme )); 524 cu¼’t_devÇme_scheme = * p ; 526 } } 528  INTN 529 $fšd_fžesy¡ems ( EFI_HANDLE boÙ_hªdË ) 531 UINTN size , tÙ® = 0; 532 fžeÝs_fs_t ** fs ; 537  fs = fs_b ; *fs; fs++) { 538 size = 0; 539 BS -> `Loÿ‹HªdË ( ByPrÙocÞ , &(* fs )-> ´Ùo , NULL , & size , NULL); 540 tÙ® +ð size ; 542 ià( tÙ® == 0) { 543 `ERR_PRT (( L "No useable filesystem found")); 546 tÙ® /ð( EFI_HANDLE ); 547 `DBG_PRT (( L "found %d fžesy¡ems", tÙ® )); 549 dev_b = ( deviû_t *) `®loc ( tÙ® *(deviû_t), EfiLßd”D©a ); 550 ià( dev_b =ð NULL ) { 551 `ERR_PRT (( L "failedo‡llocate handleable")); 555 `Mem£t ( dev_b , 0, tÙ® *( deviû_t )); 560  fs = fs_b ; *fs; fs++) { 561 size = 0; 563 BS -> `Loÿ‹HªdË ( ByPrÙocÞ , &(* fs )-> ´Ùo , NULL , & size , NULL); 564 ià( size == 0) ; 566 `add_dev_b (&(* fs )-> ´Ùo , boÙ_hªdË , size , (*fs)-> glue ); 568 `´obe_devÇme_schemes ( dev_b , ndev ); 571 } } 573  INTN 574 $fžeÝs_š™ ( VOID ) 576 UINTN i ; 578  i =0; i < FILEOPS_FD_MAX -1; i++) { 579 fd_b [ i ]. Ãxt = &fd_tab[i+1]; 581 fd_b [ i ]. Ãxt = NULL ; 582 ä“_fd = fd_b ; 585 } } 590  INTN 591 $š¡®l_fžesy¡ems ( VOID ) 593 fžeÝs_fs_t ** fs ; 595  fs = fs_b ; *fs; fs++è(*fs)-> `š¡®l (); 598 } } 600  INTN 601 $unš¡®l_fžesy¡ems ( VOID ) 603 fžeÝs_fs_t ** fs ; 605  fs = fs_b ; *fs; fs++è(*fs)-> `unš¡®l (); 608 } } 610 INTN 611 $š™_deviûs ( EFI_HANDLE boÙ_hªdË ) 614 `š¡®l_fžesy¡ems (); 619 `fžeÝs_š™ (); 621  `fšd_fžesy¡ems ( boÙ_hªdË ); 622 } } 624 INTN 625 $þo£_deviûs ( VOID ) 627 INTN i ; 629  i =0; i < FILEOPS_FD_MAX ; i++) { 630 `fÝs_þo£ ( i ); 632 `ä“ ( dev_b ); 637 `unš¡®l_fžesy¡ems (); 640 } } 642 VOID 643 $´št_deviûs ( VOID ) 645 UINTN idx ; 646 EFI_DEVICE_PATH * dp ; 647 CHAR16 * ¡r , * ¡r2 ; 649  idx =0; idx< ndev ; idx++) { 650 ¡r = NULL ; 652 dp = `DeviûP©hFromHªdË ( dev_b [ idx ]. dev ); 653 ià( dp è ¡r = `DeviûP©hToSŒ (dp); 655 ¡r2 = ¡r =ð NULL ? L "Unknown" : str; 657 `Pršt ( L "%8 : %-6 : %s\n", dev_b [ idx ]. Çme , 658 ( dev_b [ idx ]. fÝs ? dev_b[idx].fÝs-> Çme : L "N/A"), ¡r2 ); 660 ià( ¡r è `F»ePoÞ (str); 662 `Pršt ( L "%d deviû avažabË fÜ boÙšg\n", ndev_boÙ ); 664 ià( boÙ_dev =ð NULL ) { 665 `Pršt ( L "boot device‚ot detected\n"); 667 `Pršt ( L "boÙ deviû %s: %s\n", boÙ_dev -> Çme , 668 ( boÙ_dev -> fÝs ? boÙ_dev->fÝs-> Çme : L "No file‡ccess")); 670 } } @fileops.h 26 #iâdeà __FILEOPS_H__ 27  #__FILEOPS_H__ ) 29  #FILEOPS_NAME_MAXLEN 32 ) 34  UINTN tfÝs_fd_t ; 37  gcÚfig_fže ; 39 EFI_STATUS fÝs_Ý’ ( CHAR16 * Çme , fÝs_fd_t * fd ); 40 EFI_STATUS fÝs_»ad ( fÝs_fd_t fd , VOID * buf , UINTN * size ); 41 EFI_STATUS fÝs_þo£ ( fÝs_fd_t fd ); 42 EFI_STATUS fÝs_šfosize ( fÝs_fd_t fd , UINT64 * size ); 43 EFI_STATUS fÝs_£ek ( fÝs_fd_t fd , UINT64 Ãwpos ); 44 EFI_STATUS fÝs_£tdeçuÉs ( cÚfig_fže * defcÚf , CHAR16 * kÇme , UINTN maxËn , CHAR16 * dev·th ); 45 EFI_STATUS fÝs_g‘deçuÉ_·th ( CHAR16 * ·th , UINTN maxËn ); 46 CHAR16 * fÝs_boÙdev_Çme ( VOID ); 53  $EFI_STATUS (* tfÝs_Ý’_t )( tVOID * tštf , tCHAR16 * tÇme , tfÝs_fd_t * tfd ); 54  $EFI_STATUS (* tfÝs_»ad_t )( tVOID * tštf , tfÝs_fd_t tfd , VOID * tbuf , tUINTN * tsize ); 55  $EFI_STATUS (* tfÝs_þo£_t )( tVOID * tštf , tfÝs_fd_t tfd ); 56  $EFI_STATUS (* tfÝs_šfosize_t )( tVOID * tštf , tfÝs_fd_t tfd , tUINT64 * tsize ); 57  $EFI_STATUS (* tfÝs_£ek_t )( tVOID * tštf , tfÝs_fd_t tfd , tUINT64 tÃwpos ); 58  $EFI_STATUS (* tfÝs_£tdeçuÉs_t )( tVOID * tštf ,  tcÚfig_fže * tdefcÚfs , tCHAR16 * tkÇme , tUINTN tmaxËn , CHAR16 * tdev·th ); 59  $EFI_STATUS (* tfÝs_g‘deçuÉ_·th_t )( tCHAR16 * t·th , tUINTN tmaxËn ); 62 VOID * štf ; 64 fÝs_Ý’_t Ý’ ; 65 fÝs_»ad_t »ad ; 66 fÝs_þo£_t þo£ ; 67 fÝs_šfosize_t šfosize ; 68 fÝs_£ek_t £ek ; 69 fÝs_£tdeçuÉs_t £tdeçuÉs ; 70 fÝs_g‘deçuÉ_·th_t g‘deçuÉ_·th ; 72 EFI_HANDLE dev ; 73 CHAR16 Çme [ FILEOPS_NAME_MAXLEN ]; 74 } tfžeÝs_t ; 79  $INTN (* tfÝs_fs_glue_t )( tfžeÝs_t * tthis , tVOID * tštf ); 80  $EFI_STATUS (* tfÝs_fs_š¡®l_t )( tVOID ); 81  $EFI_STATUS (* tfÝs_fs_unš¡®l_t )( tVOID ); 84 EFI_GUID ´Ùo ; 85 fÝs_fs_glue_t glue ; 86 fÝs_fs_š¡®l_t š¡®l ; 87 fÝs_fs_unš¡®l_t unš¡®l ; 88 } tfžeÝs_fs_t ; 94  #FILEOPS_DEVNAME_MAXLEN 16 ) 97 EFI_HANDLE dev ; 98 fžeÝs_t * fÝs ; 99 CHAR16 Çme [ FILEOPS_DEVNAME_MAXLEN ]; 100 } tdeviû_t ; 102 INTN `š™_deviûs ( EFI_HANDLE boÙ_hªdË ); 103 INTN `þo£_deviûs ( VOID ); 104 VOID `´št_deviûs (VOID); 105 EFI_STATUS `fÝs_g‘_Ãxt_deviû ( UINTN pidx , CHAR16 * ty³ , UINTN maxËn , UINTN * idx , CHAR16 * Çme , EFI_HANDLE * dev ); 106 INTN `fÝs_¥l™_·th ( CHAR16 * ·th , CHAR16 * dev ); 107 EFI_STATUS `fÝs_g‘_deviû_hªdË ( CHAR16 * Çme , EFI_HANDLE * dev ); 123 CHAR16 * Çme ; 124 `INTN (* š¡®l_scheme )( deviû_t * b , UINTN ndev ); 125 } tdevÇme_scheme_t ; @fs/ext2_fs.h 16 #iâdeà _LINUX_EXT2_FS_H 17  #_LINUX_EXT2_FS_H ) 26 #undeà EXT2FS_DEBUG 31  #EXT2_PREALLOCATE ) 32  #EXT2_DEFAULT_PREALLOC_BLOCKS 8 ) 37  #EXT2FS_DATE "95/08/09" ) 38  #EXT2FS_VERSION "0.5b" ) 43 #ifdeà EXT2FS_DEBUG 44  #ext2_debug ( f , a ...) { \ 45 `´štk ("EXT2-fs DEBUG (%s, %d): %s:", \ 46 __FILE__ , __LINE__ , __FUNCTION__ ); \ 47 `´štk ( f , ## a ); \ 48 } ) 50  #ext2_debug ( f , a ...è ) 56  #EXT2_BAD_INO 1 ) 57  #EXT2_ROOT_INO 2 ) 58  #EXT2_ACL_IDX_INO 3 ) 59  #EXT2_ACL_DATA_INO 4 ) 60  #EXT2_BOOT_LOADER_INO 5 ) 61  #EXT2_UNDEL_DIR_INO 6 ) 64  #EXT2_GOOD_OLD_FIRST_INO 11 ) 69  #EXT2_SUPER_MAGIC 0xEF53 ) 74  #EXT2_LINK_MAX 32000 ) 79  #EXT2_MIN_BLOCK_SIZE 1024 ) 80  #EXT2_MAX_BLOCK_SIZE 4096 ) 81  #EXT2_MIN_BLOCK_LOG_SIZE 10 ) 82 #ifdeà __KERNEL__ 83  #EXT2_BLOCK_SIZE ( s è((s)-> s_blocksize ) ) 85  #EXT2_BLOCK_SIZE ( s è( EXT2_MIN_BLOCK_SIZE << (s)-> s_log_block_size ) ) 87  #EXT2_ACLE_PER_BLOCK ( s è( `EXT2_BLOCK_SIZE (sè/  ( ext2_aþ_’Œy )) ) 88  #EXT2_ADDR_PER_BLOCK ( s è( `EXT2_BLOCK_SIZE (sè/  ( __u32 )) ) 89 #ifdeà __KERNEL__ 90  #EXT2_BLOCK_SIZE_BITS ( s è((s)-> s_blocksize_b™s ) ) 92  #EXT2_BLOCK_SIZE_BITS ( s è((s)-> s_log_block_size + 10) ) 94 #ifdeà __KERNEL__ 95  #EXT2_ADDR_PER_BLOCK_BITS ( s è((s)-> u . ext2_sb . s_addr_³r_block_b™s ) ) 96  #EXT2_INODE_SIZE ( s è((s)-> u . ext2_sb . s_šode_size ) ) 97  #EXT2_FIRST_INO ( s è((s)-> u . ext2_sb . s_fœ¡_šo ) ) 99  #EXT2_INODE_SIZE ( s è(((s)-> s_»v_Ëv– =ð EXT2_GOOD_OLD_REV ) ? \ 100 EXT2_GOOD_OLD_INODE_SIZE : \ 101 ( s )-> s_šode_size ) ) 102  #EXT2_FIRST_INO ( s è(((s)-> s_»v_Ëv– =ð EXT2_GOOD_OLD_REV ) ? \ 103 EXT2_GOOD_OLD_FIRST_INO : \ 104 ( s )-> s_fœ¡_šo ) ) 110  #EXT2_MIN_FRAG_SIZE 1024 ) 111  #EXT2_MAX_FRAG_SIZE 4096 ) 112  #EXT2_MIN_FRAG_LOG_SIZE 10 ) 113 #ifdeà __KERNEL__ 114  #EXT2_FRAG_SIZE ( s è((s)-> u . ext2_sb . s_äag_size ) ) 115  #EXT2_FRAGS_PER_BLOCK ( s è((s)-> u . ext2_sb . s_äags_³r_block ) ) 117  #EXT2_FRAG_SIZE ( s è( EXT2_MIN_FRAG_SIZE << (s)-> s_log_äag_size ) ) 118  #EXT2_FRAGS_PER_BLOCK ( s è( `EXT2_BLOCK_SIZE (sè/ `EXT2_FRAG_SIZE (s)) ) 124  sext2_aþ_h—d” 126 __u32 maþh_size ; 127 __u32 maþh_fže_couÁ ; 128 __u32 maþh_aþe_couÁ ; 129 __u32 maþh_fœ¡_aþe ; 132  sext2_aþ_’Œy 134 __u32 maþe_size ; 135 __u16 maþe_³rms ; 136 __u16 maþe_ty³ ; 137 __u16 maþe_g ; 138 __u16 maþe_·d1 ; 139 __u32 maþe_Ãxt ; 146  sext2_group_desc 148 __u32 mbg_block_b™m­ ; 149 __u32 mbg_šode_b™m­ ; 150 __u32 mbg_šode_bË ; 151 __u16 mbg_ä“_blocks_couÁ ; 152 __u16 mbg_ä“_šodes_couÁ ; 153 __u16 mbg_u£d_dœs_couÁ ; 154 __u16 mbg_·d ; 155 __u32 mbg_»£rved [3]; 161 #ifdeà __KERNEL__ 162  #EXT2_BLOCKS_PER_GROUP ( s è((s)-> u . ext2_sb . s_blocks_³r_group ) ) 163  #EXT2_DESC_PER_BLOCK ( s è((s)-> u . ext2_sb . s_desc_³r_block ) ) 164  #EXT2_INODES_PER_GROUP ( s è((s)-> u . ext2_sb . s_šodes_³r_group ) ) 165  #EXT2_DESC_PER_BLOCK_BITS ( s è((s)-> u . ext2_sb . s_desc_³r_block_b™s ) ) 167  #EXT2_BLOCKS_PER_GROUP ( s è((s)-> s_blocks_³r_group ) ) 168  #EXT2_DESC_PER_BLOCK ( s è( `EXT2_BLOCK_SIZE (sè/  ( ext2_group_desc )) ) 169  #EXT2_INODES_PER_GROUP ( s è((s)-> s_šodes_³r_group ) ) 175  #EXT2_NDIR_BLOCKS 12 ) 176  #EXT2_IND_BLOCK EXT2_NDIR_BLOCKS ) 177  #EXT2_DIND_BLOCK ( EXT2_IND_BLOCK + 1) ) 178  #EXT2_TIND_BLOCK ( EXT2_DIND_BLOCK + 1) ) 179  #EXT2_N_BLOCKS ( EXT2_TIND_BLOCK + 1) ) 184  #EXT2_SECRM_FL 0x00000001 ) 185  #EXT2_UNRM_FL 0x00000002 ) 186  #EXT2_COMPR_FL 0x00000004 ) 187  #EXT2_SYNC_FL 0x00000008 ) 188  #EXT2_IMMUTABLE_FL 0x00000010 ) 189  #EXT2_APPEND_FL 0x00000020 ) 190  #EXT2_NODUMP_FL 0x00000040 ) 191  #EXT2_NOATIME_FL 0x00000080 ) 193  #EXT2_DIRTY_FL 0x00000100 ) 194  #EXT2_COMPRBLK_FL 0x00000200 ) 195  #EXT2_NOCOMP_FL 0x00000400 ) 196  #EXT2_ECOMPR_FL 0x00000800 ) 198  #EXT2_BTREE_FL 0x00001000 ) 199  #EXT2_RESERVED_FL 0x80000000 ) 201  #EXT2_FL_USER_VISIBLE 0x00001FFF ) 202  #EXT2_FL_USER_MODIFIABLE 0x000000FF ) 207  #EXT2_IOC_GETFLAGS `_IOR ('f', 1, ) ) 208  #EXT2_IOC_SETFLAGS `_IOW ('f', 2, ) ) 209  #EXT2_IOC_GETVERSION `_IOR ('v', 1, ) ) 210  #EXT2_IOC_SETVERSION `_IOW ('v', 2, ) ) 215  sext2_šode { 216 __u16 mi_mode ; 217 __u16 mi_uid ; 218 __u32 mi_size ; 219 __u32 mi_©ime ; 220 __u32 mi_ùime ; 221 __u32 mi_mtime ; 222 __u32 mi_dtime ; 223 __u16 mi_gid ; 224 __u16 mi_lšks_couÁ ; 225 __u32 mi_blocks ; 226 __u32 mi_æags ; 229 __u32 ml_i_»£rved1 ; 230 } mlšux1 ; 232 __u32 mh_i_Œª¦©Ü ; 233 } mhurd1 ; 235 __u32 mm_i_»£rved1 ; 236 } mmasix1 ; 237 } mosd1 ; 238 __u32 mi_block [ EXT2_N_BLOCKS ]; 239 __u32 mi_g’”©iÚ ; 240 __u32 mi_fže_aþ ; 241 __u32 mi_dœ_aþ ; 242 __u32 mi_çddr ; 245 __u8 ml_i_äag ; 246 __u8 ml_i_fsize ; 247 __u16 mi_·d1 ; 248 __u16 ml_i_uid_high ; 249 __u16 ml_i_gid_high ; 250 __u32 ml_i_»£rved2 ; 251 } mlšux2 ; 253 __u8 mh_i_äag ; 254 __u8 mh_i_fsize ; 255 __u16 mh_i_mode_high ; 256 __u16 mh_i_uid_high ; 257 __u16 mh_i_gid_high ; 258 __u32 mh_i_authÜ ; 259 } mhurd2 ; 261 __u8 mm_i_äag ; 262 __u8 mm_i_fsize ; 263 __u16 mm_·d1 ; 264 __u32 mm_i_»£rved2 [2]; 265 } mmasix2 ; 266 } mosd2 ; 269  #i_size_high i_dœ_aþ ) 271 #ià defšed ( __KERNEL__ è|| defšed( __lšux__ ) 272  #i_»£rved1 osd1 . lšux1 . l_i_»£rved1 ) 273  #i_äag osd2 . lšux2 . l_i_äag ) 274  #i_fsize osd2 . lšux2 . l_i_fsize ) 275  #i_uid_low i_uid ) 276  #i_gid_low i_gid ) 277  #i_uid_high osd2 . lšux2 . l_i_uid_high ) 278  #i_gid_high osd2 . lšux2 . l_i_gid_high ) 279  #i_»£rved2 osd2 . lšux2 . l_i_»£rved2 ) 282 #ifdef __hurd__ 283  #i_Œª¦©Ü osd1 . hurd1 . h_i_Œª¦©Ü ) 284  #i_äag osd2 . hurd2 . h_i_äag ; ) 285  #i_fsize osd2 . hurd2 . h_i_fsize ; ) 286  #i_uid_high osd2 . hurd2 . h_i_uid_high ) 287  #i_gid_high osd2 . hurd2 . h_i_gid_high ) 288  #i_authÜ osd2 . hurd2 . h_i_authÜ ) 291 #ifdef __masix__ 292  #i_»£rved1 osd1 . masix1 . m_i_»£rved1 ) 293  #i_äag osd2 . masix2 . m_i_äag ) 294  #i_fsize osd2 . masix2 . m_i_fsize ) 295  #i_»£rved2 osd2 . masix2 . m_i_»£rved2 ) 301  #EXT2_VALID_FS 0x0001 ) 302  #EXT2_ERROR_FS 0x0002 ) 307  #EXT2_MOUNT_CHECK 0x0001 ) 308  #EXT2_MOUNT_GRPID 0x0004 ) 309  #EXT2_MOUNT_DEBUG 0x0008 ) 310  #EXT2_MOUNT_ERRORS_CONT 0x0010 ) 311  #EXT2_MOUNT_ERRORS_RO 0x0020 ) 312  #EXT2_MOUNT_ERRORS_PANIC 0x0040 ) 313  #EXT2_MOUNT_MINIX_DF 0x0080 ) 314  #EXT2_MOUNT_NO_UID32 0x0200 ) 316  #þ—r_Ýt ( o , Ýt èØ&ð~ EXT2_MOUNT_ ## ) opt 317  #£t_Ýt ( o , Ýt èØ|ð EXT2_MOUNT_ ## ) opt 318  #‹¡_Ýt ( sb , Ýt è((sb)-> u . ext2_sb . s_mouÁ_Ýt & \ 319 EXT2_MOUNT_ ## Ýt ) ) 323  #EXT2_DFL_MAX_MNT_COUNT 20 ) 324  #EXT2_DFL_CHECKINTERVAL 0 ) 329  #EXT2_ERRORS_CONTINUE 1 ) 330  #EXT2_ERRORS_RO 2 ) 331  #EXT2_ERRORS_PANIC 3 ) 332  #EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE ) 337  sext2_su³r_block { 338 __u32 ms_šodes_couÁ ; 339 __u32 ms_blocks_couÁ ; 340 __u32 ms_r_blocks_couÁ ; 341 __u32 ms_ä“_blocks_couÁ ; 342 __u32 ms_ä“_šodes_couÁ ; 343 __u32 ms_fœ¡_d©a_block ; 344 __u32 ms_log_block_size ; 345 __s32 ms_log_äag_size ; 346 __u32 ms_blocks_³r_group ; 347 __u32 ms_äags_³r_group ; 348 __u32 ms_šodes_³r_group ; 349 __u32 ms_mtime ; 350 __u32 ms_wtime ; 351 __u16 ms_mÁ_couÁ ; 352 __s16 ms_max_mÁ_couÁ ; 353 __u16 ms_magic ; 354 __u16 ms_¡©e ; 355 __u16 ms_”rÜs ; 356 __u16 ms_mšÜ_»v_Ëv– ; 357 __u32 ms_Ï¡check ; 358 __u32 ms_checkš‹rv® ; 359 __u32 ms_ü—tÜ_os ; 360 __u32 ms_»v_Ëv– ; 361 __u16 ms_def_»suid ; 362 __u16 ms_def_»sgid ; 376 __u32 ms_fœ¡_šo ; 377 __u16 ms_šode_size ; 378 __u16 ms_block_group_Ä ; 379 __u32 ms_ã©u»_com·t ; 380 __u32 ms_ã©u»_šcom·t ; 381 __u32 ms_ã©u»_ro_com·t ; 382 __u8 ms_uuid [16]; 383  ms_vÞume_Çme [16]; 384  ms_Ï¡_mouÁed [64]; 385 __u32 ms_®gÜ™hm_u§ge_b™m­ ; 390 __u8 ms_´—Îoc_blocks ; 391 __u8 ms_´—Îoc_dœ_blocks ; 392 __u16 ms_·ddšg1 ; 393 __u32 ms_»£rved [204]; 396 #ifdeà __KERNEL__ 397  #EXT2_SB ( sb è(&((sb)-> u . ext2_sb )) ) 402  #EXT2_SB ( sb è(sb) ) 408  #EXT2_OS_LINUX 0 ) 409  #EXT2_OS_HURD 1 ) 410  #EXT2_OS_MASIX 2 ) 411  #EXT2_OS_FREEBSD 3 ) 412  #EXT2_OS_LITES 4 ) 417  #EXT2_GOOD_OLD_REV 0 ) 418  #EXT2_DYNAMIC_REV 1 ) 420  #EXT2_CURRENT_REV EXT2_GOOD_OLD_REV ) 421  #EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV ) 423  #EXT2_GOOD_OLD_INODE_SIZE 128 ) 429  #EXT2_HAS_COMPAT_FEATURE ( sb , mask ) \ 430 Ð `EXT2_SB ( sb )-> s_es -> s_ã©u»_com·t & `ýu_to_Ë32 ( mask è) ) 431  #EXT2_HAS_RO_COMPAT_FEATURE ( sb , mask ) \ 432 Ð `EXT2_SB ( sb )-> s_es -> s_ã©u»_ro_com·t & `ýu_to_Ë32 ( mask è) ) 433  #EXT2_HAS_INCOMPAT_FEATURE ( sb , mask ) \ 434 Ð `EXT2_SB ( sb )-> s_es -> s_ã©u»_šcom·t & `ýu_to_Ë32 ( mask è) ) 435  #EXT2_SET_COMPAT_FEATURE ( sb , mask ) \ 436 `EXT2_SB ( sb )-> s_es -> s_ã©u»_com·t |ð `ýu_to_Ë32 ( mask ) ) 437  #EXT2_SET_RO_COMPAT_FEATURE ( sb , mask ) \ 438 `EXT2_SB ( sb )-> s_es -> s_ã©u»_ro_com·t |ð `ýu_to_Ë32 ( mask ) ) 439  #EXT2_SET_INCOMPAT_FEATURE ( sb , mask ) \ 440 `EXT2_SB ( sb )-> s_es -> s_ã©u»_šcom·t |ð `ýu_to_Ë32 ( mask ) ) 441  #EXT2_CLEAR_COMPAT_FEATURE ( sb , mask ) \ 442 `EXT2_SB ( sb )-> s_es -> s_ã©u»_com·t &ð~ `ýu_to_Ë32 ( mask ) ) 443  #EXT2_CLEAR_RO_COMPAT_FEATURE ( sb , mask ) \ 444 `EXT2_SB ( sb )-> s_es -> s_ã©u»_ro_com·t &ð~ `ýu_to_Ë32 ( mask ) ) 445  #EXT2_CLEAR_INCOMPAT_FEATURE ( sb , mask ) \ 446 `EXT2_SB ( sb )-> s_es -> s_ã©u»_šcom·t &ð~ `ýu_to_Ë32 ( mask ) ) 448  #EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001 ) 450  #EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001 ) 451  #EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002 ) 452  #EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 ) 454  #EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001 ) 455  #EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 ) 457  #EXT2_FEATURE_COMPAT_SUPP 0 ) 458  #EXT2_FEATURE_INCOMPAT_SUPP EXT2_FEATURE_INCOMPAT_FILETYPE ) 459  #EXT2_FEATURE_RO_COMPAT_SUPP ( EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER | \ 460 EXT2_FEATURE_RO_COMPAT_LARGE_FILE | \ 461 EXT2_FEATURE_RO_COMPAT_BTREE_DIR ) ) 466  #EXT2_DEF_RESUID 0 ) 467  #EXT2_DEF_RESGID 0 ) 472  #EXT2_NAME_LEN 255 ) 474  sext2_dœ_’Œy { 475 __u32 mšode ; 476 __u16 m»c_Ën ; 477 __u16 mÇme_Ën ; 478  mÇme [ EXT2_NAME_LEN ]; 487  sext2_dœ_’Œy_2 { 488 __u32 mšode ; 489 __u16 m»c_Ën ; 490 __u8 mÇme_Ën ; 491 __u8 mfže_ty³ ; 492  mÇme [ EXT2_NAME_LEN ]; 499  #EXT2_FT_UNKNOWN 0 ) 500  #EXT2_FT_REG_FILE 1 ) 501  #EXT2_FT_DIR 2 ) 502  #EXT2_FT_CHRDEV 3 ) 503  #EXT2_FT_BLKDEV 4 ) 504  #EXT2_FT_FIFO 5 ) 505  #EXT2_FT_SOCK 6 ) 506  #EXT2_FT_SYMLINK 7 ) 508  #EXT2_FT_MAX 8 ) 515  #EXT2_DIR_PAD 4 ) 516  #EXT2_DIR_ROUND ( EXT2_DIR_PAD - 1) ) 517  #EXT2_DIR_REC_LEN ( Çme_Ën è((Òame_Ënè+ 8 + EXT2_DIR_ROUND ) & \ 518 ~ EXT2_DIR_ROUND ) ) 520 #ifdeà __KERNEL__ 529  #NORET_TYPE ) 530  #ATTRIB_NORET `__©Œibu‹__ (( nÜ‘uº )) ) 531  #NORET_AND nÜ‘uº , ) 534  ext2_³rmissiÚ ( šode *, ); 537  ext2_bg_has_su³r ( su³r_block * sb ,  group ); 538  ext2_bg_num_gdb ( su³r_block * sb ,  group ); 539  ext2_Ãw_block (cÚ¡  šode *, , 540 __u32 *, __u32 *, *); 541  ext2_ä“_blocks (cÚ¡  šode *, , 543  ext2_couÁ_ä“_blocks ( su³r_block *); 544  ext2_check_blocks_b™m­ ( su³r_block *); 545  ext2_group_desc * ext2_g‘_group_desc ( su³r_block * sb , 546  block_group , 547  bufãr_h—d ** bh ); 550  ext2_couÁ_ä“ ( bufãr_h—d *, ); 553  ext2_check_dœ_’Œy (cÚ¡ *,  šode *, 554  ext2_dœ_’Œy_2 *,  bufãr_h—d *, 558  ext2_»ad ( šode *,  fže *, *, ); 559  ext2_wr™e ( šode *,  fže *, *, ); 562  ext2_sync_fže ( fže *,  d’Œy *, ); 563  ext2_fsync_šode ( šode *, ); 566  šode * ext2_Ãw_šode (const inode *, ); 567  ext2_ä“_šode ( šode *); 568  ext2_couÁ_ä“_šodes ( su³r_block *); 569  ext2_check_šodes_b™m­ ( su³r_block *); 573  bufãr_h—d * ext2_g‘blk ( šode *, , , *); 574  bufãr_h—d * ext2_b»ad ( šode *, , , *); 576  ext2_»ad_šode ( šode *); 577  ext2_wr™e_šode ( šode *, ); 578  ext2_put_šode ( šode *); 579  ext2_d–‘e_šode ( šode *); 580  ext2_sync_šode ( šode *); 581  ext2_disÿrd_´—Îoc ( šode *); 584  ext2_ioùl ( šode *,  fže *, , 588  šode_Ý”©iÚs ext2_dœ_šode_Ý”©iÚs ; 591  $ext2_”rÜ ( su³r_block *, const *, const *, ...) 592 `__©Œibu‹__ (( `fÜm© ( ´štf , 3, 4))); 593 NORET_TYPE  $ext2_·nic ( su³r_block *, const *, 595 `__©Œibu‹__ (( NORET_AND `fÜm© ( ´štf , 3, 4))); 596  $ext2_w¬nšg ( su³r_block *, const *, const *, ...) 597 `__©Œibu‹__ (( `fÜm© ( ´štf , 3, 4))); 598  `ext2_upd©e_dyÇmic_»v ( su³r_block * sb ); 599  `ext2_put_su³r ( su³r_block *); 600  `ext2_wr™e_su³r ( su³r_block *); 601  `ext2_»mouÁ ( su³r_block *, *, *); 602  su³r_block * `ext2_»ad_su³r (super_block *,*,); 603  `ext2_¡©fs ( su³r_block *,  ¡©fs *); 606  `ext2_Œunÿ‹ ( šode *); 613  fže_Ý”©iÚs ext2_dœ_Ý”©iÚs ; 616  šode_Ý”©iÚs ext2_fže_šode_Ý”©iÚs ; 617  fže_Ý”©iÚs ext2_fže_Ý”©iÚs ; 620  šode_Ý”©iÚs ext2_ç¡_symlšk_šode_Ý”©iÚs ; 622  add»ss_¥aû_Ý”©iÚs ext2_aÝs ; @fs/ext2_fs_i.h 16 #iâdeà _LINUX_EXT2_FS_I 17  #_LINUX_EXT2_FS_I ) 22  sext2_šode_šfo { 23 __u32 mi_d©a [15]; 24 __u32 mi_æags ; 25 __u32 mi_çddr ; 26 __u8 mi_äag_no ; 27 __u8 mi_äag_size ; 28 __u16 mi_osync ; 29 __u32 mi_fže_aþ ; 30 __u32 mi_dœ_aþ ; 31 __u32 mi_dtime ; 32 __u32 mnÙ_u£d_1 ; 33 __u32 mi_block_group ; 34 __u32 mi_Ãxt_®loc_block ; 35 __u32 mi_Ãxt_®loc_gßl ; 36 __u32 mi_´—Îoc_block ; 37 __u32 mi_´—Îoc_couÁ ; 38 __u32 mi_high_size ; 39  mi_Ãw_šode :1; @fs/ext2_fs_sb.h 16 #iâdeà _LINUX_EXT2_FS_SB 17  #_LINUX_EXT2_FS_SB ) 25  #EXT2_MAX_GROUP_LOADED 8 ) 30  sext2_sb_šfo { 31  ms_äag_size ; 32  ms_äags_³r_block ; 33  ms_šodes_³r_block ; 34  ms_äags_³r_group ; 35  ms_blocks_³r_group ; 36  ms_šodes_³r_group ; 37  ms_™b_³r_group ; 38  ms_gdb_couÁ ; 39  ms_desc_³r_block ; 40  ms_groups_couÁ ; 41  bufãr_h—d * ms_sbh ; 42  ext2_su³r_block * ms_es ; 43  bufãr_h—d ** ms_group_desc ; 44  ms_lßded_šode_b™m­s ; 45  ms_lßded_block_b™m­s ; 46  ms_šode_b™m­_numb” [ EXT2_MAX_GROUP_LOADED ]; 47  bufãr_h—d * ms_šode_b™m­ [ EXT2_MAX_GROUP_LOADED ]; 48  ms_block_b™m­_numb” [ EXT2_MAX_GROUP_LOADED ]; 49  bufãr_h—d * ms_block_b™m­ [ EXT2_MAX_GROUP_LOADED ]; 50  ms_mouÁ_Ýt ; 51 uid_t ms_»suid ; 52 gid_t ms_»sgid ; 53  ms_mouÁ_¡©e ; 54  ms_·d ; 55  ms_addr_³r_block_b™s ; 56  ms_desc_³r_block_b™s ; 57  ms_šode_size ; 58  ms_fœ¡_šo ; @fs/ext2_private.h 26 #iâdeà __FS_EXT2FS_PRIVATE_H__ 27  #__FS_EXT2FS_PRIVATE_H__ ) 33  UINT32 t__u32 ; 34  INT32 t__s32 ; 35  UINT16 t__u16 ; 36  INT16 t__s16 ; 37  UINT8 t__u8 ; 38  INT8 t__s8 ; 39  UINT32 tuid_t ; 40  UINT32 tgid_t ; 45  #S_IFMT 00170000 ) 46  #S_IFSOCK 0140000 ) 47  #S_IFLNK 0120000 ) 48  #S_IFREG 0100000 ) 49  #S_IFBLK 0060000 ) 50  #S_IFDIR 0040000 ) 51  #S_IFCHR 0020000 ) 52  #S_IFIFO 0010000 ) 53  #S_ISUID 0004000 ) 54  #S_ISGID 0002000 ) 55  #S_ISVTX 0001000 ) 57  #S_ISLNK ( m è(((mè& S_IFMT è=ð S_IFLNK ) ) 58  #S_ISREG ( m è(((mè& S_IFMT è=ð S_IFREG ) ) 59  #S_ISDIR ( m è(((mè& S_IFMT è=ð S_IFDIR ) ) 60  #S_ISCHR ( m è(((mè& S_IFMT è=ð S_IFCHR ) ) 61  #S_ISBLK ( m è(((mè& S_IFMT è=ð S_IFBLK ) ) 62  #S_ISFIFO ( m è(((mè& S_IFMT è=ð S_IFIFO ) ) 63  #S_ISSOCK ( m è(((mè& S_IFMT è=ð S_IFSOCK ) ) 66  ~"fs/ext2_fs.h " 67  ~"fs/ext2_fs_sb.h " 68  ~"fs/ext2_fs_i.h " @fs/ext2fs.c 32  ~ 33  ~ 35  ~"–žo.h " 37  #FS_NAME L "ext2fs" ) 39 #ifdeà PATH_MAX 40 #”rÜ You mu¡ have šþuded some Lšux h—d” fže by ”rÜ 43  #PATH_MAX 4095 ) 44  #EXT2FS_PATH_MAXLEN PATH_MAX ) 46  ~"fs/ext2fs.h " 47  ~"fs/ext2_´iv©e.h " 53  #EXT2FS_MEMTYPE EfiLßd”D©a ) 56  #EXT2_FILESIZE_MAX (0x100000000UL) ) 62  #MAX_OPEN_FILES 32 ) 64  sšode_bË_’Œy { 65  ext2_šode mšode ; 66  mšumb” ; 67  mä“ ; 68  mÞd_mode ; 70 UINT32 mpos ; 71 } tšode_’Œy_t ; 75  ext2_su³r_block msb ; 76  ext2_group_desc * mgds ; 77  ext2_šode * mroÙ_šode ; 78  mngroups ; 79  mdœeùlim ; 80  mšd1lim ; 81  mšd2lim ; 82  m±rs_³r_blk ; 83 CHAR8 mblkbuf [ EXT2_MAX_BLOCK_SIZE ]; 84  mÿched_iblkno ; 85 CHAR8 miblkbuf [ EXT2_MAX_BLOCK_SIZE ]; 86  mÿched_diblkno ; 87 CHAR8 mdiblkbuf [ EXT2_MAX_BLOCK_SIZE ]; 88  mblocksize ; 91 šode_’Œy_t mšode_bË [ MAX_OPEN_FILES ]; 94 EFI_BLOCK_IO * mblkio ; 95 UINT32 mmedŸid ; 96 EFI_HANDLE mdev ; 97 } text2fs_´iv_¡©e_t ; 101 ext2fs_š‹rçû_t mpub_štf ; 103 ext2fs_š‹rçû_t mpub_štf ; 104 ext2fs_´iv_¡©e_t m´iv_d©a ; 105 } mext2fs_´iv ; 106 } text2fs_t ; 108  #FS_PRIVATE ( n è(&((( ext2fs_t *ê)-> ext2fs_´iv . ´iv_d©a )) ) 111 EFI_HANDLE * mdev ; 112 ext2fs_t * mštf ; 113 } tdev_b_t ; 115  dev_b_t * gdev_b ; 116  UINTN gndev ; 119  EFI_GUID gExt2FsPrÙocÞ = EXT2FS_PROTOCOL ; 121  INTN 122 $»ad_by‹s ( EFI_BLOCK_IO * blkio , UINT32 medŸid , UINTN off£t , VOID * addr , UINTN size ) 124 EFI_STATUS ¡©us ; 125 UINT8 * bufãr ; 126 UINTN couÁ , bufãr_size ; 127 EFI_LBA ba£ ; 128 INTN »t = EFI_INVALID_PARAMETER ; 130 ba£ = off£t / blkio -> MedŸ -> BlockSize ; 131 couÁ = ( size + blkio -> MedŸ -> BlockSize -1) / blkio->Media->BlockSize; 132 bufãr_size = couÁ * blkio -> MedŸ -> BlockSize ; 134 `DBG_PRT (( L "»adblock(%x, %d,%dèba£=%d couÁ=%d", blkio , off£t , size , ba£ , couÁ )); 139 bufãr = ( UINT8 *) `®loc ( bufãr_size , EfiLßd”D©a ); 140 ià( bufãr =ð NULL ) { 141 `ERR_PRT (( L "ÿÂÙ‡Îoÿ‹ƒxt2f bufã¸size=%d", bufãr_size )); 142  »t ; 145 `DBG_PRT (( L "»adblock(%x, %d, %d, %d, %x)", blkio , medŸid , ba£ , bufãr_size , bufãr )); 147 ¡©us = blkio -> `R—dBlocks (blkio, medŸid , ba£ , bufãr_size , bufãr ); 148 ià( `EFI_ERROR ( ¡©us )) { 149 `ERR_PRT (( L "»adblock(%d,%d)=%r", ba£ , bufãr_size , ¡©us )); 150  ”rÜ ; 153 `DBG_PRT (( L "»adblock(%d,%d)->%r", off£t , bufãr_size , ¡©us )); 155 `Memýy ( addr , bufãr +( off£t -( ba£ * blkio -> MedŸ -> BlockSize )), size ); 157 »t = 0; 159 ”rÜ : 160 `ä“ ( bufãr ); 162  »t ; 163 } } 169  ext2_šode * 170 $ext2_ig‘ ( ext2fs_´iv_¡©e_t * e2fs ,  šo ) 172  i ; 173  ext2_šode * ; 174  šode_bË_’Œy * ™p = 0; 175  group ; 176  off£t ; 178 = 0; 179  i = 0; i < MAX_OPEN_FILES ; i++) { 180 `DBG_PRT (( L "ext2_iget:†ooping,ƒntry %d inode %d free %d", 181 i , e2fs -> šode_bË [i]. šumb” ,ƒ2fs->šode_bË[i]. ä“ )); 182 ià( e2fs -> šode_bË [ i ]. ä“ ) { 183 ™p = & e2fs -> šode_bË [ i ]; 184 = & ™p -> šode ; 188 ià(! ) { 189 `ERR_PRT (( L "ext2_iget:‚o free inodes")); 190  NULL ; 194 group = ( šo -1è/ e2fs -> sb . s_šodes_³r_group ; 196 `DBG_PRT (( L " i-šode_bË=%d bg_šode_bË=%d group=%d ino=%d\n", ( UINTN )( ™p - e2fs -> šode_bË ), 197 ( UINTN )( e2fs -> gds [ group ]. bg_šode_bË ), (UINTN)group, (UINTN) šo )); 199 off£t = ((è e2fs -> gds [ group ]. bg_šode_bË *ƒ2fs-> blocksize ) 200 + ((( šo - 1è% `EXT2_INODES_PER_GROUP (& e2fs -> sb )è* `EXT2_INODE_SIZE (&e2fs->sb)); 202 `DBG_PRT (( L "ext2_iget:„eading %d bytes‡t offset %d" 205 ( ext2_šode ), 206 ( UINTN ) off£t , 207 ( UINTN ) e2fs -> gds [ group ]. bg_šode_bË , (UINTNë2fs-> blocksize , 208 ( UINTN )( šo - 1), (UINTN) `EXT2_INODES_PER_GROUP (& e2fs -> sb ), `EXT2_INODE_SIZE (&e2fs->sb), 209 ( UINTN ) šo , (UINTNè( ™p - e2fs -> šode_bË ))); 211 ià( `»ad_by‹s ( e2fs -> blkio ,ƒ2fs-> medŸid , off£t , , ( ext2_šode ))) { 212 `ERR_PRT (( L "ext2_iget:„eadƒrror")); 213  NULL ; 216 `DBG_PRT (( L "mode=%x uid=%d size=%d gid=%d†inks=%d flags=%d", 217 ( UINTN ) -> i_mode , 218 ( UINTN ) -> i_uid , 219 ( UINTN ) -> i_size , 220 ( UINTN ) -> i_gid , 221 ( UINTN ) -> i_æags )); 223 ™p -> ä“ = 0; 224 ™p -> šumb” = šo ; 225 ™p -> Þd_mode = -> i_mode ; 227  ; 228 } } 236 $ext2_ut ( ext2fs_´iv_¡©e_t * e2fs ,  ext2_šode * ) 238  šode_bË_’Œy * ™p ; 241 ™p = ( šode_bË_’Œy *) ; 243 `DBG_PRT (( L "ext2_ut: inod%dabË %d", ™p -> šumb” , (è(™°- e2fs -> šode_bË ))); 245 ™p -> šumb” = 0; 246 ™p -> ä“ = 1; 247 } } 260 $ext2_blkno ( ext2fs_´iv_¡©e_t * e2fs ,  ext2_šode * ,  blkoff ) 262 * Í ; 263 * žp ; 264 * dÍ ; 265  blkno ; 266  iblkno ; 267  diblkno ; 268  off£t ; 270 žp = (*) e2fs -> iblkbuf ; 271 dÍ = (*) e2fs -> diblkbuf ; 272 Í = (*) e2fs -> blkbuf ; 275 ià( blkoff <ð e2fs -> dœeùlim ) { 276  -> i_block [ blkoff ]; 280 ià( blkoff <ð e2fs -> šd1lim ) { 281 iblkno = -> i_block [ EXT2_IND_BLOCK ]; 283 ià( iblkno == 0) { 288 ià( e2fs -> ÿched_iblkno !ð iblkno ) { 289 off£t = iblkno * e2fs -> blocksize ; 290 ià( `»ad_by‹s ( e2fs -> blkio ,ƒ2fs-> medŸid , off£t ,ƒ2fs-> iblkbuf ,ƒ2fs-> blocksize )) { 291 `ERR_PRT (( L "ext2_blkno:ƒrror on iblk„ead")); 294 e2fs -> ÿched_iblkno = iblkno ; 297 blkno = žp [ blkoff -( e2fs -> dœeùlim +1)]; 298  blkno ; 302 ià( blkoff <ð e2fs -> šd2lim ) { 304 diblkno = -> i_block [ EXT2_DIND_BLOCK ]; 306 ià( diblkno == 0) { 311 ià( e2fs -> ÿched_diblkno !ð diblkno ) { 312 off£t = diblkno * e2fs -> blocksize ; 313 ià( `»ad_by‹s ( e2fs -> blkio ,ƒ2fs-> medŸid , off£t ,ƒ2fs-> diblkbuf ,ƒ2fs-> blocksize )) { 314 `ERR_PRT (( L "ext2_blkno:ƒrr„eading dindr blk")); 317 e2fs -> ÿched_diblkno = diblkno ; 321 iblkno = dÍ [( blkoff - ( e2fs -> šd1lim +1)è/ƒ2fs-> ±rs_³r_blk ]; 323 ià( iblkno == 0) { 329 ià( e2fs -> ÿched_iblkno !ð iblkno ) { 330 off£t = iblkno * e2fs -> blocksize ; 331 ià( `»ad_by‹s ( e2fs -> blkio ,ƒ2fs-> medŸid , off£t ,ƒ2fs-> iblkbuf ,ƒ2fs-> blocksize )) { 332 `ERR_PRT (( L "ext2_blkno:ƒrr on iblk„ead")); 335 e2fs -> ÿched_iblkno = iblkno ; 339 blkno = žp [( blkoff -( e2fs -> šd1lim +1)è%ƒ2fs-> ±rs_³r_blk ]; 340  blkno ; 343 ià( blkoff > e2fs -> šd2lim ) { 344 `ERR_PRT (( L "ext2_blkno: block‚umb”oØÏrge: %d", blkoff )); 348 } } 352 $ext2_b»adi ( ext2fs_´iv_¡©e_t * e2fs ,  ext2_šode * ,  blkno ,  nblks , CHAR8 * bufãr ) 354  dev_blkno , ncÚtig , off£t , nby‹s , tÙ_by‹s ; 356 tÙ_by‹s = 0; 357 ià(( blkno + nblks )* e2fs -> blocksize > -> i_size ) 358 nblks = ( -> i_size + e2fs -> blocksize è/ƒ2fs->blocksiz- blkno ; 360  nblks ) { 365 ncÚtig = 0; nby‹s = 0; 366 dev_blkno = `ext2_blkno ( e2fs , , blkno ); 368 ++ blkno ; ++ ncÚtig ; -- nblks ; 369 nby‹s +ð e2fs -> blocksize ; 370 }  nblks && 371 `ext2_blkno ( e2fs , , blkno è=ð dev_blkno + ncÚtig ); 373 ià( dev_blkno == 0) { 375 `Mem£t ( bufãr , 0, nby‹s ); 378 off£t = dev_blkno * e2fs -> blocksize ; 379 `DBG_PRT (( L "ext2_b»ad:„—dšg %d by‹ © off£ˆ%d", nby‹s , off£t )); 381 ià( `»ad_by‹s ( e2fs -> blkio ,ƒ2fs-> medŸid , off£t , bufãr , nby‹s )) { 382 `ERR_PRT (( L "ext2_bread:„eadƒrror")); 386 bufãr +ð nby‹s ; 387 tÙ_by‹s +ð nby‹s ; 389  tÙ_by‹s ; 390 } } 392  ext2_dœ_’Œy_2 * 393 $ext2_»addœi ( ext2fs_´iv_¡©e_t * e2fs ,  ext2_šode * dœ_šode ,  »wšd ) 395  ext2_dœ_’Œy_2 * dp ; 396  dœoff£t = 0, blockoff£t = 0; 399 ià( »wšd ) { 400 dœoff£t = 0; 401 blockoff£t = 0; 403 ià( `ext2_b»adi ( e2fs , dœ_šode , 0, 1,ƒ2fs-> blkbuf ) < 0) 404  NULL ; 407 `DBG_PRT (( L "ext2_»addœi: blkoff£ˆ%d dœoff£ˆ%d†’ %d", blockoff£t , dœoff£t , dœ_šode -> i_size )); 409 ià( blockoff£t >ð e2fs -> blocksize ) { 410 dœoff£t +ð e2fs -> blocksize ; 411 ià( dœoff£t >ð dœ_šode -> i_size ) 412  NULL ; 413 `ERR_PRT (( L "ext2_»addœi:„—dšg block‡ˆ%d", dœoff£t )); 415 ià( `ext2_b»adi ( e2fs , dœ_šode , dœoff£t /ƒ2fs-> blocksize , 1,ƒ2fs-> blkbuf è< 0è NULL ; 416 blockoff£t = 0; 419 dp = ( ext2_dœ_’Œy_2 *è( e2fs -> blkbuf + blockoff£t ); 420 blockoff£t +ð dp -> »c_Ën ; 423 `Pršt ( L "ext2_readdiri:„eturning %x = "); 424 { INTN i ; i=0; i < dp -> Çme_Ën ; i++è `Pršt ( L "%c", ( CHAR16 )dp-> Çme [i]); Print(L"\n");} 426  dp ; 427 } } 433  ext2_šode * 434 $ext2_Çmei ( ext2fs_´iv_¡©e_t * e2fs , CHAR8 * Çme ) 436 CHAR8 * compÚ’t ; 437  ext2_šode * dœ_šode ; 438  ext2_dœ_’Œy_2 * dp ; 439  Ãxt_šo ; 442 ià(! e2fs -> roÙ_šode ) 443 e2fs -> roÙ_šode = `ext2_ig‘ Ó2fs, EXT2_ROOT_INO ); 444 dœ_šode = e2fs -> roÙ_šode ; 445 ià(! dœ_šode ) 446  NULL ; 448 compÚ’t = `¡¹ok_sim¶e ( Çme , '/'); 449  compÚ’t ) { 450  compÚ’t_Ëngth ; 451  »wšd = 0; 456 Ãxt_šo = -1; 457 compÚ’t_Ëngth = `¡¾’a ( compÚ’t ); 459 `DBG_PRT (( L "ext2_Çmei: compÚ’ˆð%a", compÚ’t )); 462 ( dp = `ext2_»addœi ( e2fs , dœ_šode , ! »wšd ++))) { 463 ià(( dp -> Çme_Ën =ð compÚ’t_Ëngth ) && 464 ( `¡ºcm· ( compÚ’t , dp -> Çme , 465 compÚ’t_Ëngth ) == 0)) 468 `DBG_PRT (( L "ext2_Çmei: foundƒÁry %a", compÚ’t )); 469 Ãxt_šo = dp -> šode ; 472 `DBG_PRT (( L "ext2_namei:†ooping")); 475 `DBG_PRT (( L "ext2_Çmei:‚ext_šØð%d", Ãxt_šo )); 481 ià( dœ_šode !ð e2fs -> roÙ_šode è `ext2_ut (e2fs, dir_inode); 487 ià( Ãxt_šo < 0) { 488  NULL ; 495 dœ_šode = `ext2_ig‘ ( e2fs , Ãxt_šo ); 496 ià(! dœ_šode ) 497  NULL ; 499 compÚ’t = `¡¹ok_sim¶e ( NULL , '/'); 506  dœ_šode ; 507 } } 514 $ext2_b»ad ( ext2fs_´iv_¡©e_t * e2fs ,  fd ,  blkno ,  nblks , * bufãr ) 516  ext2_šode * ; 517 = & e2fs -> šode_bË [ fd ]. šode ; 518  `ext2_b»adi ( e2fs , , blkno , nblks , bufãr ); 519 } } 527 $ext2_»addœ ( ext2fs_´iv_¡©e_t * e2fs ,  fd ,  »wšd ) 529  ext2_šode * = & e2fs -> šode_bË [ fd ]. šode ; 530  ext2_dœ_’Œy_2 * ’t ; 531 ià(! `S_ISDIR ( -> i_mode )) { 532 `ERR_PRT (( L "fd %d (inode %d) is‚ot‡ directory (mode %x)", 533 fd , e2fs -> šode_bË [fd]. šumb” , -> i_mode )); 534  NULL ; 536 ’t = `ext2_»addœi ( e2fs , , »wšd ); 537 ià( ’t ) { 538 ’t -> Çme [’t-> Çme_Ën ] = '\0'; 539  ’t -> Çme ; 541  NULL ; 543 } } 547 $ext2_f¡© ( ext2fs_´iv_¡©e_t * e2fs ,  fd , ext2fs_¡©_t * buf ) 549  ext2_šode * = & e2fs -> šode_bË [ fd ]. šode ; 551 `Mem£t ( buf , 0, (*buf)); 554 buf -> ¡_šo = e2fs -> šode_bË [ fd ]. šumb” ; 555 buf -> ¡_mode = -> i_mode ; 556 buf -> ¡_Æšk = -> i_lšks_couÁ ; 557 buf -> ¡_uid = -> i_uid ; 558 buf -> ¡_gid = -> i_gid ; 559 buf -> ¡_size = -> i_size ; 560 buf -> ¡_©ime = -> i_©ime ; 561 buf -> ¡_mtime = -> i_mtime ; 562 buf -> ¡_ùime = -> i_ùime ; 565 } } 567  EFI_STATUS 568 $ext2fs_f¡© ( ext2fs_š‹rçû_t * this , UINTN fd , ext2fs_¡©_t * ¡ ) 570 ext2fs_´iv_¡©e_t * e2fs ; 572 ià( this =ð NULL || fd > MAX_OPEN_FILES || ¡ =ðNULLè EFI_INVALID_PARAMETER ; 574 e2fs = `FS_PRIVATE ( this ); 576 `ext2_f¡© ( e2fs , fd , ¡ ); 578  EFI_SUCCESS ; 579 } } 581  EFI_STATUS 582 $ext2fs_£ek ( ext2fs_š‹rçû_t * this , UINTN fd , UINT64 Ãwpos ) 584 ext2fs_´iv_¡©e_t * e2fs ; 586 ià( this =ð NULL || fd > MAX_OPEN_FILES || Ãwpos >ð EXT2_FILESIZE_MAX è EFI_INVALID_PARAMETER ; 588 e2fs = `FS_PRIVATE ( this ); 589 ià( Ãwpos > ( UINT64 ) e2fs -> šode_bË [ fd ]. šode . i_size è EFI_INVALID_PARAMETER ; 591 e2fs -> šode_bË [ fd ]. pos = Ãwpos ; 593  EFI_SUCCESS ; 594 } } 596  EFI_STATUS 597 $ext2fs_»ad ( ext2fs_š‹rçû_t * this , UINTN fd , VOID * buf , UINTN * size ) 599 ext2fs_´iv_¡©e_t * e2fs ; 600 UINTN couÁ , nc , bofs , bnum , pos ; 601 EFI_STATUS »t = EFI_INVALID_PARAMETER ; 602 CHAR8 * block ; 604 ià( this =ð NULL || size =ðNULL || buf =ðNULL || fd > MAX_OPEN_FILES è EFI_INVALID_PARAMETER ; 606 e2fs = `FS_PRIVATE ( this ); 608 couÁ = `MIN (* size , e2fs -> šode_bË [ fd ]. šode . i_size -ƒ2fs->šode_bË[fd]. pos ); 610 ià( couÁ == 0) { 611 * size = 0; 612  EFI_SUCCESS ; 614 block = e2fs -> blkbuf ; 616 * size = 0; 618 pos = e2fs -> šode_bË [ fd ].pos; 619 `DBG_PRT (( L "size=%d i_size=%d couÁ=%d…os=%ld", * size , e2fs -> šode_bË [ fd ]. šode . i_size , couÁ , pos )); 620  couÁ ) { 621 bnum = pos / e2fs -> blocksize ; 622 bofs = pos % e2fs -> blocksize ; 623 nc = `MIN ( couÁ , e2fs -> blocksize - bofs ); 625 `DBG_PRT (( L "bnum =%d bofs=%d‚c=%d *size=%d", bnum , bofs , nc , * size )); 627 ià( `ext2_b»ad ( e2fs , fd , bnum , 1, block è=ð-1è ”rÜ ; 629 {  i ; * p = block + bofs ; 630  i = `MIN ( nc , 64); i>=0 ; i--, p ++) { 631 ià( i % 16 =ð0è `Pršt ( L "\n"); 632 `Pršt ( L "%02x ", ( UINTN )* p & 0xff); 637 `Memýy ( buf , block + bofs , nc ); 638 couÁ -ð nc ; 639 pos +ð nc ; 640 buf +ð nc ; 641 * size +ð nc ; 644 e2fs -> šode_bË [ fd ]. pos +ð* size ; 645 »t = EFI_SUCCESS ; 646 ”rÜ : 647 `DBG_PRT (( L "*size=%d„‘=%r", * size , »t )); 648  »t ; 649 } } 651  ext2_šode * 652 $ext2_fÞlow_lšk ( ext2fs_´iv_¡©e_t * e2fs ,  ext2_šode * äom , cÚ¡ * ba£ ) 654 * lškto ; 656 ià( äom -> i_blocks ) { 657 lškto = e2fs -> blkbuf ; 658 ià( `ext2_b»adi ( e2fs , äom , 0, 1,ƒ2fs-> blkbuf ) == -1) 659  NULL ; 660 `DBG_PRT (( L "long†ink!")); 662 lškto = (*) äom -> i_block ; 664 `DBG_PRT (( L "symlškØ%s", lškto )); 667 ià( lškto [0] != '/') { 668 * ’d = `¡¼ch¿ ( ba£ , '/'); 669 ià( ’d ) { 671  fuÎÇme [ EXT2FS_PATH_MAXLEN ]; 673 ià((( ’d - ba£ + 1è+ `¡¾’a ( lškto è+ 1è>ð EXT2FS_PATH_MAXLEN ) { 674 `Pršt ( L "%s: fž’amtoØlÚg, cª'ˆ»sÞve\n", __FUNCTION__ ); 675  NULL ; 678 `¡ºýya ( fuÎÇme , ba£ , ’d - base + 1); 679 fuÎÇme [ ’d - ba£ + 1] = '\0'; 680 `¡rÿ ( fuÎÇme , lškto ); 681 `DBG_PRT (( L "»sÞvedØ%s", fuÎÇme )); 682  `ext2_Çmei ( e2fs , fuÎÇme ); 685  `ext2_Çmei ( e2fs , lškto ); 688  `ext2_Çmei ( e2fs , lškto ); 690 } } 693 $ext2_Ý’ ( ext2fs_´iv_¡©e_t * e2fs , * fž’ame ) 699  ext2_šode * ; 701 = `ext2_Çmei ( e2fs , fž’ame ); 702 ià( ) { 703  šode_bË_’Œy * ™p ; 705  `S_ISLNK ( -> i_mode )) { 706 = `ext2_fÞlow_lšk ( e2fs , ip, fž’ame ); 707 ià(! )  -1; 709 ™p = ( šode_bË_’Œy *) ; 710  ™p - e2fs -> šode_bË ; 713 } } 715  $ext2_þo£ ( ext2fs_´iv_¡©e_t * e2fs ,  fd ) 718 ià(& e2fs -> šode_bË [ fd ]. šode !ðe2fs-> roÙ_šode ) 719 `ext2_ut ( e2fs , &e2fs-> šode_bË [ fd ]. šode ); 720 } } 722  EFI_STATUS 723 $ext2fs_þo£ ( ext2fs_š‹rçû_t * this , UINTN fd ) 725 ext2fs_´iv_¡©e_t * e2fs ; 727 ià( this =ð NULL || fd > MAX_OPEN_FILES è EFI_INVALID_PARAMETER ; 729 e2fs = `FS_PRIVATE ( this ); 731 `ext2_þo£ ( e2fs , fd ); 733  EFI_SUCCESS ; 734 } } 736  EFI_STATUS 737 $ext2fs_Ý’ ( ext2fs_š‹rçû_t * this , CHAR16 * Çme , UINTN * fd ) 739 ext2fs_´iv_¡©e_t * e2fs ; 740 CHAR8 fž’ame [ EXT2FS_PATH_MAXLEN ]; 741 INTN tmp ; 743 `DBG_PRT (( L "Çme:% fd=%x", Çme , fd )); 745 ià( this =ð NULL || Çme =ðNULL || fd =ðNULL || `SŒL’ Òameè>= EXT2FS_PATH_MAXLEN è EFI_INVALID_PARAMETER ; 747 e2fs = `FS_PRIVATE ( this ); 752 `SŒnXCpy ( fž’ame , Çme , EXT2FS_PATH_MAXLEN ); 754 `DBG_PRT (( L "ASCII‚ame:%¨UTF-Çme:%s", fž’ame , Çme )); 756 tmp = `ext2_Ý’ ( e2fs , fž’ame ); 757 ià( tmp != -1) { 758 * fd = ( UINTN ) tmp ; 759 e2fs -> šode_bË [ tmp ]. pos = 0; 762 `DBG_PRT (( L "Çme: % fd=%dmp=%d", Çme , * fd , tmp )); 764  tmp =ð-1 ? EFI_NOT_FOUND : EFI_SUCCESS ; 765 } } 767  EFI_STATUS 768 $ext2fs_Çme ( ext2fs_š‹rçû_t * this , CHAR16 * Çme , UINTN maxËn ) 770 ià( Çme =ð NULL || maxËn < 1è EFI_INVALID_PARAMETER ; 772 `SŒnCpy ( Çme , FS_NAME , maxËn -1); 774 Çme [ maxËn -1] = CHAR_NULL ; 776  EFI_SUCCESS ; 777 } } 779  INTN 780 $ext2fs_š™_¡©e ( ext2fs_t * ext2fs , EFI_HANDLE dev , EFI_BLOCK_IO * blkio ,  ext2_su³r_block * sb ) 782 ext2fs_´iv_¡©e_t * e2fs = `FS_PRIVATE ( ext2fs ); 783 UINTN i ; 784 EFI_STATUS ¡©us ; 786 `Mem£t ( ext2fs , 0, (*ext2fs)); 788 e2fs -> dev = dev; 789 e2fs -> blkio = blkio; 790 e2fs -> medŸid = blkio -> MedŸ -> MedŸId ; 793 `Memýy (& e2fs -> sb , sb, (*sb)); 795 e2fs -> ngroups = ( sb -> s_blocks_couÁ - sb-> s_fœ¡_d©a_block + `EXT2_BLOCKS_PER_GROUP (sb) - 1) / EXT2_BLOCKS_PER_GROUP(sb); 797 e2fs -> gds = ( ext2_group_desc *) `®loc Ó2fs-> ngroups * (ext2_group_desc), EXT2FS_MEMTYPE ); 798 ià( e2fs -> gds =ð NULL ) { 799 `ERR_PRT (( L "failedo‡llocate gds")); 800  EFI_OUT_OF_RESOURCES ; 803 e2fs -> blocksize = `EXT2_BLOCK_SIZE ( sb ); 805 `DBG_PRT (( L "gds_size=%d gds_offset=%d‚groups=%d blocksize=%d", 806 e2fs -> ngroups * ( ext2_group_desc ), 807 e2fs -> blocksize * ( EXT2_MIN_BLOCK_SIZE /e2fs->blocksize + 1), 808 e2fs -> ngroups , ( UINTN ë2fs-> blocksize )); 811 ¡©us = `»ad_by‹s ( blkio , e2fs -> medŸid ,ƒ2fs-> blocksize * ( EXT2_MIN_BLOCK_SIZE /e2fs->blocksize + 1), 812 e2fs -> gds ,ƒ2fs-> ngroups * ( ext2_group_desc )); 813 ià( `EFI_ERROR ( ¡©us )) { 814 `ERR_PRT (( L "ÿÂÙ„—d gds: %r", ¡©us )); 815 `ä“ ( e2fs -> gds ); 816  EFI_INVALID_PARAMETER ; 819 {  i ; * p = (*) e2fs -> gds ; 820  i = e2fs -> ngroups *(*e2fs-> gds ); i ; i--, p ++) { 821 ià( i % 16 =ð0è `Pršt ( L "\n"); 822 `Pršt ( L "%02x ", ( UINTN )* p & 0xff); 828 e2fs -> ÿched_diblkno = -1; 829 e2fs -> ÿched_iblkno = -1; 832  i = 0; i < MAX_OPEN_FILES ; i++) { 833 e2fs -> šode_bË [ i ]. ä“ = 1; 834 e2fs -> šode_bË [ i ]. šumb” = 0; 837 e2fs -> roÙ_šode = NULL ; 844 e2fs -> dœeùlim = EXT2_NDIR_BLOCKS - 1; 845 e2fs -> ±rs_³r_blk =ƒ2fs-> blocksize /(); 846 e2fs -> šd1lim =ƒ2fs-> ±rs_³r_blk +ƒ2fs-> dœeùlim ; 847 e2fs -> šd2lim = (e2fs-> ±rs_³r_blk *ƒ2fs->±rs_³r_blkè+ƒ2fs-> dœeùlim ; 849 ext2fs -> pub_štf . ext2fs_Çme =ƒxt2fs_name; 850 ext2fs -> pub_štf . ext2fs_Ý’ =ƒxt2fs_open; 851 ext2fs -> pub_štf . ext2fs_»ad =ƒxt2fs_read; 852 ext2fs -> pub_štf . ext2fs_þo£ =ƒxt2fs_close; 853 ext2fs -> pub_štf . ext2fs_£ek =ƒxt2fs_seek; 854 ext2fs -> pub_štf . ext2fs_f¡© =ƒxt2fs_fstat; 856  EFI_SUCCESS ; 857 } } 860  EFI_STATUS 861 $ext2fs_š¡®l_Úe ( EFI_HANDLE dev , VOID ** štf ) 863  ext2_su³r_block sb ; 864  sb_block = 1; 865 EFI_STATUS ¡©us ; 866 EFI_BLOCK_IO * blkio ; 867 ext2fs_t * ext2fs ; 869 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & Ext2FsPrÙocÞ , ( VOID **)& ext2fs ); 870 ià( ¡©us =ð EFI_SUCCESS ) { 871 `ERR_PRT (( L "W¬nšg: foundƒxi¡šg % ´ÙocÞ oÀdeviû", FS_NAME )); 872  found ; 875 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & BlockIoPrÙocÞ , ( VOID **)& blkio ); 876 ià( `EFI_ERROR ( ¡©us )è EFI_INVALID_PARAMETER ; 878 `VERB_PRT (5, 879 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 880 dp = `DeviûP©hFromHªdË ( dev ); 881 ¡r = `DeviûP©hToSŒ ( dp ); 882 `Pršt ( L "dev:%s\nLogiÿÈ·¹™iÚ: %  BlockSize: %d Wr™eCachšg: % \n", ¡r , 883 blkio -> MedŸ -> LogiÿlP¬t™iÚ ? L "Yes": L"No", 884 blkio -> MedŸ -> BlockSize , 885 blkio -> MedŸ -> Wr™eCachšg ? L "Yes":L"No"); 886 `F»ePoÞ ( ¡r ); 888 ià( blkio -> MedŸ -> LogiÿlP¬t™iÚ =ð FALSE è EFI_INVALID_PARAMETER ; 896 blkio -> `Re£t (blkio, FALSE ); 899 ¡©us = `»ad_by‹s ( blkio , blkio-> MedŸ -> MedŸId , sb_block * EXT2_MIN_BLOCK_SIZE , & sb , (sb)); 900 ià( `EFI_ERROR ( ¡©us )) { 901 `DBG_PRT (( L "ÿÂÙ„—d su³rblock: %r", ¡©us )); 902  EFI_INVALID_PARAMETER ; 905 ià( sb . s_magic !ð EXT2_SUPER_MAGIC ) { 906 `DBG_PRT (( L "bad magiø0x%x\n", sb . s_magic )); 907  EFI_INVALID_PARAMETER ; 910 ext2fs = ( ext2fs_t *) `®loc ((*ext2fs), EXT2FS_MEMTYPE ); 911 ià( ext2fs =ð NULL è EFI_OUT_OF_RESOURCES ; 913 ¡©us = `ext2fs_š™_¡©e ( ext2fs , dev , blkio , & sb ); 914 ià( ¡©us !ð EFI_SUCCESS ) { 915 `ä“ ( ext2fs ); 916  ¡©us ; 919 ¡©us = `LibIn¡®lPrÙocÞIÁ”çûs (& dev , & Ext2FsPrÙocÞ , ext2fs , NULL ); 920 ià( `EFI_ERROR ( ¡©us )) { 921 `ERR_PRT (( L "CªnÙ in¡®È% ´ÙocÞ: %r", FS_NAME , ¡©us )); 922 `ä“ ( ext2fs ); 923  ¡©us ; 925 found : 926 ià( štf è*štàð( VOID *) ext2fs ; 928 `VERB_PRT (3, 929 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 930 dp = `DeviûP©hFromHªdË ( dev ); 931 ¡r = `DeviûP©hToSŒ ( dp ); 932 `Pršt ( L "dev:% % d‘eùed\n", ¡r , FS_NAME ); 933 `F»ePoÞ ( ¡r ); 936  EFI_SUCCESS ; 937 } } 939 EFI_STATUS 940 $ext2fs_š¡®l ( VOID ) 942 UINTN size = 0; 943 UINTN i ; 944 EFI_STATUS ¡©us ; 945 VOID * štf ; 947 BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & BlockIoPrÙocÞ , NULL , & size , NULL); 948 ià( size =ð0è EFI_UNSUPPORTED ; 950 `DBG_PRT (( L "size=%d", size )); 952 dev_b = ( dev_b_t *) `®loc ( size , EfiLßd”D©a ); 953 ià( dev_b =ð NULL ) { 954 `ERR_PRT (( L "failedo‡llocate handleable")); 955  EFI_OUT_OF_RESOURCES ; 958 ¡©us = BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & BlockIoPrÙocÞ , NULL , & size , ( VOID **) dev_b ); 959 ià( ¡©us !ð EFI_SUCCESS ) { 960 `ERR_PRT (( L "çžedØg‘ hªdËs: %r", ¡©us )); 961 `ä“ ( dev_b ); 962  ¡©us ; 964 ndev = size / ( EFI_HANDLE ); 966  i =0; i < ndev ; i++) { 967 štf = NULL ; 968 `ext2fs_š¡®l_Úe ( dev_b [ i ]. dev , & štf ); 970 dev_b [ i ]. štf = intf; 973  EFI_SUCCESS ; 974 } } 976 EFI_STATUS 977 $ext2fs_unš¡®l ( VOID ) 980 ext2fs_´iv_¡©e_t * e2fs ; 981 EFI_STATUS ¡©us ; 982 UINTN i ; 984  i =0; i < ndev ; i++) { 985 ià( dev_b [ i ]. štf =ð NULL ) ; 986 e2fs = `FS_PRIVATE ( dev_b [ i ]. štf ); 987 ¡©us = BS -> `Unš¡®lPrÙocÞIÁ”çû ( e2fs -> dev , & Ext2FsPrÙocÞ , dev_b [ i ]. štf ); 988 ià( `EFI_ERROR ( ¡©us )) { 989 `ERR_PRT (( L "Unš¡®È% ”rÜ: %r", FS_NAME , ¡©us )); 992 `VERB_PRT (3, 993 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 994 dp = `DeviûP©hFromHªdË ( e2fs -> dev ); 995 ¡r = `DeviûP©hToSŒ ( dp ); 996 `Pršt ( L "unš¡®Ëd % Ú %s\n", FS_NAME , ¡r ); 997 `F»ePoÞ ( ¡r ); 999 `ä“ ( dev_b [ i ]. štf ); 1001 ià( dev_b è `ä“ (dev_tab); 1003  EFI_SUCCESS ; 1004 } } @fs/ext2fs.h 25 #iâdeà __EXT2FS_H__ 26  #__EXT2FS_H__ ) 28 INTERFACE_DECL ( _ext2fs_š‹rçû_t ); 35  m¡_šo ; 36  m¡_Æšk ; 37  m¡_mode ; 38  m¡_uid ; 39  m¡_gid ; 40  m¡_size ; 41  m¡_©ime ; 42  m¡_mtime ; 43  m¡_ùime ; 44 } text2fs_¡©_t ; 47  s_ext2fs_š‹rçû_t { 48 EFI_STATUS (* ext2fs_Çme )( _ext2fs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN mmaxËn ); 49 EFI_STATUS (* ext2fs_Ý’ )( _ext2fs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN * mfd ); 50 EFI_STATUS (* ext2fs_»ad )( _ext2fs_š‹rçû_t * mthis , UINTN mfd , VOID * mbuf , UINTN * msize ); 51 EFI_STATUS (* ext2fs_þo£ )( _ext2fs_š‹rçû_t * mthis , UINTN mfd ); 52 EFI_STATUS (* ext2fs_f¡© )( _ext2fs_š‹rçû_t * mthis , UINTN mfd , ext2fs_¡©_t * m¡ ); 53 EFI_STATUS (* ext2fs_£ek )( _ext2fs_š‹rçû_t * mthis , UINTN mfd , UINT64 mÃwpos ); 54 } text2fs_š‹rçû_t ; 56  #EXT2FS_PROTOCOL \ 57 { 0x6—924f6, 0xc9f2, 0x4331, {0x83, 0x54, 0x19, 0xd0, 0x17, 0x50, 0xd9, 0xc7} } ) 59 EFI_STATUS ext2fs_š¡®l ( VOID ); 60 EFI_STATUS ext2fs_unš¡®l ( VOID ); @fs/fs.h 1 #iâdeà _LINUX_FS_H 2  #_LINUX_FS_H ) 9  ~ 10  ~ 11  ~ 12  ~ 13  ~ 14  ~ 15  ~ 16  ~ 17  ~ 18  ~ 19  ~ 20  ~ 21  ~ 22  ~ 23  ~ 25  ~ 26  ~ 28  gpÞl_bË_¡ruù ; 42 #undeà NR_OPEN 43  #NR_OPEN (1024*1024è ) 44  #INR_OPEN 1024 ) 46  #BLOCK_SIZE_BITS 10 ) 47  #BLOCK_SIZE (1<< BLOCK_SIZE_BITS ) ) 50  sfžes_¡©_¡ruù { 51  mÄ_fžes ; 52  mÄ_ä“_fžes ; 53  mmax_fžes ; 55  fžes_¡©_¡ruù fžes_¡© ; 57  sšodes_¡©_t { 58  mÄ_šodes ; 59  mÄ_unu£d ; 60  mdummy [5]; 62  šodes_¡©_t šodes_¡© ; 64  max_su³r_blocks , Ä_su³r_blocks ; 65  Ëa£s_’abË , dœ_nÙify_’abË , Ëa£_b»ak_time ; 67  #NR_FILE 8192 ) 68  #NR_RESERVED_FILES 10 ) 69  #NR_SUPER 256 ) 71  #MAY_EXEC 1 ) 72  #MAY_WRITE 2 ) 73  #MAY_READ 4 ) 75  #FMODE_READ 1 ) 76  #FMODE_WRITE 2 ) 78  #READ 0 ) 79  #WRITE 1 ) 80  #READA 2 ) 81  #SPECIAL 4 ) 83  #SEL_IN 1 ) 84  #SEL_OUT 2 ) 85  #SEL_EX 4 ) 88  #FS_REQUIRES_DEV 1 ) 89  #FS_NO_DCACHE 2 ) 90  #FS_NO_PRELIM 4 ) 93  #FS_SINGLE 8 ) 99  #FS_NOMOUNT 16 ) 100  #FS_LITTER 32 ) 101  #FS_ODD_RENAME 32768 ) 107  #MS_RDONLY 1 ) 108  #MS_NOSUID 2 ) 109  #MS_NODEV 4 ) 110  #MS_NOEXEC 8 ) 111  #MS_SYNCHRONOUS 16 ) 112  #MS_REMOUNT 32 ) 113  #MS_MANDLOCK 64 ) 114  #MS_NOATIME 1024 ) 115  #MS_NODIRATIME 2048 ) 116  #MS_BIND 4096 ) 121  #MS_RMT_MASK ( MS_RDONLY | MS_NOSUID | MS_NODEV | MS_NOEXEC |\ 122 MS_SYNCHRONOUS | MS_MANDLOCK | MS_NOATIME | MS_NODIRATIME ) ) 127  #MS_MGC_VAL 0xC0ED0000 ) 128  #MS_MGC_MSK 0xffff0000 ) 132  #S_SYNC 1 ) 133  #S_NOATIME 2 ) 134  #S_QUOTA 4 ) 135  #S_APPEND 8 ) 136  #S_IMMUTABLE 16 ) 137  #S_DEAD 32 ) 152  #__IS_FLG ( šode , æg è((šode)-> i_sb -> s_æags & (æg)) ) 154  #IS_RDONLY ( šode è((šode)-> i_sb -> s_æags & MS_RDONLY ) ) 155  #IS_NOSUID ( šode è `__IS_FLG (šode, MS_NOSUID ) ) 156  #IS_NODEV ( šode è `__IS_FLG (šode, MS_NODEV ) ) 157  #IS_NOEXEC ( šode è `__IS_FLG (šode, MS_NOEXEC ) ) 158  #IS_SYNC ( šode è( `__IS_FLG (šode, MS_SYNCHRONOUS è|| ((šode)-> i_æags & S_SYNC )) ) 159  #IS_MANDLOCK ( šode è `__IS_FLG (šode, MS_MANDLOCK ) ) 161  #IS_QUOTAINIT ( šode è((šode)-> i_æags & S_QUOTA ) ) 162  #IS_APPEND ( šode è((šode)-> i_æags & S_APPEND ) ) 163  #IS_IMMUTABLE ( šode è((šode)-> i_æags & S_IMMUTABLE ) ) 164  #IS_NOATIME ( šode è( `__IS_FLG (šode, MS_NOATIME è|| ((šode)-> i_æags & S_NOATIME )) ) 165  #IS_NODIRATIME ( šode è `__IS_FLG (šode, MS_NODIRATIME ) ) 167  #IS_DEADDIR ( šode è((šode)-> i_æags & S_DEAD ) ) 172  #BLKROSET `_IO (0x12,93è ) 173  #BLKROGET `_IO (0x12,94è ) 174  #BLKRRPART `_IO (0x12,95è ) 175  #BLKGETSIZE `_IO (0x12,96è ) 176  #BLKFLSBUF `_IO (0x12,97è ) 177  #BLKRASET `_IO (0x12,98è ) 178  #BLKRAGET `_IO (0x12,99è ) 179  #BLKFRASET `_IO (0x12,100) ) 180  #BLKFRAGET `_IO (0x12,101) ) 181  #BLKSECTSET `_IO (0x12,102) ) 182  #BLKSECTGET `_IO (0x12,103) ) 183  #BLKSSZGET `_IO (0x12,104) ) 185  #BLKPG `_IO (0x12,105) ) 186  #BLKELVGET `_IOR (0x12,106,( blk–v_ioùl_¬g_t )) ) 187  #BLKELVSET `_IOW (0x12,107,( blk–v_ioùl_¬g_t )) ) 193  #BMAP_IOCTL 1 ) 194  #FIBMAP `_IO (0x00,1è ) 195  #FIGETBSZ `_IO (0x00,2è ) 197 #ifdeà __KERNEL__ 199  ~ 200  ~ 202  upd©e_©ime ( šode *); 203  #UPDATE_ATIME ( šode è `upd©e_©ime (šode) ) 205  bufãr_š™ (); 206  šode_š™ (); 209  #BH_U±od©e 0 ) 210  #BH_Dœty 1 ) 211  #BH_Lock 2 ) 212  #BH_Req 3 ) 213  #BH_M­³d 4 ) 214  #BH_New 5 ) 215  #BH_PrÙeùed 6 ) 228  sbufãr_h—d { 230  bufãr_h—d * mb_Ãxt ; 231  mb_blockÄ ; 232  mb_size ; 233  mb_li¡ ; 234 kdev_t mb_dev ; 236 ©omic_t mb_couÁ ; 237 kdev_t mb_rdev ; 238  mb_¡©e ; 239  mb_æushtime ; 241  bufãr_h—d * mb_Ãxt_ä“ ; 242  bufãr_h—d * mb_´ev_ä“ ; 243  bufãr_h—d * mb_this_·ge ; 244  bufãr_h—d * mb_»qÃxt ; 246  bufãr_h—d ** mb_µ»v ; 247 * mb_d©a ; 248  ·ge * mb_·ge ; 249 (* mb_’d_io )( bufãr_h—d * mbh ,  mu±od©e ); 250 * mb_´iv©e ; 252  mb_r£ùÜ ; 253 wa™_queue_h—d_t mb_wa™ ; 255  šode * mb_šode ; 256  li¡_h—d mb_šode_bufãrs ; 259 ( tbh_’d_io_t )( tbufãr_h—d * tbh ,  tu±od©e ); 260  `š™_bufãr ( bufãr_h—d *, bh_’d_io_t *, *); 262  #__bufãr_¡©e ( bh , ¡©e è(((bh)-> b_¡©e & (1UL << BH_ ##¡©e)è!ð0) ) 264  #bufãr_u±od©e ( bh è `__bufãr_¡©e (bh, U±od©e ) ) 265  #bufãr_dœty ( bh è `__bufãr_¡©e (bh, Dœty ) ) 266  #bufãr_locked ( bh è `__bufãr_¡©e (bh, Lock ) ) 267  #bufãr_»q ( bh è `__bufãr_¡©e (bh, Req ) ) 268  #bufãr_m­³d ( bh è `__bufãr_¡©e (bh, M­³d ) ) 269  #bufãr_Ãw ( bh è `__bufãr_¡©e (bh, New ) ) 270  #bufãr_´Ùeùed ( bh è `__bufãr_¡©e (bh, PrÙeùed ) ) 272  #bh_off£t ( bh è(()(bh)-> b_d©a & ~ PAGE_MASK ) ) 274  `£t_bh_·ge ( bufãr_h—d * bh ,  ·ge *·ge,  off£t ); 276  #touch_bufãr ( bh è `S‘PageReã»nûd (bh-> b_·ge ) ) 279  ~ 280  ~ 281  ~ 282  ~ 283  ~ 284  ~ 285  ~ 286  ~ 287  ~ 288  ~ 289  ~ 290  ~ 291  ~ 292  ~ 293  ~ 294  ~ 295  ~ 296  ~ 297  ~ 298  ~ 299  ~ 300  ~ 301  ~ 302  ~ 303  ~ 304  ~ 310  #ATTR_MODE 1 ) 311  #ATTR_UID 2 ) 312  #ATTR_GID 4 ) 313  #ATTR_SIZE 8 ) 314  #ATTR_ATIME 16 ) 315  #ATTR_MTIME 32 ) 316  #ATTR_CTIME 64 ) 317  #ATTR_ATIME_SET 128 ) 318  #ATTR_MTIME_SET 256 ) 319  #ATTR_FORCE 512 ) 320  #ATTR_ATTR_FLAG 1024 ) 331  sŸ‰r { 332  Ÿ_v®id ; 333 umode_t Ÿ_mode ; 334 uid_t Ÿ_uid ; 335 gid_t Ÿ_gid ; 336 loff_t Ÿ_size ; 337 time_t Ÿ_©ime ; 338 time_t Ÿ_mtime ; 339 time_t Ÿ_ùime ; 340  Ÿ_©Œ_æags ; 346  #ATTR_FLAG_SYNCRONOUS 1 ) 347  #ATTR_FLAG_NOATIME 2 ) 348  #ATTR_FLAG_APPEND 4 ) 349  #ATTR_FLAG_IMMUTABLE 8 ) 350  #ATTR_FLAG_NODIRATIME 16 ) 355  ~ 356  ~ 361  ·ge ; 362  add»ss_¥aû ; 364  sadd»ss_¥aû_Ý”©iÚs { 365 (* wr™•age )( ·ge *); 366 (* »ad·ge )( fže *,  ·ge *); 367 (* sync_·ge )( ·ge *); 368 (* ´•¬e_wr™e )( fže *,  ·ge *, , ); 369 (* comm™_wr™e )( fže *,  ·ge *, , ); 371 (* bm­ )( add»ss_¥aû *, ); 374  sadd»ss_¥aû { 375  li¡_h—d þ—n_·ges ; 376  li¡_h—d dœty_·ges ; 377  li¡_h—d locked_·ges ; 378  Ä·ges ; 379  add»ss_¥aû_Ý”©iÚs * a_Ýs ; 380  šode * ho¡ ; 381  vm_¬—_¡ruù * i_mm­ ; 382  vm_¬—_¡ruù * i_mm­_sh¬ed ; 383 ¥šlock_t i_sh¬ed_lock ; 384  gå_mask ; 387  sch¬_deviû { 388  li¡_h—d hash ; 389 ©omic_t couÁ ; 390 dev_t dev ; 391 ©omic_t Ý’”s ; 392  £m­hÜe £m ; 395  sblock_deviû { 396  li¡_h—d bd_hash ; 397 ©omic_t bd_couÁ ; 399 dev_t bd_dev ; 400 ©omic_t bd_Ý’”s ; 401 cÚ¡  block_deviû_Ý”©iÚs * bd_Ý ; 402  £m­hÜe bd_£m ; 405  sšode { 406  li¡_h—d i_hash ; 407  li¡_h—d i_li¡ ; 408  li¡_h—d i_d’Œy ; 410  li¡_h—d i_dœty_bufãrs ; 412  i_šo ; 413 ©omic_t i_couÁ ; 414 kdev_t i_dev ; 415 umode_t i_mode ; 416 Æšk_t i_Æšk ; 417 uid_t i_uid ; 418 gid_t i_gid ; 419 kdev_t i_rdev ; 420 loff_t i_size ; 421 time_t i_©ime ; 422 time_t i_mtime ; 423 time_t i_ùime ; 424  i_blksize ; 425  i_blocks ; 426  i_v”siÚ ; 427  £m­hÜe i_£m ; 428  £m­hÜe i_zomb› ; 429  šode_Ý”©iÚs * i_Ý ; 430  fže_Ý”©iÚs * i_fÝ ; 431  su³r_block * i_sb ; 432 wa™_queue_h—d_t i_wa™ ; 433  fže_lock * i_æock ; 434  add»ss_¥aû * i_m­pšg ; 435  add»ss_¥aû i_d©a ; 436  dquÙ * i_dquÙ [ MAXQUOTAS ]; 438  pe_šode_šfo * i_pe ; 439  block_deviû * i_bdev ; 440  ch¬_deviû * i_cdev ; 442  i_dnÙify_mask ; 443  dnÙify_¡ruù * i_dnÙify ; 445  i_¡©e ; 447  i_æags ; 448  i_sock ; 450 ©omic_t i_wr™ecouÁ ; 451  i_©Œ_æags ; 452 __u32 i_g’”©iÚ ; 454  mšix_šode_šfo mšix_i ; 455  ext2_šode_šfo ext2_i ; 456  hpfs_šode_šfo hpfs_i ; 457  Áfs_šode_šfo Áfs_i ; 458  msdos_šode_šfo msdos_i ; 459  umsdos_šode_šfo umsdos_i ; 460  iso_šode_šfo isofs_i ; 461  nfs_šode_šfo nfs_i ; 462  sysv_šode_šfo sysv_i ; 463  affs_šode_šfo affs_i ; 464  ufs_šode_šfo ufs_i ; 465  efs_šode_šfo efs_i ; 466  romfs_šode_šfo romfs_i ; 467  shmem_šode_šfo shmem_i ; 468  coda_šode_šfo coda_i ; 469  smb_šode_šfo smbfs_i ; 470  hfs_šode_šfo hfs_i ; 471  adfs_šode_šfo adfs_i ; 472  qnx4_šode_šfo qnx4_i ; 473  »i£rfs_šode_šfo »i£rfs_i ; 474  bfs_šode_šfo bfs_i ; 475  udf_šode_šfo udf_i ; 476  ný_šode_šfo nýfs_i ; 477  ´oc_šode_šfo ´oc_i ; 478  sock‘ sock‘_i ; 479  usbdev_šode_šfo usbdev_i ; 480 * g’”ic_ ; 481 } u ; 484  sfown_¡ruù { 485  pid ; 486 uid_t uid , euid ; 487  signum ; 490  sfže { 491  li¡_h—d f_li¡ ; 492  d’Œy * f_d’Œy ; 493  vfsmouÁ * f_vfsmÁ ; 494  fže_Ý”©iÚs * f_Ý ; 495 ©omic_t f_couÁ ; 496  f_æags ; 497 mode_t f_mode ; 498 loff_t f_pos ; 499  f_»ada , f_¿max , f_¿’d , f_¿Ën , f_¿wš ; 500  fown_¡ruù f_owÃr ; 501  f_uid , f_gid ; 502  f_”rÜ ; 504  f_v”siÚ ; 507 * ´iv©e_d©a ; 509 ¥šlock_t fžes_lock ; 510  #fže_li¡_lock (è `¥š_lock (& fžes_lock ); ) 511  #fže_li¡_uÆock (è `¥š_uÆock (& fžes_lock ); ) 513  #g‘_fže ( x è `©omic_šc (&(x)-> f_couÁ ) ) 514  #fže_couÁ ( x è `©omic_»ad (&(x)-> f_couÁ ) ) 516  `š™_´iv©e_fže ( fže *,  d’Œy *, ); 518  #MAX_NON_LFS ((1UL<<31è- 1) ) 520  #FL_POSIX 1 ) 521  #FL_FLOCK 2 ) 522  #FL_BROKEN 4 ) 523  #FL_ACCESS 8 ) 524  #FL_LOCKD 16 ) 525  #FL_LEASE 32 ) 534  fžes_¡ruù * tæ_owÃr_t ; 536  sfže_lock { 537  fže_lock * æ_Ãxt ; 538  li¡_h—d æ_lšk ; 539  li¡_h—d æ_block ; 540 æ_owÃr_t æ_owÃr ; 541  æ_pid ; 542 wa™_queue_h—d_t æ_wa™ ; 543  fže * æ_fže ; 544  æ_æags ; 545  æ_ty³ ; 546 loff_t æ_¡¬t ; 547 loff_t æ_’d ; 549 (* æ_nÙify )( fže_lock *); 550 (* æ_š£¹ )( fže_lock *); 551 (* æ_»move )( fže_lock *); 553  çsync_¡ruù * æ_çsync ; 556  nfs_lock_šfo nfs_æ ; 557 } æ_u ; 561 #iâdeà OFFSET_MAX 562  #INT_LIMIT ( x è(~((x)1 << ((x)*8 - 1))) ) 563  #OFFSET_MAX `INT_LIMIT ( loff_t ) ) 564  #OFFT_OFFSET_MAX `INT_LIMIT ( off_t ) ) 567  li¡_h—d fže_lock_li¡ ; 569  ~ 571  `fúŽ_g‘lk (,  æock *); 572  `fúŽ_£Žk (, ,  æock *); 574  `fúŽ_g‘lk64 (,  æock64 *); 575  `fúŽ_£Žk64 (, ,  æock64 *); 578  `locks_š™_lock ( fže_lock *); 579  `locks_cÝy_lock ( fže_lock *, file_lock *); 580  `locks_»move_posix ( fže *, æ_owÃr_t ); 581  `locks_»move_æock ( fže *); 582  fže_lock * `posix_‹¡_lock ( fže *, file_lock *); 583  `posix_lock_fže ( fže *,  fže_lock *, ); 584  `posix_block_lock ( fže_lock *, file_lock *); 585  `posix_unblock_lock ( fže_lock *); 586  `__g‘_Ëa£ ( šode *šode,  æags ); 587 time_t `Ëa£_g‘_mtime ( šode *); 588  `lock_may_»ad ( šode *, loff_t ¡¬t ,  couÁ ); 589  `lock_may_wr™e ( šode *, loff_t ¡¬t ,  couÁ ); 591  sçsync_¡ruù { 592  magic ; 593  ç_fd ; 594  çsync_¡ruù * ç_Ãxt ; 595  fže * ç_fže ; 598  #FASYNC_MAGIC 0x4601 ) 601  `çsync_h–³r (,  fže *, ,  çsync_¡ruù **); 603  `kžl_çsync ( çsync_¡ruù **, , ); 605  `__kžl_çsync ( çsync_¡ruù *, , ); 607  sÇmeid©a { 608  d’Œy *dentry; 609  vfsmouÁ * mÁ ; 610  q¡r Ï¡ ; 611  æags ; 612  Ï¡_ty³ ; 615  #DQUOT_USR_ENABLED 0x01 ) 616  #DQUOT_GRP_ENABLED 0x02 ) 618  squÙa_mouÁ_ÝtiÚs 620  æags ; 621  £m­hÜe dqio_£m ; 622  £m­hÜe dqoff_£m ; 623  fže * fžes [ MAXQUOTAS ]; 624 time_t šode_expœe [ MAXQUOTAS ]; 625 time_t block_expœe [ MAXQUOTAS ]; 626  rsquash [ MAXQUOTAS ]; 633  #MNT_FORCE 0x00000001 ) 635  ~ 636  ~ 637  ~ 638  ~ 639  ~ 640  ~ 641  ~ 642  ~ 643  ~ 644  ~ 645  ~ 646  ~ 647  ~ 648  ~ 649  ~ 650  ~ 651  ~ 652  ~ 653  ~ 654  ~ 655  ~ 657  li¡_h—d su³r_blocks ; 659  #sb_’Œy ( li¡ è `li¡_’Œy (Öi¡),  su³r_block , s_li¡ ) ) 660  ssu³r_block { 661  li¡_h—d s_li¡ ; 662 kdev_t s_dev ; 663  s_blocksize ; 664  s_blocksize_b™s ; 665  s_dœt ; 666  s_maxby‹s ; 667  fže_sy¡em_ty³ * s_ty³ ; 668  su³r_Ý”©iÚs * s_Ý ; 669  dquÙ_Ý”©iÚs * dq_Ý ; 670  s_æags ; 671  s_magic ; 672  d’Œy * s_roÙ ; 673  rw_£m­hÜe s_umouÁ ; 674  £m­hÜe s_lock ; 676  li¡_h—d s_dœty ; 677  li¡_h—d s_locked_šodes ; 678  li¡_h—d s_fžes ; 680  block_deviû * s_bdev ; 681  li¡_h—d s_mouÁs ; 682  quÙa_mouÁ_ÝtiÚs s_dquÙ ; 685  mšix_sb_šfo mšix_sb ; 686  ext2_sb_šfo ext2_sb ; 687  hpfs_sb_šfo hpfs_sb ; 688  Áfs_sb_šfo Áfs_sb ; 689  msdos_sb_šfo msdos_sb ; 690  isofs_sb_šfo isofs_sb ; 691  nfs_sb_šfo nfs_sb ; 692  sysv_sb_šfo sysv_sb ; 693  affs_sb_šfo affs_sb ; 694  ufs_sb_šfo ufs_sb ; 695  efs_sb_šfo efs_sb ; 696  shmem_sb_šfo shmem_sb ; 697  romfs_sb_šfo romfs_sb ; 698  smb_sb_šfo smbfs_sb ; 699  hfs_sb_šfo hfs_sb ; 700  adfs_sb_šfo adfs_sb ; 701  qnx4_sb_šfo qnx4_sb ; 702  »i£rfs_sb_šfo »i£rfs_sb ; 703  bfs_sb_šfo bfs_sb ; 704  udf_sb_šfo udf_sb ; 705  ný_sb_šfo nýfs_sb ; 706  usbdev_sb_šfo usbdevfs_sb ; 707 * g’”ic_sbp ; 708 } u ; 713  £m­hÜe s_vfs_»Çme_£m ; 722  £m­hÜe s_nfsd_ä“_·th_£m ; 728  `vfs_ü—‹ ( šode *,  d’Œy *, ); 729  `vfs_mkdœ ( šode *,  d’Œy *, ); 730  `vfs_mknod ( šode *,  d’Œy *, , dev_t ); 731  `vfs_symlšk ( šode *,  d’Œy *, const *); 732  `vfs_lšk ( d’Œy *,  šode *, dentry *); 733  `vfs_rmdœ ( šode *,  d’Œy *); 734  `vfs_uÆšk ( šode *,  d’Œy *); 735  `vfs_»Çme ( šode *,  d’Œy *, inode *, dentry *); 740  #DT_UNKNOWN 0 ) 741  #DT_FIFO 1 ) 742  #DT_CHR 2 ) 743  #DT_DIR 4 ) 744  #DT_BLK 6 ) 745  #DT_REG 8 ) 746  #DT_LNK 10 ) 747  #DT_SOCK 12 ) 748  #DT_WHT 14 ) 756 (* tfžldœ_t )(*, cÚ¡ *, , toff_t , tšo_t , ); 758  sblock_deviû_Ý”©iÚs { 759 (* Ý’ è( šode *,  fže *); 760 (* »Ëa£ è( šode *,  fže *); 761 (* ioùl è( šode *,  fže *, , ); 762 (* check_medŸ_chªge è( kdev_t ); 763 (* »v®id©e è( kdev_t ); 771  sfže_Ý”©iÚs { 772  moduË * owÃr ; 773 `loff_t (* Σek è( fže *, loff_t , ); 774 `ssize_t (* »ad è( fže *, *, size_t , loff_t *); 775 `ssize_t (* wr™e è( fže *, cÚ¡ *, size_t , loff_t *); 776 (* »addœ è( fže *, *, fžldœ_t ); 777 (* pÞl è( fže *,  pÞl_bË_¡ruù *); 778 (* ioùl è( šode *,  fže *, , ); 779 (* mm­ è( fže *,  vm_¬—_¡ruù *); 780 (* Ý’ è( šode *,  fže *); 781 (* æush è( fže *); 782 (* »Ëa£ è( šode *,  fže *); 783 (* fsync è( fže *,  d’Œy *,  d©async ); 784 (* çsync è(,  fže *, ); 785 (* lock è( fže *, ,  fže_lock *); 786 `ssize_t (* »adv è( fže *, cÚ¡  iovec *, , loff_t *); 787 `ssize_t (* wr™ev è( fže *, cÚ¡  iovec *, , loff_t *); 788 `ssize_t (* £nd·ge è( fže *,  ·ge *, , size_t , loff_t *, ); 789 (* g‘_unm­³d_¬— )( fže *, , , , ); 792  sšode_Ý”©iÚs { 793 (* ü—‹ è( šode *, d’Œy *,); 794  d’Œy * (* lookup è( šode *,dentry *); 795 (* lšk è( d’Œy *, šode *,dentry *); 796 (* uÆšk è( šode *, d’Œy *); 797 (* symlšk è( šode *, d’Œy *,const *); 798 (* mkdœ è( šode *, d’Œy *,); 799 (* rmdœ è( šode *, d’Œy *); 800 (* mknod è( šode *, d’Œy *,,); 801 (* »Çme è( šode *,  d’Œy *, 802  šode *,  d’Œy *); 803 (* »adlšk è( d’Œy *, *,); 804 (* fÞlow_lšk è( d’Œy *,  Çmeid©a *); 805 (* Œunÿ‹ è( šode *); 806 (* ³rmissiÚ è( šode *, ); 807 (* »v®id©e è( d’Œy *); 808 (* £‰r è( d’Œy *,  Ÿ‰r *); 809 (* g‘©Œ è( d’Œy *,  Ÿ‰r *); 816  ssu³r_Ý”©iÚs { 817 (* »ad_šode è( šode *); 825 (* »ad_šode2 è( šode *, *) ; 826 (* dœty_šode è( šode *); 827 (* wr™e_šode è( šode *, ); 828 (* put_šode è( šode *); 829 (* d–‘e_šode è( šode *); 830 (* put_su³r è( su³r_block *); 831 (* wr™e_su³r è( su³r_block *); 832 (* wr™e_su³r_lockfs è( su³r_block *); 833 (* uÆockfs è( su³r_block *); 834 (* ¡©fs è( su³r_block *, statfs *); 835 (* »mouÁ_fs è( su³r_block *, *, *); 836 (* þ—r_šode è( šode *); 837 (* umouÁ_begš è( su³r_block *); 841  #I_DIRTY_SYNC 1 ) 842  #I_DIRTY_DATASYNC 2 ) 843  #I_DIRTY_PAGES 4 ) 844  #I_LOCK 8 ) 845  #I_FREEING 16 ) 846  #I_CLEAR 32 ) 848  #I_DIRTY ( I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES ) ) 850  `__m¬k_šode_dœty ( šode *, ); 851  šlše  $m¬k_šode_dœty ( šode *inode) 853 `__m¬k_šode_dœty ( šode , I_DIRTY ); 854 } } 856  šlše  $m¬k_šode_dœty_sync ( šode *inode) 858 `__m¬k_šode_dœty ( šode , I_DIRTY_SYNC ); 859 } } 861  šlše  $m¬k_šode_dœty_·ges ( šode *inode) 863 `__m¬k_šode_dœty ( šode , I_DIRTY_PAGES ); 864 } } 866  sdquÙ_Ý”©iÚs { 867 (* mš™Ÿlize è( mšode *, ); 868 (* mdrÝ è( mšode *); 869 (* m®loc_block è(cÚ¡  mšode *, , ); 870 (* m®loc_šode è(cÚ¡  mšode *, ); 871 (* mä“_block è(cÚ¡  mšode *, ); 872 (* mä“_šode è(cÚ¡  mšode *, ); 873 (* mŒªsãr è( md’Œy *,  mŸ‰r *); 876  sfže_sy¡em_ty³ { 877 cÚ¡ * mÇme ; 878  mfs_æags ; 879  msu³r_block *(* m»ad_su³r ) (super_block *, *, ); 880  moduË * mowÃr ; 881  vfsmouÁ * mk”n_mÁ ; 882  fže_sy¡em_ty³ * mÃxt ; 885  #DECLARE_FSTYPE ( v¬ , ty³ , »ad , æags ) \ 886  fže_sy¡em_ty³ v¬ = { \ 887 Çme : ty³ , \ 888 »ad_su³r : »ad , \ 889 fs_æags : æags , \ 890 owÃr : THIS_MODULE , \ 891 } ) 893  #DECLARE_FSTYPE_DEV ( v¬ , ty³ , »ad ) \ 894 `DECLARE_FSTYPE ( v¬ , ty³ , »ad , FS_REQUIRES_DEV ) ) 897  #fÝs_g‘ ( fÝs ) \ 898 ((( fÝs è&& (fÝs)-> owÃr ) \ 899 ? ( `Œy_šc_mod_couÁ (( fÝs )-> owÃr è? (fÝsè: NULL ) \ 900 : ( fÝs )) ) 902  #fÝs_put ( fÝs ) \ 904 ià(( fÝs è&& (fÝs)-> owÃr ) \ 905 `__MOD_DEC_USE_COUNT (( fÝs )-> owÃr ); \ 906 } 0) ) 908  »gi¡”_fžesy¡em ( fže_sy¡em_ty³ *); 909  uÄegi¡”_fžesy¡em ( fže_sy¡em_ty³ *); 910  vfsmouÁ * k”n_mouÁ ( fže_sy¡em_ty³ *); 911  may_umouÁ ( vfsmouÁ *); 912  do_mouÁ (*, *, *, , *); 914  #k”n_umouÁ mÁput ) 916  vfs_¡©fs ( su³r_block *,  ¡©fs *); 921  #LOCK_USE_CLNT 1 ) 923  #FLOCK_VERIFY_READ 1 ) 924  #FLOCK_VERIFY_WRITE 2 ) 926  locks_mªd©Üy_locked ( šode *); 927  locks_mªd©Üy_¬— (,  šode *,  fže *, loff_t , size_t ); 933  #MANDATORY_LOCK ( šode ) \ 934 ( `IS_MANDLOCK ( šode è&& ((šode)-> i_mode & ( S_ISGID | S_IXGRP )è=ðS_ISGID) ) 936  šlše  $locks_v”ify_locked ( šode *inode) 938 ià( `MANDATORY_LOCK ( šode )) 939  `locks_mªd©Üy_locked ( šode ); 941 } } 943  šlše  $locks_v”ify_¬— ( »ad_wr™e ,  šode *inode, 944  fže * fžp , loff_t off£t , 945 size_t couÁ ) 947 ià( šode -> i_æock && `MANDATORY_LOCK (inode)) 948  `locks_mªd©Üy_¬— ( »ad_wr™e , šode , fžp , off£t , couÁ ); 950 } } 952  šlše  $locks_v”ify_Œunÿ‹ ( šode *inode, 953  fže * fžp , 954 loff_t size ) 956 ià( šode -> i_æock && `MANDATORY_LOCK (inode)) 957  `locks_mªd©Üy_¬— ( 958 FLOCK_VERIFY_WRITE , šode , fžp , 959 size < šode -> i_size ? size : inode->i_size, 960 ( size < šode -> i_size ? inode->i_size - size 961 : size - šode -> i_size ) 964 } } 966 šlše  $g‘_Ëa£ ( šode *šode,  mode ) 968 ià( šode -> i_æock && (šode->i_æock-> æ_æags & FL_LEASE )) 969  `__g‘_Ëa£ ( šode , mode ); 971 } } 975 asmlškage  sys_Ý’ (const *, , ); 976 asmlškage  sys_þo£ (); 977  do_Œunÿ‹ ( d’Œy *, loff_t ¡¬t ); 979  fže * fžp_Ý’ (const *, , ); 980  fže * d’Œy_Ý’ ( d’Œy *,  vfsmouÁ *, ); 981  fžp_þo£ ( fže *, æ_owÃr_t id ); 982 * g‘Çme (const *); 985  vfs_ÿches_š™ (); 987  #__g‘Çme (è `kmem_ÿche_®loc ( Çmes_ÿch• , SLAB_KERNEL ) ) 988  #puŠame ( Çme è `kmem_ÿche_ä“ ( Çmes_ÿch• , (*)Òame)) ) 990 ’um { mBDEV_FILE , mBDEV_SWAP , mBDEV_FS , mBDEV_RAW }; 991  »gi¡”_blkdev (, cÚ¡ *,  block_deviû_Ý”©iÚs *); 992  uÄegi¡”_blkdev (, const *); 993  block_deviû * bdg‘ ( dev_t ); 994  bdput ( block_deviû *); 995  ch¬_deviû * cdg‘ ( dev_t ); 996  cdput ( ch¬_deviû *); 997  blkdev_Ý’ ( šode *,  fže *); 998  fže_Ý”©iÚs def_blk_fÝs ; 999  fže_Ý”©iÚs def_fifo_fÝs ; 1000  ioùl_by_bdev ( block_deviû *, , ); 1001  blkdev_g‘ ( block_deviû *, mode_t , , ); 1002  blkdev_put ( block_deviû *, ); 1005 cÚ¡  block_deviû_Ý”©iÚs * g‘_blkfÝs (); 1006  »gi¡”_chrdev (, cÚ¡ *,  fže_Ý”©iÚs *); 1007  uÄegi¡”_chrdev (, const *); 1008  chrdev_Ý’ ( šode *,  fže *); 1009 cÚ¡ * bdevÇme ( kdev_t ); 1010 cÚ¡ * cdevÇme ( kdev_t ); 1011 cÚ¡ * kdevÇme ( kdev_t ); 1012  š™_¥ecŸl_šode ( šode *, umode_t , ); 1015  make_bad_šode ( šode *); 1016  is_bad_šode ( šode *); 1018  fže_Ý”©iÚs »ad_fifo_fÝs ; 1019  fže_Ý”©iÚs wr™e_fifo_fÝs ; 1020  fže_Ý”©iÚs rdwr_fifo_fÝs ; 1021  fže_Ý”©iÚs »ad_pe_fÝs ; 1022  fže_Ý”©iÚs wr™e_pe_fÝs ; 1023  fže_Ý”©iÚs rdwr_pe_fÝs ; 1025  fs_may_»mouÁ_ro ( su³r_block *); 1027  Œy_to_ä“_bufãrs ( ·ge *, ); 1028  »fže_bufãr ( bufãr_h—d * buf ); 1031  £t_bufãr_async_io ( bufãr_h—d * bh ) ; 1033  #BUF_CLEAN 0 ) 1034  #BUF_LOCKED 1 ) 1035  #BUF_DIRTY 2 ) 1036  #BUF_PROTECTED 3 ) 1037  #NR_LIST 4 ) 1042  šlše  $m¬k_bufãr_u±od©e ( bufãr_h—d * bh ,  Ú ) 1044 ià( Ú ) 1045 `£t_b™ ( BH_U±od©e , & bh -> b_¡©e ); 1047 `þ—r_b™ ( BH_U±od©e , & bh -> b_¡©e ); 1048 } } 1050  #©omic_£t_bufãr_þ—n ( bh è `‹¡_ªd_þ—r_b™ ( BH_Dœty , &(bh)-> b_¡©e ) ) 1052  šlše  $__m¬k_bufãr_þ—n ( bufãr_h—d * bh ) 1054 `»fže_bufãr ( bh ); 1055 } } 1057  šlše  $m¬k_bufãr_þ—n ( bufãr_h—d * bh ) 1059 ià( `©omic_£t_bufãr_þ—n ( bh )) 1060 `__m¬k_bufãr_þ—n ( bh ); 1061 } } 1063  #©omic_£t_bufãr_´Ùeùed ( bh è `‹¡_ªd_£t_b™ ( BH_PrÙeùed , &(bh)-> b_¡©e ) ) 1065  šlše  $__m¬k_bufãr_´Ùeùed ( bufãr_h—d * bh ) 1067 `»fže_bufãr ( bh ); 1068 } } 1070  šlše  $m¬k_bufãr_´Ùeùed ( bufãr_h—d * bh ) 1072 ià(! `©omic_£t_bufãr_´Ùeùed ( bh )) 1073 `__m¬k_bufãr_´Ùeùed ( bh ); 1074 } } 1076  FASTCALL ( __m¬k_bufãr_dœty ( bufãr_h—d * bh )); 1077  FASTCALL ( m¬k_bufãr_dœty ( bufãr_h—d * bh )); 1079  #©omic_£t_bufãr_dœty ( bh è `‹¡_ªd_£t_b™ ( BH_Dœty , &(bh)-> b_¡©e ) ) 1087  šlše  $bufãr_IO_”rÜ ( bufãr_h—d * bh ) 1089 `m¬k_bufãr_þ—n ( bh ); 1093 bh -> `b_’d_io (bh, 0); 1094 } } 1096  bufãr_š£¹_šode_queue ( bufãr_h—d *,  šode *); 1097  šlše  $m¬k_bufãr_dœty_šode ( bufãr_h—d * bh ,  šode *inode) 1099 `m¬k_bufãr_dœty ( bh ); 1100 `bufãr_š£¹_šode_queue ( bh , šode ); 1101 } } 1103  b®ªû_dœty ( kdev_t ); 1104  check_disk_chªge ( kdev_t ); 1105  šv®id©e_šodes ( su³r_block *); 1106  šv®id©e_deviû ( kdev_t , ); 1107  šv®id©e_šode_·ges ( šode *); 1108  šv®id©e_šode_bufãrs ( šode *); 1109  #šv®id©e_bufãrs ( dev è `__šv®id©e_bufãrs ((dev), 0) ) 1110  #de¡roy_bufãrs ( dev è `__šv®id©e_bufãrs ((dev), 1) ) 1111  __šv®id©e_bufãrs ( kdev_t dev , ); 1112  sync_šodes ( kdev_t ); 1113  sync_uÆocked_šodes (); 1114  wr™e_šode_now ( šode *, ); 1115  sync_dev ( kdev_t ); 1116  fsync_dev ( kdev_t ); 1117  fsync_su³r ( su³r_block *); 1118  sync_šodes_sb ( su³r_block *); 1119  fsync_šode_bufãrs ( šode *); 1120  osync_šode_bufãrs ( šode *); 1121  šode_has_bufãrs ( šode *); 1122  fžem­_fd©async ( add»ss_¥aû *); 1123  fžem­_fd©awa™ ( add»ss_¥aû *); 1124  sync_su³rs ( kdev_t ); 1125  bm­ ( šode *, ); 1126  nÙify_chªge ( d’Œy *,  Ÿ‰r *); 1127  ³rmissiÚ ( šode *, ); 1128  vfs_³rmissiÚ ( šode *, ); 1129  g‘_wr™e_acûss ( šode *); 1130  d’y_wr™e_acûss ( fže *); 1131  šlše  $put_wr™e_acûss ( šode * inode) 1133 `©omic_dec (& šode -> i_wr™ecouÁ ); 1134 } } 1135  šlše  $®low_wr™e_acûss ( fže *file) 1137 ià( fže ) 1138 `©omic_šc (& fže -> f_d’Œy -> d_šode -> i_wr™ecouÁ ); 1139 } } 1140  do_pe (*); 1142  Ý’_Çmei (cÚ¡ *, , ,  Çmeid©a *); 1144  k”Ãl_»ad ( fže *, , *, ); 1145  fže * Ý’_exec (const *); 1148  is_subdœ ( d’Œy *, dentry *); 1149 šo_t fšd_šode_numb” ( d’Œy *,  q¡r *); 1159  šlše * $ERR_PTR ( ”rÜ ) 1161  (*è ”rÜ ; 1162 } } 1164  šlše  $PTR_ERR (cÚ¡ * ±r ) 1166  (è ±r ; 1167 } } 1169  šlše  $IS_ERR (cÚ¡ * ±r ) 1171  () ±r > ()-1000L; 1172 } } 1181  #LOOKUP_FOLLOW (1) ) 1182  #LOOKUP_DIRECTORY (2) ) 1183  #LOOKUP_CONTINUE (4) ) 1184  #LOOKUP_POSITIVE (8) ) 1185  #LOOKUP_PARENT (16) ) 1186  #LOOKUP_NOALT (32) ) 1190 ’um { mLAST_NORM , mLAST_ROOT , mLAST_DOT , mLAST_DOTDOT , mLAST_BIND }; 1202 size_t mwr™‹n ; 1203 size_t mcouÁ ; 1204 * mbuf ; 1205  m”rÜ ; 1206 } t»ad_desütÜ_t ; 1208 (* t»ad_aùÜ_t )( t»ad_desütÜ_t *,  t·ge *, , ); 1211 loff_t `deçuÉ_Σek ( fže *fže,†off_ˆ off£t ,  Üigš ); 1213  `__u£r_w®k (cÚ¡ *, ,  Çmeid©a *); 1214  `·th_š™ (cÚ¡ *, ,  Çmeid©a *); 1215  `·th_w®k (cÚ¡ *,  Çmeid©a *); 1216  `·th_»Ëa£ ( Çmeid©a *); 1217  `fÞlow_down ( vfsmouÁ **,  d’Œy **); 1218  `fÞlow_up ( vfsmouÁ **,  d’Œy **); 1219  d’Œy * `lookup_Úe_Ën (const *, dentry *, ); 1220  d’Œy * `lookup_hash ( q¡r *, dentry *); 1221  #u£r_·th_w®k ( Çme , nd è `__u£r_w®k Òame, LOOKUP_FOLLOW | LOOKUP_POSITIVE ,‚d) ) 1222  #u£r_·th_w®k_lšk ( Çme , nd è `__u£r_w®k Òame, LOOKUP_POSITIVE ,‚d) ) 1224  `ut ( šode *); 1225  `fÜû_d–‘e ( šode *); 1226  šode * `ig¿b (inode *); 1227 šo_t `iunique ( su³r_block *, ino_t); 1229 (* tfšd_šode_t )( tšode *, , *); 1230  šode * `ig‘4 ( su³r_block *, , fšd_šode_t , *); 1231  šlše  šode * $ig‘ ( su³r_block * sb ,  šo ) 1233  `ig‘4 ( sb , šo , NULL , NULL); 1234 } } 1236  þ—r_šode ( šode *); 1237  šode * g‘_em±y_šode (); 1238  šlše  šode * $Ãw_šode ( su³r_block * sb ) 1240  šode *šodð `g‘_em±y_šode (); 1241 ià( šode ) { 1242 šode -> i_sb = sb ; 1243 šode -> i_dev = sb -> s_dev ; 1245  šode ; 1246 } } 1247  »move_suid ( šode *inode); 1249  š£¹_šode_hash ( šode *); 1250  »move_šode_hash ( šode *); 1251  fže * g‘_em±y_fžp (); 1252  fže_move ( fže * f ,  li¡_h—d * li¡ ); 1253  fže_mov‘o ( fže * Ãw , fž* Þd ); 1254  bufãr_h—d * g‘_hash_bË ( kdev_t , , ); 1255  bufãr_h—d * g‘blk ( kdev_t , , ); 1256  Î_rw_block (, ,  bufãr_h—d * bh []); 1257  subm™_bh (,  bufãr_h—d *); 1258  is_»ad_Úly ( kdev_t ); 1259  __b»l£ ( bufãr_h—d *); 1260  šlše  $b»l£ ( bufãr_h—d * buf ) 1262 ià( buf ) 1263 `__b»l£ ( buf ); 1264 } } 1265  __bfÜg‘ ( bufãr_h—d *); 1266  šlše  $bfÜg‘ ( bufãr_h—d * buf ) 1268 ià( buf ) 1269 `__bfÜg‘ ( buf ); 1270 } } 1271  £t_blocksize ( kdev_t , ); 1272  bufãr_h—d * b»ad ( kdev_t , , ); 1273  wakeup_bdæush ( wa™ ); 1275  brw_·ge (,  ·ge *, kdev_t , [], ); 1277 ( tg‘_block_t )( tšode *,, tbufãr_h—d *,); 1280  `block_æush·ge ( ·ge *, ); 1281  `block_symlšk ( šode *, const *, ); 1282  `block_wr™e_fuÎ_·ge ( ·ge *, g‘_block_t *); 1283  `block_»ad_fuÎ_·ge ( ·ge *, g‘_block_t *); 1284  `block_´•¬e_wr™e ( ·ge *, , , g‘_block_t *); 1285  `cÚt_´•¬e_wr™e ( ·ge *, , , g‘_block_t *, 1287  `block_sync_·ge ( ·ge *); 1289  `g’”ic_block_bm­ ( add»ss_¥aû *, , g‘_block_t *); 1290  `g’”ic_comm™_wr™e ( fže *,  ·ge *, , ); 1291  `block_Œunÿ‹_·ge ( add»ss_¥aû *, loff_t , g‘_block_t *); 1293  `wa™fÜ_Úe_·ge ( ·ge *); 1294  `g’”ic_fže_mm­ ( fže *,  vm_¬—_¡ruù *); 1295  `fže_»ad_aùÜ ( »ad_desütÜ_t * desc ,  ·ge *·ge,  off£t ,  size ); 1296 ssize_t `g’”ic_fže_»ad ( fže *, *, size_t , loff_t *); 1297 ssize_t `g’”ic_fže_wr™e ( fže *, cÚ¡ *, size_t , loff_t *); 1298  `do_g’”ic_fže_»ad ( fže *, loff_t *, »ad_desütÜ_t *, »ad_aùÜ_t ); 1300 ssize_t `g’”ic_»ad_dœ ( fže *, *, size_t , loff_t *); 1302  fže_Ý”©iÚs g’”ic_ro_fÝs ; 1304  `vfs_»adlšk ( d’Œy *, *, , const *); 1305  `vfs_fÞlow_lšk ( Çmeid©a *, const *); 1306  `·ge_»adlšk ( d’Œy *, *, ); 1307  `·ge_fÞlow_lšk ( d’Œy *,  Çmeid©a *); 1308  šode_Ý”©iÚs ·ge_symlšk_šode_Ý”©iÚs ; 1310  `vfs_»addœ ( fže *, fžldœ_t , *); 1311  `dÿche_»addœ ( fže *, *, fžldœ_t ); 1313  fže_sy¡em_ty³ * `g‘_fs_ty³ (cÚ¡ * Çme ); 1314  su³r_block * `g‘_su³r ( kdev_t ); 1315  `put_su³r ( kdev_t ); 1316  šlše  $is_mouÁed ( kdev_t dev ) 1318  su³r_block * sb = `g‘_su³r ( dev ); 1319 ià( sb ) { 1324 } } 1325  g’”©e_þu¡” ( kdev_t ,  b [], ); 1326  g’”©e_þu¡”_swab32 ( kdev_t ,  b [], ); 1327 kdev_t ROOT_DEV ; 1328  roÙ_deviû_Çme []; 1331  show_bufãrs (); 1332  mouÁ_roÙ (); 1334 #ifdeà CONFIG_BLK_DEV_INITRD 1335 kdev_t »®_roÙ_dev ; 1336  chªge_roÙ ( kdev_t , const *); 1339 ssize_t ch¬_»ad ( fže *, *, size_t , loff_t *); 1340 ssize_t block_»ad ( fže *, *, size_t , loff_t *); 1341  »ad_ah—d []; 1343 ssize_t ch¬_wr™e ( fže *, cÚ¡ *, size_t , loff_t *); 1344 ssize_t block_wr™e ( fže *, cÚ¡ *, size_t , loff_t *); 1346  fže_fsync ( fže *,  d’Œy *, ); 1347  g’”ic_bufãr_fd©async ( šode *šode,  ¡¬t_idx ,  ’d_idx ); 1348  g’”ic_osync_šode ( šode *, ); 1350  šode_chªge_ok ( šode *,  Ÿ‰r *); 1351  šode_£‰r ( šode *,  Ÿ‰r *); 1372  šlše  d’Œy * $lock_·»Á ( d’Œy *dentry) 1374  d’Œy * dœ = `dg‘ (d’Œy-> d_·»Á ); 1376 `down (& dœ -> d_šode -> i_£m ); 1377  dœ ; 1378 } } 1380  šlše  d’Œy * $g‘_·»Á ( d’Œy *dentry) 1382  `dg‘ ( d’Œy -> d_·»Á ); 1383 } } 1385  šlše  $uÆock_dœ ( d’Œy * dœ ) 1387 `up (& dœ -> d_šode -> i_£m ); 1388 `dput ( dœ ); 1389 } } 1395  šlše  $doubË_down ( £m­hÜe * s1 , £m­hÜ* s2 ) 1397 ià( s1 !ð s2 ) { 1398 ià((è s1 < (è s2 ) { 1399  £m­hÜe * tmp = s2 ; 1400 s2 = s1 ; s1 = tmp ; 1402 `down ( s1 ); 1404 `down ( s2 ); 1405 } } 1416  šlše  $ŒË_down ( £m­hÜe * s1 , 1417  £m­hÜe * s2 , 1418  £m­hÜe * s3 ) 1420 ià( s1 !ð s2 ) { 1421 ià((è s1 < (è s2 ) { 1422 ià((è s1 < (è s3 ) { 1423  £m­hÜe * tmp = s3 ; 1424 s3 = s1 ; s1 = tmp ; 1426 ià((è s1 < (è s2 ) { 1427  £m­hÜe * tmp = s2 ; 1428 s2 = s1 ; s1 = tmp ; 1431 ià((è s1 < (è s3 ) { 1432  £m­hÜe * tmp = s3 ; 1433 s3 = s1 ; s1 = tmp ; 1435 ià((è s2 < (è s3 ) { 1436  £m­hÜe * tmp = s3 ; 1437 s3 = s2 ; s2 = tmp ; 1440 `down ( s1 ); 1441 } ià((è s2 < (è s3 ) { 1442  £m­hÜe * tmp = s3 ; 1443 s3 = s2 ; s2 = tmp ; 1445 `down ( s2 ); 1446 `down ( s3 ); 1447 } } 1449  šlše  $doubË_up ( £m­hÜe * s1 , £m­hÜ* s2 ) 1451 `up ( s1 ); 1452 ià( s1 !ð s2 ) 1453 `up ( s2 ); 1454 } } 1456  šlše  $ŒË_up ( £m­hÜe * s1 , 1457  £m­hÜe * s2 , 1458  £m­hÜe * s3 ) 1460 `up ( s1 ); 1461 ià( s1 !ð s2 ) 1462 `up ( s2 ); 1463 `up ( s3 ); 1464 } } 1466  šlše  $doubË_lock ( d’Œy * d1 , d’Œy * d2 ) 1468 `doubË_down (& d1 -> d_šode -> i_£m , & d2 ->d_inode->i_sem); 1469 } } 1471  šlše  $doubË_uÆock ( d’Œy * d1 , d’Œy * d2 ) 1473 `doubË_up (& d1 -> d_šode -> i_£m ,& d2 ->d_inode->i_sem); 1474 `dput ( d1 ); 1475 `dput ( d2 ); 1476 } } @fs/localfs.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"fs/loÿlfs.h " 36  #FS_NAME L "vçt" ) 40 EFI_HANDLE mdev ; 41 EFI_FILE_HANDLE mvÞume ; 42 } tloÿlfs_´iv_¡©e_t ; 44  #LOCALFS_F2FD ( f è(( UINTN )(f)) ) 45  #LOCALFS_FD2F ( fd è(( EFI_FILE_HANDLE )(fd)) ) 48 loÿlfs_š‹rçû_t mpub_štf ; 50 loÿlfs_š‹rçû_t mpub_štf ; 51 loÿlfs_´iv_¡©e_t m´iv_d©a ; 52 } mloÿlfs_´iv ; 53 } tloÿlfs_t ; 55  #FS_PRIVATE ( n è(&((( loÿlfs_t *ê)-> loÿlfs_´iv . ´iv_d©a )) ) 58  EFI_GUID gLoÿlFsPrÙocÞ = LOCALFS_PROTOCOL ; 64 EFI_HANDLE * mdev ; 65 loÿlfs_t * mštf ; 66 } tdev_b_t ; 68  dev_b_t * gdev_b ; 69  UINTN gndev ; 71  EFI_STATUS 72 $loÿlfs_Çme ( loÿlfs_š‹rçû_t * this , CHAR16 * Çme , UINTN maxËn ) 74 ià( Çme =ð NULL || maxËn < 1è EFI_INVALID_PARAMETER ; 76 `SŒnCpy ( Çme , FS_NAME , maxËn -1); 78 Çme [ maxËn -1] = CHAR_NULL ; 80  EFI_SUCCESS ; 81 } } 84  EFI_STATUS 85 $loÿlfs_Ý’ ( loÿlfs_š‹rçû_t * this , CHAR16 * Çme , UINTN * fd ) 87 loÿlfs_´iv_¡©e_t * lfs ; 88 EFI_STATUS ¡©us ; 89 EFI_FILE_HANDLE fh ; 91 ià( this =ð NULL || Çme =ðNULL || fd =ðNULLè EFI_INVALID_PARAMETER ; 93 lfs = `FS_PRIVATE ( this ); 95 `DBG_PRT (( L "loÿlfs_Ý’ oÀ%s\n", Çme )); 97 ¡©us = lfs -> vÞume -> `O³n Öfs->vÞume, & fh , Çme , EFI_FILE_MODE_READ , 0); 98 ià( ¡©us =ð EFI_SUCCESS ) { 99 * fd = `LOCALFS_F2FD ( fh ); 101  ¡©us ; 102 } } 104  EFI_STATUS 105 $loÿlfs_»ad ( loÿlfs_š‹rçû_t * this , UINTN fd , VOID * buf , UINTN * size ) 107 loÿlfs_´iv_¡©e_t * lfs ; 109 ià( this =ð NULL || fd =ð0 || buf =ðNULL || size =ðNULLè EFI_INVALID_PARAMETER ; 111 lfs = `FS_PRIVATE ( this ); 113  lfs -> vÞume -> `R—d ( `LOCALFS_FD2F ( fd ), size , buf ); 114 } } 116  EFI_STATUS 117 $loÿlfs_þo£ ( loÿlfs_š‹rçû_t * this , UINTN fd ) 119 loÿlfs_´iv_¡©e_t * lfs ; 121 ià( this =ð NULL || fd =ð0è EFI_INVALID_PARAMETER ; 123 lfs = `FS_PRIVATE ( this ); 125  lfs -> vÞume -> `Clo£ ( `LOCALFS_FD2F ( fd )); 126 } } 128  EFI_STATUS 129 $loÿlfs_šfosize ( loÿlfs_š‹rçû_t * this , UINTN fd , UINT64 * sz ) 131 loÿlfs_´iv_¡©e_t * lfs ; 132 EFI_FILE_INFO * šfo ; 134 ià( this =ð NULL || fd =ð0 || sz =ðNULLè EFI_INVALID_PARAMETER ; 136 lfs = `FS_PRIVATE ( this ); 138 šfo = `LibFžeInfo ( `LOCALFS_FD2F ( fd )); 139 ià( šfo =ð NULL è EFI_UNSUPPORTED ; 141 * sz = šfo -> FžeSize ; 143 `F»ePoÞ ( šfo ); 145  EFI_SUCCESS ; 146 } } 148  EFI_STATUS 149 $loÿlfs_£ek ( loÿlfs_š‹rçû_t * this , UINTN fd , UINT64 Ãwpos ) 151 loÿlfs_´iv_¡©e_t * lfs ; 153 ià( this =ð NULL || fd =ð0è EFI_INVALID_PARAMETER ; 155 lfs = `FS_PRIVATE ( this ); 157  lfs -> vÞume -> `S‘Pos™iÚ ( `LOCALFS_FD2F ( fd ), Ãwpos ); 158 } } 160  VOID 161 $loÿlfs_š™_¡©e ( loÿlfs_t * loÿlfs , EFI_HANDLE dev , EFI_FILE_HANDLE vÞume ) 163 loÿlfs_´iv_¡©e_t * lfs = `FS_PRIVATE ( loÿlfs ); 166 `Mem£t ( loÿlfs , 0, (*localfs)); 168 loÿlfs -> pub_štf . loÿlfs_Çme =†ocalfs_name; 169 loÿlfs -> pub_štf . loÿlfs_Ý’ =†ocalfs_open; 170 loÿlfs -> pub_štf . loÿlfs_»ad =†ocalfs_read; 171 loÿlfs -> pub_štf . loÿlfs_þo£ =†ocalfs_close; 172 loÿlfs -> pub_štf . loÿlfs_šfosize =†ocalfs_infosize; 173 loÿlfs -> pub_štf . loÿlfs_£ek =†ocalfs_seek; 175 lfs -> dev = dev; 176 lfs -> vÞume = volume; 177 } } 179  EFI_STATUS 180 $loÿlfs_š¡®l_Úe ( EFI_HANDLE dev , VOID ** štf ) 183 EFI_STATUS ¡©us ; 184 loÿlfs_t * loÿlfs ; 185 EFI_FILE_IO_INTERFACE * vÞume ; 186 EFI_FILE_HANDLE vÞume_fh ; 188 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & LoÿlFsPrÙocÞ , ( VOID **)& loÿlfs ); 189 ià( ¡©us =ð EFI_SUCCESS ) { 190 `ERR_PRT (( L "W¬nšg: foundƒxi¡šg % ´ÙocÞ oÀdeviû", FS_NAME )); 191  found ; 194 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & FžeSy¡emPrÙocÞ , ( VOID **)& vÞume ); 195 ià( `EFI_ERROR ( ¡©us )è EFI_INVALID_PARAMETER ; 197 ¡©us = vÞume -> `O³nVÞume (vÞume, & vÞume_fh ); 198 ià( `EFI_ERROR ( ¡©us )) { 199 `ERR_PRT (( L "cannot open volume")); 200  ¡©us ; 203 loÿlfs = ( loÿlfs_t *) `®loc ((*loÿlfs), EfiLßd”D©a ); 204 ià( loÿlfs =ð NULL ) { 205 `ERR_PRT (( L "çžedØ®loÿ‹ %s", FS_NAME )); 206  EFI_OUT_OF_RESOURCES ; 208 `loÿlfs_š™_¡©e ( loÿlfs , dev , vÞume_fh ); 210 ¡©us = `LibIn¡®lPrÙocÞIÁ”çûs (& dev , & LoÿlFsPrÙocÞ , loÿlfs , NULL ); 211 ià( `EFI_ERROR ( ¡©us )) { 212 `ERR_PRT (( L "CªnÙ in¡®È% ´ÙocÞ: %r", FS_NAME , ¡©us )); 213 `ä“ ( loÿlfs ); 214  ¡©us ; 216 found : 217 ià( štf è*štàð( VOID *) loÿlfs ; 219 `VERB_PRT (3, 220 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 221 dp = `DeviûP©hFromHªdË ( dev ); 222 ¡r = `DeviûP©hToSŒ ( dp ); 223 `Pršt ( L "©ched % tØ%s\n", FS_NAME , ¡r ); 224 `F»ePoÞ ( ¡r ); 227  EFI_SUCCESS ; 228 } } 230 EFI_STATUS 231 $loÿlfs_š¡®l ( VOID ) 233 UINTN size = 0; 234 UINTN i ; 235 EFI_STATUS ¡©us ; 236 VOID * štf ; 238 BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & FžeSy¡emPrÙocÞ , NULL , & size , NULL); 239 ià( size =ð0è EFI_UNSUPPORTED ; 241 `DBG_PRT (( L "size=%d", size )); 243 dev_b = ( dev_b_t *) `®loc ( size , EfiLßd”D©a ); 244 ià( dev_b =ð NULL ) { 245 `ERR_PRT (( L "failedo‡llocate handleable")); 246  EFI_OUT_OF_RESOURCES ; 249 ¡©us = BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & FžeSy¡emPrÙocÞ , NULL , & size , ( VOID **) dev_b ); 250 ià( ¡©us !ð EFI_SUCCESS ) { 251 `ERR_PRT (( L "çžedØg‘ hªdËs: %r", ¡©us )); 252 `ä“ ( dev_b ); 253  ¡©us ; 255 ndev = size / ( EFI_HANDLE ); 257  i =0; i < ndev ; i++) { 258 štf = NULL ; 259 `loÿlfs_š¡®l_Úe ( dev_b [ i ]. dev , & štf ); 261 dev_b [ i ]. štf = intf; 264  EFI_SUCCESS ; 265 } } 267 EFI_STATUS 268 $loÿlfs_unš¡®l ( VOID ) 271 loÿlfs_´iv_¡©e_t * lfs ; 272 EFI_STATUS ¡©us ; 273 UINTN i ; 275  i =0; i < ndev ; i++) { 276 ià( dev_b [ i ]. štf =ð NULL ) ; 277 lfs = `FS_PRIVATE ( dev_b [ i ]. štf ); 278 ¡©us = BS -> `Unš¡®lPrÙocÞIÁ”çû ( lfs -> dev , & LoÿlFsPrÙocÞ , dev_b [ i ]. štf ); 279 ià( `EFI_ERROR ( ¡©us )) { 280 `ERR_PRT (( L "Unš¡®È% ”rÜ: %r", FS_NAME , ¡©us )); 283 `VERB_PRT (3, 284 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 285 dp = `DeviûP©hFromHªdË ( lfs -> dev ); 286 ¡r = `DeviûP©hToSŒ ( dp ); 287 `Pršt ( L "unš¡®Ëd % Ú %s\n", FS_NAME , ¡r ); 288 `F»ePoÞ ( ¡r ); 290 `ä“ ( dev_b [ i ]. štf ); 292 ià( dev_b è `ä“ (dev_tab); 294  EFI_SUCCESS ; 295 } } @fs/localfs.h 26 #iâdeà __LOCALFS_H__ 27  #__LOCALFS_H__ ) 29 INTERFACE_DECL ( _loÿlfs_š‹rçû_t ); 31  s_loÿlfs_š‹rçû_t { 32 EFI_STATUS (* loÿlfs_Çme )( _loÿlfs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN mmaxËn ); 33 EFI_STATUS (* loÿlfs_Ý’ )( _loÿlfs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN * mfd ); 34 EFI_STATUS (* loÿlfs_»ad )( _loÿlfs_š‹rçû_t * mthis , UINTN mfd , VOID * mbuf , UINTN * msize ); 35 EFI_STATUS (* loÿlfs_þo£ )( _loÿlfs_š‹rçû_t * mthis , UINTN mfd ); 36 EFI_STATUS (* loÿlfs_šfosize )( _loÿlfs_š‹rçû_t * mthis , UINTN mfd , UINT64 * msize ); 37 EFI_STATUS (* loÿlfs_£ek )( _loÿlfs_š‹rçû_t * mthis , UINTN mfd , UINT64 mÃwpos ); 38 } tloÿlfs_š‹rçû_t ; 40  #LOCALFS_PROTOCOL \ 41 { 0x3a42ff5d, 0x43c9, 0x4db8, {0x82, 0x4e, 0xb8, 0x5b, 0xab, 0x97, 0x63, 0xcc} } ) 43 EFI_STATUS loÿlfs_š¡®l ( VOID ); 44 EFI_STATUS loÿlfs_unš¡®l ( VOID ); @fs/netfs.c 26  ~ 27  ~ 29  ~"fs/Ãtfs.h " 31  ~"–žo.h " 33  #FS_NAME L "Ãtfs" ) 35  #NETFS_DEFAULT_BUFSIZE 16* MB ) 36  #NETFS_DEFAULT_BUFSIZE_INC 8* MB ) 38  #NETFS_DEFAULT_SERVER_TYPE EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP ) 39  #NETFS_FD_MAX 2 ) 41  s_Ãtfs_fd { 42  _Ãtfs_fd * mÃxt ; 44 CHAR8 * mÃtbuf ; 45 UINT64 mÃtbuf_maxsize ; 46 UINTN mÃtbuf_size ; 47 UINT64 mÃtbuf_pos ; 48 BOOLEAN mis_v®id ; 49 BOOLEAN mÃtbuf_»u£ ; 51 CHAR16 mÏ¡_fže [ FILENAME_MAXLEN ]; 52 } tÃtfs_fd_t ; 56 EFI_PXE_BASE_CODE * mpxe ; 57 EFI_HANDLE mdev ; 58 BOOLEAN musšg_pxe ; 60 EFI_IP_ADDRESS m¤v_ ; 61 EFI_IP_ADDRESS mþn_ ; 62 EFI_IP_ADDRESS mgw_ ; 63 EFI_IP_ADDRESS mÃtmask ; 64 UINT8 mhw_addr [16]; 66 Ãtfs_fd_t mfd_b [ NETFS_FD_MAX ]; 67 Ãtfs_fd_t * mä“_fd ; 68 UINTN mä“_fd_couÁ ; 70 } tÃtfs_´iv_¡©e_t ; 72  #NETFS_F2FD ( l , f è( UINTN )((f)-Ö)-> fd_b ) ) 73  #NETFS_FD2F ( l , fd è(Ö)-> fd_b +fd) ) 74  #NETFS_F_INVALID ( f è((f)-> is_v®id =ð FALSE ) ) 78 Ãtfs_š‹rçû_t mpub_štf ; 80 Ãtfs_š‹rçû_t mpub_štf ; 81 Ãtfs_´iv_¡©e_t m´iv_d©a ; 82 } mÃtfs_´iv ; 83 } tÃtfs_t ; 85  #FS_PRIVATE ( n è(&((( Ãtfs_t *ê)-> Ãtfs_´iv . ´iv_d©a )) ) 88 EFI_HANDLE * mdev ; 89 Ãtfs_t * mštf ; 90 } tdev_b_t ; 92  dev_b_t * gdev_b ; 93  UINTN gndev ; 95  EFI_GUID gN‘FsPrÙocÞ = NETFS_PROTOCOL ; 99  EFI_PXE_BASE_CODE_CALLBACK_STATUS 100 $Ãtfs_ÿÎback_func ( 101 IN EFI_PXE_BASE_CODE_CALLBACK * this , 102 IN EFI_PXE_BASE_CODE_FUNCTION funùiÚ , 103 IN BOOLEAN »ûived , 104 IN UINT32 ·ck‘_Ën , 105 IN EFI_PXE_BASE_CODE_PACKET * ·ck‘ OPTIONAL 108 `Pršt ( L "Ãtfs_ÿÎback c®Ëd„eûived=%d…ack‘_Ën=%d\n", »ûived , ·ck‘_Ën ); 109  EFI_ABORTED ; 110 } } 112  EFI_PXE_BASE_CODE_CALLBACK gÃtfs_ÿÎback = { 113 EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION , 114 & Ãtfs_ÿÎback_func 118  Ãtfs_fd_t * 119 $Ãtfs_fd_®loc ( Ãtfs_´iv_¡©e_t * nfs , CHAR16 * Çme ) 121 Ãtfs_fd_t * tmp = NULL , * ´ev = NULL, * m©ch ; 122 UINT8 Ãtbuf_»u£ = 0; 124 ià( nfs -> ä“_fd =ð NULL ) { 125 `ERR_PRT (( L "out of file descriptor")); 126  NULL ; 128 m©ch = nfs -> ä“_fd ; 129  tmp = nfs -> ä“_fd ;mp;m°ðtmp-> Ãxt ) { 130 ià(! `SŒCmp ( Çme , tmp -> Ï¡_fže )) { 131 `DBG_PRT (( L "Usšg cached fž% Ãtbuf_size=%d", tmp -> Ï¡_fže ,mp-> Ãtbuf_size )); 132 Ãtbuf_»u£ = 1; 133 m©ch = tmp ; 136 ´ev = tmp ; 139 m©ch -> Ãtbuf_»u£ =‚etbuf_reuse; 141 ià( m©ch =ð nfs -> ä“_fd ) 142 nfs -> ä“_fd = m©ch -> Ãxt ; 144 ´ev -> Ãxt = m©ch ->next; 146 nfs -> ä“_fd_couÁ --; 148  m©ch ; 149 } } 151  VOID 152 $Ãtfs_fd_ä“ ( Ãtfs_´iv_¡©e_t * nfs , Ãtfs_fd_t * f ) 154 ià( f =ð NULL ) { 155 `ERR_PRT (( L "invalid fd")); 158 f -> Ãxt = nfs -> ä“_fd ; 161 f -> is_v®id = FALSE ; 163 nfs -> ä“_fd = f ; 164 nfs -> ä“_fd_couÁ ++; 166 ià( nfs -> ä“_fd_couÁ > NETFS_FD_MAX ) { 167 `ERR_PRT (( L "toØmªy f»desütÜ %d", nfs -> ä“_fd_couÁ )); 169 } } 172  INTN 173 $Ãtbuf_®loc ( Ãtfs_fd_t * f ) 176 ià( f -> Ãtbuf != 0)  0; 178 f -> Ãtbuf_pos = 0; 180 f -> Ãtbuf = ( CHAR8 *) `®loc_·ges ( `EFI_SIZE_TO_PAGES (f-> Ãtbuf_maxsize ), EfiLßd”D©a , AÎoÿ‹AnyPages , 0); 182  f -> Ãtbuf == 0 ? -1 : 0; 183 } } 185  EFI_STATUS 186 $Ãtfs_Çme ( Ãtfs_š‹rçû_t * this , CHAR16 * Çme , UINTN maxËn ) 188 ià( Çme =ð NULL || maxËn < 1è EFI_INVALID_PARAMETER ; 190 `SŒnCpy ( Çme , FS_NAME , maxËn -1); 192 Çme [ maxËn -1] = CHAR_NULL ; 194  EFI_SUCCESS ; 195 } } 197  VOID 198 $Ãtfs_exŒaù_ ( Ãtfs_´iv_¡©e_t * nfs ) 200 EFI_PXE_BASE_CODE * pxe = nfs ->pxe; 202 ià( pxe -> Mode -> PxeDiscov”V®id ) { 203 nfs -> usšg_pxe = TRUE ; 204 `Memýy (& nfs -> ¤v_ , pxe -> Mode -> PxeR•ly . Dhýv4 . BoÙpSiAddr , ( EFI_IP_ADDRESS )); 205 `Memýy (& nfs -> hw_addr , pxe -> Mode -> PxeR•ly . Dhýv4 . BoÙpHwAddr , 16*( UINT8 )); 207 `Memýy (& nfs -> ¤v_ , pxe -> Mode -> DhýAck . Dhýv4 . BoÙpSiAddr , ( EFI_IP_ADDRESS )); 208 `Memýy (& nfs -> hw_addr , pxe -> Mode -> DhýAck . Dhýv4 . BoÙpHwAddr , (nfs->hw_addr)); 211 `Memýy (& nfs -> þn_ , & pxe -> Mode -> StiÚIp , ( EFI_IP_ADDRESS )); 212 `Memýy (& nfs -> Ãtmask , & pxe -> Mode -> SubÃtMask , ( EFI_IP_ADDRESS )); 217 ià( pxe -> Mode -> Rou‹TabËEÁr›s >0) 218 `Memýy (& nfs -> gw_ , & pxe -> Mode -> Rou‹TabË [0]. GwAddr , ( EFI_IP_ADDRESS )); 220 `VERB_PRT (1, `Pršt ( L "PXE PxeDiscov”V®id: %s\n", pxe -> Mode -> PxeDiscov”V®id ? L"Yes (PXE-aware DHCPD)" : L"No (Regular DHCPD)")); 222 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & PxeC®lbackPrÙocÞ , ( VOID **)& Ãtfs_ÿÎback ); 223 ¡©us = `LibIn¡®lPrÙocÞIÁ”çûs (& dev , & PxeC®lbackPrÙocÞ , & Ãtfs_ÿÎback , NULL ); 224 `Pršt ( L "PXE C®lback suµÜˆ: %r\n", ¡©us ); 225 ià( ¡©us =ð EFI_SUCCESS ) { 226 BOOLEAN do™ = TRUE ; 227 ¡©us = pxe -> `S‘P¬am‘”s Õxe, NULL , NULL, NULL, NULL, & do™ ); 228 `Pršt ( L "PXE C®lback S‘P¬am‘”s: %r\n", ¡©us ); 234 `VERB_PRT (1, `Pršt ( L "Local IP: %d.%d.%d.%d\n", 235 pxe -> Mode -> StiÚIp . v4 . Addr [0] & 0xff, 236 pxe -> Mode -> StiÚIp . v4 . Addr [1] & 0xff, 237 pxe -> Mode -> StiÚIp . v4 . Addr [2] & 0xff, 238 pxe -> Mode -> StiÚIp . v4 . Addr [3] & 0xff)); 240 `VERB_PRT (1, `Pršt ( L "SM: %d.%d.%d.%d\n", 241 pxe -> Mode -> SubÃtMask . v4 . Addr [0] & 0xff, 242 pxe -> Mode -> SubÃtMask . v4 . Addr [1] & 0xff, 243 pxe -> Mode -> SubÃtMask . v4 . Addr [2] & 0xff, 244 pxe -> Mode -> SubÃtMask . v4 . Addr [3] & 0xff)); 246 `VERB_PRT (1, `Pršt ( L "TFTPD IP: %d.%d.%d.%d\n", 247 nfs -> ¤v_ . v4 . Addr [0] & 0xff, 248 nfs -> ¤v_ . v4 . Addr [1] & 0xff, 249 nfs -> ¤v_ . v4 . Addr [2] & 0xff, 250 nfs -> ¤v_ . v4 . Addr [3] & 0xff)); 252 `VERB_PRT (1, `Pršt ( L "Gateway IP: %d.%d.%d.%d\n", 253 nfs -> gw_ . v4 . Addr [0] & 0xff, 254 nfs -> gw_ . v4 . Addr [1] & 0xff, 255 nfs -> gw_ . v4 . Addr [2] & 0xff, 256 nfs -> gw_ . v4 . Addr [3] & 0xff)); 258 } } 260  EFI_STATUS 261 $Ãtfs_¡¬t ( EFI_PXE_BASE_CODE * pxe ) 263 EFI_STATUS ¡©us ; 265 ¡©us = pxe -> `S¹ Õxe, FALSE ); 266 ià( `EFI_ERROR ( ¡©us ))  status; 268  pxe -> `Dhý Õxe, FALSE ); 269 } } 271  EFI_STATUS 272 $Ãtfs_Ý’ ( Ãtfs_š‹rçû_t * this , CHAR16 * Çme , UINTN * fd ) 274 Ãtfs_´iv_¡©e_t * nfs ; 275 Ãtfs_fd_t * f ; 276 EFI_STATUS ¡©us ; 277 CHAR8 ascii_Çme [ FILENAME_MAXLEN ]; 278 UINTN blocksize = 0, ´ev_Ãtbufsize ; 280 ià( this =ð NULL || Çme =ðNULL || fd =ðNULLè EFI_INVALID_PARAMETER ; 282 nfs = `FS_PRIVATE ( this ); 284 ià( nfs -> pxe =ð NULL è EFI_INVALID_PARAMETER ; 289 ià( nfs -> pxe -> Mode -> S¹ed =ð FALSE ) { 290 ¡©us = `Ãtfs_¡¬t ( nfs -> pxe ); 291 ià( `EFI_ERROR ( ¡©us ))  status; 292 `Ãtfs_exŒaù_ ( nfs ); 295 ià(( f = `Ãtfs_fd_®loc ( nfs , Çme )è=ð NULL è EFI_OUT_OF_RESOURCES ; 297 ià( f -> Ãtbuf_»u£ ) { 298 f -> Ãtbuf_pos = 0; 299 f -> is_v®id = TRUE ; 300 * fd = `NETFS_F2FD ( nfs , f ); 301  EFI_SUCCESS ; 303 f -> Ãtbuf_maxsize = NETFS_DEFAULT_BUFSIZE ; 305 ià( f -> Ãtbuf =ð NULL && `Ãtbuf_®loc (f) == -1) { 306 `Ãtfs_fd_ä“ ( nfs , f ); 307  EFI_OUT_OF_RESOURCES ; 312 `U2ascii ( Çme , ascii_Çme , FILENAME_MAXLEN ); 314 `VERB_PRT (2, `Pršt ( L "dowÆßdšg %¨äom %d.%d.%d.%d...", ascii_Çme , 315 nfs -> ¤v_ . v4 . Addr [0], 316 nfs -> ¤v_ . v4 . Addr [1], 317 nfs -> ¤v_ . v4 . Addr [2], 318 nfs -> ¤v_ . v4 . Addr [3])); 319 »Œy : 320 f -> Ãtbuf_size = f-> Ãtbuf_maxsize ; 322 `DBG_PRT (( L "\nbefÜÃtbuf:0x%lx‚‘buf_size=%ld\n", f -> Ãtbuf , f-> Ãtbuf_size )); 338 ´ev_Ãtbufsize = f -> Ãtbuf_size ; 340 ¡©us = nfs -> pxe -> `Mtáp Òfs->pxe, EFI_PXE_BASE_CODE_TFTP_READ_FILE , f -> Ãtbuf , FALSE , 341 &( f -> Ãtbuf_size ), 342 blocksize > 0 ? &blocksiz: NULL , 343 & nfs -> ¤v_ , 344 ascii_Çme , 345 NULL , 346 FALSE ); 348 `DBG_PRT (( L "after Mftp=%r‚etbuf:0x%lx‚etbuf_size=%ld blocksize=%ld\n", 349 ¡©us , 350 f -> Ãtbuf , 351 f -> Ãtbuf_size , 352 blocksize )); 354 ià( ¡©us =ð EFI_TIMEOUT && blocksize == 0) { 359 ¡©us = EFI_BUFFER_TOO_SMALL ; 364 ià( ¡©us =ð EFI_BUFFER_TOO_SMALL ) { 365 `DBG_PRT (( L "bufã¸toØsm®l,‚“d‚‘buf_size=%d", f -> Ãtbuf_size )); 372 ià( f -> Ãtbuf_size =ð ´ev_Ãtbufsize ) { 373 f -> Ãtbuf_maxsize +ð NETFS_DEFAULT_BUFSIZE_INC ; 376 f -> Ãtbuf_maxsize = f-> Ãtbuf_size ; 378 `ä“ ( f -> Ãtbuf ); 380 f -> Ãtbuf = NULL ; 382 ià( `Ãtbuf_®loc ( f è=ð0è »Œy ; 387 ià( ¡©us =ð EFI_SUCCESS ) { 389 f -> Ãtbuf_pos = 0; 392 `SŒCpy ( f -> Ï¡_fže , Çme ); 394 f -> is_v®id = 1; 396 * fd = `NETFS_F2FD ( nfs , f ); 397 `VERB_PRT (2, `Pršt ( L "Done\n")); 399 `Ãtfs_fd_ä“ ( nfs , f ); 400 `VERB_PRT (2, `Pršt ( L "Fažed: %r\n", ¡©us )); 402 `DBG_PRT (( L "Fž% Ãtbuf_size=%d: %r", Çme , f -> Ãtbuf_size , ¡©us )); 404 `Pršt ( L "\n---\n"); 405 { INTN i ; 406  i =0; i < Ãtbuf_size ; i++) { 407 `Pršt ( L "%c", ( CHAR16 ) Ãtbuf [ i ]); 410 `Pršt ( L "\n---\n"); 412  ¡©us ; 413 } } 416  EFI_STATUS 417 $Ãtfs_»ad ( Ãtfs_š‹rçû_t * this , UINTN fd , VOID * buf , UINTN * size ) 419 Ãtfs_´iv_¡©e_t * nfs ; 420 Ãtfs_fd_t * f ; 421 UINTN couÁ ; 423 ià( this =ð NULL || fd >ð NETFS_FD_MAX || buf =ðNULL || size =ðNULLè EFI_INVALID_PARAMETER ; 425 nfs = `FS_PRIVATE ( this ); 426 f = `NETFS_FD2F ( nfs , fd ); 428 ià( `NETFS_F_INVALID ( f )è EFI_INVALID_PARAMETER ; 430 couÁ = `MIN (* size , f -> Ãtbuf_size - f-> Ãtbuf_pos ); 432 ià( couÁ è `Memýy ( buf , f -> Ãtbuf +f-> Ãtbuf_pos , count); 434 * size = couÁ ; 435 f -> Ãtbuf_pos +ð couÁ ; 437  EFI_SUCCESS ; 438 } } 440  EFI_STATUS 441 $Ãtfs_þo£ ( Ãtfs_š‹rçû_t * this , UINTN fd ) 443 Ãtfs_´iv_¡©e_t * nfs ; 444 Ãtfs_fd_t * f ; 446 ià( this =ð NULL || fd >ð NETFS_FD_MAX è EFI_INVALID_PARAMETER ; 448 nfs = `FS_PRIVATE ( this ); 449 f = `NETFS_FD2F ( nfs , fd ); 451 ià( `NETFS_F_INVALID ( f )è EFI_INVALID_PARAMETER ; 453 `Ãtfs_fd_ä“ ( nfs , f ); 455  EFI_SUCCESS ; 456 } } 458  EFI_STATUS 459 $Ãtfs_£ek ( Ãtfs_š‹rçû_t * this , UINTN fd , UINT64 Ãwpos ) 461 Ãtfs_´iv_¡©e_t * nfs ; 462 Ãtfs_fd_t * f ; 464 ià( this =ð NULL || fd >ð NETFS_FD_MAX è EFI_INVALID_PARAMETER ; 466 nfs = `FS_PRIVATE ( this ); 467 f = `NETFS_FD2F ( nfs , fd ); 469 ià( `NETFS_F_INVALID ( f )è EFI_INVALID_PARAMETER ; 471 ià( Ãwpos > f -> Ãtbuf_size è EFI_INVALID_PARAMETER ; 473 f -> Ãtbuf_pos = Ãwpos ; 475  EFI_SUCCESS ; 476 } } 478  EFI_STATUS 479 $Ãtfs_šfosize ( Ãtfs_š‹rçû_t * this , UINTN fd , UINT64 * sz ) 481 Ãtfs_´iv_¡©e_t * nfs ; 482 Ãtfs_fd_t * f ; 484 ià( this =ð NULL || fd >ð NETFS_FD_MAX || sz =ðNULLè EFI_INVALID_PARAMETER ; 486 nfs = `FS_PRIVATE ( this ); 487 f = `NETFS_FD2F ( nfs , fd ); 489 ià( `NETFS_F_INVALID ( f )è EFI_INVALID_PARAMETER ; 491 * sz = f -> Ãtbuf_size ; 493  EFI_SUCCESS ; 494 } } 496  INTN 497 $fšd_dhý_ÝtiÚ ( EFI_PXE_BASE_CODE_PACKET * ·ck‘ , UINT8 u£_v6 , UINT8 ÝtiÚ , CHAR8 * ¡r , INTN * Ën ) 499 INTN i = 0; 500 UINT8 g , Ëngth ; 501 UINT8 * Ýts = ·ck‘ -> Dhýv4 . DhýO±iÚs ; 503 * Ën = 0; 506 ià( i >= 56) { 507 `DBG_PRT (( L "reachƒnd of options (no marker)\n")); 510 g = Ýts [ i ++]; 512 ià( g == 0) ; 513 ià( g == 255) ; 515 Ëngth = Ýts [ i ++]; 518 { UINT8 l = Ëngth , k = 0; 519 `Pršt ( L "found o±iÚ %d†’=%d: ", g , Ëngth ); 520  l --è{ `Pršt ( L "%c(%d)\n", ( CHAR16 ) Ýts [ k ], opts[k]); k++; } 521 `Pršt ( L "\n"); 524 ià( g =ð ÝtiÚ ) { 525 * Ën = Ëngth ; 526  Ëngth --è{ * ¡r ++ = Ýts [ i ++]; } 529 i +ð Ëngth ; 532 } } 534  EFI_STATUS 535 $Ãtfs_g‘šfo ( Ãtfs_š‹rçû_t * this , Ãtfs_šfo_t * šfo ) 537 Ãtfs_´iv_¡©e_t * nfs ; 538 CHAR8 ¡r [256]; 539 INTN Ën , r ; 541 ià( this =ð NULL || šfo =ðNULLè EFI_INVALID_PARAMETER ; 543 nfs = `FS_PRIVATE ( this ); 545 `Memýy (& šfo -> þn_addr , & nfs -> þn_ , ( EFI_IP_ADDRESS )); 546 `Memýy (& šfo -> ¤v_addr , & nfs -> ¤v_ , ( EFI_IP_ADDRESS )); 547 `Memýy (& šfo -> Ãtmask , & nfs ->Ãtmask, ( EFI_IP_ADDRESS )); 548 `Memýy (& šfo -> gw_addr , & nfs -> gw_ , ( EFI_IP_ADDRESS )); 549 `Memýy (& šfo -> hw_addr , & nfs ->hw_addr, (info->hw_addr)); 551 šfo -> usšg_pxe = nfs ->using_pxe; 552 šfo -> ¡¬‹d = nfs -> pxe -> Mode -> S¹ed ; 553 šfo -> usšg_v6 = nfs -> pxe -> Mode -> UsšgIpv6 ; 555 ià( nfs -> pxe -> Mode -> UsšgIpv6 è sk_ÝtiÚs ; 557 r = `fšd_dhý_ÝtiÚ (& nfs -> pxe -> Mode -> DhýAck ,nfs->pxe->Mode-> UsšgIpv6 , 15, ¡r , & Ën ); 558 ¡r [ Ën ] = '\0'; 559 `ascii2U ( ¡r , šfo -> domašame , 255); 561 `VERB_PRT (3, `Pršt ( L "domaš(15): %a\n", ¡r )); 563 r = `fšd_dhý_ÝtiÚ (& nfs -> pxe -> Mode -> DhýAck ,nfs->pxe->Mode-> UsšgIpv6 , 12, ¡r , & Ën ); 564 ¡r [ Ën ] = '\0'; 565 `ascii2U ( ¡r , šfo -> ho¡Çme , 255); 567 `VERB_PRT (3, `Pršt ( L "ho¡Çme(12): %a\n", ¡r )); 572 ià( nfs -> usšg_pxe == 0) { 573 `ascii2U ( nfs -> pxe -> Mode -> DhýAck . Dhýv4 . BoÙpBoÙFže , šfo -> boÙfže , NETFS_BOOTFILE_MAXLEN ); 574 `VERB_PRT (3, `Pršt ( L "boÙfže: %s\n", šfo -> boÙfže )); 577 sk_ÝtiÚs : 578  EFI_SUCCESS ; 579 } } 581  UINT16 582 $fšd_pxe_£rv”_ty³ ( EFI_PXE_BASE_CODE * pxe ) 584 INTN i = 0, max ; 585 UINT8 g , Ëngth ; 586 UINT8 * Ýts = pxe -> Mode -> PxeR•ly . Dhýv4 . DhýO±iÚs ; 587 UINT16 £rv”_ty³ ; 589  i < 55) { 590 g = Ýts [ i ]; 591 Ëngth = Ýts [ i +1]; 593 `DBG_PRT (( L "Tag #%d L’gth %d\n", g , Ëngth )); 595 ià( g =ð43è found ; 597 i +ð2 + Ëngth ; 599  NETFS_DEFAULT_SERVER_TYPE ; 600 found : 601 max = i +2+ Ëngth ; 602 i += 2; 603  i < max ) { 604 g = Ýts [ i ]; 605 Ëngth = Ýts [ i +1]; 606 ià( g == 71) { 607 £rv”_ty³ =( Ýts [ i +2]<<8) | opts[i+3]; 608 `DBG_PRT (( L "S”v”Ty³: %d\n", £rv”_ty³ )); 609  £rv”_ty³ ; 611 i +ð2 + Ëngth ; 613  NETFS_DEFAULT_SERVER_TYPE ; 614 } } 616  EFI_STATUS 617 $Ãtfs_qu”y_Ïy” ( Ãtfs_š‹rçû_t * this , UINT16 £rv”_ty³ , UINT16 Ïy” , UINTN maxËn , CHAR16 * ¡r ) 619 Ãtfs_´iv_¡©e_t * nfs ; 620 EFI_STATUS ¡©us ; 622 ià( this =ð NULL || ¡r =ðNULLè EFI_INVALID_PARAMETER ; 624 nfs = `FS_PRIVATE ( this ); 626 ià( nfs -> usšg_pxe =ð FALSE è EFI_UNSUPPORTED ; 628 ià( £rv”_ty³ =ð0è£rv”_ty³ = `fšd_pxe_£rv”_ty³ ( nfs -> pxe ); 630 ¡©us = nfs -> pxe -> `Discov” Òfs->pxe, £rv”_ty³ , & Ïy” , FALSE , 0); 631 if( ¡©us =ð EFI_SUCCESS ) { 632 `ascii2U ( nfs -> pxe -> Mode -> PxeR•ly . Dhýv4 . BoÙpBoÙFže , ¡r , maxËn ); 634  ¡©us ; 635 } } 637  VOID 638 $Ãtfs_š™_¡©e ( Ãtfs_t * Ãtfs , EFI_HANDLE dev , EFI_PXE_BASE_CODE * pxe ) 640 Ãtfs_´iv_¡©e_t * nfs = `FS_PRIVATE ( Ãtfs ); 641 UINTN i ; 644 `Mem£t ( Ãtfs , 0, (*netfs)); 647 Ãtfs -> pub_štf . Ãtfs_Çme =‚etfs_name; 648 Ãtfs -> pub_štf . Ãtfs_Ý’ =‚etfs_open; 649 Ãtfs -> pub_štf . Ãtfs_»ad =‚etfs_read; 650 Ãtfs -> pub_štf . Ãtfs_þo£ =‚etfs_close; 651 Ãtfs -> pub_štf . Ãtfs_šfosize =‚etfs_infosize; 652 Ãtfs -> pub_štf . Ãtfs_£ek =‚etfs_seek; 653 Ãtfs -> pub_štf . Ãtfs_qu”y_Ïy” =‚etfs_query_layer; 654 Ãtfs -> pub_štf . Ãtfs_g‘šfo =‚etfs_getinfo; 656 nfs -> dev = dev; 657 nfs -> pxe =…xe; 662 ià( pxe -> Mode -> S¹ed =ð TRUE è `Ãtfs_exŒaù_ ( nfs ); 664 `Mem£t ( nfs -> fd_b , 0, (nfs->fd_tab)); 666  i =0; i < NETFS_FD_MAX -1; i++) { 667 nfs -> fd_b [ i ]. Ãxt = &nfs->fd_tab[i+1]; 671 nfs -> ä“_fd =‚fs-> fd_b ; 672 nfs -> ä“_fd_couÁ = NETFS_FD_MAX ; 673 } } 675  EFI_STATUS 676 $Ãtfs_š¡®l_Úe ( EFI_HANDLE dev , VOID ** štf ) 679 EFI_STATUS ¡©us ; 680 Ãtfs_t * Ãtfs ; 681 EFI_PXE_BASE_CODE * pxe ; 683 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & N‘FsPrÙocÞ , ( VOID **)& Ãtfs ); 684 ià( ¡©us =ð EFI_SUCCESS ) { 685 `ERR_PRT (( L "W¬nšg: foundƒxi¡šg % ´ÙocÞ oÀdeviû", FS_NAME )); 686  found ; 689 ¡©us = BS -> `HªdËPrÙocÞ ( dev , & PxeBa£CodePrÙocÞ , ( VOID **)& pxe ); 690 ià( `EFI_ERROR ( ¡©us )è EFI_INVALID_PARAMETER ; 693 Ãtfs = ( Ãtfs_t *) `®loc ((*Ãtfs), EfiLßd”D©a ); 694 ià( Ãtfs =ð NULL ) { 695 `ERR_PRT (( L "çžedØ®loÿ‹ %s", FS_NAME )); 696  EFI_OUT_OF_RESOURCES ; 699 `Ãtfs_š™_¡©e ( Ãtfs , dev , pxe ); 701 ¡©us = `LibIn¡®lPrÙocÞIÁ”çûs (& dev , & N‘FsPrÙocÞ , Ãtfs , NULL ); 702 ià( `EFI_ERROR ( ¡©us )) { 703 `ERR_PRT (( L "CªnÙ in¡®È% ´ÙocÞ: %r", FS_NAME , ¡©us )); 704 `ä“ ( Ãtfs ); 705  ¡©us ; 708 found : 709 ià( štf è*štàð( VOID *) Ãtfs ; 711 `VERB_PRT (3, 712 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 713 dp = `DeviûP©hFromHªdË ( dev ); 714 ¡r = `DeviûP©hToSŒ ( dp ); 715 `Pršt ( L "©ched % tØ%s\n", FS_NAME , ¡r ); 716 `F»ePoÞ ( ¡r ); 719  EFI_SUCCESS ; 720 } } 722 EFI_STATUS 723 $Ãtfs_š¡®l ( VOID ) 725 UINTN size = 0; 726 UINTN i ; 727 EFI_STATUS ¡©us ; 728 VOID * štf ; 730 BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & PxeBa£CodePrÙocÞ , NULL , & size , NULL); 731 ià( size =ð0è EFI_UNSUPPORTED ; 733 `DBG_PRT (( L "size=%d", size )); 735 dev_b = ( dev_b_t *) `®loc ( size , EfiLßd”D©a ); 736 ià( dev_b =ð NULL ) { 737 `ERR_PRT (( L "failedo‡llocate handleable")); 738  EFI_OUT_OF_RESOURCES ; 741 ¡©us = BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & PxeBa£CodePrÙocÞ , NULL , & size , ( VOID **) dev_b ); 742 ià( ¡©us !ð EFI_SUCCESS ) { 743 `ERR_PRT (( L "çžedØg‘ hªdËs: %r", ¡©us )); 744 `ä“ ( dev_b ); 745  ¡©us ; 747 ndev = size / ( EFI_HANDLE ); 749  i =0; i < ndev ; i++) { 750 štf = NULL ; 751 `Ãtfs_š¡®l_Úe ( dev_b [ i ]. dev , & štf ); 753 dev_b [ i ]. štf = intf; 756  EFI_SUCCESS ; 757 } } 759 EFI_STATUS 760 $Ãtfs_unš¡®l ( VOID ) 763 Ãtfs_´iv_¡©e_t * nfs ; 764 EFI_STATUS ¡©us ; 765 UINTN i ; 767  i =0; i < ndev ; i++) { 768 ià( dev_b [ i ]. štf =ð NULL ) ; 769 nfs = `FS_PRIVATE ( dev_b [ i ]. štf ); 770 ¡©us = BS -> `Unš¡®lPrÙocÞIÁ”çû ( nfs -> dev , & N‘FsPrÙocÞ , dev_b [ i ]. štf ); 771 ià( `EFI_ERROR ( ¡©us )) { 772 `ERR_PRT (( L "Unš¡®È% ”rÜ: %r", FS_NAME , ¡©us )); 775 `VERB_PRT (3, 776 { EFI_DEVICE_PATH * dp ; CHAR16 * ¡r ; 777 dp = `DeviûP©hFromHªdË ( nfs -> dev ); 778 ¡r = `DeviûP©hToSŒ ( dp ); 779 `Pršt ( L "unš¡®Ëd % Ú %s\n", FS_NAME , ¡r ); 780 `F»ePoÞ ( ¡r ); 783 ià( nfs -> pxe -> Mode -> S¹ed =ð TRUE ènfs->pxe-> `StÝ (nfs->pxe); 785 `ä“ ( dev_b [ i ]. štf ); 787 ià( dev_b è `ä“ (dev_tab); 789  EFI_SUCCESS ; 790 } } @fs/netfs.h 26 #iâdeà __NETLFS_H__ 27  #__NETLFS_H__ ) 29  ~ 30  ~ 32  #NETFS_BOOTFILE_MAXLEN 256 ) 35 EFI_IP_ADDRESS mþn_addr ; 36 EFI_IP_ADDRESS m¤v_addr ; 37 EFI_IP_ADDRESS mÃtmask ; 38 EFI_IP_ADDRESS mgw_addr ; 39 UINT8 mhw_addr [16]; 40 CHAR16 mho¡Çme [255]; 41 CHAR16 mdomašame [255]; 42 CHAR16 mboÙfže [ NETFS_BOOTFILE_MAXLEN ]; 43 BOOLEAN musšg_pxe ; 44 BOOLEAN m¡¬‹d ; 45 BOOLEAN musšg_v6 ; 46 } tÃtfs_šfo_t ; 49 INTERFACE_DECL ( _Ãtfs_š‹rçû_t ); 51  s_Ãtfs_š‹rçû_t { 52 EFI_STATUS (* Ãtfs_Çme )( _Ãtfs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN mmaxËn ); 53 EFI_STATUS (* Ãtfs_Ý’ )( _Ãtfs_š‹rçû_t * mthis , CHAR16 * mÇme , UINTN * mfd ); 54 EFI_STATUS (* Ãtfs_»ad )( _Ãtfs_š‹rçû_t * mthis , UINTN mfd , VOID * mbuf , UINTN * msize ); 55 EFI_STATUS (* Ãtfs_þo£ )( _Ãtfs_š‹rçû_t * mthis , UINTN mfd ); 56 EFI_STATUS (* Ãtfs_šfosize )( _Ãtfs_š‹rçû_t * mthis , UINTN mfd , UINT64 * msize ); 57 EFI_STATUS (* Ãtfs_£ek )( _Ãtfs_š‹rçû_t * mthis , UINTN mfd , UINT64 mÃwpos ); 58 EFI_STATUS (* Ãtfs_qu”y_Ïy” )( _Ãtfs_š‹rçû_t * mthis , UINT16 m£rv”_ty³ , UINT16 mÏy” , UINTN mmaxËn , CHAR16 * m¡r ); 59 EFI_STATUS (* Ãtfs_g‘šfo )( _Ãtfs_š‹rçû_t * mthis , Ãtfs_šfo_t * mšfo ); 60 } tÃtfs_š‹rçû_t ; 62  #NETFS_PROTOCOL \ 63 { 0x6746de4f, 0xcc1e, 0x4c5f, {0xb7, 0xfb, 0x85, 0x6a, 0x5d, 0x69, 0x0f, 0x06} } ) 65 EFI_STATUS Ãtfs_š¡®l ( VOID ); 66 EFI_STATUS Ãtfs_unš¡®l ( VOID ); @getopt.c 29  ~ 30  ~ 33  #DASH ( CHAR16 )'-' ) 34  #COLON ( CHAR16 )':' ) 35  #EOS ( CHAR16 )'\0' ) 36  #BADCH ( INTN )'?' ) 37  #BADARG ( INTN )':' ) 39 CHAR16 * SŒChr ( IN cÚ¡ CHAR16 * s , INT16 c ); 41 CHAR16 * gO±¬g ; 42 INTN gO±šd = 1; 43 INTN gO±Ýt ; 54 INTN 55 $G‘Ýt ( INTN ¬gc , CHAR16 *cÚ¡ ¬gv [], cÚ¡ CHAR16 * Ýt¡ršg ) 57  CHAR16 * cur_chr = NULL ; 58 CHAR16 * Ýt ; 60 ià( O±šd >ð ¬gc ) { 61 cur_chr = NULL ; 64 ià( cur_chr =ð NULL || *cur_ch¸=ð EOS ) { 65 cur_chr = ¬gv [ O±šd ]; 66 ià(* cur_chr ++ !ð DASH ) { 67 cur_chr = NULL ; 70 ià(* cur_chr =ð DASH ) { 71 cur_chr = NULL ; 72 O±šd ++; 76 O±Ýt = * cur_chr ++; 77 Ýt = `SŒChr ( Ýt¡ršg , O±Ýt ); 78 ià(! Ýt ) { 79 `Pršt ( L "%s: iÎeg® o±iÚ -- %c\n", ¬gv [0], O±Ýt ); 80 ià(* cur_chr =ð EOS è O±šd ++; 81  BADCH ; 83 ià(*( Ýt +1è!ð COLON ) { 84 O±¬g = NULL ; 85 ià(* cur_chr =ð EOS è O±šd ++; 87 ià(* cur_chr ) { 88 O±¬g = cur_chr ; 89 } iàÐ++ O±šd >ð ¬gc ) { 90 `Pršt ( L "%s: o±iÚ `%s'„equœe ª‡rgum’t\n", ¬gv [0],‡rgv[ O±šd -1]), 91 cur_chr = NULL ; 92  BADARG ; 94 O±¬g = ¬gv [ O±šd ]; 96 O±šd ++; 98  O±Ýt ; 99 } } @getopt.h 25 #iâdeà __EFI_GETOPT_H__ 26  #__EFI_GETOPT_H__ ) 28 CHAR16 * O±¬g ; 29 INTN O±šd , O±Ýt ; 31 INTN G‘Ýt (INTN ¬gc , CHAR16 *cÚ¡ ¬gv [], cÚ¡ CHAR16 * Ýt¡ršg ); @glue_ext2fs.c 25  ~ 26  ~ 28  ~"glue_ext2fs.h " 29  ~"fs/ext2fs.h " 30  ~"¡rÝs.h " 33  INTN glue ( fžeÝs_t * this , VOID * štf ); 37 fžeÝs_fs_t gext2fs_glue = { EXT2FS_PROTOCOL , glue , ext2fs_š¡®l , ext2fs_unš¡®l }; 39  EFI_STATUS 40 $ext2fs_šfosize ( ext2fs_š‹rçû_t * this , fÝs_fd_t fd , UINT64 * sz ) 42 ext2fs_¡©_t ¡ ; 43 EFI_STATUS ¡©us ; 45 ià( this =ð NULL || sz =ðNULLè EFI_INVALID_PARAMETER ; 47 ¡©us = this -> `ext2fs_f¡© Ñhis, fd , & ¡ ); 48 ià( ¡©us !ð EFI_SUCCESS )  status; 50 * sz = ( UINT64 ) ¡ . ¡_size ; 52  EFI_SUCCESS ; 53 } } 55  INTN 56 $glue ( fžeÝs_t * å , VOID * štf ) 58 ext2fs_š‹rçû_t * ext2fs = (ext2fs_š‹rçû_ˆ*) štf ; 61 å -> štf = intf; 63 å -> Ý’ = ( fÝs_Ý’_t ) ext2fs -> ext2fs_Ý’ ; 64 å -> »ad = ( fÝs_»ad_t ) ext2fs -> ext2fs_»ad ; 65 å -> þo£ = ( fÝs_þo£_t ) ext2fs -> ext2fs_þo£ ; 66 å -> šfosize = ( fÝs_šfosize_t ) ext2fs_šfosize ; 67 å -> £ek = ( fÝs_£ek_t ) ext2fs -> ext2fs_£ek ; 70 ext2fs -> `ext2fs_Çme Óxt2fs, å -> Çme , FILEOPS_NAME_MAXLEN ); 73 } } @glue_ext2fs.h 26 #iâdeà __GLUE_EXT2FS_H__ 27  #__GLUE_EXT2FS_H__ ) 29  ~"fžeÝs.h " 31 fžeÝs_fs_t ext2fs_glue ; @glue_localfs.c 25  ~ 26  ~ 28  ~"fs/loÿlfs.h " 29  ~"glue_loÿlfs.h " 30  ~"¡rÝs.h " 31  ~"–žo.h " 33  INTN glue ( fžeÝs_t * this , VOID * štf ); 37 fžeÝs_fs_t gloÿlfs_glue = { LOCALFS_PROTOCOL , glue , loÿlfs_š¡®l , loÿlfs_unš¡®l }; 40  CHAR16 gloÿlfs_deçuÉ_·th [ FILENAME_MAXLEN ]; 58  VOID 59 $£t_deçuÉ_·th ( CHAR16 * ¥Œ ) 61  #is_£p ( h è(h =ð CHAR_SLASH || h =ð CHAR_BACKSLASH ) ) 62 CHAR16 * d±r , * Ï¡_£p = NULL ; 63 UINTN Ën = FILENAME_MAXLEN - 1; 64 UINTN Ï¡_was_£p = 0; 65 CHAR16 c ; 67 d±r = loÿlfs_deçuÉ_·th ; 69  Ën -- && * ¥Œ ) { 70 c = ¥Œ [0]; 72 ià( `is_£p ( c )) { 73 ià( Ï¡_was_£p ) { 74 ¥Œ ++; 77 c = CHAR_BACKSLASH ; 78 Ï¡_was_£p = 1; 79 Ï¡_£p = d±r ; 81 Ï¡_was_£p = 0; 83 * d±r ++ = c ; 84 ¥Œ ++; 86 ià( Ï¡_£p ) 87 *++ Ï¡_£p = CHAR_NULL ; 89 * d±r = CHAR_NULL ; 91 `DBG_PRT (( L "loÿlfs_deçuÉ_·th=%s\n", loÿlfs_deçuÉ_·th )); 92 } } 99  #LOCALFS_DEFAULT_KERNEL L "vmlšux" ) 100  #LOCALFS_DEFAULT_CONFIG L "–žo.cÚf" ) 101  EFI_STATUS 102 $loÿlfs_£tdeçuÉs ( VOID * this , cÚfig_fže_t * cÚfig , CHAR16 * kÇme , UINTN maxËn , CHAR16 * dev·th ) 104 `SŒnCpy ( kÇme , LOCALFS_DEFAULT_KERNEL , maxËn -1); 105 kÇme [ maxËn -1] = CHAR_NULL ; 107 `SŒnCpy ( cÚfig [0]. âame , LOCALFS_DEFAULT_CONFIG , maxËn -1); 108 cÚfig [0]. âame [ maxËn -1] = CHAR_NULL ; 110 `£t_deçuÉ_·th ( dev·th ); 112  EFI_SUCCESS ; 113 } } 115  EFI_STATUS 116 $loÿlfs_g‘deçuÉ_·th ( CHAR16 * ·th , UINTN maxËn ) 118 ià( maxËn <ð `SŒL’ ( loÿlfs_deçuÉ_·th )è EFI_BUFFER_TOO_SMALL ; 120 `SŒCpy ( ·th , loÿlfs_deçuÉ_·th ); 121  EFI_SUCCESS ; 122 } } 131  EFI_STATUS 132 $glue_Ý’ ( VOID * štf , CHAR16 * Çme , fÝs_fd_t * fd ) 134 CHAR16 * p ; 135 loÿlfs_š‹rçû_t * loÿlfs = (loÿlfs_š‹rçû_ˆ*) štf ; 136 CHAR16 fuÎÇme [ FILENAME_MAXLEN ]; 141  p ð Çme ; *°!ð CHAR_NULL ;…++) { 142 ià(* p =ð CHAR_SLASH è*°ð CHAR_BACKSLASH ; 144 ià( Çme [0] !ð CHAR_BACKSLASH && loÿlfs_deçuÉ_·th [0] !ð CHAR_NULL ) { 145 ià( `SŒL’ ( loÿlfs_deçuÉ_·th è+ SŒL’( Çme è+ 1 >ð FILENAME_MAXLEN ) 146  EFI_INVALID_PARAMETER ; 148 `SŒCpy ( fuÎÇme , loÿlfs_deçuÉ_·th ); 149 `SŒC© ( fuÎÇme , Çme ); 150 Çme = fuÎÇme ; 152  loÿlfs -> `loÿlfs_Ý’ ( štf , Çme , fd ); 153 } } 155  INTN 156 $glue ( fžeÝs_t * å , VOID * štf ) 158 loÿlfs_š‹rçû_t * loÿlfs = (loÿlfs_š‹rçû_ˆ*) štf ; 160 å -> Ý’ = glue_Ý’ ; 161 å -> »ad = ( fÝs_»ad_t ) loÿlfs -> loÿlfs_»ad ; 162 å -> þo£ = ( fÝs_þo£_t ) loÿlfs -> loÿlfs_þo£ ; 163 å -> šfosize = ( fÝs_šfosize_t ) loÿlfs -> loÿlfs_šfosize ; 164 å -> £ek = ( fÝs_£ek_t ) loÿlfs -> loÿlfs_£ek ; 165 å -> £tdeçuÉs = ( fÝs_£tdeçuÉs_t ) loÿlfs_£tdeçuÉs ; 166 å -> g‘deçuÉ_·th = ( fÝs_g‘deçuÉ_·th_t ) loÿlfs_g‘deçuÉ_·th ; 167 å -> štf = intf; 170 loÿlfs -> `loÿlfs_Çme Öoÿlfs, å -> Çme , FILEOPS_NAME_MAXLEN ); 173 } } @glue_localfs.h 26 #iâdeà __GLUE_LOCALFS_H__ 27  #__GLUE_LOCALFS_H__ ) 29  ~"fžeÝs.h " 31 fžeÝs_fs_t loÿlfs_glue ; @glue_netfs.c 25  ~ 26  ~ 28  ~"glue_Ãtfs.h " 29  ~"fs/Ãtfs.h " 30  ~"¡rÝs.h " 32  ~"–žo.h " 33  ~"v¬s.h " 40  INTN glue ( fžeÝs_t * this , VOID * štf ); 43 fžeÝs_fs_t gÃtfs_glue = { NETFS_PROTOCOL , glue , Ãtfs_š¡®l , Ãtfs_unš¡®l }; 46  #NETFS_DEFAULT_KERNEL L "vmlšux" ) 47  #NETFS_DEFAULT_CONFIG L "–žo.cÚf" ) 48  #NETFS_DEFAULT_SERVER_TYPE EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT ) 51  CHAR16 gÃtfs_deçuÉ_·th [ FILENAME_MAXLEN ]; 58  #NETFS_CONFIG_LAYER 1 ) 59  #NETFS_KERNEL_LAYER 2 ) 61  CHAR16 * ghexa = L "0123456789ABCDEF"; 63  VOID 64 $cÚv”t_2hex ( UINT8 * , INTN l , CHAR16 * ¡r ) 66 UINTN i ; 68  i =0; i < l ; i++) { 69 ¡r [2* i ] = hexa [( [i] & 0xf0)>>4]; 70 ¡r [2* i +1] = hexa [ [i] & 0x0f]; 72 } } 74  VOID 75 $cÚv”t_2dec¡r ( UINT8 * , INTN l , CHAR16 * ¡r ) 77 UINTN i , j ; 78 UINTN v , v® ; 80  i =0, j =0; i < l ; i++) { 81 v® = [ i ]; 82 v = v® / 100; 83 ià( v ) { 84 ¡r [ j ++] = L '0'+ v ; 86 v® = val % 100; 87 v = v® / 10; 88 ià( v || [ i ] >= 100) { 89 ¡r [ j ++] = L '0'+ v ; 92 v = v® % 10; 93 ¡r [ j ++] = L '0'+ v ; 94 ià( i < l -1è ¡r [ j ++] = L '.'; 96 ¡r [ j ] = CHAR_NULL ; 97 } } 100 $Ãtfs_£t_deçuÉ_·th ( Ãtfs_š‹rçû_t * Ãtfs , Ãtfs_šfo_t * šfo ) 102 INTN Ën ; 104 `SŒnCpy ( Ãtfs_deçuÉ_·th , šfo -> boÙfže , FILENAME_MAXLEN ); 106 Ën = `SŒL’ ( Ãtfs_deçuÉ_·th ) - 1; 108  Ën >= 0) { 109 ià( Ãtfs_deçuÉ_·th [ Ën ] =ð CHAR_SLASH ||‚‘fs_deçuÉ_·th[Ën] =ð CHAR_BACKSLASH ) ; 110 Ën --; 112 Ãtfs_deçuÉ_·th [ Ën +1] = CHAR_NULL ; 114 `DBG_PRT (( L "Ãtfs_deçuÉ_·th=%s\n", Ãtfs_deçuÉ_·th )); 116  EFI_SUCCESS ; 117 } } 119  EFI_STATUS 120 $Ãtfs_£tdeçuÉs ( VOID * štf , cÚfig_fže_t * cÚfig , CHAR16 * kÇme , UINTN maxËn , CHAR16 * dev·th ) 122 Ãtfs_š‹rçû_t * Ãtfs = (Ãtfs_š‹rçû_ˆ*) štf ; 123 Ãtfs_šfo_t šfo ; 124 EFI_STATUS ¡©us ; 125 UINT8 * addr ; 126 UINTN m ; 127 CHAR16 _v¬ [64], ¡r [64]; 128 UINT8 * ; 130 ià( cÚfig =ð NULL || kÇme =ðNULL || maxËn < 1è EFI_INVALID_PARAMETER ; 132 Ãtfs -> `Ãtfs_g‘šfo Ò‘fs, & šfo ); 134 m = šfo . usšg_v6 ? 16 : 4; 135 addr = šfo . usšg_v6 ? info. þn_addr . v6 . Addr : info.þn_addr. v4 .Addr; 137 `cÚv”t_2dec¡r ( addr , m , _v¬ ); 138 `£t_v¬ ( VAR_NETFS_IPADDR , _v¬ ); 140 = šfo . usšg_v6 ? info. Ãtmask . v6 . Addr : info.Ãtmask. v4 .Addr; 141 `cÚv”t_2dec¡r ( , m , ¡r ); 142 `£t_v¬ ( VAR_NETFS_NETMASK , ¡r ); 144 = šfo . usšg_v6 ? info. gw_addr . v6 . Addr : info.gw_addr. v4 .Addr; 145 `cÚv”t_2dec¡r ( , m , ¡r ); 146 `£t_v¬ ( VAR_NETFS_GATEWAY , ¡r ); 148 `£t_v¬ ( VAR_NETFS_HOSTNAME , šfo . ho¡Çme ); 149 `£t_v¬ ( VAR_NETFS_DOMAINAME , šfo . domašame ); 151 ià( šfo . usšg_pxe ) { 152 ¡©us = Ãtfs -> `Ãtfs_qu”y_Ïy” Ò‘fs, 0, NETFS_CONFIG_LAYER , maxËn , cÚfig [0]. âame ); 153 ià( `EFI_ERROR ( ¡©us )) { 154 `SŒnCpy ( cÚfig [0]. âame , NETFS_DEFAULT_CONFIG , maxËn -1); 155 cÚfig [0]. âame [ maxËn -1] = CHAR_NULL ; 158 ¡©us = Ãtfs -> `Ãtfs_qu”y_Ïy” Ò‘fs, 0, NETFS_KERNEL_LAYER , maxËn , kÇme ); 159 ià( `EFI_ERROR ( ¡©us )) { 160 `SŒnCpy ( kÇme , NETFS_DEFAULT_KERNEL , maxËn -1); 161 kÇme [ maxËn -1] = CHAR_NULL ; 164 #ifdeà ENABLE_MACHINE_SPECIFIC_NETCONFIG 166 #ià `defšed ( CONFIG_Ÿ64 ) 167  #CONFIG_ARCH_EXTENSION L "-Ÿ64.cÚf\0" ) 168 #–ià `defšed ( CONFIG_Ÿ32 ) 169  #CONFIG_ARCH_EXTENSION L "-Ÿ64.cÚf\0" ) 174  #CONFIG_EXTENSION L ".cÚf\0" ) 179 `cÚv”t_2hex ( addr , m , ¡r ); 180 `SŒnCpy ( cÚfig [0]. âame , ¡r , maxËn -1); 181 `SŒnCpy ( cÚfig [0]. âame +8, CONFIG_EXTENSION , 6); 183 `SŒnCpy ( cÚfig [1]. âame , ¡r , maxËn -1); 184 `SŒnCpy ( cÚfig [1]. âame +6, CONFIG_ARCH_EXTENSION , 11); 186 `SŒnCpy ( cÚfig [2]. âame , ¡r , maxËn -1); 187 `SŒnCpy ( cÚfig [2]. âame +6, CONFIG_EXTENSION , 6); 189 `SŒnCpy ( cÚfig [3]. âame , ¡r , maxËn -1); 190 `SŒnCpy ( cÚfig [3]. âame +4, CONFIG_ARCH_EXTENSION , 11); 192 `SŒnCpy ( cÚfig [4]. âame , ¡r , maxËn -1); 193 `SŒnCpy ( cÚfig [4]. âame +4, CONFIG_EXTENSION , 6); 195 `SŒnCpy ( cÚfig [5]. âame , ¡r , maxËn -1); 196 `SŒnCpy ( cÚfig [5]. âame +2, CONFIG_ARCH_EXTENSION , 11); 198 `SŒnCpy ( cÚfig [6]. âame , ¡r , maxËn -1); 199 `SŒnCpy ( cÚfig [6]. âame +2, CONFIG_EXTENSION , 6); 201 `SŒnCpy ( cÚfig [0]. âame , NETFS_DEFAULT_CONFIG , maxËn -1); 202 cÚfig [0]. âame [ maxËn -1] = CHAR_NULL ; 204 `SŒnCpy ( kÇme , NETFS_DEFAULT_KERNEL , maxËn -1); 205 kÇme [ maxËn -1] = CHAR_NULL ; 212 `Ãtfs_£t_deçuÉ_·th ( Ãtfs , & šfo ); 214  EFI_SUCCESS ; 215 } } 217  EFI_STATUS 218 $Ãtfs_g‘deçuÉ_·th ( CHAR16 * ·th , UINTN maxËn ) 220 ià( maxËn <ð `SŒL’ ( Ãtfs_deçuÉ_·th )è EFI_BUFFER_TOO_SMALL ; 222 `SŒCpy ( ·th , Ãtfs_deçuÉ_·th ); 223  EFI_SUCCESS ; 224 } } 227  EFI_STATUS 228 $glue_Ý’ ( VOID * štf , CHAR16 * Çme , fÝs_fd_t * fd ) 230 Ãtfs_š‹rçû_t * Ãtfs = (Ãtfs_š‹rçû_ˆ*) štf ; 231 CHAR16 fuÎÇme [ FILENAME_MAXLEN ]; 233 ià( Çme [0] !ð CHAR_SLASH &&‚ame[0] !ð CHAR_BACKSLASH && Ãtfs_deçuÉ_·th [0] !ð CHAR_NULL ) { 234 ià( `SŒL’ ( Ãtfs_deçuÉ_·th è+ SŒL’( Çme è+ 1 >ð FILENAME_MAXLEN ) 235  EFI_INVALID_PARAMETER ; 237 `SŒCpy ( fuÎÇme , Ãtfs_deçuÉ_·th ); 238 `SŒC© ( fuÎÇme , Çme ); 239 Çme = fuÎÇme ; 241  Ãtfs -> `Ãtfs_Ý’ ( štf , Çme , fd ); 242 } } 244  INTN 245 $glue ( fžeÝs_t * å , VOID * štf ) 247 Ãtfs_š‹rçû_t * Ãtfs = (Ãtfs_š‹rçû_ˆ*) štf ; 250 å -> štf = intf; 252 å -> Ý’ = glue_Ý’ ; 253 å -> »ad = ( fÝs_»ad_t ) Ãtfs -> Ãtfs_»ad ; 254 å -> þo£ = ( fÝs_þo£_t ) Ãtfs -> Ãtfs_þo£ ; 255 å -> šfosize = ( fÝs_šfosize_t ) Ãtfs -> Ãtfs_šfosize ; 256 å -> £ek = ( fÝs_£ek_t ) Ãtfs -> Ãtfs_£ek ; 257 å -> £tdeçuÉs = ( fÝs_£tdeçuÉs_t ) Ãtfs_£tdeçuÉs ; 258 å -> g‘deçuÉ_·th = ( fÝs_g‘deçuÉ_·th_t ) Ãtfs_g‘deçuÉ_·th ; 259 å -> štf = intf; 262 Ãtfs -> `Ãtfs_Çme Ò‘fs, å -> Çme , FILEOPS_NAME_MAXLEN ); 265 } } @glue_netfs.h 26 #iâdeà __GLUE_NETFS_H__ 27  #__GLUE_NETFS_H__ ) 29  ~"fžeÝs.h " 31 fžeÝs_fs_t Ãtfs_glue ; @gunzip.c 32  ~ 33  ~ 35  ~"–žo.h " 37  ~"gz.h " 39  #LD_NAME L "gunz" ) 41  #memz”o ( s , n è `Mem£t (( VOID *)(s), 0, (n)) ) 42  #memýy ( a , b , n è `Memýy (( VOID *)×),(b),Ò)) ) 45  #WSIZE 0x8000 ) 50  #OF ( ¬gs è ) args 51  #FUNC_STATIC  ) 53  tuch ; 54  tush ; 55  tulg ; 62  uch * gšbuf ; 63  uch * gwšdow ; 65  VOID * goutbuf ; 66 * gouŒ ; 67  goutsize ; 69  gš±r = 0; 70  goutút = 0; 72  #g‘_by‹ (è šbuf [ š±r ++] ) 75 #ifdeà INFLATE_DEBUG 76  #As£¹ ( cÚd , msg è{if(!(cÚd)è `”rÜ (msg);} ) 77  g¡d”r ; 78  #T¿û ( x è `Pršt ( L "lš%d:\n", __LINE__ ); ) 79  #T¿ûv ( x è{ià( v”bo£ è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 80  #T¿ûvv ( x è{ià( v”bo£ >1è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 81  #T¿ûc ( c , x è{ià( v”bo£ && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 82  #T¿ûcv ( c , x è{ià( v”bo£ >1 && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 84  #As£¹ ( cÚd , msg ) ) 85  #T¿û ( x ) ) 86  #T¿ûv ( x ) ) 87  #T¿ûvv ( x ) ) 88  #T¿ûc ( c , x ) ) 89  #T¿ûcv ( c , x ) ) 92  æush_wšdow (); 93  ”rÜ (* m ); 94  gby‹s_out ; 96  ”rÜ (* m ); 98  #gz_m®loc ( size è(*) `®loc (size, 0) ) 99  #gz_ä“ ( wh”e è `ä“ (wh”e) ) 101  ~"šæ©e.c " 113 $updüc (* s ,  n ) 115  c ; 118 c = üc ; 119  n --) { 120 c = üc_32_b [(()ø^ (* s ++)) & 0xff] ^ (c >> 8); 122 üc = c ; 124 } } 130 $þ—r_bufs () 132 outút = 0; 133 š±r = 0; 134 } } 141 $æush_wšdow () 147 ià(! outút || by‹s_out + outúˆ> outsize ) 150 `updüc ( wšdow , outút ); 152 `Memýy ( ouŒ , wšdow , outút ); 153 ouŒ +ð outút ; 154 by‹s_out +ð outút ; 156 outút = 0; 157 } } 160 $”rÜ (* x ) 162 `ERR_PRT (( L "% : %a", LD_NAME , x )); 164 } } 166  INT32 167 $decom´ess ( VOID ) 169 INT32 »t ; 171 `þ—r_bufs (); 172 `makeüc (); 173 `Pršt ( L "Uncompressing... "); 174 »t = `gunz (); 175 ià( »t =ð0è `Pršt ( L "done\n"); 176  »t == 0 ? 0 : -1; 177 } } 180 $gunz_image ( memdesc_t * image ) 182 UINTN pgút ; 184 šbuf = image -> ¡¬t_addr ; 189 outsize = šbuf [ image -> size - 1] << 24 | inbuf[image->size - 2] << 16 | 190 šbuf [ image -> size - 3] << 8 | inbuf[image->size - 4]; 192 pgút = `EFI_SIZE_TO_PAGES ( outsize ); 194 outbuf = `®loc_·ges ( pgút , EfiLßd”D©a , AÎoÿ‹AnyPages , 0); 195 ià( outbuf =ð NULL ) { 196 `ERR_PRT (( L "% :‡Îoÿ‹ ouuˆbufã¸çžed\n", LD_NAME )); 199 ouŒ = outbuf ; 201 wšdow = (*) `®loc ( WSIZE , 0); 202 ià( wšdow =ð NULL ) { 203 `ERR_PRT (( L "% :‡Îoÿ‹ ouuˆwšdow fažed\n", LD_NAME )); 204 `ä“ ( outbuf ); 208 by‹s_out = 0; 210 ià( `decom´ess () != 0) { 211 `ä“ ( wšdow ); 212 `ä“ ( outbuf ); 213  ELILO_LOAD_ERROR ; 216 `ä“ ( wšdow ); 217 `ä“ ( image -> ¡¬t_addr ); 219 image -> ¡¬t_addr = outbuf ; 220 image -> size = outsize ; 221 image -> pgút =…gcnt; 223  ELILO_LOAD_SUCCESS ; 224 } } @gzip.h 26 #iâdeà __GZIP_H__ 27  #__GZIP_H__ ) 29  gunz_image ( memdesc_t *); 30  gunz_k”Ãl ( fÝs_fd_t , kdesc_t *); 33  #ASCII_FLAG 0x01 ) 34  #CONTINUATION 0x02 ) 35  #EXTRA_FIELD 0x04 ) 36  #ORIG_NAME 0x08 ) 37  #COMMENT 0x10 ) 38  #ENCRYPTED 0x20 ) 39  #RESERVED 0xC0 ) 47  šlše  48 $gz_´obe (* buf ,  size ) 50 ià( size < 4)  -1; 52 ià( buf [0] != 037 || 53 (( buf [1] != 0213) && (buf[1] != 0236)))  -1; 56 ià( buf [2] != 8)  -1; 58 ià(( buf [3] & ENCRYPTED ) != 0)  -1; 60 ià(( buf [3] & CONTINUATION ) != 0)  -1; 62 ià(( buf [3] & RESERVED ) != 0)  -1; 65 } } @ia32/bin_to_h.c 1  ~<¡dio.h > 2  ~<¡dlib.h > 5 $maš () 7  n = 0; 8  c ; 10 `´štf ("UINT8„mswitch_image[] = {\n"); 12 ( c = `g‘ch¬ ()è!ð EOF ) { 13 `´štf ("0x%02x,%s", 14 c & 0xFF, 15 (++ n & 0x07) ? " " : "\n"); 18 ià( n & 0x07) { 19 `´štf ("\n"); 22 `´štf ( 27 } } @ia32/bzimage.c 28  ~ 29  ~ 31  ~"–žo.h " 32  ~"lßd”.h " 34 boÙ_·¿ms_t * g·¿m_¡¬t = NULL ; 35 UINTN g·¿m_size = 0; 37 UINTN gk”Ãl_size = 0x200000; 39  INTN 40 $bzImage_´obe ( CHAR16 * kÇme ) 42 EFI_STATUS efi_¡©us ; 43 UINTN size ; 44 fÝs_fd_t fd ; 45 UINT8 boÙ£ù [512]; 47 `DBG_PRT (( L "probe_bzImage_boot()\n")); 49 ià(! kÇme ) { 50 `ERR_PRT (( L "kÇm=ð%xh", kÇme )); 51 `ä“_kmem (); 58 `DBG_PRT (( L "Ý’šg %s...\n", kÇme )); 60 efi_¡©us = `fÝs_Ý’ ( kÇme , & fd ); 61 ià( `EFI_ERROR ( efi_¡©us )) { 62 `ERR_PRT (( L "Could‚Ù o³À%s.", kÇme )); 63 `ä“_kmem (); 70 `DBG_PRT (( L "\nreading boot sector...\n")); 72 size =  boÙ£ù ; 73 efi_¡©us = `fÝs_»ad ( fd , boÙ£ù , & size ); 74 ià( `EFI_ERROR ( efi_¡©us è|| size !ð boÙ£ù ) { 75 `ERR_PRT (( L "Could‚Ù„—d boÙ seùÜ from %s.", kÇme )); 76 `fÝs_þo£ ( fd ); 77 `ä“_kmem (); 84 ià( boÙ£ù [0x1FE] != 0x55 || bootsect[0x1FF] != 0xAA) { 85 `ERR_PRT (( L "% i nÙ‡ bzImagk”ÃÈimage.\n", kÇme )); 86 `fÝs_þo£ ( fd ); 87 `ä“_kmem (); 95 `DBG_PRT (( L "boÙ£ù[1F1h] =ð%d s‘u°£ùÜs\n", boÙ£ù [0x1F1])); 97 ià( boÙ£ù [0x1F1] < 1 || bootsect[0x1F1] > 64) { 98 `ERR_PRT (( L "%s is‚ot‡ valid bzImage kernel image.", 99 kÇme )); 100 `fÝs_þo£ ( fd ); 101 `ä“_kmem (); 108 `DBG_PRT (( L "reading setup data...\n")); 110 ·¿m_size = ( boÙ£ù [0x1F1] + 1) * 512; 111 ·¿m_¡¬t = `®loc ( ·¿m_size , EfiLßd”D©a ); 113 `DBG_PRT (( L "·¿m_size=%d…¬am_¡¬t=%x", ·¿m_size , ·¿m_¡¬t )); 115 ià(! ·¿m_¡¬t ) { 116 `ERR_PRT (( L "Could‚ot‡llocate %d bytes of setup data.", 117 ·¿m_size )); 118 `fÝs_þo£ ( fd ); 119 `ä“_kmem (); 123 `CÝyMem ( ·¿m_¡¬t , boÙ£ù ,  bootsect); 125 size = ·¿m_size - 512; 126 efi_¡©us = `fÝs_»ad ( fd , (( UINT8 *) ·¿m_¡¬t è+ 512, & size ); 128 ià( `EFI_ERROR ( efi_¡©us è|| size !ð ·¿m_size - 512) { 129 `ERR_PRT (( L "Could‚ot„ead %d bytes of setup data.", 130 ·¿m_size - 512)); 131 `ä“ ( ·¿m_¡¬t ); 132 ·¿m_¡¬t = NULL ; 133 ·¿m_size = 0; 134 `fÝs_þo£ ( fd ); 135 `ä“_kmem (); 143 UINT8 * c = ((UINT8 *) ·¿m_¡¬t )+514; 144 `DBG_PRT (( L "param_start(c=%x): %c-%c-%c-%c", 145 c , ( CHAR16 )c[0],(CHAR16) c[1], (CHAR16)c[2], (CHAR16)c[3])); 147 ià( `Com·»Mem ((( UINT8 *) ·¿m_¡¬t ) + 514, "HdrS", 4)) { 148 `ERR_PRT (( L "%s does‚ot have‡ setup signature.", 149 kÇme )); 150 `ä“ ( ·¿m_¡¬t ); 151 ·¿m_¡¬t = NULL ; 152 ·¿m_size = 0; 153 `fÝs_þo£ ( fd ); 154 `ä“_kmem (); 161 ià( `®loc_kmem ( k”Ãl_¡¬t , `EFI_SIZE_TO_PAGES ( k”Ãl_size ))) { 162 `ERR_PRT (( L "Could‚ot‡llocate kernel memory.")); 165 `VERB_PRT (3, `Pršt ( L "kernel_start: 0x%x kernel_size: %d\n", 166 k”Ãl_¡¬t , k”Ãl_size )); 172 `DBG_PRT (( L "reading kernel image...\n")); 174 size = k”Ãl_size ; 175 efi_¡©us = `fÝs_»ad ( fd , k”Ãl_¡¬t , & size ); 176 ià( `EFI_ERROR ( efi_¡©us è|| size < 0x10000) { 177 `ERR_PRT (( L "E¼Ü„—dšg k”ÃÈimag%s.", kÇme )); 178 `ä“ ( ·¿m_¡¬t ); 179 ·¿m_¡¬t = NULL ; 180 ·¿m_size = 0; 181 `fÝs_þo£ ( fd ); 182 `ä“_kmem (); 186 `DBG_PRT (( L "k”ÃÈimag»ad: %d by‹s, %d Kby‹s\n", size , size / 1024)); 192 `fÝs_þo£ ( fd ); 194 } } 197  INTN 198 $bzImage_lßd ( CHAR16 * kÇme , kdesc_t * kd ) 200 `DBG_PRT (( L "load_bzImage_boot()\n")); 202 ià(! kÇme || ! kd ) { 203 `ERR_PRT (( L "kÇme=0x%x kd=0x%x", kÇme , kd )); 204 `ä“ ( ·¿m_¡¬t ); 205 ·¿m_¡¬t = NULL ; 206 ·¿m_size = 0; 207 `ä“_kmem (); 210 kd -> k¡¬t = kd-> k’Œy = k”Ãl_¡¬t ; 211 kd -> k’d = (( UINT8 *)kd-> k¡¬t è+ k”Ãl_size ; 213 `DBG_PRT (( L "k¡¬t=0x%x k’Œy=0x%x k’d=0x%x\n", kd -> k¡¬t , kd-> k’Œy , kd-> k’d )); 216 } } 219 lßd”_Ýs_t gbzimage_lßd” = { 220 NULL , 221 L "bzImage_loader", 222 & bzImage_´obe , 223 & bzImage_lßd @ia32/config.c 27  ~ 28  ~ 30  ~"–žo.h " 31  ~"cÚfig.h " 32  ~"´iv©e.h " 35 UINTN mËgacy_ä“_boÙ ; 36 } tŸ32_glob®_cÚfig_t ; 39  Ÿ32_glob®_cÚfig_t gŸ32_gcÚf ; 41  cÚfig_ÝtiÚ_t gsysd•s_glob®_ÝtiÚs []={ 42 { OPT_BOOL , OPT_GLOBAL , L "Ëgacy-ä“", NULL , NULL, & Ÿ32_gcÚf . Ëgacy_ä“_boÙ } 53 INTN 54 $sysd•s_´–oÝ_aùiÚs ( EFI_HANDLE dev , CHAR16 ** ¬gv , INTN ¬gc , INTN šdex , EFI_HANDLE image ) 57 } } 59  #IA32_CMDLINE_OPTIONS L "" ) 61 CHAR16 * 62 $sysd•s_g‘_cmdlše_Ýts ( VOID ) 64  IA32_CMDLINE_OPTIONS ; 65 } } 67 INTN 68 $sysd•s_g‘Ýt ( INTN c , INTN Ýtšd , CHAR16 * Ýrg ) 71 } } 73 VOID 74 $sysd•s_´št_cmdlše_Ýts ( VOID ) 76 } } 79 INTN 80 $Ÿ32_u£_Ëgacy_ä“_boÙ ( VOID ) 82  Ÿ32_gcÚf . Ëgacy_ä“_boÙ ? 1 : 0; 83 } } 85 INTN 86 $sysd•s_»gi¡”_ÝtiÚs ( VOID ) 88 INTN »t ; 90 »t = `»gi¡”_cÚfig_ÝtiÚs ( sysd•s_glob®_ÝtiÚs , 91 ( sysd•s_glob®_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 92 OPTIONS_GROUP_GLOBAL ); 95 ià( »t == -1 ) „et; 97 »t = `»gi¡”_cÚfig_ÝtiÚs ( sysd•s_image_ÝtiÚs , 98 ( sysd•s_image_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 99 OPTIONS_GROUP_IMAGE ); 102  »t ; 103 } } @ia32/gzip.c 29  ~ 30  ~ 32  ~"–f.h " 33  ~"–žo.h " 34  ~"gz.h " 35  ~"´iv©e.h " 37  #LD_NAME L "gz_Ÿ32" ) 39  #memz”o ( s , n è `Mem£t (( VOID *)(s), 0, (n)) ) 40  #memýy ( a , b , n è `Memýy (( VOID *)×),(b),Ò)) ) 43  #WSIZE 0x8000 ) 46  #INBUFSIZE 0x8000 ) 52  #OF ( ¬gs è ) args 53  #FUNC_STATIC  ) 55  tuch ; 56  tush ; 57  tulg ; 60  s£gm’t { 61  maddr ; 62  moff£t ; 63  msize ; 64  mbss_sz ; 65 UINT8 mæags ; 66 } t£gm’t_t ; 68  #CHUNK_FL_VALID 0x1 ) 69  #CHUNK_FL_LOAD 0x2 ) 71  #CHUNK_CAN_LOAD ( n è chunks [Ò)]. æags |ð CHUNK_FL_LOAD ) 72  #CHUNK_NO_LOAD ( n è chunks [Ò)]. æags &ð~ CHUNK_FL_LOAD ) 73  #CHUNK_IS_LOAD ( n è( chunks [Ò)]. æags & CHUNK_FL_LOAD ) ) 75  #CHUNK_VALIDATE ( n è chunks [Ò)]. æags |ð CHUNK_FL_VALID ) 76  #CHUNK_INVALIDATE ( n è chunks [Ò)]. æags = 0 ) 77  #CHUNK_IS_VALID ( n è( chunks [Ò)]. æags & CHUNK_FL_VALID ) ) 84  £gm’t_t * gchunks ; 85  £gm’t_t * gcur_chunk ; 86  UINTN gnchunks ; 87  UINTN gchunk ; 88  UINTN gšput_fd ; 89  VOID * gk”Ãl_’Œy , * gk”Ãl_ba£ , * gk”Ãl_’d ; 91  uch * gšbuf ; 92  uch * gwšdow ; 93  gfže_off£t ; 95  gšsize = 0; 96  gš±r = 0; 97  goutút = 0; 100  #ASCII_FLAG 0x01 ) 101  #CONTINUATION 0x02 ) 102  #EXTRA_FIELD 0x04 ) 103  #ORIG_NAME 0x08 ) 104  #COMMENT 0x10 ) 105  #ENCRYPTED 0x20 ) 106  #RESERVED 0xC0 ) 108  #g‘_by‹ (è( š±r < šsize ? šbuf [š±r++] : `fžl_šbuf ()) ) 111 #ifdeà INFLATE_DEBUG 112  #As£¹ ( cÚd , msg è{if(!(cÚd)è `”rÜ (msg);} ) 113  g¡d”r ; 114  #T¿û ( x è `Pršt ( L "lš%d:\n", __LINE__ ); ) 115  #T¿ûv ( x è{ià( v”bo£ è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 116  #T¿ûvv ( x è{ià( v”bo£ >1è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 117  #T¿ûc ( c , x è{ià( v”bo£ && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 118  #T¿ûcv ( c , x è{ià( v”bo£ >1 && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 120  #As£¹ ( cÚd , msg ) ) 121  #T¿û ( x ) ) 122  #T¿ûv ( x ) ) 123  #T¿ûvv ( x ) ) 124  #T¿ûc ( c , x ) ) 125  #T¿ûcv ( c , x ) ) 128  fžl_šbuf (); 129  æush_wšdow (); 130  ”rÜ (* m ); 131  gby‹s_out ; 132  ”rÜ (* m ); 133  g”rÜ_»tuº ; 136 $gz_m®loc ( size ) 138  (*) `®loc ( size , 0); 139 } } 142 $gz_ä“ (* wh”e ) 144  `ä“ ( wh”e ); 145 } } 147  ~"šæ©e.c " 154 $fžl_šbuf () 156 INTN ex³ùed , Ä—d ; 157 EFI_STATUS ¡©us ; 159 ex³ùed = Ä—d = INBUFSIZE ; 161 ¡©us = `fÝs_»ad ( šput_fd , šbuf , & Ä—d ); 162 ià( `EFI_ERROR ( ¡©us )) { 163 `”rÜ ("elilo: Read failed"); 165 `DBG_PRT (( L "% :„—d %d by‹ oà%d by‹s\n", LD_NAME , Ä—d , ex³ùed )); 167 šsize = Ä—d ; 168 š±r = 1; 170  šbuf [0]; 171 } } 188 $updüc (* s ,  n ) 190  c ; 193 ià(! s ) { 194 c = 0xffffffffL; 196 c = üc ; 197  n --) { 198 c = üc_32_b [(()ø^ (* s ++)) & 0xff] ^ (c >> 8); 201 üc = c ; 202  c ^ 0xffffffffUL; 203 } } 210 $þ—r_bufs () 212 outút = 0; 213 š±r = 0; 214 chunk = 0; 215 cur_chunk = NULL ; 216 fže_off£t = 0; 217 } } 220  INTN 221 $is_v®id_h—d” ( Elf32_Ehdr * ehdr ) 223 UINT16 ty³ , machše ; 225 ty³ = ehdr -> e_ty³ ; 226 machše = ehdr -> e_machše ; 228 `VERB_PRT (3, `Pršt ( L "class=%dype=%d data=%d machine=%d\n", 229 ehdr -> e_id’t [ EI_CLASS ], 230 ty³ , 231 ehdr -> e_id’t [ EI_DATA ], 232 machše )); 234  ehdr -> e_id’t [ EI_MAG0 ] == 0x7f 235 && ehdr -> e_id’t [ EI_MAG1 ] == 'E' 236 && ehdr -> e_id’t [ EI_MAG2 ] == 'L' 237 && ehdr -> e_id’t [ EI_MAG3 ] == 'F' 238 && ehdr -> e_id’t [ EI_CLASS ] =ð ELFCLASS32 239 && ty³ =ð ET_EXEC 240 && machše =ð EM_386 ? 0 : -1; 241 } } 247 $check_ov”Ïp ( i ) 249  j ; 250  ›nd = chunks [ i ]. addr + chunks[i]. size ; 252  j =0; j < nchunks ; j++) { 253 ià( j == i ) ; 254 ià( chunks [ i ]. addr >ðchunks[ j ].add¸&& ›nd < (chunks[j].add¸+ chunks[j]. size )) { 255 `DBG_PRT (( L "% : segm’ˆ%d fuÎy inþuded iÀ£gm’ˆ%d\n", LD_NAME , i , j )); 256 `CHUNK_INVALIDATE ( i ); 260 } } 263 $ª®yze_chunks () 265 INTN i ; 267  i =0; i < nchunks ; i++) { 268 ià( `CHUNK_IS_VALID ( i è&& ! `CHUNK_IS_LOAD (i)) 269 `check_ov”Ïp ( i ); 271 } } 280 $fœ¡_block (cÚ¡ * buf ,  blocksize ) 282 Elf32_Ehdr * –f ; 283 Elf32_Phdr * phdrs ; 284 UINTN tÙ®_size , ·ges ; 285 UINTN low_addr , max_addr ; 286 UINTN offs = 0; 287 UINT16 phnum ; 288 UINTN ·ddr , memsz ; 289 INTN i ; 291 –f = ( Elf32_Ehdr *) buf ; 293 ià( `is_v®id_h—d” ( –f ) == -1) 296 offs = –f -> e_phoff ; 297 phnum = –f -> e_phnum ; 299 `VERB_PRT (3, { 300 `Pršt ( L "EÁry…ošˆ0x%lx\n", –f -> e_’Œy ); 301 `Pršt ( L "%d…rog¿m h—d”s\n", phnum ); 302 `Pršt ( L "%d segm’ˆh—d”s\n", –f -> e_shnum ); 305 ià( offs + phnum * (* phdrs è> (è blocksize ) { 306 `ERR_PRT (( L "% : ELF…rog¿m h—d” nÙ iÀfœ¡ block (%ld)\n", LD_NAME , offs )); 310 k”Ãl_’Œy = ( VOID *)( –f -> e_’Œy & PADDR_MASK ); 312 phdrs = ( Elf32_Phdr *è( buf + offs ); 313 low_addr = ~0; 314 max_addr = 0; 321 chunks = (*) `®loc (( £gm’t )* phnum , 0); 322 ià( chunks =ð NULL ) { 323 `ERR_PRT (( L "% : fažed‡Îoøchunk %r\n", LD_NAME )); 326 nchunks = phnum ; 331  i = 0; i < phnum ; ++i) { 336 ·ddr = ( phdrs [ i ]. p_·ddr & PADDR_MASK ); 337 memsz = phdrs [ i ]. p_memsz , 339 chunks [ i ]. addr = ·ddr ; 340 chunks [ i ]. off£t = phdrs [i]. p_off£t ; 341 chunks [ i ]. size = phdrs [i]. p_fžesz ; 342 chunks [ i ]. bss_sz = phdrs [i]. p_memsz -…hdrs[i]. p_fžesz ; 344 `CHUNK_VALIDATE ( i ); 346 ià( phdrs [ i ]. p_ty³ !ð PT_LOAD ) { 347 `CHUNK_NO_LOAD ( i ); 348 `DBG_PRT (( L "% : skpšg segm’ˆ%ld\n", LD_NAME , i )); 352 `CHUNK_CAN_LOAD ( i ); 354 `VERB_PRT (3, 355 `Pršt ( L "\n%s : segment %ld vaddr [0x%lx-0x%lx] offset %ld filesz %ld " 357 LD_NAME , 1+ i , chunks [i]. addr , chunks[i].addr+ phdrs [i]. p_fžesz , 358 chunks [ i ]. off£t , chunks[i]. size , memsz , chunks[i]. bss_sz )); 360 ià( ·ddr < low_addr ) 361 low_addr = ·ddr ; 362 ià( ·ddr + memsz > max_addr ) 363 max_addr = ·ddr + memsz ; 366 ià( low_addr & ( EFI_PAGE_SIZE - 1)) { 367 `ERR_PRT (( L "% :†ow_add¸nÙ…ag®igÃd 0x%lx\n", LD_NAME , low_addr )); 368  ”rÜ ; 370 `ª®yze_chunks (); 372 `DBG_PRT (( L "%s : %d…rogram headersƒntry=0x%lx\nlowest_addr=0x%lx highest_addr=0x%lx\n", 373 LD_NAME , 374 phnum , k”Ãl_’Œy , low_addr , max_addr )); 376 tÙ®_size = ( UINTN ) max_addr - (UINTN) low_addr ; 377 ·ges = `EFI_SIZE_TO_PAGES ( tÙ®_size ); 382 k”Ãl_ba£ = (*) low_addr ; 383 k”Ãl_’d = (*)( low_addr + ( ·ges << EFI_PAGE_SHIFT )); 386 ià( `®loc_kmem ((*) low_addr , ·ges ) == -1) { 387 `ERR_PRT (( L "%s : AllocatePages(%d, 0x%lx) for kernel failed\n", 388 LD_NAME , ·ges , low_addr )); 389 `ERR_PRT (( L "% : Could‚Ù†ßd k”ÃÈ© 0x%lx\n", LD_NAME , low_addr )); 390 `ERR_PRT (( L "% : Bažšg\n", LD_NAME )); 391  ”rÜ ; 394 ”rÜ : 395 ià( chunks ) 396 `ä“ ( chunks ); 398 } } 405 $Ãxtchunk () 407  i ; 408 £gm’t_t * ý ; 410 ý = NULL ; 411  i =0; i < nchunks ; i++) { 413 ià(! `CHUNK_IS_VALID ( i è|| ! `CHUNK_IS_LOAD (i)) ; 415 ià( fže_off£t > chunks [ i ]. off£t ) ; 417 ià( ý =ð NULL || chunks [ i ]. off£t < cp->offset) cp = &chunks[i]; 419 cur_chunk = ý ; 420 } } 428 $æush_wšdow () 430 cÚ¡ CHAR8 h–icÝ‹r [4] = { '|' , '/' , '-' , '\\' }; 431  UINTN h–i_couÁ ; 432  £gm’t * ý ; 433 * ¤c , * d¡ ; 434  út ; 436 ià(! outút ) ; 438 `DBG_PRT (( L "% : flush_wšdow ouŠù=%d fže_off£t=%ld\n", LD_NAME , outút , fže_off£t )); 440 `Pršt ( L "%c\b", h–icÝ‹r [ h–i_couÁ ++%4]); 442 `updüc ( wšdow , outút ); 445 ià(! by‹s_out ) { 446 ià( `fœ¡_block ( wšdow , outút ) < 0) 447 `”rÜ ("invalidƒxec header"); 448 `Ãxtchunk (); 451 by‹s_out +ð outút ; 452 ¤c = wšdow ; 453 ž : 455 ià( `check_abÜt (è=ð EFI_SUCCESS è lßd_abÜt ; 457 ý = cur_chunk ; 458 ià( ý =ð NULL || fže_off£t + outút <ðý-> off£t ) { 459 fže_off£t +ð outút ; 464 ià( fže_off£t < ý -> off£t ) { 465  sk = ý -> off£t - fže_off£t ; 467 ¤c +ð sk ; 468 fže_off£t +ð sk ; 469 outút -ð sk ; 471 d¡ = (*) ý -> addr + ( fže_off£t - cp-> off£t ); 472 út = ý -> off£t + cp-> size - fže_off£t ; 473 ià( út > outút ) 474 út = outút ; 476 `Memýy ( d¡ , ¤c , út ); 478 fže_off£t +ð út ; 479 outút -ð út ; 480 ¤c +ð út ; 483 ià( fže_off£t =ð ý -> off£t + cp-> size ) { 484 ià( ý -> bss_sz ) { 485 d¡ = (*) ý -> addr + cp-> size ; 486 `Mem£t ( d¡ , 0, ý -> bss_sz ); 488 `Ãxtchunk (); 490 ià( outút ) 491  ž ; 494 lßd_abÜt : 495 `ä“_kmem (); 496 ”rÜ_»tuº = ELILO_LOAD_ABORTED ; 497 } } 500 $”rÜ (* x ) 502 `ERR_PRT (( L "% : %a", LD_NAME , x )); 504 } } 506 INT32 507 $decom´ess_k”Ãl ( VOID ) 509 INT32 »t ; 511 `þ—r_bufs (); 512 `makeüc (); 513 `Pršt ( L "Uncompressing Linux... "); 514 »t = `gunz (); 515 ià( »t == 0) 516 `Pršt ( L "done\n"); 517  »t == 0 ? 0 : -1; 518 } } 521 $gunz_k”Ãl ( fÝs_fd_t fd , kdesc_t * kd ) 523  »t = -1; 525 ”rÜ_»tuº = ELILO_LOAD_ERROR ; 527 wšdow = (*) `®loc ( WSIZE , 0); 528 ià( wšdow =ð NULL ) { 529 `ERR_PRT (( L "% :‡Îoÿ‹ ouuˆwšdow fažed\n", LD_NAME )); 533 šbuf = (*) `®loc ( INBUFSIZE , 0); 534 ià( šbuf =ð NULL ) { 535 `ERR_PRT (( L "% :‡Îoÿ‹ iÅuˆwšdow fažedr\n", LD_NAME )); 536  ”rÜ ; 538 šput_fd = fd ; 539 šsize = 0; 540 by‹s_out = 0; 542 »t = `decom´ess_k”Ãl (); 543 ”rÜ : 544 ià( wšdow è `ä“ (window); 545 ià( šbuf è `ä“ (inbuf); 547 ià( »t == 0) { 548 kd -> k’Œy = k”Ãl_’Œy ; 549 kd -> k’d = k”Ãl_’d ; 550 kd -> k¡¬t = k”Ãl_ba£ ; 551 ”rÜ_»tuº = ELILO_LOAD_SUCCESS ; 553  ”rÜ_»tuº ; 554 } } @ia32/gzip_loader.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"lßd”.h " 31  ~"gz.h " 33  #LD_NAME L "gz_Ÿ32" ) 35  INTN 36 $gz_´obe_fÜm© ( CHAR16 * kÇme ) 38 UINT8 buf [4]; 39 EFI_STATUS ¡©us ; 40 INTN »t = -1; 41 UINTN size ; 42 fÝs_fd_t fd ; 44 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 45 ià( `EFI_ERROR ( ¡©us ))  -1; 47 size = ( buf ); 48 ¡©us = `fÝs_»ad ( fd , buf , & size ); 50 ià( `EFI_ERROR ( ¡©us è|| size !ð( buf )è ”rÜ ; 52 »t = `gz_´obe ( buf , (buf)); 53 ”rÜ : 54 `fÝs_þo£ ( fd ); 55  »t ; 56 } } 59  INTN 60 $gz_lßd_k”Ãl ( CHAR16 * kÇme , kdesc_t * kd ) 62 EFI_STATUS ¡©us ; 63 INT32 »t ; 64 fÝs_fd_t fd ; 66 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 67 ià( `EFI_ERROR ( ¡©us )è ELILO_LOAD_ERROR ; 69 »t = `gunz_k”Ãl ( fd , kd ); 71 `fÝs_þo£ ( fd ); 73  »t ; 74 } } 76 lßd”_Ýs_t ggz_lßd” ={ 77 NULL , 78 LD_NAME , 79 gz_´obe_fÜm© , 80 gz_lßd_k”Ãl @ia32/plain_loader.c 29  ~ 30  ~ 32  ~"–žo.h " 33  ~"lßd”.h " 34  ~"–f.h " 35  ~"´iv©e.h " 37  #LD_NAME L "¶aš_–f32" ) 39  INTN 40 $is_v®id_h—d” ( Elf32_Ehdr * ehdr ) 42 UINT16 ty³ , machše ; 44 ty³ = ehdr -> e_ty³ ; 45 machše = ehdr -> e_machše ; 47 `DBG_PRT (( L "class=%dype=%d data=%d machine=%d\n", 48 ehdr -> e_id’t [ EI_CLASS ], 49 ty³ , 50 ehdr -> e_id’t [ EI_DATA ], 51 machše )); 53  ehdr -> e_id’t [ EI_MAG0 ] == 0x7f 54 && ehdr -> e_id’t [ EI_MAG1 ] == 'E' 55 && ehdr -> e_id’t [ EI_MAG2 ] == 'L' 56 && ehdr -> e_id’t [ EI_MAG3 ] == 'F' 57 && ehdr -> e_id’t [ EI_CLASS ] =ð ELFCLASS32 58 && ty³ =ð ET_EXEC 59 && machše =ð EM_386 ? 0 : -1; 60 } } 62  INTN 63 $¶aš_´obe ( CHAR16 * kÇme ) 65 Elf32_Ehdr ehdr ; 66 EFI_STATUS ¡©us ; 67 INTN »t = -1; 68 fÝs_fd_t fd ; 69 UINTN size = ( ehdr ); 71 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 72 ià( `EFI_ERROR ( ¡©us )) 75 ¡©us = `fÝs_»ad ( fd , & ehdr , & size ); 76 ià( `EFI_ERROR ( ¡©us è|| size !ð( ehdr )) 77  ”rÜ ; 79 »t = `is_v®id_h—d” (& ehdr ); 80 ”rÜ : 81 `fÝs_þo£ ( fd ); 82  »t ; 83 } } 86  INTN 87 $lßd_–f ( fÝs_fd_t fd , kdesc_t * kd ) 89 Elf32_Ehdr ehdr ; 90 Elf32_Phdr * phdrs ; 91 EFI_STATUS ¡©us ; 92 INTN »t = ELILO_LOAD_ERROR ; 93 UINTN i , tÙ®_size = 0; 94 UINTN ·ges , size , bss_sz , osize ; 95 VOID * low_addr = (VOID *)~0; 96 VOID * max_addr = (VOID *)0; 97 UINTN ·ddr , memsz , fžesz ; 98 UINT16 phnum ; 100 `Pršt ( L "Loading Linux... "); 102 size = ( ehdr ); 104 ¡©us = `fÝs_»ad ( fd , & ehdr , & size ); 105 ià( `EFI_ERROR ( ¡©us è|| size < ( ehdr )) 106  ELILO_LOAD_ERROR ; 108 ià( `is_v®id_h—d” (& ehdr ) == -1) { 109 `ERR_PRT (( L "% :‚Ù‡ 32-b™ ELF image\n", LD_NAME )); 110  ELILO_LOAD_ERROR ; 112 `VERB_PRT (3, { 113 `Pršt ( L "ELF Header information: \n"); 114 `Pršt ( L "\tEÁry…ošˆ0x%x\n", ( ehdr . e_’Œy & PADDR_MASK )); 115 `Pršt ( L "\t%d…rog¿m h—d”s\n", ehdr . e_phnum ); 116 `Pršt ( L "\t%d segm’ˆh—d”s\n", ehdr . e_shnum ); 119 phnum = ehdr . e_phnum ; 121 ià( `fÝs_£ek ( fd , ehdr . e_phoff ) < 0) { 122 `ERR_PRT (( L "% : s“kØ%d fÜ…hdr çžed", LD_NAME , ehdr . e_phoff )); 123  ELILO_LOAD_ERROR ; 125 size = osize = ( phnum * ( Elf32_Phdr )); 127 `DBG_PRT (( L "%s :‡llocate %d bytes for %d…headersƒach of size:%d…hentsize=%d\n", 128 LD_NAME , size , phnum , ( Elf32_Phdr ), ehdr . e_ph’tsize )); 130 phdrs = ( Elf32_Phdr *) `®loc ( size , 0); 131 ià( phdrs =ð NULL ) { 132 `ERR_PRT (( L "% :‡Îoÿ‹ fÜ…hdr çžed", LD_NAME )); 133  ELILO_LOAD_ERROR ; 135 ¡©us = `fÝs_»ad ( fd , phdrs , & size ); 136 ià( `EFI_ERROR ( ¡©us è|| size !ð osize ) { 137 `ERR_PRT (( L "% :…hd¸lßd fažed", LD_NAME , ¡©us )); 138  out ; 143  i = 0; i < phnum ; i++) { 145 ·ddr = ( phdrs [ i ]. p_·ddr & PADDR_MASK ); 146 memsz = phdrs [ i ]. p_memsz ; 148 `DBG_PRT (( L "Phdr %d…addr [0x%x-0x%x] offset 0x%x" 150 1+ i , ·ddr ,…addr+ phdrs [i]. p_fžesz ,…hdrs[i]. p_off£t , 151 phdrs [ i ]. p_fžesz , memsz , 152 ( memsz - phdrs [ i ]. p_fžesz ),…hdrs[i]. p_ty³ )); 154 ià( phdrs [ i ]. p_ty³ !ð PT_LOAD ) 156 ià( ·ddr < ( UINTN ) low_addr ) 157 low_addr = ( VOID *) ·ddr ; 158 ià( ·ddr + memsz > ( UINTN ) max_addr ) 159 max_addr = ( VOID *) ·ddr + memsz ; 162 ià(( UINTN ) low_addr & ( EFI_PAGE_SIZE - 1)) { 163 `ERR_PRT (( L "%s : kernel†ow‡ddress 0x%x‚ot…age‡ligned\n", 164 LD_NAME , low_addr )); 165  out ; 168 tÙ®_size = ( UINTN ) max_addr - (UINTN) low_addr ; 171 ·ges = `EFI_SIZE_TO_PAGES ( tÙ®_size ); 174 kd -> k¡¬t = low_addr ; 175 kd -> k’d = ( low_addr + ( ·ges << EFI_PAGE_SHIFT )); 176 kd -> k’Œy = ( VOID *)( ehdr . e_’Œy & PADDR_MASK ); 178 `VERB_PRT (3, { 179 `Pršt ( L "Lowest PhysAddr: 0x%x\nTotalMemSize:%d bytes (%d…ages)\n", 180 low_addr , tÙ®_size , ·ges ); 181 `Pršt ( L "K”ÃÈ’Œy @ 0x%x\n", kd -> k’Œy ); 185 ià( `®loc_kmem ( low_addr , ·ges ) == -1) { 186 `ERR_PRT (( L "%s : AllocatePages(%d, 0x%lx) for kernel failed\n", 187 LD_NAME , ·ges , low_addr )); 188 `ERR_PRT (( L "%s : Could‚ot‡lloc %d…ages forhe kernel‡t 0x%lx " 190 LD_NAME , ·ges , low_addr )); 191  lßd_abÜt ; 194 `Mem£t ( low_addr , 0, ( ·ges << EFI_PAGE_SHIFT )); 196 `VERB_PRT (1, `Pršt ( L "Press‡ny keyo interrupt\n")); 203  i = 0; i < phnum ; i++) { 206 ià( phdrs [ i ]. p_ty³ !ð PT_LOAD ) 209 `VERB_PRT (3, `Pršt ( L "poffs: 0x%x (phdrs[%d].p_offset)\n", 210 phdrs [ i ]. p_off£t , i)); 212 fžesz = phdrs [ i ]. p_fžesz ; 213 low_addr = ( VOID *)(( UINTN è phdrs [ i ]. p_·ddr & PADDR_MASK ); 216 ià( `fÝs_£ek ( fd , phdrs [ i ]. p_off£t ) < 0) 217  out_k”Ãl ; 220 bss_sz = phdrs [ i ]. p_memsz - fžesz ; 222 `VERB_PRT (4, { 223 `Pršt ( L "\nH—d” #%d\n", i ); 224 `Pršt ( L "Off£ˆš fž0x%x\n", phdrs [ i ]. p_off£t ); 225 `Pršt ( L "PhysiÿÈadd¸0x%x\n", low_addr ); 226 `Pršt ( L "BSS siz0x%x by‹s\n", bss_sz ); 232 »t = `fÝs_»ad ( fd , low_addr , & fžesz ); 233 ià( »t =ð ELILO_LOAD_ABORTED è lßd_abÜt ; 234 ià( »t =ð ELILO_LOAD_ERROR è out ; 239 ià( bss_sz ) 240 `Mem£t (( VOID *) low_addr + fžesz , 0, bss_sz ); 243 `ä“ ( phdrs ); 245 `Pršt ( L "..Done\n"); 246  ELILO_LOAD_SUCCESS ; 248 lßd_abÜt : 249 `Pršt ( L "..Aborted\n"); 250 »t = ELILO_LOAD_ABORTED ; 251 out_k”Ãl : 253 `ä“_kmem (); 254 out : 255 `ä“ ( phdrs ); 256  »t ; 257 } } 259  INTN 260 $¶aš_lßd_k”Ãl ( CHAR16 * kÇme , kdesc_t * kd ) 262 INTN »t ; 263 fÝs_fd_t fd ; 264 EFI_STATUS ¡©us ; 269 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 270 ià( `EFI_ERROR ( ¡©us )è ELILO_LOAD_ERROR ; 272 `Pršt ( L "Lßdšg %s...", kÇme ); 274 »t = `lßd_–f ( fd , kd ); 276 `fÝs_þo£ ( fd ); 277  »t ; 278 } } 280 lßd”_Ýs_t g¶aš_lßd” ={ 281 NULL , 282 LD_NAME , 283 ¶aš_´obe , 284 ¶aš_lßd_k”Ãl @ia32/private.h 26 #iâdeà __ELILO_PRIVATE_IA32_H__ 27  #__ELILO_PRIVATE_IA32_H__ ) @ia32/sysdeps.h 32 #iâdeà __ELILO_SYSDEPS_IA32_H__ 33  #__ELILO_SYSDEPS_IA32_H__ ) 35  #ELILO_ARCH "IA-32" ) 36  #PADDR_MASK 0xfffffff ) 39  #Mem£t ( a , v , n è `S‘Mem (×),Ò),(v)) ) 40  #Memýy ( a , b , n è `CÝyMem (×),(b),Ò)) ) 61 #´agm¨ ·ck (1) 62  uŸ32_boÙ_·¿ms { 63 UINT8 m¿w [0x2000]; 66 UINT8 mÜig_cursÜ_cÞ ; 67 UINT8 mÜig_cursÜ_row ; 70 UINT16 mext_mem_k ; 73 UINT16 mÜig_video_·ge ; 74 UINT8 mÜig_video_mode ; 75 UINT8 mÜig_video_cÞs ; 77 UINT16 munu£d_1 ; 80 UINT16 mÜig_ega_bx ; 82 UINT16 munu£d_2 ; 85 UINT8 mÜig_video_rows ; 88 UINT8 mis_vga ; 89 UINT16 mÜig_video_pošts ; 92 UINT16 mlfb_width ; 93 UINT16 mlfb_height ; 94 UINT16 mlfb_d•th ; 95 UINT32 mlfb_ba£ ; 96 UINT32 mlfb_size ; 101 UINT16 mcmdlše_magik ; 102  #CMDLINE_MAGIK 0xA33F ) 103 UINT16 mcmdlše_off£t ; 106 UINT16 mlfb_lše_Ën ; 109 UINT8 mlfb_»d_size ; 110 UINT8 mlfb_»d_pos ; 111 UINT8 mlfb_g»’_size ; 112 UINT8 mlfb_g»’_pos ; 113 UINT8 mlfb_blue_size ; 114 UINT8 mlfb_blue_pos ; 115 UINT8 mlfb_rsvd_size ; 116 UINT8 mlfb_rsvd_pos ; 119 UINT16 mve§_£g ; 120 UINT16 mve§_off ; 123 UINT16 mlfb_·ges ; 124 UINT8 mlfb_»£rved [0x0C]; 127 UINT16 m­m_bios_v” ; 128  #NO_APM_BIOS 0x0000 ) 131 UINT16 mbios_code_£g ; 132 UINT32 mbios_’Œy_pošt ; 133 UINT16 mbios_code_£g16 ; 134 UINT16 mbios_d©a_£g ; 137 UINT16 m­m_bios_æags ; 138  #NO_32BIT_APM_MASK 0xFFFD ) 141 UINT32 mbios_code_Ën ; 142 UINT16 mbios_d©a_Ën ; 144 UINT8 munu£d_3 [0x2C]; 147 UINT8 mhd0_šfo [0x10]; 148 UINT8 mhd1_šfo [0x10]; 151 UINT16 mmÿ_šfo_Ën ; 152 UINT8 mmÿ_šfo_buf [0x10]; 154 UINT8 munu£d_4 [0x10E]; 157 UINT8 mefi_lßd”_sig [4]; 158  #EFI_LOADER_SIG "EFIL" ) 161 UINT32 mefi_sys_tbl ; 164 UINT32 mefi_mem_desc_size ; 167 UINT32 mefi_mem_desc_v” ; 170 UINT32 mefi_mem_m­ ; 171 UINT32 mefi_mem_m­_size ; 174 UINT32 mlßd”_¡¬t ; 175 UINT32 mlßd”_size ; 178 UINT32 m®t_mem_k ; 180 UINT8 munu£d_5 [0x0D]; 183 UINT8 m£tup_£ùÜs ; 186 UINT16 mmouÁ_roÙ_rdÚly ; 189 UINT16 msys_size ; 192 UINT16 msw­_dev ; 195 UINT16 m¿mdisk_æags ; 196  #RAMDISK_PROMPT 0x8000 ) 197  #RAMDISK_LOAD 0x4000 ) 200 UINT16 mvideo_mode_æag ; 203 UINT16 mÜig_roÙ_dev ; 205 UINT8 munu£d_6 ; 208 UINT8 maux_dev_šfo ; 209  #NO_MOUSE 0x00 ) 210  #FOUND_MOUSE 0xAA ) 213 UINT16 mjump ; 216 UINT8 m£tup_sig [4]; 217  #SETUP_SIG "HdrS" ) 220 UINT8 mhdr_mšÜ ; 221 UINT8 mhdr_majÜ ; 224 UINT32 mrm_sw™ch ; 227 UINT16 m¡¬t_sys_£g ; 230 UINT16 mk”Ãl_v”¡r_off£t ; 233 UINT8 mlßd”_ty³ ; 234  #LDRTYPE_ELILO 0x50 ) 237 UINT8 mlßd”_æags ; 238  #LDRFLAG_CAN_USE_HEAP 0x80 ) 239  #LDRFLAG_BOOT_PARAM_RELOC 0x40 ) 242 UINT16 m£tup_move_size ; 245 UINT32 mk”Ãl_¡¬t ; 248 UINT32 mš™rd_¡¬t ; 249 UINT32 mš™rd_size ; 252 UINT32 mboÙ£ù_h–³r ; 255 UINT16 mh—p_’d_±r ; 258 UINT16 munu£d_7 ; 260 UINT32 mcmdlše_addr ; 261 } ms ; 262 } tboÙ_·¿ms_t ; 263 #´agm¨ ·ck () 274  #MEMCPY ( to , äom , út ) { \ 275 UINT8 * t = (UINT8 *)( to ); \ 276 UINT8 * f = (UINT8 *)( äom ); \ 277 UINTN n = út ; \ 278 ià( t && f && n ) { \ 279  n --) { \ 280 * t ++ = * f ++; \ 283 } ) 285  #MEMSET ( ±r , size , v® ) { \ 286 UINT8 * p = (UINT8 *)( ±r ); \ 287 UINTN n = (UINTN)( size ); \ 288 UINT8 v = (UINT8)( v® ); \ 289 ià( p && n ) { \ 290  n --) { \ 291 * p ++ = v ; \ 294 } ) 299 #´agm¨ ·ck (1) 301 UINT16 mlim™ ; 302 UINT32 mba£ ; 303 } tdt_addr_t ; 304 #´agm¨ ·ck () 306 UINTN high_ba£_mem ; 307 UINTN high_ext_mem ; 309 boÙ_·¿ms_t * ·¿m_¡¬t ; 310 UINTN ·¿m_size ; 312 VOID * k”Ãl_¡¬t ; 313 UINTN k”Ãl_size ; 315 VOID * š™rd_¡¬t ; 316 UINTN š™rd_size ; 318 dt_addr_t gdt_addr ; 319 dt_addr_t idt_addr ; 321 UINT16 š™_gdt []; 322 UINTN sizeof_š™_gdt ; 324 UINT8 rmsw™ch_image []; 325 UINTN rmsw™ch_size ; 327 INTN Ÿ32_u£_Ëgacy_ä“_boÙ (); 333  šlše  334 $¡¬t_k”Ãl ( VOID * k’Œy , boÙ_·¿ms_t * bp ) 339 asm volatile ( "cli" : : ); 345 ià( bp -> s . š™rd_¡¬t ) { 346 `MEMCPY (15 * 1024 * 1024, bp -> s . š™rd_¡¬t , bp->s. š™rd_size ); 347 bp -> s . š™rd_¡¬t = 15 * 1024 * 1024; 355 `MEMCPY ( high_ba£_mem , bp , 0x4000); 361 `MEMSET ( gdt_addr . ba£ , gdt_addr. lim™ , 0); 362 `MEMCPY ( gdt_addr . ba£ , š™_gdt , sizeof_š™_gdt ); 364 ià(! `Ÿ32_u£_Ëgacy_ä“_boÙ ()) { 370 `MEMCPY (0x7C00, rmsw™ch_image , rmsw™ch_size ); 372 asm volatile ( "movl $0x7C00, %%ebx" : : ); 373 asm volatile ( "jmp *%%ebx" : : ); 380 asm vÞ©žÐ"lidˆ%0" : : "m" ( idt_addr ) ); 381 asm vÞ©žÐ"lgdˆ%0" : : "m" ( gdt_addr ) ); 389 asm vÞ©žÐ"movÈ%0, %%esi" : : "m" ( high_ba£_mem ) ); 390 asm vÞ©žÐ"movÈ%0, %%ecx" : : "m" ( k’Œy ) ); 391 asm volatile ( "xorl %%ebx, %%ebx" : : ); 397 asm volatile ( "jmp *%%ecx" : : ); 398 } } 400  ssys_img_ÝtiÚs { 401 UINT8 mnÙhšg_y‘ ; 402 } tsys_img_ÝtiÚs_t ; @ia32/system.c 31  ~ 32  ~ 34  ~"–žo.h " 35  ~"lßd”.h " 36  ~"rmsw™ch.h " 38 lßd”_Ýs_t bzimage_lßd” , ¶aš_lßd” , gz_lßd” ; 44 dt_addr_t ggdt_addr = { 0x800, 0x94000 }; 45 dt_addr_t gidt_addr = { 0, 0 }; 51 UINT16 gš™_gdt [] = { 71 UINTN gsizeof_š™_gdt =  š™_gdt ; 86 UINTN ghigh_ba£_mem = 0x90000; 97 UINTN ghigh_ext_mem = 32 * 1024 * 1024; 100 VOID * gk”Ãl_¡¬t = (VOID *)0x100000; 102 VOID * gš™rd_¡¬t = NULL ; 103 UINTN gš™rd_size = 0; 105 INTN 106 $sysd•s_š™ ( EFI_HANDLE dev ) 108 `DBG_PRT (( L "sysdeps_init()\n")); 114 `lßd”_»gi¡” (& bzimage_lßd” ); 115 `lßd”_»gi¡” (& ¶aš_lßd” ); 116 `lßd”_»gi¡” (& gz_lßd” ); 118 } } 128 INTN 129 $sysd•s_š™rd_g‘_addr ( kdesc_t * kd , memdesc_t * imem ) 131 `DBG_PRT (( L "initrd_get_addr()\n")); 133 ià(! kd || ! imem ) { 134 `ERR_PRT (( L "kd=0x%x imem=0x%x", kd , imem )); 138 `VERB_PRT (3, `Pršt ( L "kstart=0x%x kentry=0x%x kend=0x%x\n", 139 kd -> k¡¬t , kd-> k’Œy , kd-> k’d )); 141 imem -> ¡¬t_addr = kd -> k’d ; 143 `VERB_PRT (3, `Pršt ( L "initrd start_addr=0x%x…gcnt=%d\n", 144 imem -> ¡¬t_addr , imem-> pgút )); 147 } } 149 VOID 150 $sysd•s_ä“_boÙ_·¿ms ( boÙ_·¿ms_t * bp ) 152 mm­_desc_t md ; 154 `Z”oMem (& md ,  md); 155 md .md = ( VOID *) bp -> s . efi_mem_m­ ; 156 `ä“_memm­ (& md ); 157 } } 162 INTN 163 $sysd•s_ü—‹_boÙ_·¿ms ( 164 boÙ_·¿ms_t * bp , 165 CHAR8 * cmdlše , 166 memdesc_t * š™rd , 167 memdesc_t * vmcode , 168 UINTN * cook› ) 170 mm­_desc_t mdesc ; 171 EFI_STATUS efi_¡©us ; 172 UINTN rows , cÞs ; 173 UINT8 row , cÞ ; 174 UINT8 mode ; 175 UINT16 hdr_v”siÚ ; 177 `DBG_PRT (( L "fill_boot_params()\n")); 179 ià(! bp || ! cmdlše || ! š™rd || ! cook› ) { 180 `ERR_PRT (( L "bp=0x%x cmdline=0x%x initrd=0x%x cookie=0x%x", 181 bp , cmdlše , š™rd , cook› )); 183 ià( ·¿m_¡¬t !ð NULL ) { 184 `ä“ ( ·¿m_¡¬t ); 185 ·¿m_¡¬t = NULL ; 186 ·¿m_size = 0; 188 `ä“_kmem (); 198 ià( ·¿m_¡¬t !ð NULL ) { 199 `CÝyMem ( bp , ·¿m_¡¬t , 0x2000); 200 `ä“ ( ·¿m_¡¬t ); 201 ·¿m_¡¬t = NULL ; 202 ·¿m_size = 0; 207 hdr_v”siÚ = ( bp -> s . hdr_majÜ << 8è| bp->s. hdr_mšÜ ; 212 bp -> s . unu£d_1 = 0; 213 bp -> s . unu£d_2 = 0; 214 `Z”oMem ( bp -> s . unu£d_3 ,  bp->s.unused_3); 215 `Z”oMem ( bp -> s . unu£d_4 ,  bp->s.unused_4); 216 `Z”oMem ( bp -> s . unu£d_5 ,  bp->s.unused_5); 217 bp -> s . unu£d_6 = 0; 218 bp -> s . unu£d_7 = 0; 226 bp -> s . lßd”_ty³ = LDRTYPE_ELILO ; 232 bp -> s . cmdlše_magik = CMDLINE_MAGIK ; 233 bp -> s . cmdlše_off£t = ( UINT8 *) cmdlše - (UINT8 *)bp; 239 bp -> s . cmdlše_addr = 0x0; 247 `Z”oMem ( bp -> s . hd0_šfo ,  bp->s.hd0_info); 248 `Z”oMem ( bp -> s . hd1_šfo ,  bp->s.hd1_info); 254 bp -> s . ®t_mem_k = high_ext_mem / 1024; 256 ià( bp -> s . ®t_mem_k <= 65535) 257 bp -> s . ext_mem_k = ( UINT16 )bp->s. ®t_mem_k ; 259 bp -> s . ext_mem_k = 65535; 265 `DBG_PRT (( L "initrd->start_addr=0x%x initrd->pgcnt=%d\n", 266 š™rd -> ¡¬t_addr , in™rd-> pgút )); 269 bp -> s . ¿mdisk_æags = 0; 271 ià( š™rd -> ¡¬t_addr && in™rd-> pgút ) { 273 bp -> s . š™rd_¡¬t = ( UINT32 ) š™rd -> ¡¬t_addr ; 274 bp -> s . š™rd_size = ( UINT32 )( š™rd -> size ); 281 bp -> s . Üig_roÙ_dev = 0x0100; 283 bp -> s . š™rd_¡¬t = 0; 284 bp -> s . š™rd_size = 0; 290 bp -> s . ­m_bios_v” = NO_APM_BIOS ; 291 bp -> s . bios_code_£g = 0; 292 bp -> s . bios_’Œy_pošt = 0; 293 bp -> s . bios_code_£g16 = 0; 294 bp -> s . bios_d©a_£g = 0; 295 bp -> s . ­m_bios_æags = 0; 296 bp -> s . bios_code_Ën = 0; 297 bp -> s . bios_d©a_Ën = 0; 302 bp -> s . mÿ_šfo_Ën = 0; 303 `Z”oMem ( bp -> s . mÿ_šfo_buf ,  bp->s.mca_info_buf); 308 bp -> s . aux_dev_šfo = NO_MOUSE ; 313 `CÝyMem ( bp -> s . efi_lßd”_sig , EFI_LOADER_SIG , 4); 318 bp -> s . k”Ãl_¡¬t = ( UINT32 )kernel_start; 330  #CHECK_OFFSET ( n , o , f ) \ 332 UINTN p = ( UINT8 *)& bp -> s . n - (UINT8 *)bp; \ 333 UINTN q = (UINTN)( o ); \ 334 ià( p !ð q ) { \ 335 ‹¡ |= 1; \ 336 `Pršt ( L "%20a: %3xh %3xh ", #n, p , q ); \ 337 ià(* f ) { \ 338 `Pršt ( f , bp -> s . n ); \ 340 `Pršt ( L "\n"); \ 342 } ) 344  #WAIT_FOR_KEY () \ 346 EFI_INPUT_KEY key ; \ 347  ST -> CÚIn -> `R—dKeySŒoke (ST->CÚIn, & key è!ð EFI_SUCCESS ) { \ 350 } ) 352 UINTN ‹¡ = 0; 354 `CHECK_OFFSET ( Üig_cursÜ_cÞ , 0x00, L "%xh"); 355 `CHECK_OFFSET ( Üig_cursÜ_row , 0x01, L "%xh"); 356 `CHECK_OFFSET ( ext_mem_k , 0x02, L "%xh"); 357 `CHECK_OFFSET ( Üig_video_·ge , 0x04, L "%xh"); 358 `CHECK_OFFSET ( Üig_video_mode , 0x06, L "%xh"); 359 `CHECK_OFFSET ( Üig_video_cÞs , 0x07, L "%xh"); 360 `CHECK_OFFSET ( Üig_ega_bx , 0x0A, L "%xh"); 361 `CHECK_OFFSET ( Üig_video_rows , 0x0E, L "%xh"); 362 `CHECK_OFFSET ( is_vga , 0x0F, L "%xh"); 363 `CHECK_OFFSET ( Üig_video_pošts , 0x10, L "%xh"); 364 `CHECK_OFFSET ( lfb_width , 0x12, L "%xh"); 365 `CHECK_OFFSET ( lfb_height , 0x14, L "%xh"); 366 `CHECK_OFFSET ( lfb_d•th , 0x16, L "%xh"); 367 `CHECK_OFFSET ( lfb_ba£ , 0x18, L "%xh"); 368 `CHECK_OFFSET ( lfb_size , 0x1C, L "%xh"); 369 `CHECK_OFFSET ( cmdlše_magik , 0x20, L "%xh"); 370 `CHECK_OFFSET ( cmdlše_off£t , 0x22, L "%xh"); 371 `CHECK_OFFSET ( lfb_lše_Ën , 0x24, L "%xh"); 372 `CHECK_OFFSET ( lfb_»d_size , 0x26, L "%xh"); 373 `CHECK_OFFSET ( lfb_»d_pos , 0x27, L "%xh"); 374 `CHECK_OFFSET ( lfb_g»’_size , 0x28, L "%xh"); 375 `CHECK_OFFSET ( lfb_g»’_pos , 0x29, L "%xh"); 376 `CHECK_OFFSET ( lfb_blue_size , 0x2A, L "%xh"); 377 `CHECK_OFFSET ( lfb_blue_pos , 0x2B, L "%xh"); 378 `CHECK_OFFSET ( lfb_rsvd_size , 0x2C, L "%xh"); 379 `CHECK_OFFSET ( lfb_rsvd_pos , 0x2D, L "%xh"); 380 `CHECK_OFFSET ( ve§_£g , 0x2E, L "%xh"); 381 `CHECK_OFFSET ( ve§_off , 0x30, L "%xh"); 382 `CHECK_OFFSET ( lfb_·ges , 0x32, L "%xh"); 383 `CHECK_OFFSET ( lfb_»£rved , 0x34, L ""); 384 `CHECK_OFFSET ( ­m_bios_v” , 0x40, L "%xh"); 385 `CHECK_OFFSET ( bios_code_£g , 0x42, L "%xh"); 386 `CHECK_OFFSET ( bios_’Œy_pošt , 0x44, L "%xh"); 387 `CHECK_OFFSET ( bios_code_£g16 , 0x48, L "%xh"); 388 `CHECK_OFFSET ( bios_d©a_£g , 0x4A, L "%xh"); 389 `CHECK_OFFSET ( ­m_bios_æags , 0x4C, L "%xh"); 390 `CHECK_OFFSET ( bios_code_Ën , 0x4E, L "%xh"); 391 `CHECK_OFFSET ( bios_d©a_Ën , 0x52, L "%xh"); 392 `CHECK_OFFSET ( hd0_šfo , 0x80, L ""); 393 `CHECK_OFFSET ( hd1_šfo , 0x90, L ""); 394 `CHECK_OFFSET ( mÿ_šfo_Ën , 0xA0, L "%xh"); 395 `CHECK_OFFSET ( mÿ_šfo_buf , 0xA2, L ""); 396 `CHECK_OFFSET ( efi_lßd”_sig , 0x1C0, L "'%-4.4a'"); 397 `CHECK_OFFSET ( efi_sys_tbl , 0x1C4, L "%xh"); 398 `CHECK_OFFSET ( efi_mem_desc_size , 0x1C8, L "%xh"); 399 `CHECK_OFFSET ( efi_mem_desc_v” , 0x1CC, L "%xh"); 400 `CHECK_OFFSET ( efi_mem_m­ , 0x1D0, L "%xh"); 401 `CHECK_OFFSET ( efi_mem_m­_size , 0x1D4, L "%xh"); 402 `CHECK_OFFSET ( lßd”_¡¬t , 0x1D8, L "%xh"); 403 `CHECK_OFFSET ( lßd”_size , 0x1DC, L "%xh"); 404 `CHECK_OFFSET ( ®t_mem_k , 0x1E0, L "%xh"); 405 `CHECK_OFFSET ( £tup_£ùÜs , 0x1F1, L "%xh"); 406 `CHECK_OFFSET ( mouÁ_roÙ_rdÚly , 0x1F2, L "%xh"); 407 `CHECK_OFFSET ( sys_size , 0x1F4, L "%xh"); 408 `CHECK_OFFSET ( sw­_dev , 0x1F6, L "%xh"); 409 `CHECK_OFFSET ( ¿mdisk_æags , 0x1F8, L "%xh"); 410 `CHECK_OFFSET ( video_mode_æag , 0x1FA, L "%xh"); 411 `CHECK_OFFSET ( Üig_roÙ_dev , 0x1FC, L "%xh"); 412 `CHECK_OFFSET ( aux_dev_šfo , 0x1FF, L "%xh"); 413 `CHECK_OFFSET ( jump , 0x200, L "%xh"); 414 `CHECK_OFFSET ( £tup_sig , 0x202, L "'%-4.4a'"); 415 `CHECK_OFFSET ( hdr_mšÜ , 0x206, L "%xh"); 416 `CHECK_OFFSET ( hdr_majÜ , 0x207, L "%xh"); 417 `CHECK_OFFSET ( rm_sw™ch , 0x208, L "%xh"); 418 `CHECK_OFFSET ( ¡¬t_sys_£g , 0x20C, L "%xh"); 419 `CHECK_OFFSET ( k”Ãl_v”¡r_off£t , 0x20E, L "%xh"); 420 `CHECK_OFFSET ( lßd”_ty³ , 0x210, L "%xh"); 421 `CHECK_OFFSET ( lßd”_æags , 0x211, L "%xh"); 422 `CHECK_OFFSET ( £tup_move_size , 0x212, L "%xh"); 423 `CHECK_OFFSET ( k”Ãl_¡¬t , 0x214, L "%xh"); 424 `CHECK_OFFSET ( š™rd_¡¬t , 0x218, L "%xh"); 425 `CHECK_OFFSET ( š™rd_size , 0x21C, L "%xh"); 426 `CHECK_OFFSET ( boÙ£ù_h–³r , 0x220, L "%xh"); 427 `CHECK_OFFSET ( h—p_’d_±r , 0x224, L "%xh"); 428 `CHECK_OFFSET ( cmdlše_addr , 0x228, L "%xh"); 430 ià( ‹¡ ) { 431 `ERR_PRT (( L "Boot sector‡nd/or setup…arameter‡lignmentƒrror.")); 432 `ä“_kmem (); 443 efi_¡©us = ST -> CÚOut -> `Qu”yMode ( 444 ST -> CÚOut , 445 ST -> CÚOut -> Mode ->Mode, 446 & cÞs , 447 & rows ); 449 ià( `EFI_ERROR ( efi_¡©us )) { 450 `ERR_PRT (( L "QueryMode failed. Fake it.")); 451 mode = 3; 452 rows = 25; 453 cÞs = 80; 454 row = 24; 455 cÞ = 0; 457 mode = ( UINT8 ) ST -> CÚOut -> Mode ->Mode; 458 cÞ = ( UINT8 ) ST -> CÚOut -> Mode -> CursÜCÞumn ; 459 row = ( UINT8 ) ST -> CÚOut -> Mode -> CursÜRow ; 462 bp -> s . Üig_cursÜ_cÞ = cÞ ; 463 bp -> s . Üig_cursÜ_row = row ; 464 bp -> s . Üig_video_·ge = 0; 465 bp -> s . Üig_video_mode = mode ; 466 bp -> s . Üig_video_cÞs = ( UINT8 ) cÞs ; 467 bp -> s . Üig_video_rows = ( UINT8 ) rows ; 469 bp -> s . Üig_ega_bx = 0; 470 bp -> s . is_vga = 0; 471 bp -> s . Üig_video_pošts = 16; 473 bp -> s . lfb_width = 0; 474 bp -> s . lfb_height = 0; 475 bp -> s . lfb_d•th = 0; 476 bp -> s . lfb_ba£ = 0; 477 bp -> s . lfb_size = 0; 478 bp -> s . lfb_lše_Ën = 0; 479 bp -> s . lfb_»d_size = 0; 480 bp -> s . lfb_»d_pos = 0; 481 bp -> s . lfb_g»’_size = 0; 482 bp -> s . lfb_g»’_pos = 0; 483 bp -> s . lfb_blue_size = 0; 484 bp -> s . lfb_blue_pos = 0; 485 bp -> s . lfb_rsvd_size = 0; 486 bp -> s . lfb_rsvd_pos = 0; 487 bp -> s . lfb_·ges = 0; 488 bp -> s . ve§_£g = 0; 489 bp -> s . ve§_off = 0; 495 ià( `g‘_memm­ (& mdesc )) { 496 `ERR_PRT (( L "Could‚ot get memory map.")); 497 `ä“_kmem (); 500 * cook› = mdesc .cookie; 501 bp -> s . efi_mem_m­ = ( UINTN ) mdesc . md ; 502 bp -> s . efi_mem_m­_size = mdesc . m­_size ; 503 bp -> s . efi_mem_desc_size = mdesc . desc_size ; 504 bp -> s . efi_mem_desc_v” = mdesc . desc_v”siÚ ; 505 bp -> s . efi_sys_tbl = ( UINTN ) sy¡ab ; 508 } } @ia64/config.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"cÚfig.h " 31  ~"´iv©e.h " 32  ~"sysd•s.h " 33  ~"g‘Ýt.h " 36 CHAR16 måswa [ FILENAME_MAXLEN ]; 37 CHAR16 mcmd_åswa [ FILENAME_MAXLEN ]; 38 UINTN m®low_»loÿtiÚ ; 39 } tŸ64_glob®_cÚfig_t ; 41  #Ÿ64_Ýt_off£tof ( ÝtiÚ è(&(( sys_img_ÝtiÚs_t *)(0x0))->ÝtiÚ) ) 43  Ÿ64_glob®_cÚfig_t gŸ64_gcÚf ; 50 cÚfig_ÝtiÚ_t gsysd•s_glob®_ÝtiÚs []={ 51 { OPT_FILE , OPT_GLOBAL , L "åswa", NULL , NULL, Ÿ64_gcÚf . åswa }, 52 { OPT_BOOL , OPT_GLOBAL , L "»loÿbË", NULL , NULL, & Ÿ64_gcÚf . ®low_»loÿtiÚ }, 55 cÚfig_ÝtiÚ_t gsysd•s_image_ÝtiÚs []={ 56 { OPT_BOOL , OPT_IMAGE_SYS , L "»loÿbË", NULL , NULL, Ÿ64_Ýt_off£tof ( ®low_»loÿtiÚ )}, 67 INTN 68 $sysd•s_´–oÝ_aùiÚs ( EFI_HANDLE dev , CHAR16 ** ¬gv , INTN ¬gc , INTN šdex , EFI_HANDLE image ) 74 ià( Ÿ64_gcÚf . cmd_åswa [0] !ð CHAR_NULL ) { 75 `check_åswa ( image , dev , Ÿ64_gcÚf . cmd_åswa ); 76 } ià( Ÿ64_gcÚf . åswa [0] !ð CHAR_NULL ) 77 `check_åswa ( image , dev , Ÿ64_gcÚf . åswa ); 79 `check_åswa ( image , dev , NULL ); 82 } } 92 INTN 93 $Ÿ64_ÿn_»loÿ‹ ( VOID ) 95  Ÿ64_gcÚf . ®low_»loÿtiÚ =ð TRUE 96 || ( –žo_Ýt . sys_img_Ýts &&ƒlžo_Ýt.sys_img_Ýts-> ®low_»loÿtiÚ == TRUE ) ? 1 : 0; 97 } } 99  #IA64_CMDLINE_OPTIONS L "rF:" ) 101 CHAR16 * 102 $sysd•s_g‘_cmdlše_Ýts ( VOID ) 104  IA64_CMDLINE_OPTIONS ; 105 } } 107 INTN 108 $sysd•s_g‘Ýt ( INTN c , INTN Ýtšd , CHAR16 * Ýrg ) 110 INTN »t = 0; 115  c ) { 116  L 'r': 117 Ÿ64_gcÚf . ®low_»loÿtiÚ = 1; 119  L 'F': 120 ià( `SŒL’ ( O±¬g è>ð FILENAME_MAXLEN ) { 121 `Pršt ( L "FPSWA fž’ami lim™edØ%d ch¬aù”s\n", FILENAME_MAXLEN ); 124 `SŒCpy ( Ÿ64_gcÚf . cmd_åswa , O±¬g ); 127 »t = -1; 129  »t ; 130 } } 132 VOID 133 $sysd•s_´št_cmdlše_Ýts ( VOID ) 135 `Pršt ( L "-r kernel image can be„elocated if†oad‡ddress inexistent\n"); 136 `Pršt ( L "-F file‚ame of‡ specific FPSWA EFI drivero†oad\n"); 137 } } 139 INTN 140 $sysd•s_»gi¡”_ÝtiÚs ( VOID ) 142 INTN »t ; 144 »t = `»gi¡”_cÚfig_ÝtiÚs ( sysd•s_glob®_ÝtiÚs , 145 ( sysd•s_glob®_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 146 OPTIONS_GROUP_GLOBAL ); 147 ià( »t == -1 ) „et; 149 »t = `»gi¡”_cÚfig_ÝtiÚs ( sysd•s_image_ÝtiÚs , 150 ( sysd•s_image_ÝtiÚs )/( cÚfig_ÝtiÚ_t ), 151 OPTIONS_GROUP_IMAGE ); 153  »t ; 154 } } @ia64/fpswa.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"fžeÝs.h " 33 UINT32 m»visiÚ ; 34 UINT32 m»£rved ; 35 VOID * måswa ; 36 } tåswa_š‹rçû_t ; 38 INTN 39 $qu”y_åswa ( VOID ** åswa ) 41 EFI_HANDLE åswa_image ; 42 UINTN size ; 43 EFI_STATUS ¡©us ; 44 EFI_GUID FpswaPrÙocÞ = FPSWA_PROTOCOL ; 46 `DBG_PRT (( L "Querying FpswaProtocol")); 48 size = ( EFI_HANDLE ); 50 ¡©us = BS -> `Loÿ‹HªdË ( ByPrÙocÞ , & FpswaPrÙocÞ , NULL , & size , & åswa_image ); 51 ià( `EFI_ERROR ( ¡©us )) { 52 `ERR_PRT (( L "boÙ_·¿m could‚Ù†oÿ‹ FPSWA driv”", ¡©us )); 55 ¡©us = BS -> `HªdËPrÙocÞ ( åswa_image , & FpswaPrÙocÞ , åswa ); 56 ià( `EFI_ERROR ( ¡©us )) { 57 `ERR_PRT (( L "boot_params FpswaProtocol‚ot‡ble findhe interface")); 60 `VERB_PRT (3, `Pršt ( L "FpswaPrÙocÞ = 0x%lx„evisiÚ=%x\n", * åswa , 61 (( åswa_š‹rçû_t *)* åswa )-> »visiÚ )); 63 } } 66  INTN 67 $do_check_åswa ( EFI_HANDLE image , EFI_HANDLE dev , CHAR16 * åswa_fže ) 69 EFI_STATUS ¡©us ; 70 EFI_HANDLE hªdË ; 71 EFI_DEVICE_PATH * dp ; 74 dp = `FžeDeviûP©h ( dev , åswa_fže ); 75 ià( dp =ð NULL ) { 76 `ERR_PRT (( L "CªnÙ c»©FžeP©h fÜ %s", åswa_fže )); 79 ¡©us = BS -> `LßdImage (0, image , dp , NULL , 0, & hªdË ); 80 ià( `EFI_ERROR ( ¡©us )) { 81 `VERB_PRT (3, `Pršt ( L "..not found\n")); 82 `F»ePoÞ ( dp ); 85 `VERB_PRT (3, `Pršt ( L "..starting..")); 87 ¡©us = BS -> `S¹Image ( hªdË , 0, 0); 88 ià( `EFI_ERROR ( ¡©us )) { 89 `VERB_PRT (3, `Pršt ( L "çžed (%r)\n", ¡©us )); 96 `VERB_PRT (3, `Pršt ( L "..ok\n")); 98 `F»ePoÞ ( dp ); 101 } } 111 INTN 112 $check_åswa ( EFI_HANDLE image , EFI_HANDLE dev , CHAR16 * åswa_fže ) 123  CHAR16 * åswa_fž’ames [] ={ 124 L "\\efi\\intel firmware\\fpswa.efi", 126 L "\\fpswa.efi", 127 L "\\fw\\fpswa.efi", 128 L "\\efi\\fpswa.efi", 129 L "\\efi\\tools\\fpswa.efi", 130 L "\\fpswa.efi", 131 L "fpswa.efi", 134 UINTN j , couÁ = ( åswa_fž’ames )/( CHAR16 *); 135 INTN cook› ; 136 CHAR16 devÇme [ FILENAME_MAXLEN ]; 138 ià( åswa_fže ) { 139 INTN r ; 140 devÇme [0] = CHAR_NULL ; 141 r = `fÝs_¥l™_·th ( åswa_fže , devÇme ); 142 ià( r == -1) { 143 `ERR_PRT (( L "FPSWA driv” fž’amtoØlÚg %s", åswa_fže )); 146 ià( devÇme [0] !ð CHAR_NULL ) { 147 ià( `fÝs_g‘_deviû_hªdË ( devÇme , & dev è!ð EFI_SUCCESS ) { 148 `ERR_PRT (( L "ÿÂÙ fšd deviû % fÜ FPSWA driv”", devÇme )); 152  `do_check_åswa ( image , dev , åswa_fže ); 155 cook› = 0; 156  `fÝs_g‘_Ãxt_deviû ( cook› , L "vçt", FILENAME_MAXLEN , &cook›, devÇme , & dev è=ð EFI_SUCCESS ) { 157  j = 0; j < couÁ ; j++) { 158 `VERB_PRT (3, `Pršt ( L "Tryšg FPSWA driv” %s:%s..", devÇme , åswa_fž’ames [ j ])); 163 `do_check_åswa ( image , dev , åswa_fž’ames [ j ]); 167 } } @ia64/gzip.c 29  ~ 30  ~ 32  ~"–f.h " 33  ~"–žo.h " 35  ~"gz.h " 37  ~"´iv©e.h " 38  ~"£tjmp.h " 40  #LD_NAME L "gz_Ÿ64" ) 42  #memz”o ( s , n è `Mem£t (( VOID *)(s), 0, (n)) ) 43  #memýy ( a , b , n è `Memýy (( VOID *)×),(b),Ò)) ) 46  #WSIZE 0x8000 ) 49  #INBUFSIZE 0x8000 ) 55  #OF ( ¬gs è ) args 56  #FUNC_STATIC  ) 58  tuch ; 59  tush ; 60  tulg ; 63  s£gm’t { 64  maddr ; 65  moff£t ; 66  msize ; 67  mbss_sz ; 68 UINT8 mæags ; 69 } t£gm’t_t ; 71  #CHUNK_FL_VALID 0x1 ) 72  #CHUNK_FL_LOAD 0x2 ) 73  #CHUNK_FL_X 0x4 ) 75  #CHUNK_CAN_LOAD ( n è chunks [Ò)]. æags |ð CHUNK_FL_LOAD ) 76  #CHUNK_NO_LOAD ( n è chunks [Ò)]. æags &ð~ CHUNK_FL_LOAD ) 77  #CHUNK_IS_LOAD ( n è( chunks [Ò)]. æags & CHUNK_FL_LOAD ) ) 79  #CHUNK_VALIDATE ( n è chunks [Ò)]. æags |ð CHUNK_FL_VALID ) 80  #CHUNK_INVALIDATE ( n è chunks [Ò)]. æags = 0 ) 81  #CHUNK_IS_VALID ( n è( chunks [Ò)]. æags & CHUNK_FL_VALID ) ) 88  £gm’t_t * gchunks ; 89  £gm’t_t * gcur_chunk ; 90  UINTN gnchunks ; 91  UINTN gchunk ; 92  UINTN gšput_fd ; 93  VOID * gk”Ãl_’Œy , * gk”Ãl_ba£ , * gk”Ãl_’d ; 95  uch * gšbuf ; 96  uch * gwšdow ; 97  gfže_off£t ; 99  gšsize = 0; 100  gš±r = 0; 101  goutút = 0; 104  #ASCII_FLAG 0x01 ) 105  #CONTINUATION 0x02 ) 106  #EXTRA_FIELD 0x04 ) 107  #ORIG_NAME 0x08 ) 108  #COMMENT 0x10 ) 109  #ENCRYPTED 0x20 ) 110  #RESERVED 0xC0 ) 112  #g‘_by‹ (è( š±r < šsize ? šbuf [š±r++] : `fžl_šbuf ()) ) 115 #ifdeà INFLATE_DEBUG 116  #As£¹ ( cÚd , msg è{if(!(cÚd)è `”rÜ (msg);} ) 117  g¡d”r ; 118  #T¿û ( x è `Pršt ( L "lš%d:\n", __LINE__ ); ) 119  #T¿ûv ( x è{ià( v”bo£ è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 120  #T¿ûvv ( x è{ià( v”bo£ >1è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 121  #T¿ûc ( c , x è{ià( v”bo£ && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 122  #T¿ûcv ( c , x è{ià( v”bo£ >1 && (c)è `Pršt ( L "lš%d:\n", __LINE__ è;} ) 124  #As£¹ ( cÚd , msg ) ) 125  #T¿û ( x ) ) 126  #T¿ûv ( x ) ) 127  #T¿ûvv ( x ) ) 128  #T¿ûc ( c , x ) ) 129  #T¿ûcv ( c , x ) ) 132  fžl_šbuf (); 133  æush_wšdow (); 134  ”rÜ (* m ); 135  gby‹s_out ; 137  ”rÜ (* m ); 139  jmp_buf gjbuf ; 140  g”rÜ_»tuº ; 141  UINTN g–f_is_big_’dŸn ; 144 $gz_m®loc ( size ) 146  (*) `®loc ( size , 0); 147 } } 150 $gz_ä“ (* wh”e ) 152  `ä“ ( wh”e ); 153 } } 155  ~"šæ©e.c " 162 $fžl_šbuf () 164 INTN ex³ùed , Ä—d ; 165 EFI_STATUS ¡©us ; 167 ex³ùed = Ä—d = INBUFSIZE ; 169 ¡©us = `fÝs_»ad ( šput_fd , šbuf , & Ä—d ); 170 ià( `EFI_ERROR ( ¡©us )) { 171 `”rÜ ("elilo: Read failed"); 173 `DBG_PRT (( L "% :„—d %d by‹ oà%d by‹s\n", LD_NAME , Ä—d , ex³ùed )); 175 šsize = Ä—d ; 176 š±r = 1; 178  šbuf [0]; 179 } } 196 $updüc (* s ,  n ) 198  c ; 201 ià(! s ) { 202 c = 0xffffffffL; 204 c = üc ; 205  n --) { 206 c = üc_32_b [(()ø^ (* s ++)) & 0xff] ^ (c >> 8); 209 üc = c ; 210  c ^ 0xffffffffUL; 211 } } 218 $þ—r_bufs () 220 outút = 0; 221 š±r = 0; 222 chunk = 0; 223 cur_chunk = NULL ; 224 fže_off£t = 0; 225 } } 228  šlše UINT64 229 $bsw­64 ( UINT64 v ) 231 if( –f_is_big_’dŸn è v = `__Ÿ64_swab64 (v); 232  v ; 233 } } 235  šlše UINT32 236 $bsw­32 ( UINT32 v ) 238 if( –f_is_big_’dŸn è v = `__Ÿ64_swab32 (v); 239  v ; 240 } } 242  šlše UINT16 243 $bsw­16 ( UINT16 v ) 245 if( –f_is_big_’dŸn è v = `__Ÿ64_swab16 (v); 246  v ; 247 } } 249  INTN 250 $is_v®id_h—d” ( Elf64_Ehdr * ehdr ) 252 UINT16 ty³ , machše ; 254 ià( ehdr -> e_id’t [ EI_DATA ] =ð ELFDATA2MSB ) { 255 ty³ = `__Ÿ64_swab16 ( ehdr -> e_ty³ ); 256 machše = `__Ÿ64_swab16 ( ehdr -> e_machše ); 258 ty³ = ehdr -> e_ty³ ; 259 machše = ehdr -> e_machše ; 261 `VERB_PRT (3, `Pršt ( L "class=%dype=%d data=%d machine=%d\n", 262 ehdr -> e_id’t [ EI_CLASS ], 263 ty³ , 264 ehdr -> e_id’t [ EI_DATA ], 265 machše )); 267  ehdr -> e_id’t [ EI_MAG0 ] == 0x7f 268 && ehdr -> e_id’t [ EI_MAG1 ] == 'E' 269 && ehdr -> e_id’t [ EI_MAG2 ] == 'L' 270 && ehdr -> e_id’t [ EI_MAG3 ] == 'F' 271 && ehdr -> e_id’t [ EI_CLASS ] =ð ELFCLASS64 272 && ty³ =ð ET_EXEC 273 && machše =ð EM_IA_64 ? 0 : -1; 274 } } 280 $check_ov”Ïp ( i ) 282  j ; 283  ›nd = chunks [ i ]. addr + chunks[i]. size ; 285  j =0; j < nchunks ; j++) { 286 ià( j == i ) ; 287 ià( chunks [ i ]. addr >ðchunks[ j ].add¸&& ›nd < (chunks[j].add¸+ chunks[j]. size )) { 288 `DBG_PRT (( L "% : segm’ˆ%d fuÎy inþuded iÀ£gm’ˆ%d\n", LD_NAME , i , j )); 289 `CHUNK_INVALIDATE ( i ); 293 } } 296 $ª®yze_chunks () 298 INTN i ; 300  i =0; i < nchunks ; i++) { 301 ià( `CHUNK_IS_VALID ( i è&& ! `CHUNK_IS_LOAD (i)è `check_ov”Ïp (i); 303 } } 312 $fœ¡_block (cÚ¡ * buf ,  blocksize ) 314 Elf64_Ehdr * –f ; 315 Elf64_Phdr * phdrs ; 316 UINTN tÙ®_size , ·ges ; 317 UINTN low_addr , max_addr ; 318 UINTN lßd_off£t = 0; 319 UINTN offs = 0; 320 UINT16 phnum ; 321 UINTN ·ddr , memsz ; 322 INTN i ; 324 –f = ( Elf64_Ehdr *) buf ; 326 ià( `is_v®id_h—d” ( –f ) == -1)  -1; 329 –f_is_big_’dŸn = –f -> e_id’t [ EI_DATA ] =ð ELFDATA2MSB ? 1 : 0; 332 offs = `bsw­64 ( –f -> e_phoff ); 333 phnum = `bsw­16 ( –f -> e_phnum ); 335 `VERB_PRT (3, { 336 `Pršt ( L "ELF fži %s\n", –f_is_big_’dŸn ? L"bigƒndian" : L"littleƒndian"); 337 `Pršt ( L "EÁry…ošˆ0x%lx\n", `bsw­64 ( –f -> e_’Œy )); 338 `Pršt ( L "%d…rog¿m h—d”s\n", phnum ); 339 `Pršt ( L "%d segm’ˆh—d”s\n", `bsw­16 ( –f -> e_shnum )); 344 ià( offs + phnum * (* phdrs è> (è blocksize ) { 345 `ERR_PRT (( L "% : ELF…rog¿m h—d” nÙ iÀfœ¡ block (%ld)\n", LD_NAME , offs )); 349 k”Ãl_’Œy = (*) `bsw­64 ( –f -> e_’Œy ); 351 ià((( UINTN ) k”Ãl_’Œy >> 61) != 0) { 352 `ERR_PRT (( L "%s: <>ƒÁry…ošˆi ¨vœtu®‡dd»s 0x%lx :‚Ù suµÜ‹d‡nymÜe\n", LD_NAME , k”Ãl_’Œy )); 355 phdrs = ( Elf64_Phdr *è( buf + offs ); 357 low_addr = ~0; 358 max_addr = 0; 365 chunks = (*) `®loc (( £gm’t )* phnum , 0); 366 ià( chunks =ð NULL ) { 367 `ERR_PRT (( L "% : fažed‡Îoøchunk %r\n", LD_NAME )); 370 nchunks = phnum ; 375  i = 0; i < phnum ; ++i) { 381 ·ddr = `bsw­64 ( phdrs [ i ]. p_·ddr ); 382 memsz = `bsw­64 ( phdrs [ i ]. p_memsz ), 384 chunks [ i ]. addr = ·ddr ; 385 chunks [ i ]. off£t = `bsw­64 ( phdrs [i]. p_off£t ); 386 chunks [ i ]. size = `bsw­64 ( phdrs [i]. p_fžesz ); 387 chunks [ i ]. bss_sz = `bsw­64 ( phdrs [i]. p_memsz è- bsw­64Õhdrs[i]. p_fžesz ); 389 `CHUNK_VALIDATE ( i ); 391 ià( `bsw­32 ( phdrs [ i ]. p_ty³ è!ð PT_LOAD ) { 392 `CHUNK_NO_LOAD ( i ); 393 `DBG_PRT (( L "% : skpšg segm’ˆ%ld\n", LD_NAME , i )); 397 ià( `bsw­32 ( phdrs [ i ]. p_æags è& PF_X ) 398 chunks [ i ]. æags |ð CHUNK_FL_X ; 400 `CHUNK_CAN_LOAD ( i ); 402 `VERB_PRT (3, 403 `Pršt ( L "\n%s : segment %ld vaddr [0x%lx-0x%lx] offset %ld filesz %ld memsz=%ld bss_sz=%ld\n", 404 LD_NAME , 405 1+ i , 406 chunks [ i ]. addr , 407 chunks [ i ]. addr + `bsw­64 ( phdrs [i]. p_fžesz ), 408 chunks [ i ]. off£t , 409 chunks [ i ]. size , 410 memsz , 411 chunks [ i ]. bss_sz )); 413 ià( ·ddr < low_addr )†ow_addr =…addr; 415 ià( ·ddr + memsz > max_addr ) max_addr =…addr + memsz; 418 ià( low_addr & ( EFI_PAGE_SIZE - 1)) { 419 `ERR_PRT (( L "% :†ow_add¸nÙ…ag®igÃd 0x%lx\n", LD_NAME , low_addr )); 420  ”rÜ ; 423 `ª®yze_chunks (); 425 `DBG_PRT (( L "%s : %d…rogram headersƒntry=0x%lx\nlowest_addr=0x%lx highest_addr=0x%lx\n", 426 LD_NAME , 427 phnum , k”Ãl_’Œy , low_addr , max_addr )); 429 tÙ®_size = ( UINTN ) max_addr - (UINTN) low_addr ; 430 ·ges = `EFI_SIZE_TO_PAGES ( tÙ®_size ); 435 k”Ãl_ba£ = (*) low_addr ; 436 k”Ãl_’d = (*)( low_addr + ( ·ges << EFI_PAGE_SHIFT )); 439 ià( `®loc_kmem ((*) low_addr , ·ges ) == -1) { 440 VOID * Ãw_addr ; 442 `VERB_PRT (1, ( L "% : AÎoÿ‹Pages(%d, 0x%lxèfÜ k”ÃÈçžed\n", LD_NAME , ·ges , low_addr )); 444 ià( `Ÿ64_ÿn_»loÿ‹ () == 0) { 445 `ERR_PRT (( L "relocation is disabled, cannot†oad kernel")); 446  ”rÜ ; 458 `VERB_PRT (1, `Pršt ( L "Attemptingo„elocate kernel.\n")); 460 ià( `fšd_k”Ãl_memÜy (( VOID *è low_addr , (VOID*è max_addr , 256* MB , & Ãw_addr ) == -1) { 461 `ERR_PRT (( L "% : fšd_k”Ãl_memÜy(0x%lx, 0x%lx, 0x%lx, 0x%lxèçžed\n", LD_NAME , low_addr , max_addr , 256* MB , & lßd_off£t )); 462  ”rÜ ; 465 lßd_off£t = ( UINTN è( Ãw_addr - `ROUNDDOWN ((UINTNè low_addr ,256* MB )); 467 `VERB_PRT (1, ( L "low_addr=0x%lx‚ew_addr=0x%lx off£t=0x%lx", low_addr , Ãw_addr , lßd_off£t )); 472 k”Ãl_ba£ = (*è(( UINTN èk”Ãl_ba£ + lßd_off£t ); 473 k”Ãl_’d = (*è(( UINTN èk”Ãl_’d + lßd_off£t ); 474 k”Ãl_’Œy = (*è(( UINTN èk”Ãl_’Œy + lßd_off£t ); 476  i = 0; i < phnum ; ++i) { 477 chunks [ i ]. addr +ð lßd_off£t ; 478 phdrs [ i ]. p_·ddr = ( Elf64_Addr è(( UINT64 èphdrs[i].p_·dd¸+ lßd_off£t ); 484 ià( `®loc_kmem ((*) low_addr + lßd_off£t , ·ges ) == -1) { 485 `ERR_PRT (( L "% : AÎoÿ‹Pages(%d, 0x%lxèfÜ k”ÃÈçžed\n", LD_NAME , ·ges , low_addr + lßd_off£t )); 486 `ERR_PRT (( L "R–oÿtiÚ by 0x%lx by‹ çžed.\n", lßd_off£t )); 487  ”rÜ ; 491 ”rÜ : 492 ià( chunks è `ä“ (chunks); 494 } } 501 $Ãxtchunk () 503  i ; 504 £gm’t_t * ý ; 506 ý = NULL ; 507  i =0; i < nchunks ; i++) { 509 ià(! `CHUNK_IS_VALID ( i è|| ! `CHUNK_IS_LOAD (i)) ; 511 ià( fže_off£t > chunks [ i ]. off£t ) ; 513 ià( ý =ð NULL || chunks [ i ]. off£t < cp->offset) cp = &chunks[i]; 515 cur_chunk = ý ; 516 } } 524 $æush_wšdow () 526 cÚ¡ CHAR8 h–icÝ‹r [4] = { '|' , '/' , '-' , '\\' }; 527  UINTN h–i_couÁ ; 528  £gm’t * ý ; 529 * ¤c , * d¡ ; 530  út ; 532 ià(! outút ) ; 534 `DBG_PRT (( L "% : flush_wšdow ouŠù=%d fže_off£t=%ld\n", LD_NAME , outút , fže_off£t )); 536 `Pršt ( L "%c\b", h–icÝ‹r [ h–i_couÁ ++%4]); 538 `updüc ( wšdow , outút ); 543 ià(! by‹s_out ) { 544 ià( `fœ¡_block ( wšdow , outút è< 0è `”rÜ ("invalidƒxec header"); 545 `Ãxtchunk (); 548 by‹s_out +ð outút ; 549 ¤c = wšdow ; 550 ž : 552 ià( `check_abÜt (è=ð EFI_SUCCESS è lßd_abÜt ; 554 ý = cur_chunk ; 555 ià( ý =ð NULL || fže_off£t + outút <ðý-> off£t ) { 556 fže_off£t +ð outút ; 561 ià( fže_off£t < ý -> off£t ) { 562  sk = ý -> off£t - fže_off£t ; 564 ¤c +ð sk ; 565 fže_off£t +ð sk ; 566 outút -ð sk ; 568 d¡ = (*) ý -> addr + ( fže_off£t - cp-> off£t ); 570 út = ý -> off£t + cp-> size - fže_off£t ; 572 ià( út > outút ) cnt = outcnt; 574 `Memýy ( d¡ , ¤c , út ); 575 ià( ý -> æags & CHUNK_FL_X ) 576 `æush_dÿche ( d¡ , út ); 578 fže_off£t +ð út ; 579 outút -ð út ; 580 ¤c +ð út ; 583 ià( fže_off£t =ð ý -> off£t + cp-> size ) { 584 ià( ý -> bss_sz ) { 585 d¡ = (*) ý -> addr + cp-> size ; 586 `Mem£t ( d¡ , 0, ý -> bss_sz ); 588 `Ãxtchunk (); 590 ià( outút è ž ; 593 lßd_abÜt : 594 `ä“_kmem (); 595 ”rÜ_»tuº = ELILO_LOAD_ABORTED ; 596 `lÚgjmp ( jbuf , 1); 597 } } 600 $”rÜ (* x ) 602 `ERR_PRT (( L "% : %a", LD_NAME , x )); 604 `lÚgjmp ( jbuf ,1); 605 } } 607 INT32 608 $decom´ess_k”Ãl ( VOID ) 610 INT32 »t ; 612 `þ—r_bufs (); 613 `makeüc (); 614 `Pršt ( L "Uncompressing Linux... "); 615 »t = `gunz (); 616 ià( »t =ð0è `Pršt ( L "done\n"); 617  »t == 0 ? 0 : -1; 618 } } 621 $gunz_k”Ãl ( fÝs_fd_t fd , kdesc_t * kd ) 623  »t = -1; 625 ”rÜ_»tuº = ELILO_LOAD_ERROR ; 627 wšdow = (*) `®loc ( WSIZE , 0); 628 ià( wšdow =ð NULL ) { 629 `ERR_PRT (( L "% :‡Îoÿ‹ ouuˆwšdow fažed\n", LD_NAME )); 633 šbuf = (*) `®loc ( INBUFSIZE , 0); 634 ià( šbuf =ð NULL ) { 635 `ERR_PRT (( L "% :‡Îoÿ‹ iÅuˆwšdow fažedr\n", LD_NAME )); 636  ”rÜ ; 639 šput_fd = fd ; 640 šsize = 0; 641 by‹s_out = 0; 643 ià( `£tjmp ( jbuf è=ð1è ”rÜ ; 646 »t = `decom´ess_k”Ãl (); 648 ”rÜ : 649 ià( wšdow è `ä“ (window); 650 ià( šbuf è `ä“ (inbuf); 652 ià( »t == 0) { 653 kd -> k’Œy = k”Ãl_’Œy ; 654 kd -> k’d = k”Ãl_’d ; 655 kd -> k¡¬t = k”Ãl_ba£ ; 656 ”rÜ_»tuº = ELILO_LOAD_SUCCESS ; 658  ”rÜ_»tuº ; 659 } } @ia64/gzip_loader.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"lßd”.h " 31  ~"gz.h " 33  #LD_NAME L "gz_Ÿ64" ) 35  INTN 36 $gz_´obe_fÜm© ( CHAR16 * kÇme ) 38 UINT8 buf [4]; 39 EFI_STATUS ¡©us ; 40 INTN »t = -1; 41 UINTN size ; 42 fÝs_fd_t fd ; 44 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 45 ià( `EFI_ERROR ( ¡©us ))  -1; 47 size = ( buf ); 48 ¡©us = `fÝs_»ad ( fd , buf , & size ); 50 ià( `EFI_ERROR ( ¡©us è|| size !ð( buf )è ”rÜ ; 52 »t = `gz_´obe ( buf , (buf)); 53 ”rÜ : 54 `fÝs_þo£ ( fd ); 55  »t ; 56 } } 59  INTN 60 $gz_lßd_k”Ãl ( CHAR16 * kÇme , kdesc_t * kd ) 62 EFI_STATUS ¡©us ; 63 INT32 »t ; 64 fÝs_fd_t fd ; 66 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 67 ià( `EFI_ERROR ( ¡©us )è ELILO_LOAD_ERROR ; 69 »t = `gunz_k”Ãl ( fd , kd ); 71 `fÝs_þo£ ( fd ); 73  »t ; 74 } } 76 lßd”_Ýs_t ggz_lßd” ={ 77 NULL , 78 LD_NAME , 79 gz_´obe_fÜm© , 80 gz_lßd_k”Ãl @ia64/plain_loader.c 29  ~ 30  ~ 32  ~"–žo.h " 33  ~"lßd”.h " 34  ~"–f.h " 35  ~"´iv©e.h " 37  #LD_NAME L "¶aš_–f64" ) 39  #PLAIN_MIN_BLOCK_SIZE ( Elf64_Ehdr è ) 41  #SKIPBUFSIZE 2048 ) 42  CHAR8 * gsk_bufãr ; 43  UINTN gsk_bufsize ; 44  UINTN g–f_is_big_’dŸn ; 46  šlše UINT64 47 $bsw­64 ( UINT64 v ) 49 if( –f_is_big_’dŸn è v = `__Ÿ64_swab64 (v); 50  v ; 51 } } 53  šlše UINT32 54 $bsw­32 ( UINT32 v ) 56 if( –f_is_big_’dŸn è v = `__Ÿ64_swab32 (v); 57  v ; 58 } } 60  šlše UINT16 61 $bsw­16 ( UINT16 v ) 63 if( –f_is_big_’dŸn è v = `__Ÿ64_swab16 (v); 64  v ; 65 } } 67  INTN 68 $is_v®id_h—d” ( Elf64_Ehdr * ehdr ) 70 UINT16 ty³ , machše ; 72 ià( ehdr -> e_id’t [ EI_DATA ] =ð ELFDATA2MSB ) { 73 ty³ = `__Ÿ64_swab16 ( ehdr -> e_ty³ ); 74 machše = `__Ÿ64_swab16 ( ehdr -> e_machše ); 76 ty³ = ehdr -> e_ty³ ; 77 machše = ehdr -> e_machše ; 79 `DBG_PRT (( L "class=%dype=%d data=%d machine=%d\n", 80 ehdr -> e_id’t [ EI_CLASS ], 81 ty³ , 82 ehdr -> e_id’t [ EI_DATA ], 83 machše )); 85  ehdr -> e_id’t [ EI_MAG0 ] == 0x7f 86 && ehdr -> e_id’t [ EI_MAG1 ] == 'E' 87 && ehdr -> e_id’t [ EI_MAG2 ] == 'L' 88 && ehdr -> e_id’t [ EI_MAG3 ] == 'F' 89 && ehdr -> e_id’t [ EI_CLASS ] =ð ELFCLASS64 90 && ty³ =ð ET_EXEC 91 && machše =ð EM_IA_64 ? 0 : -1; 92 } } 94  INTN 95 $¶aš_´obe ( CHAR16 * kÇme ) 97 Elf64_Ehdr ehdr ; 98 EFI_STATUS ¡©us ; 99 INTN »t = -1; 100 fÝs_fd_t fd ; 101 UINTN size = ( ehdr ); 103 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 104 ià( `EFI_ERROR ( ¡©us ))  -1; 106 ¡©us = `fÝs_»ad ( fd , & ehdr , & size ); 108 ià( `EFI_ERROR ( ¡©us è|| size !ð( ehdr )è ”rÜ ; 110 »t = `is_v®id_h—d” (& ehdr ); 111 ”rÜ : 112 `fÝs_þo£ ( fd ); 113  »t ; 114 } } 121  INTN 122 $sk_by‹s ( fÝs_fd_t fd , UINTN cu½os , UINTN Ãwpos ) 124 EFI_STATUS ¡©us ; 125 UINTN n , sk ; 127 sk = Ãwpos - cu½os ; 130 ¡©us = `fÝs_£ek ( fd , Ãwpos ); 131 ià( ¡©us =ð EFI_SUCCESS )  0; 133 ià( ¡©us !ð EFI_UNSUPPORTED è ”rÜ ; 137 ià( sk_bufãr =ð NULL ) { 138 sk_bufsize = `MAX ( sk , SKIPBUFSIZE ); 139 sk_bufãr ð( CHAR8 *) `®loc ( sk_bufsize , EfiLßd”D©a ); 140 ià( sk_bufãr =ð NULL )  -1; 142  sk ) { 143 n = sk > sk_bufsize ? skip_bufsize : skip; 145 ¡©us = `fÝs_»ad ( fd , sk_bufãr , & n ); 146 ià( `EFI_ERROR ( ¡©us )è ”rÜ ; 148 sk -= n ; 152 ”rÜ : 153 `ERR_PRT (( L "% : cªnÙ sk %d by‹s\n", LD_NAME , n )); 155 } } 157  INTN 158 $lßd_–f ( fÝs_fd_t fd , kdesc_t * kd ) 160 Elf64_Ehdr ehdr ; 161 Elf64_Phdr * phdrs ; 162 EFI_STATUS ¡©us ; 163 INTN »t = ELILO_LOAD_ERROR ; 164 UINTN i , tÙ®_size = 0; 165 UINTN ·ges , size , bss_sz , osize ; 166 UINTN offs = 0; 167 VOID * low_addr = (VOID *)~0; 168 VOID * max_addr = (VOID *)0; 169 UINTN lßd_off£t = 0; 170 UINTN ·ddr , memsz , fžesz , poffs ; 171 UINT16 phnum ; 173 `Pršt ( L "Loading Linux... "); 175 size = ( ehdr ); 177 ¡©us = `fÝs_»ad ( fd , & ehdr , & size ); 178 ià( `EFI_ERROR ( ¡©us è|| size < ( ehdr )è ELILO_LOAD_ERROR ; 180 offs +ð size ; 185 ià( `is_v®id_h—d” (& ehdr ) == -1) { 186 `ERR_PRT (( L "% :‚Ù‡À–à64-b™ fže\n", LD_NAME )); 187  ELILO_LOAD_ERROR ; 191 –f_is_big_’dŸn = ehdr . e_id’t [ EI_DATA ] =ð ELFDATA2MSB ? 1 : 0; 193 `VERB_PRT (3, { 194 `Pršt ( L "ELF fži %s\n", –f_is_big_’dŸn ? L"bigƒndian" : L"littleƒndian"); 195 `Pršt ( L "EÁry…ošˆ0x%lx\n", `bsw­64 ( ehdr . e_’Œy )); 196 `Pršt ( L "%d…rog¿m h—d”s\n", `bsw­16 ( ehdr . e_phnum )); 197 `Pršt ( L "%d segm’ˆh—d”s\n", `bsw­16 ( ehdr . e_shnum )); 200 phnum = `bsw­16 ( ehdr . e_phnum ); 202 ià( `sk_by‹s ( fd , offs , `bsw­64 ( ehdr . e_phoff )) != 0) { 203 `ERR_PRT (( L "% : sk°%ld fÜ…hdr çžed", LD_NAME , offs )); 204  ELILO_LOAD_ERROR ; 206 offs = `bsw­64 ( ehdr . e_phoff ); 208 size = osize = phnum *( Elf64_Phdr ); 210 `DBG_PRT (( L "% :…hdr ®loÿ‹ %d by‹ sizeof=%dƒÁsize=%d\n", LD_NAME , size ,( Elf64_Phdr ), `bsw­16 ( ehdr . e_ph’tsize ))); 212 phdrs = ( Elf64_Phdr *) `®loc ( size , 0); 213 ià( phdrs =ð NULL ) { 214 `ERR_PRT (( L "% :‡Îoÿ‹…hdr çžed", LD_NAME )); 215  ELILO_LOAD_ERROR ; 218 ¡©us = `fÝs_»ad ( fd , phdrs , & size ); 219 ià( `EFI_ERROR ( ¡©us è|| size !ð osize ) { 220 `ERR_PRT (( L "% :†ßd…hdr çžed", LD_NAME , ¡©us )); 221  out ; 223 offs +ð size ; 229  i = 0; i < phnum ; i++) { 231 ·ddr = `bsw­64 ( phdrs [ i ]. p_·ddr ); 232 memsz = `bsw­64 ( phdrs [ i ]. p_memsz ); 234 `DBG_PRT (( L "Phdr %d…addr [0x%lx-0x%lx] offset %ld" 236 1+ i , 237 ·ddr , 238 ·ddr + `bsw­64 ( phdrs [ i ]. p_fžesz ), 239 `bsw­64 ( phdrs [ i ]. p_off£t ), 240 `bsw­64 ( phdrs [ i ]. p_fžesz ), 241 memsz , 242 memsz - `bsw­64 ( phdrs [ i ]. p_fžesz ), `bsw­32 Õhdrs[i]. p_ty³ ))); 244 ià( `bsw­32 ( phdrs [ i ]. p_ty³ è!ð PT_LOAD ) ; 247 ià( ·ddr < ( UINTN ) low_addr èlow_add¸ð( VOID *)paddr; 249 ià( ·ddr + memsz > ( UINTN ) max_addr ) 250 max_addr = ( VOID *) ·ddr + memsz ; 253 ià(( UINTN ) low_addr & ( EFI_PAGE_SIZE - 1)) { 254 `ERR_PRT (( L "% : k”ÃÈlow‡dd»s 0x%lx‚Ù…ag®igÃd\n", LD_NAME , low_addr )); 255  out ; 259 tÙ®_size = ( UINTN ) max_addr - (UINTN) low_addr ; 262 ·ges = `EFI_SIZE_TO_PAGES ( tÙ®_size ); 267 kd -> k¡¬t = low_addr ; 268 kd -> k’d = low_addr + ( ·ges << EFI_PAGE_SHIFT ); 273 kd -> k’Œy = ( VOID *) `bsw­64 ( ehdr . e_’Œy ); 275 ià((( UINTN ) kd -> k’Œy >> 61) != 0) { 276 `ERR_PRT (( L "%s: <>ƒÁry…ošˆi ¨vœtu®‡dd»s 0x%lx :‚Ù suµÜ‹d‡nymÜe\n", LD_NAME , kd -> k’Œy )); 279 `VERB_PRT (3, { 280 `Pršt ( L "Lowest PhysAddr: 0x%lx\nTotalMemSize:%d bytes (%d…ages)\n", 281 low_addr , tÙ®_size , ·ges ); 282 `Pršt ( L "K”ÃÈ’Œy @ 0x%lx\n", kd -> k’Œy ); 288 ià( `®loc_kmem ( low_addr , ·ges ) == -1) { 289 VOID * Ãw_addr ; 291 `VERB_PRT (1, ( L "% : AÎoÿ‹Pages(%d, 0x%lxèfÜ k”ÃÈçžed\n", LD_NAME , ·ges , low_addr )); 293 ià( `Ÿ64_ÿn_»loÿ‹ () == 0) { 294 `ERR_PRT (( L "relocation is disabled, cannot†oad kernel")); 295  out ; 307 `Pršt ( L "Attemptingo„elocate kernel.\n"); 308 ià( `fšd_k”Ãl_memÜy ( low_addr , max_addr , 256* MB , & Ãw_addr ) == -1) { 309 `ERR_PRT (( L "% : fšd_k”Ãl_memÜy(0x%lx, 0x%lx, 0x%lx, 0x%lxèçžed\n", LD_NAME , low_addr , max_addr , 256* MB , & lßd_off£t )); 310  out ; 313 lßd_off£t = ( UINTN è( Ãw_addr - `ROUNDDOWN ((UINTNè low_addr ,256* MB )); 315 `VERB_PRT (3, `Pršt ( L "low_addr=0x%lx‚ew_addr=0x%lx off£t=0x%lx", low_addr , Ãw_addr , lßd_off£t )); 320 low_addr = ( VOID *è(( UINTN èlow_add¸+ lßd_off£t ); 321 max_addr = ( VOID *è(( UINTN èmax_add¸+ lßd_off£t ); 322 kd -> k¡¬t = ( VOID *è(( UINTN èkd->k¡¬ˆ+ lßd_off£t ); 323 kd -> k’d = ( VOID *è(( UINTN èkd->k’d + lßd_off£t ); 324 kd -> k’Œy = ( VOID *è(( UINTN èkd->k’Œy + lßd_off£t ); 329 ià( `®loc_kmem ( low_addr , ·ges ) == -1) { 330 `ERR_PRT (( L "% : AÎoÿ‹Pages(%d, 0x%lxèfÜ k”ÃÈçžed\n", LD_NAME , ·ges , low_addr )); 331 `ERR_PRT (( L "R–oÿtiÚ by 0x%lx by‹ çžed.\n", lßd_off£t )); 332  out ; 336 `VERB_PRT (1, `Pršt ( L "Press‡ny keyo interrupt\n")); 342  i = 0; i < phnum ; i++) { 347 ià( `bsw­32 ( phdrs [ i ]. p_ty³ è!ð PT_LOAD ) ; 349 poffs = `bsw­64 ( phdrs [ i ]. p_off£t ); 351 size = poffs - offs ; 353 `VERB_PRT (3, `Pršt ( L "\noff=%ld…offs=%ld size=%ld\n", offs , poffs , size )); 355 fžesz = `bsw­64 ( phdrs [ i ]. p_fžesz ); 359 phdrs [ i ]. p_·ddr = ( Elf64_Addr è(( UINTN è `bsw­64 Õhdrs[i].p_·ddrè+ lßd_off£t ); 364 ià( size && `sk_by‹s ( fd , offs , poffs è!ð0è out_k”Ãl ; 369 offs +ð size ; 374 bss_sz = `bsw­64 ( phdrs [ i ]. p_memsz è- fžesz ; 376 `VERB_PRT (4, { 377 `Pršt ( L "\nH—d” #%d\n", i ); 378 `Pršt ( L "off£ˆ%ld\n", poffs ); 379 `Pršt ( L "Phy add¸0x%lx\n", phdrs [ i ]. p_·ddr ); 380 `Pršt ( L "BSS siz%ld by‹s\n", bss_sz ); 381 `Pršt ( L "sk=%ld offs=%ld\n", size , offs ); 387 »t = `»ad_fže ( fd , fžesz , ( CHAR8 *) phdrs [ i ]. p_·ddr ); 388 ià( »t =ð ELILO_LOAD_ABORTED è lßd_abÜt ; 389 ià( »t =ð ELILO_LOAD_ERROR è out ; 390 ià( `bsw­32 ( phdrs [ i ]. p_æags è& PF_X ) 391 `æush_dÿche (( CHAR8 *) phdrs [ i ]. p_·ddr , fžesz ); 396 offs +ð fžesz ; 401 ià( bss_sz è `Mem£t (( VOID *è phdrs [ i ]. p_·ddr + fžesz , 0, bss_sz); 404 `ä“ ( phdrs ); 406 `Pršt ( L "..done\n"); 407  ELILO_LOAD_SUCCESS ; 409 lßd_abÜt : 410 `Pršt ( L "..Aborted\n"); 411 »t = ELILO_LOAD_ABORTED ; 412 out_k”Ãl : 414 `ä“_kmem (); 415 out : 416 `ä“ ( phdrs ); 417  »t ; 418 } } 420  INTN 421 $¶aš_lßd_k”Ãl ( CHAR16 * kÇme , kdesc_t * kd ) 423 INTN »t ; 424 fÝs_fd_t fd ; 425 EFI_STATUS ¡©us ; 430 ¡©us = `fÝs_Ý’ ( kÇme , & fd ); 431 ià( `EFI_ERROR ( ¡©us )è ELILO_LOAD_ERROR ; 433 `Pršt ( L "Lßdšg %s...", kÇme ); 435 »t = `lßd_–f ( fd , kd ); 437 `fÝs_þo£ ( fd ); 442 ià( sk_bufãr ) { 443 `ä“ ( sk_bufãr ); 445 sk_bufãr = NULL ; 447  »t ; 448 } } 450 lßd”_Ýs_t g¶aš_lßd” ={ 451 NULL , 452 LD_NAME , 453 ¶aš_´obe , 454 ¶aš_lßd_k”Ãl @ia64/private.h 26 #iâdeà __ELILO_PRIVATE_IA64_H__ 27  #__ELILO_PRIVATE_IA64_H__ ) 29 INTN check_åswa ( EFI_HANDLE , EFI_HANDLE, CHAR16 *); 30 INTN qu”y_åswa ( VOID **); 32 INTN Ÿ64_ÿn_»loÿ‹ (); 34  æush_dÿche ( CHAR8 * addr , UINT64 Ën ); @ia64/setjmp.h 22  #_JBLEN 70 ) 25  tjmp_buf [ _JBLEN ] t__©Œibu‹__ (( t®igÃd (16))); 27  £tjmp ( jmp_buf __’v ); 28  lÚgjmp ( jmp_buf __’v ,  __v® ); @ia64/sysdeps.h 32 #iâdeà __ELILO_SYSDEPS_IA64_H__ 33  #__ELILO_SYSDEPS_IA64_H__ ) 35  #ELILO_ARCH "IA-64" ) 38 VOID Mem£t (VOID *, INTN , UINTN ); 39 VOID Memýy (VOID *, VOID *, UINTN ); 41 VOID sysd•_»gi¡”_ÝtiÚs (VOID); 46  sŸ64_boÙ_·¿ms { 52 UINTN mcommªd_lše ; 53 UINTN mefi_sy¡ab ; 54 UINTN mefi_memm­ ; 55 UINTN mefi_memm­_size ; 56 UINTN mefi_memdesc_size ; 57 UINT32 mefi_memdesc_v”siÚ ; 59 UINT16 mnum_cÞs ; 60 UINT16 mnum_rows ; 61 UINT16 mÜig_x ; 62 UINT16 mÜig_y ; 63 } mcÚsÞe_šfo ; 64 UINTN måswa ; 65 UINTN mš™rd_¡¬t ; 66 UINTN mš™rd_size ; 68 UINTN mvmcode_¡¬t ; 69 UINTN mvmcode_size ; 70 UINTN mlßd”_addr ; 71 UINTN mlßd”_size ; 73 } tboÙ_·¿ms_t ; 75  ssys_img_ÝtiÚs { 76 UINT8 mdummy ; 77 UINT8 m®low_»loÿtiÚ ; 78 } tsys_img_ÝtiÚs_t ; 83  šlše  84 $¡¬t_k”Ãl ( VOID * k’Œy , VOID * bp ) 86 asm vÞ©ž("mov„28=%1; br.¥tk.ãw %0" :: "b"( k’Œy ),"r"( bp )); 87 } } 89  šlše cÚ¡ UINT64 90 $__Ÿ64_swab64 ( UINT64 x ) 92 UINT64 »suÉ ; 94 asm vÞ©ž("mux1 %0=%1,@»v" : "ô" ( »suÉ è: "r" ( x )); 95  »suÉ ; 96 } } 98  šlše cÚ¡ UINT32 99 $__Ÿ64_swab32 ( UINT32 x ) 101  `__Ÿ64_swab64 ( x ) >> 32; 102 } } 104  šlše cÚ¡ UINT16 105 $__Ÿ64_swab16 ( UINT16 x ) 107  `__Ÿ64_swab64 ( x ) >> 48; 108 } } @ia64/system.c 29  ~ 30  ~ 32  ~"–žo.h " 33  ~"lßd”.h " 34  ~"´iv©e.h " 36 lßd”_Ýs_t ¶aš_lßd” , gz_lßd” ; 41 INTN 42 $sysd•s_ü—‹_boÙ_·¿ms ( boÙ_·¿ms_t * bp , CHAR8 * cmdlše , memdesc_t * š™rd , memdesc_ˆ* vmcode , UINTN * cook› ) 44 UINTN cÞs , rows ; 45 SIMPLE_TEXT_OUTPUT_INTERFACE * cÚout ; 46 EFI_STATUS ¡©us ; 47 mm­_desc_t mdesc ; 54 `qu”y_åswa (( VOID **)& bp -> åswa ); 56 ià( `g‘_memm­ (& mdesc ) == -1)  -1; 58 `DBG_PRT (( L "GÙ memÜy m­ @ 0x%lx (%d by‹s)", mdesc . md , mdesc. m­_size )); 60 bp -> efi_sy¡ab = ( UINTN ) sy¡ab ; 61 bp -> efi_memm­ = ( UINTN ) mdesc . md ; 62 bp -> efi_memm­_size = mdesc . m­_size ; 63 bp -> efi_memdesc_size = mdesc . desc_size ; 64 bp -> efi_memdesc_v”siÚ = mdesc . desc_v”siÚ ; 65 bp -> commªd_lše = ( UINTN ) cmdlše ; 66 bp -> š™rd_¡¬t = ( UINTN è š™rd -> ¡¬t_addr ; 67 bp -> š™rd_size = š™rd -> size ; 68 `DBG_PRT (( L "GÙ in™rd @ 0x%lx (%d by‹s)", š™rd -> ¡¬t_addr , in™rd-> size )); 70 bp -> vmcode_¡¬t = ( UINTN è vmcode -> ¡¬t_addr ; 71 bp -> vmcode_size = vmcode -> size ; 72 `DBG_PRT (( L "GÙ vmcod@ 0x%lx (%d by‹s)", vmcode -> ¡¬t_addr , vmcode-> size )); 75 cÚout = sy¡ab -> CÚOut ; 76 ¡©us = cÚout -> `Qu”yMode (cÚout, cÚout-> Mode ->Mode, & cÞs , & rows ); 77 ià( `EFI_ERROR ( ¡©us )) { 78 `ERR_PRT (( L "boÙ_·¿m Qu”yModçžed %r", ¡©us )); 79  ”rÜ ; 81 `DBG_PRT (( L "Got console info: cols=%d„ows=%d x=%d y=%d", 82 cÞs , rows , cÚout -> Mode -> CursÜCÞumn , cÚout->Mode-> CursÜRow )); 84 bp -> cÚsÞe_šfo . num_cÞs = cÞs ; 85 bp -> cÚsÞe_šfo . num_rows = rows ; 86 bp -> cÚsÞe_šfo . Üig_x = cÚout -> Mode -> CursÜCÞumn ; 87 bp -> cÚsÞe_šfo . Üig_y = cÚout -> Mode -> CursÜRow ; 89 * cook› = mdesc .cookie; 92 ”rÜ : 94 `ä“_memm­ (& mdesc ); 97 } } 99 VOID 100 $sysd•s_ä“_boÙ_·¿ms ( boÙ_·¿ms_t * bp ) 102 mm­_desc_t md ; 104 `Mem£t (& md , 0, (md)); 106 md .md = ( VOID *) bp -> efi_memm­ ; 108 `ä“_memm­ (& md ); 109 } } 111 INTN 112 $sysd•s_š™ ( EFI_HANDLE dev ) 114 `lßd”_»gi¡” (& ¶aš_lßd” ); 115 `lßd”_»gi¡” (& gz_lßd” ); 118 } } 120 INTN 121 $sysd•s_š™rd_g‘_addr ( kdesc_t * kd , memdesc_t * imem ) 135 imem -> ¡¬t_addr = ( VOID *) `ROUNDUP (( UINTN ) kd -> k’d , EFI_PAGE_SIZE ); 137 imem -> ¡¬t_addr = 0; 141 } } 145 $æush_dÿche ( CHAR8 * addr , UINT64 Ën ) 148 UINT64 a = (UINT64) addr & ~0x1f; 150 `VERB_PRT (3, `Pršt ( L "Flush 0x%lx-", a )); 153  Ën = (ËÀ+ 31è& ~0x1f;†’ > 0;†’ -ð0x20, a += 0x20) 154 asm vÞ©ž("fø%0" : : "r" ( a )); 156 asm volatile (";; sync.i;; srlz.i;;"); 158 `VERB_PRT (3, `Pršt ( L "0x%lx\n", a )); 159 } } @inflate.c 1  #DEBG ( x ) ) 2  #DEBG1 ( x ) ) 106 #ifdeà RCSID 107  grcsid [] = "#Id: inflate.c,v 0.14 1993/06/10 13:27:04 jloup Exp #"; 110 #iâdeà FUNC_STATIC 112 #ià defšed ( STDC_HEADERS è|| defšed( HAVE_STDLIB_H ) 113  ~ 114  ~<¡dlib.h > 117  ~"gz.h " 118  #FUNC_STATIC ) 121  #¦ide wšdow ) 130  shuá { 131 uch me ; 132 uch mb ; 134 ush mn ; 135  huá * mt ; 136 } mv ; 141 FUNC_STATIC  huá_bužd OF ((*, , , 142 cÚ¡ ush *, cÚ¡ ush *,  huá **, *)); 143 FUNC_STATIC  huá_ä“ OF (( huá *)); 144 FUNC_STATIC  šæ©e_codes OF (( huá *, huft *, , )); 145 FUNC_STATIC  šæ©e_¡Üed OF (()); 146 FUNC_STATIC  šæ©e_fixed OF (()); 147 FUNC_STATIC  šæ©e_dyÇmic OF (()); 148 FUNC_STATIC  šæ©e_block OF ((*)); 149 FUNC_STATIC  šæ©e OF (()); 161  #wp outút ) 162  #æush_ouut ( w è( wp =(w), `æush_wšdow ()) ) 165 cÚ¡  gbÜd” [] = { 167 cÚ¡ ush gýËns [] = { 171 cÚ¡ ush gýËxt [] = { 174 cÚ¡ ush gýdi¡ [] = { 178 cÚ¡ ush gýdext [] = { 215 FUNC_STATIC ulg gbb ; 216 FUNC_STATIC  gbk ; 218 FUNC_STATIC cÚ¡ ush gmask_b™s [] = { 224  #NEXTBYTE (è( uch ) `g‘_by‹ () ) 225  #NEEDBITS ( n è{ k <Ò)){ b |=(( ulg ) `NEXTBYTE ())<>=Ò); k -=Ò);} ) 262 FUNC_STATIC cÚ¡  glb™s = 9; 263 FUNC_STATIC cÚ¡  gdb™s = 6; 267  #BMAX 16 ) 268  #N_MAX 288 ) 271 FUNC_STATIC  ghuás ; 274 FUNC_STATIC  $huá_bužd ( b , n , s , d , e , t , m ) 275 * b ; 276  n ; 277  s ; 278 cÚ¡ ush * d ; 279 cÚ¡ ush * e ; 280  huá ** t ; 281 * m ; 288  a ; 289  c [ BMAX +1]; 290  f ; 291  g ; 292  h ; 293  i ; 294  j ; 295  k ; 296  l ; 297 * p ; 298  huá * q ; 299  huá r ; 300  huá * u [ BMAX ]; 301  v [ N_MAX ]; 302  w ; 303  x [ BMAX +1]; 304 * xp ; 305  y ; 306  z ; 308 `DEBG ("huft1 "); 311 `memz”o ( c , (c)); 313 p = b ; i = n ; 315 `T¿ûcv (* p , ( ¡d”r , ( n - i >= ' ' &&‚-i <= '~' ? "%c %d\n" : "0x%x %d\n"), 316 n - i , * p )); 317 c [* p ]++; 318 p ++; 319 } -- i ); 320 ià( c [0] =ð n ) 322 * t = ( huá *) NULL ; 323 * m = 0; 327 `DEBG ("huft2 "); 330 l = * m ; 331  j = 1; j <ð BMAX ; j++) 332 ià( c [ j ]) 334 k = j ; 335 ià(() l < j ) 336 l = j ; 337  i = BMAX ; i; i--) 338 ià( c [ i ]) 340 g = i ; 341 ià(() l > i ) 342 l = i ; 343 * m = l ; 345 `DEBG ("huft3 "); 348  y = 1 << j ; j < i ; j++, y <<= 1) 349 ià(( y -ð c [ j ]) < 0) 351 ià(( y -ð c [ i ]) < 0) 353 c [ i ] +ð y ; 355 `DEBG ("huft4 "); 358 x [1] = j = 0; 359 p = c + 1; xp = x + 2; 360 -- i ) { 361 * xp ++ = ( j +ð* p ++); 364 `DEBG ("huft5 "); 367 p = b ; i = 0; 369 ià(( j = * p ++) != 0) 370 v [ x [ j ]++] = i ; 371 } ++ i < n ); 373 `DEBG ("h6 "); 376 x [0] = i = 0; 377 p = v ; 378 h = -1; 379 w = - l ; 380 u [0] = ( huá *) NULL ; 381 q = ( huá *) NULL ; 382 z = 0; 383 `DEBG ("h6a "); 386 ; k <ð g ; k++) 388 `DEBG ("h6b "); 389 a = c [ k ]; 390  a --) 392 `DEBG ("h6b1 "); 395  k > w + l ) 397 `DEBG1 ("1 "); 398 h ++; 399 w +ð l ; 402 z = (z = g - w è> () l ?† : z; 403 ià(( f = 1 << ( j = k - w )è> a + 1) 405 `DEBG1 ("2 "); 406 f -ð a + 1; 407 xp = c + k ; 408 ++ j < z ) 410 ià(( f <<ð1è<ð*++ xp ) 412 f -ð* xp ; 415 `DEBG1 ("3 "); 416 z = 1 << j ; 419 ià(( q = ( huá *) `gz_m®loc (( z + 1)*(huft))) == 420 ( huá *) NULL ) 422 ià( h ) 423 `huá_ä“ ( u [0]); 426 `DEBG1 ("4 "); 427 huás +ð z + 1; 428 * t = q + 1; 429 *( t = &( q -> v .t)èð( huá *) NULL ; 430 u [ h ] = ++ q ; 432 `DEBG1 ("5 "); 434 ià( h ) 436 x [ h ] = i ; 437 r . b = ( uch ) l ; 438 r . e = ( uch )(16 + j ); 439 r . v . t = q ; 440 j = i >> ( w - l ); 441 u [ h -1][ j ] = r ; 443 `DEBG1 ("6 "); 445 `DEBG ("h6c "); 448 r . b = ( uch )( k - w ); 449 ià( p >ð v + n ) 450 r . e = 99; 451 ià(* p < s ) 453 r . e = ( uch )(* p < 256 ? 16 : 15); 454 r . v . n = ( ush )(* p ); 455 p ++; 459 r . e = ( uch ë[* p - s ]; 460 r . v . n = d [* p ++ - s ]; 462 `DEBG ("h6d "); 465 f = 1 << ( k - w ); 466  j = i >> w ; j < z ; j +ð f ) 467 q [ j ] = r ; 470  j = 1 << ( k - 1); i & j; j >>= 1) 471 i ^ð j ; 472 i ^ð j ; 475 ( i & ((1 << w è- 1)è!ð x [ h ]) 477 h --; 478 w -ð l ; 480 `DEBG ("h6e "); 482 `DEBG ("h6f "); 485 `DEBG ("huft7 "); 488  y !ð0 && g != 1; 489 } } 493 FUNC_STATIC  $huá_ä“ ( t ) 494  huá * t ; 499  huá * p , * q ; 503 p = t ; 504  p !ð( huá *) NULL ) 506 q = (-- p )-> v . t ; 507 `gz_ä“ ((*) p ); 508 p = q ; 511 } } 514 FUNC_STATIC  $šæ©e_codes ( Ž , td , bl , bd ) 515  huá * Ž , * td ; 516  bl , bd ; 520  e ; 521  n , d ; 522  w ; 523  huá * t ; 524  ml , md ; 525  ulg b ; 526  k ; 530 b = bb ; 531 k = bk ; 532 w = wp ; 535 ml = mask_b™s [ bl ]; 536 md = mask_b™s [ bd ]; 539 `NEEDBITS (() bl ) 540 ià(( e = ( t = Ž + (() b & ml ))->e) > 16) 542 ià( e == 99) 544 `DUMPBITS ( t -> b ) 545 e -= 16; 546 `NEEDBITS ( e ) 547 } ( e = ( t =-> v .ˆ+ (() b & mask_b™s [e]))->e) > 16); 548 `DUMPBITS ( t -> b ) 549 ià( e == 16) 551 ¦ide [ w ++] = ( uch ) t -> v . n ; 552 `T¿ûvv (( ¡d”r , "%c", ¦ide [ w -1])); 553 ià( w =ð WSIZE ) 555 `æush_ouut ( w ); 556 w = 0; 562 ià( e == 15) 566 `NEEDBITS ( e ) 567 n = t -> v .À+ (() b & mask_b™s [ e ]); 568 `DUMPBITS ( e ); 571 `NEEDBITS (() bd ) 572 ià(( e = ( t = td + (() b & md ))->e) > 16) 574 ià( e == 99) 576 `DUMPBITS ( t -> b ) 577 e -= 16; 578 `NEEDBITS ( e ) 579 } ( e = ( t =-> v .ˆ+ (() b & mask_b™s [e]))->e) > 16); 580 `DUMPBITS ( t -> b ) 581 `NEEDBITS ( e ) 582 d = w - t -> v . n - (() b & mask_b™s [ e ]); 583 `DUMPBITS ( e ) 584 `T¿ûvv (( ¡d”r ,"\\[%d,%d]", w - d , n )); 588 n -ð( e = (ð WSIZE - (( d &ðWSIZE-1è> w ? d : w)) >‚ ?‚ :ƒ); 589 #ià! `defšed ( NOMEMCPY è&& !defšed( INFLATE_DEBUG ) 590 ià( w - d >ð e ) 592 `memýy ( ¦ide + w , slid+ d , e ); 593 w +ð e ; 594 d +ð e ; 599 ¦ide [ w ++] = slide[ d ++]; 600 `T¿ûvv (( ¡d”r , "%c", ¦ide [ w -1])); 601 } -- e ); 602 ià( w =ð WSIZE ) 604 `æush_ouut ( w ); 605 w = 0; 607 }  n ); 613 wp = w ; 614 bb = b ; 615 bk = k ; 619 } } 623 FUNC_STATIC  $šæ©e_¡Üed () 626  n ; 627  w ; 628  ulg b ; 629  k ; 631 `DEBG (""); 675 } } 679 FUNC_STATIC  $šæ©e_fixed () 684  i ; 685  huá * Ž ; 686  huá * td ; 687  bl ; 688  bd ; 689  l [288]; 691 `DEBG (" 1) 713 `huá_ä“ ( Ž ); 715 `DEBG (">"); 716  i ; 721 ià( `šæ©e_codes ( Ž , td , bl , bd )) 726 `huá_ä“ ( Ž ); 727 `huá_ä“ ( td ); 729 } } 733 FUNC_STATIC  $šæ©e_dyÇmic () 736  i ; 737  j ; 738  l ; 739  m ; 740  n ; 741  huá * Ž ; 742  huá * td ; 743  bl ; 744  bd ; 745  nb ; 746  Æ ; 747  nd ; 748 #ifdeà PKZIP_BUG_WORKAROUND 749  Î [288+32]; 751  Î [286+30]; 753  ulg b ; 754  k ; 756 `DEBG (" 288 || nd > 32) 776 ià( Æ > 286 || nd > 30) 780 `DEBG ("dyn1 "); 783  j = 0; j < nb ; j++) 785 `NEEDBITS (3) 786 Î [ bÜd” [ j ]] = () b & 7; 787 `DUMPBITS (3) 789 ; j < 19; j++) 790 Î [ bÜd” [ j ]] = 0; 792 `DEBG ("dyn2 "); 795 bl = 7; 796 ià(( i = `huá_bužd ( Î , 19, 19, NULL , NULL, & Ž , & bl )) != 0) 798 ià( i == 1) 799 `huá_ä“ ( Ž ); 800  i ; 803 `DEBG ("dyn3 "); 806 n = Æ + nd ; 807 m = mask_b™s [ bl ]; 808 i = l = 0; 809 () i < n ) 811 `NEEDBITS (() bl ) 812 j = ( td = Ž + (() b & m ))->b; 813 `DUMPBITS ( j ) 814 j = td -> v . n ; 815 ià( j < 16) 816 Î [ i ++] = l = j ; 817 ià( j == 16) 819 `NEEDBITS (2) 820 j = 3 + (() b & 3); 821 `DUMPBITS (2) 822 ià(() i + j > n ) 824  j --) 825 Î [ i ++] = l ; 827 ià( j == 17) 829 `NEEDBITS (3) 830 j = 3 + (() b & 7); 831 `DUMPBITS (3) 832 ià(() i + j > n ) 834  j --) 835 Î [ i ++] = 0; 836 l = 0; 840 `NEEDBITS (7) 841 j = 11 + (() b & 0x7f); 842 `DUMPBITS (7) 843 ià(() i + j > n ) 845  j --) 846 Î [ i ++] = 0; 847 l = 0; 851 `DEBG ("dyn4 "); 854 `huá_ä“ ( Ž ); 856 `DEBG ("dyn5 "); 859 bb = b ; 860 bk = k ; 862 `DEBG ("dyn5a "); 865 bl = lb™s ; 866 ià(( i = `huá_bužd ( Î , Æ , 257, ýËns , ýËxt , & Ž , & bl )) != 0) 868 `DEBG ("dyn5b "); 869 ià( i == 1) { 870 `”rÜ (" incomplete†iteralree\n"); 871 `huá_ä“ ( Ž ); 873  i ; 875 `DEBG ("dyn5c "); 876 bd = db™s ; 877 ià(( i = `huá_bužd ( Î + Æ , nd , 0, ýdi¡ , ýdext , & td , & bd )) != 0) 879 `DEBG ("dyn5d "); 880 ià( i == 1) { 881 `”rÜ (" incomplete distanceree\n"); 882 #ifdeà PKZIP_BUG_WORKAROUND 883 i = 0; 886 `huá_ä“ ( td ); 888 `huá_ä“ ( Ž ); 889  i ; 893 `DEBG ("dyn6 "); 896 ià( `šæ©e_codes ( Ž , td , bl , bd )) 899 `DEBG ("dyn7 "); 902 `huá_ä“ ( Ž ); 903 `huá_ä“ ( td ); 905 `DEBG (">"); 907 } } 911 FUNC_STATIC  $šæ©e_block ( e ) 912 * e ; 915  t ; 916  ulg b ; 917  k ; 919 `DEBG (""); 954 } } 958 FUNC_STATIC  $šæ©e () 961  e ; 962  r ; 963  h ; 966 wp = 0; 967 bk = 0; 968 bb = 0; 972 h = 0; 974 huás = 0; 975 ià(( r = `šæ©e_block (& e )) != 0) { 976  r ; 978 ià( huás > h ) 979 h = huás ; 980 } ! e ); 985  bk >= 8) { 986 bk -= 8; 987 š±r --; 991 `æush_ouut ( wp ); 995 #ifdeà INFLATE_DEBUG 996 #ifdeà EFI_COMPILE 997 `Pršt ( L "<%d> ", h ); 999 `´štf ("<%d> ", h ); 1003 } } 1011  ulg güc_32_b [256]; 1012  ulg güc ; 1013  #CRC_VALUE ( üc ^ 0xffffffffUL) ) 1021 $makeüc () 1025  c ; 1026  e ; 1027  i ; 1028  k ; 1031 cÚ¡  p [] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; 1034 e = 0; 1035  i = 0; i < ( p )/(); i++) 1036 e |ð1L << (31 - p [ i ]); 1038 üc_32_b [0] = 0; 1040  i = 1; i < 256; i++) 1042 c = 0; 1043  k = i | 256; k != 1; k >>= 1) 1045 c = c & 1 ? (ø>> 1è^ e : c >> 1; 1046 ià( k & 1) 1047 c ^ð e ; 1049 üc_32_b [ i ] = c ; 1053 üc = ( ulg )0xffffffffUL; 1054 } } 1059  $gunz () 1061 uch æags ; 1062  magic [2]; 1063  m‘hod ; 1064 ulg Üig_üc = 0; 1065 ulg Üig_Ën = 0; 1066  »s ; 1068 magic [0] = () `g‘_by‹ (); 1069 magic [1] = () `g‘_by‹ (); 1070 m‘hod = () `g‘_by‹ (); 1072 ià( magic [0] != 037 || 1073 (( magic [1] != 0213) && (magic[1] != 0236))) { 1074 `”rÜ ("bad gzip magic‚umbers"); 1079 ià( m‘hod != 8) { 1080 `”rÜ ("internalƒrror, invalid method"); 1084 æags = ( uch ) `g‘_by‹ (); 1085 ià(( æags & ENCRYPTED ) != 0) { 1086 `”rÜ ("Input isƒncrypted\n"); 1089 ià(( æags & CONTINUATION ) != 0) { 1090 `”rÜ ("Multi…art input\n"); 1093 ià(( æags & RESERVED ) != 0) { 1094 `”rÜ ("Input has invalid flags\n"); 1097 ( ulg ) `g‘_by‹ (); 1098 (( ulg ) `g‘_by‹ ()) << 8; 1099 (( ulg ) `g‘_by‹ ()) << 16; 1100 (( ulg ) `g‘_by‹ ()) << 24; 1102 () `g‘_by‹ (); 1103 () `g‘_by‹ (); 1105 ià(( æags & EXTRA_FIELD ) != 0) { 1106  Ën = () `g‘_by‹ (); 1107 Ën |ð(() `g‘_by‹ ())<<8; 1108  Ën --è() `g‘_by‹ (); 1112 ià(( æags & ORIG_NAME ) != 0) { 1114  `g‘_by‹ () != 0) ; 1118 ià(( æags & COMMENT ) != 0) { 1119  `g‘_by‹ () != 0) ; 1123 ià(( »s = `šæ©e ())) { 1124  »s ) { 1128 `”rÜ ("invalid compressed format (err=1)"); 1131 `”rÜ ("invalid compressed format (err=2)"); 1134 `”rÜ ("out of memory"); 1137 `”rÜ ("invalid compressed format (other)"); 1146 Üig_üc = ( ulg è `g‘_by‹ (); 1147 Üig_üc |ð( ulg è `g‘_by‹ () << 8; 1148 Üig_üc |ð( ulg è `g‘_by‹ () << 16; 1149 Üig_üc |ð( ulg è `g‘_by‹ () << 24; 1151 Üig_Ën = ( ulg è `g‘_by‹ (); 1152 Üig_Ën |ð( ulg è `g‘_by‹ () << 8; 1153 Üig_Ën |ð( ulg è `g‘_by‹ () << 16; 1154 Üig_Ën |ð( ulg è `g‘_by‹ () << 24; 1157 ià( Üig_üc !ð CRC_VALUE ) { 1158 `”rÜ ("crcƒrror"); 1161 ià( Üig_Ën !ð by‹s_out ) { 1162 `”rÜ ("lengthƒrror"); 1166 } } @initrd.c 26  ~ 27  ~ 29  ~"–žo.h " 40 INTN 41 $lßd_fže ( CHAR16 * fž’ame , memdesc_t * image ) 43 EFI_STATUS ¡©us ; 44 VOID * ¡¬t_addr = image ->start_addr; 45 UINTN pgút ; 46 UINT64 size = 0; 47 fÝs_fd_t fd ; 48 INTN »t = ELILO_LOAD_ERROR ; 51 ià( fž’ame =ð NULL || filename[0] == 0)  -1; 54 ¡©us = `fÝs_Ý’ ( fž’ame , & fd ); 55 ià( `EFI_ERROR ( ¡©us )) { 56 `ERR_PRT (( L "O³Àfž% çžed: %r", fž’ame , ¡©us )); 60 `DBG_PRT (( L "Ý’ % wÜked", fž’ame )); 63 ¡©us = `fÝs_šfosize ( fd , & size ); 64 ià( `EFI_ERROR ( ¡©us )) { 65 `ERR_PRT (( L "Couldn'ˆ»ad fž% šfØ%r", fž’ame , ¡©us )); 66  ”rÜ ; 69 image -> size = size; 72 image -> pgút =…gúˆð `EFI_SIZE_TO_PAGES (image-> size ); 74 ¡¬t_addr = `®loc_·ges ( pgút , EfiLßd”D©a , s¹_add¸? AÎoÿ‹Add»ss : AÎoÿ‹AnyPages , start_addr); 75 ià( ¡¬t_addr =ð NULL ) { 76 `ERR_PRT (( L "FažedØ®loÿ‹ %d…age fÜ % image", pgút , 77 fž’ame )); 78  ”rÜ ; 80 `VERB_PRT (2, `Pršt ( L "%s image:otal_size: %ld bytes base: 0x%lx " 81 "·ge %d\n", fž’ame , image -> size , 82 ( UINTN ) ¡¬t_addr , pgút )); 84 `Pršt ( L "Lßdšg fž%s...", fž’ame ); 86 »t = `»ad_fže ( fd , image -> size , ¡¬t_addr ); 88 `fÝs_þo£ ( fd ); 90 ià( »t !ð ELILO_LOAD_SUCCESS ) { 91 `ERR_PRT (( L "»ad image(%sèçžed: %d", fž’ame , »t )); 92  ”rÜ ; 95 `Pršt ( L "done\n"); 97 image -> ¡¬t_addr = start_addr; 99  ELILO_LOAD_SUCCESS ; 101 ”rÜ : 102 ià( ¡¬t_addr è `ä“ (start_addr); 108 image -> ¡¬t_addr = 0; 109 image -> pgút = 0; 110 image -> size = 0; 112  »t ; 113 } } @loader.c 26  ~ 27  ~ 29  ~"–žo.h " 30  ~"lßd”.h " 32 lßd”_Ýs_t ¶aš_lßd” ; 33 lßd”_Ýs_t gz_lßd” ; 35  lßd”_Ýs_t * gldÝs_li¡ ; 37 lßd”_Ýs_t * 38 $lßd”_´obe ( CHAR16 * kÇme ) 40 lßd”_Ýs_t * Ýs ; 42  Ýs ð ldÝs_li¡ ; ops; op ðÝs-> Ãxt ) { 43 ià( Ýs -> `ld_´obe ( kÇme ) == 0) { 44  Ýs ; 47  NULL ; 48 } } 50 INTN 51 $lßd”_»gi¡” ( lßd”_Ýs_t * ldÝs ) 53 ià( ldÝs =ð NULL )  -1; 56 ià( ldÝs -> Ãxt ) { 57 `ERR_PRT (( L "lßd” % i ®»ady„egi¡”ed", ldÝs -> ld_Çme )); 61 ldÝs -> Ãxt = ldÝs_li¡ ; 62 ldÝs_li¡ = ldÝs ; 64 `VERB_PRT (3, `Pršt ( L "New†ßd”„egi¡”ed: %s\n", ldÝs -> ld_Çme )); 67 } } @loader.h 26 #iâdeà __LOADER_H__ 27  #__LOADER_H__ ) 29  ~"fžeÝs.h " 31  s__lßd”_Ýs_t { 32  __lßd”_Ýs_t * mÃxt ; 33 CHAR16 * mld_Çme ; 34 INTN (* ld_´obe )( CHAR16 * mkÇme ); 35 INTN (* ld_lßd_k”Ãl )( CHAR16 * mkÇme , kdesc_t * mkd ); 36 } tlßd”_Ýs_t ; 38 lßd”_Ýs_t * lßd”_´obe ( CHAR16 * kÇme ); 39 INTN lßd”_»gi¡” ( lßd”_Ýs_t * ldÝs ); @strops.c 26  ~ 27  ~ 31 CHAR16 * 32 $SŒChr ( IN cÚ¡ CHAR16 * s , IN cÚ¡ CHAR16 c ) 34 ; * s !ð c ; ++sèià(* =ð CHAR_NULL è NULL ; 36  ( CHAR16 *) s ; 37 } } 39 CHAR16 * 40 $SŒnCpy ( OUT CHAR16 * d¡ , IN cÚ¡ CHAR16 * ¤c , IN UINTN size ) 42 CHAR16 * »s = d¡ ; 44  size -- && (* d¡ ++ = * ¤c ++è!ð CHAR_NULL ); 48  size -- > 0è* d¡ ++ = CHAR_NULL ; 50  »s ; 51 } } 53 CHAR8 * 54 $SŒnXCpy ( OUT CHAR8 * d¡ , IN cÚ¡ CHAR16 * ¤c , IN UINTN size ) 56 CHAR8 * »s = d¡ ; 58  size -- && (* d¡ ++ = ( CHAR8 )* ¤c ++) != '\0'); 62  size -- > 0è* d¡ ++ = '\0'; 64  »s ; 65 } } 67 VOID 68 $U2ascii ( CHAR16 * š , CHAR8 * out , UINTN maxËn ) 70  maxËn -- > 1 && (* out ++ = * š ++)); 71 * out = '\0'; 72 } } 74 CHAR8 * 75 $¡ºýya ( OUT CHAR8 * d¡ , IN cÚ¡ CHAR8 * ¤c , IN UINTN size ) 77 CHAR8 * »s = d¡ ; 79  size -- && (* d¡ ++ = * ¤c ++) != '\0'); 83  size -- > 0è* d¡ ++ = '\0'; 85  »s ; 86 } } 88 CHAR8 * 89 $¡rýya ( CHAR8 * d¡ , cÚ¡ CHAR8 * ¤c ) 91 CHAR8 * tmp = d¡ ; 93 * ¤c ) { 94 *( d¡ ++èð*( ¤c ++); 96 * d¡ = 0; 98  tmp ; 100 } } 102 CHAR8 * 103 $¡rch¿ ( IN cÚ¡ CHAR8 * s , IN cÚ¡ CHAR8 c ) 105 ; * s !ð c ; ++s) 106 ià(* s =ð0è NULL ; 107  ( CHAR8 *) s ; 108 } } 110 CHAR8 * 111 $¡rÿ ( IN CHAR8 * d¡ ,IN CHAR8 * ¤c ) 113  `¡rýya ( d¡ + `¡¾’a (d¡), ¤c ); 114 } } 116 CHAR8 * 117 $¡¼ch¿ ( IN cÚ¡ CHAR8 * s , cÚ¡ INTN c ) 119 CHAR8 * found , * p , ch = (CHAR8) c ; 123 ià( ch =ð'\0'è `¡rch¿ ( s , '\0'); 125 found = NULL ; 126 ( p = `¡rch¿ ( s , ch )è!ð NULL ) 128 found = p ; 129 s = p + 1; 132  ( CHAR8 *è found ; 133 } } 135 CHAR8 * 136 $¡¹ok_sim¶e ( CHAR8 * š , CHAR8 c ) 138  CHAR8 * Ï¡ ; 139 CHAR8 * tmp ; 141 ià( š =ð NULL èš = Ï¡ ; 143 ià( š =ð NULL )  NULL; 145 ià(* š =ð c ) in++; 147 tmp = `¡rch¿ ( š , c ); 148 ià( tmp ) { 149 * tmp = '\0'; 150 Ï¡ = tmp +1; 152 Ï¡ = NULL ; 154  š ; 155 } } 157 VOID 158 $ascii2U ( CHAR8 * š , CHAR16 * out , UINTN maxËn ) 160  maxËn -- > 1 && (* out ++ = * š ++)); 162 * out = ( CHAR16 )0; 163 } } @strops.h 26 #iâdeà __STROPS_H__ 27  #__STROPS_H__ ) 29 CHAR16 * SŒChr ( IN cÚ¡ CHAR16 * s , cÚ¡ CHAR16 c ); 30 CHAR16 * SŒnCpy ( OUT CHAR16 * d¡ , IN cÚ¡ CHAR16 * ¤c , UINTN couÁ ); 31 CHAR8 * SŒnXCpy ( OUT CHAR8 * d¡ , IN cÚ¡ CHAR16 * ¤c , UINTN couÁ ); 33 CHAR8 * ¡¹ok_sim¶e (CHAR8 * š , CHAR8 c ); 34 CHAR8 * ¡¼ch¿ ( IN cÚ¡ CHAR8 * s , cÚ¡ INTN c ); 35 CHAR8 * ¡rÿ ( IN CHAR8 * d¡ ,IN CHAR8 * ¤c ); 36 CHAR8 * ¡rch¿ ( IN cÚ¡ CHAR8 * s , IN cÚ¡ CHAR8 c ); 37 CHAR8 * ¡rýya (CHAR8 * d¡ , cÚ¡ CHAR8 * ¤c ); 38 CHAR8 * ¡ºýya ( OUT CHAR8 * d¡ , IN cÚ¡ CHAR8 * ¤c , IN UINTN size ); 39 VOID U2ascii ( CHAR16 * š , CHAR8 * out , UINTN maxËn ); @sysdeps.h 26 #iâdeà __ELILO_SYSDEPS_H__ 27  #__ELILO_SYSDEPS_H__ ) 29 #ifdeà CONFIG_Ÿ64 30  ~"Ÿ64/sysd•s.h " 31 #–ià defšed CONFIG_Ÿ32 32  ~"Ÿ32/sysd•s.h " @tools/eliloalt.c 34  ~ 35  ~<¡dio.h > 36  ~<¡dlib.h > 37  ~<¡d¬g.h > 38  ~ 39  ~ 40  ~ 41  ~<”ºo.h > 42  ~<¡dšt.h > 43  ~<¡ršg.h > 44  ~ 47  #ELILOALT_VERSION "0.02" ) 49  #ELILO_ALT_NAME "ElžoAÉ" ) 50  #EFIVAR_DIR "/´oc/efi/v¬s" ) 51  #ELILO_ALTVAR EFIVAR_DIR "/" ELILO_ALT_NAME "-00000000-0000-0000-0000-000000000000" ) 53  #EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 ) 54  #EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 ) 55  #EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 ) 57  tefi_¡©us_t ; 58  ušt8_t tefi_boÞ_t ; 59  ušt16_t tefi_ch¬16_t ; 65 ušt32_t md©a1 ; 66 ušt16_t md©a2 ; 67 ušt16_t md©a3 ; 68 ušt8_t md©a4 [8]; 69 } tefi_guid_t ; 74  s_efi_v¬ŸbË_t { 75 efi_ch¬16_t mv¬ŸbËÇme [1024/(efi_char16_t)]; 76 efi_guid_t mv’dÜguid ; 77 ušt64_t md©asize ; 78 ušt8_t md©a [1024]; 79 efi_¡©us_t m¡©us ; 80 ušt32_t m©Œibu‹s ; 81 } t__©Œibu‹__ (( t·cked )è tefi_v¬ŸbË_t ; 83 * g–žo_®t_Çme = ELILO_ALT_NAME ; 85  ÝtiÚ gcmd_ÝtiÚs []={ 94  $çl_”rÜ (* fmt ,...è `__©Œibu‹__ (( nÜ‘uº )); 97 $çl_”rÜ (* fmt , ...) 99 va_li¡ ­ ; 101 `va_¡¬t ( ­ , fmt ); 102 `vårštf ( ¡d”r , fmt , ­ ); 103 `va_’d ( ­ ); 105 `ex™ (1); 106 } } 110 $u§ge (** ¬gv ) 112 `´štf ("U§ge: % [OPTIONS] cmdlše\n", ¬gv [0]); 114 `´štf ( "-h, --help\t\tdisplayhis help‡ndƒxit\n" 120 } } 123 $check_´oc_efi ( fšd_’Œy ) 125 DIR * efi_v¬s ; 126  dœ’t * ’Œy ; 127  Çme [1024]; 129 ià( `g‘uid () != 0) { 130 `çl_”rÜ ("This…rogram must be„un‡s„oot\n"); 132 efi_v¬s = `Ý’dœ ( EFIVAR_DIR ); 133 ià( efi_v¬s =ð NULL ) { 134 `çl_”rÜ ("CªnÙ‡cûs %s\n", EFIVAR_DIR ); 136 ià(! fšd_’Œy ) { 137 `þo£dœ ( efi_v¬s ); 138  NULL ; 141 ( ’Œy = `»addœ ( efi_v¬s )è!ð NULL ) { 142 ià( `¡rcmp ( ’Œy -> d_Çme , ".") && strcmp(entry->d_name, "..")) 145 ià( ’Œy =ð NULL ) { 146 `çl_”rÜ ("CªnÙ fšdƒÁry iÀ%s\n", EFIVAR_DIR ); 148 `¥rštf ( Çme , "%s/%s", EFIVAR_DIR , ’Œy -> d_Çme ); 149 `þo£dœ ( efi_v¬s ); 150  Çme ; 151 } } 154 $d–‘e_v¬ () 156 efi_v¬ŸbË_t v¬ ; 157  fd , r , i ; 159 `check_´oc_efi (0); 161 fd = `Ý’ ( ELILO_ALTVAR , O_WRONLY ); 162 ià( fd == -1) { 163 `çl_”rÜ ("variable‚ot defined\n"); 166 `mem£t (& v¬ , 0, (var)); 168  i =0; i < ( –žo_®t_Çme ); i++) { 169 v¬ . v¬ŸbËÇme [ i ] = ( efi_ch¬16_t ) –žo_®t_Çme [i]; 177 r = `wr™e ( fd , & v¬ , (var)); 178 ià( r !ð( v¬ )) { 179 `çl_”rÜ ("V¬ŸbË % defšed buˆšv®id cÚ‹Á\n", ELILO_ALTVAR ); 181 `þo£ ( fd ); 182 } } 186 $´št_v¬ () 188 efi_v¬ŸbË_t v¬ ; 189  fd , r , i ; 192 `check_´oc_efi (0); 194 fd = `Ý’ ( ELILO_ALTVAR , O_RDONLY ); 195 ià( fd == -1) { 196 `çl_”rÜ ("variable‚ot defined\n"); 199 `mem£t (& v¬ , 0, (var)); 201 r = `»ad ( fd , & v¬ , (var)); 202 ià( r !ð( v¬ )) { 203 `çl_”rÜ ("V¬ŸbË % defšed buˆšv®id cÚ‹Á\n", ELILO_ALTVAR ); 205 `´štf ("EliloAlt=\""); 206  i =0; i < v¬ . d©asize ; i+=1){ 207 `´štf ("%c", v¬ . d©a [ i ]); 209 `´štf ("\"\n"); 210 `þo£ ( fd ); 211 } } 214 $£t_v¬ (* cmdlše ) 216 efi_v¬ŸbË_t v¬ ; 217  fd , r , i , j , l ; 218 * Çme ; 220 Çme = `check_´oc_efi (1); 222 ià( cmdlše =ð NULL ) { 223 `çl_”rÜ ("invalid cmdline‡rgument\n"); 226 l = `¡¾’ ( cmdlše ); 228 ià( l >= 1024) { 229 `çl_”rÜ ("Variable content isoo†ong, must be <= 512 characters\n"); 232 fd = `Ý’ ( Çme , O_WRONLY ); 233 ià( fd == -1) { 234 `çl_”rÜ ("ÿn'ˆÝ’ %s: %s\n", ELILO_ALTVAR , `¡»¼Ü ( ”ºo )); 237 `mem£t (& v¬ , 0, (var)); 239  i =0; i < ( –žo_®t_Çme ); i++) { 240 v¬ . v¬ŸbËÇme [ i ] = ( efi_ch¬16_t ) –žo_®t_Çme [i]; 243  i =0, j =0; i < l ; i++, j+=2) { 244 v¬ . d©a [ j ] = ( efi_ch¬16_t ) cmdlše [ i ]; 247 v¬ . d©asize = j +2; 249 v¬ . ©Œibu‹s = EFI_VARIABLE_NON_VOLATILE 250 | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS ; 257 r = `wr™e ( fd , & v¬ , (var)); 258 ià( r !ð( v¬ )) { 259 `çl_”rÜ ("V¬ŸbË % defšed buˆšv®id cÚ‹Á %d\n", ELILO_ALTVAR , r ); 261 `þo£ ( fd ); 263 } } 266 $maš ( ¬gc , ** ¬gv ) 268  c ; 270 ( c = `g‘Ýt_lÚg ( ¬gc , ¬gv ,"hdps:", cmd_ÝtiÚs , 0)) != -1) { 271  c ) { 274 `´štf ("V”siÚ % D©e: %s\n", ELILOALT_VERSION , __DATE__ ); 275 `ex™ (0); 278 `u§ge ( ¬gv ); 279 `ex™ (0); 282 `d–‘e_v¬ (); 283 `ex™ (0); 286 `´št_v¬ (); 287 `ex™ (0); 290 `£t_v¬ ( Ýrg ); 291 `ex™ (0); 293 `çl_”rÜ ("Unknown option\n"); 296 `´št_v¬ (); 298 } } @util.c 29  ~ 30  ~ 32  ~"–žo.h " 34  #TENTH_SEC 1000000 ) 35  #READ_BLOCK_SIZE (4* EFI_PAGE_SIZE è ) 37  #is_ü ( k è(((k)== CHAR_LINEFEED )||((k)== CHAR_CARRIAGE_RETURN )) ) 38  #CHAR_SPACE L ' ' ) 40  INTN 41 $»ad_key´ess ( EFI_INPUT_KEY * key ) 43  sy¡ab -> CÚIn -> `R—dKeySŒoke (sy¡ab->CÚIn, key ); 44 } } 47 EFI_STATUS 48 $check_abÜt ( VOID ) 50 EFI_INPUT_KEY key ; 52  `»ad_key´ess (& key ); 53 } } 55 šlše VOID 56 $»£t_šput ( VOID ) 58 sy¡ab -> CÚIn -> `Re£t (systab->ConIn, 1); 59 } } 62 INTN 63 $wa™_key´ess_abÜt ( VOID ) 65 SIMPLE_INPUT_INTERFACE * cÚš = sy¡ab -> CÚIn ; 66 EFI_INPUT_KEY key ; 67 EFI_STATUS ¡©us ; 69 `»£t_šput (); 71 `Pršt ( L "Hit ENTERo continue or ANY other keyo cancel"); 74  cÚš -> `R—dKeySŒoke (cÚš, & key è=ð EFI_SUCCESS ); 76 ( ¡©us = cÚš -> `R—dKeySŒoke (cÚš, & key )è=ð EFI_NOT_READY ); 78 ià( `EFI_ERROR ( ¡©us )è ELILO_LOAD_ERROR ; 80 `Pršt ( L "\n"); 82  `is_ü ( key . UnicodeCh¬ è? ELILO_LOAD_SUCCESS : ELILO_BOOT_ABORTED ; 83 } } 93 INTN 94 $wa™_timeout ( UINTN timeout ) 96 EFI_STATUS ¡©us ; 97 EFI_EVENT tim” ; 98 EFI_EVENT li¡ [2]; 99 UINTN idx ; 102 ià( timeout == 0)  0; 105 ¡©us = BS -> `C»©eEv’t ( EVT_TIMER , 0, NULL , NULL, & tim” ); 106 ià( `EFI_ERROR ( ¡©us )) { 107 `ERR_PRT (( L " wa™key C»©eEv’ˆçžed %r", ¡©us )); 111 ¡©us = BS -> `S‘Tim” ( tim” , Tim”P”iodic , TENTH_SEC ); 112 ià( `EFI_ERROR ( ¡©us )) { 113 `ERR_PRT (( L "wa™key S‘Tim” fažed %r", ¡©us )); 117 li¡ [0] = tim” ; 118 li¡ [1] = sy¡ab -> CÚIn -> Wa™FÜKey ; 121 ¡©us = BS -> `Wa™FÜEv’t (2, li¡ , & idx ); 122 ià( `EFI_ERROR ( ¡©us )) { 123 `ERR_PRT (( L "wa™key Wa™FÜEv’ˆçžed %r", ¡©us )); 127 }  timeout -- && idx == 0); 133 ¡©us = BS -> `S‘Tim” ( tim” , Tim”Cªûl , 0); 134 ià( `EFI_ERROR ( ¡©us )) { 135 `ERR_PRT (( L "wa™key S‘Tim”(Tim”Cªûlèçžed %r", ¡©us )); 139 BS -> `Clo£Ev’t ( tim” ); 141  idx ? 1 : 0; 142 } } 144 INTN 145 $¬gify ( CHAR16 * buf , UINTN Ën , CHAR16 ** ¬gv ) 148 UINTN i =0, j =0; 149 CHAR16 * p = buf ; 151 ià( buf == 0) { 152 ¬gv [0] = NULL ; 156 Ën =†en >> 1; 165  buf [ i ] =ð CHAR_SPACE && buf[i] !ð CHAR_NULL && i < Ën ) i++; 167 ià( buf [ i ] =ð CHAR_NULL || i =ð Ën è ’d ; 169 p = buf + i ; 170 i ++; 172  buf [ i ] !ð CHAR_SPACE && buf[i] !ð CHAR_NULL && i < Ën ) i++; 174 ¬gv [ j ++] = p ; 176 ià( buf [ i ] =ð CHAR_NULL è ’d ; 178 buf [ i ] = CHAR_NULL ; 180 ià( i =ð Ën è ’d ; 182 i ++; 184 ià( j =ð MAX_ARGS -1) { 185 `ERR_PRT (( L "toØmªy‡rgum’t (%dèŒunÿtšg", j )); 186  ’d ; 189 ’d : 191 ià( i !ð Ën ) { 192 `ERR_PRT (( L "ignÜšg¿žšg %d ch¬aù” Ú commªd†še", Ën - i )); 195 ¬gv [ j ] = NULL ; 196  j ; 197 } } 199 VOID 200 $uÇrgify ( CHAR16 ** ¬gv , CHAR16 ** ¬gs ) 202 iàÐ* ¬gv == 0 ) { 203 * ¬gs = L ""; 206 * ¬gs = * ¬gv ; 207  ¬gv [1] ) { 208 (* ¬gv )[ `SŒL’ (*¬gv)] = CHAR_SPACE ; 209 ¬gv ++; 211 } } 213 VOID 214 $¥l™_¬gs ( CHAR16 * bufãr , CHAR16 * kÇme , CHAR16 * ¬gs ) 216 CHAR16 * tmp ; 219 * bufãr && *bufã¸=ð CHAR_SPACE ) buffer++; 221 tmp = bufãr ; 224 * bufãr && *bufã¸!ð CHAR_SPACE ) buffer++; 226 ià(* bufãr ) { 227 * bufãr ++ = CHAR_NULL ; 228 `SŒCpy ( kÇme , tmp ); 232 * bufãr && *bufã¸=ð CHAR_SPACE ) buffer++; 234 `SŒCpy ( ¬gs , bufãr ); 235 } } 237 INTN 238 $»ad_fže ( UINTN fd , UINTN tÙ®_size , CHAR8 * bufãr ) 240 INTN size , j =0; 241 EFI_STATUS ¡©us ; 242 CHAR16 h–icÝ‹r [4] = { L '|' , L'/' , L'-' , L'\\' }; 243 INTN »t = ELILO_LOAD_SUCCESS ; 244 UINTN sum = 0; 255  tÙ®_size > 0) { 256 size = tÙ®_size < READ_BLOCK_SIZE ?otal_size : READ_BLOCK_SIZE; 258 ¡©us = `fÝs_»ad ( fd , bufãr , & size ); 259 ià( `EFI_ERROR ( ¡©us )) { 260 `ERR_PRT (( L "»ad_fžçžed %r", ¡©us )); 261  ELILO_LOAD_ERROR ; 263 sum +ð size ; 265 `Pršt ( L "%c\b", h–icÝ‹r [ j ++%4]); 267 bufãr +ð size ; 268 tÙ®_size -ð size ; 270 ià( `check_abÜt (è=ð EFI_SUCCESS ) { 271 »t = ELILO_LOAD_ABORTED ; 275  »t ; 276 } } 278 INTN 279 $g‘_memm­ ( mm­_desc_t * desc ) 281  #ELILO_MEMMAP_SIZE_DEFAULT EFI_PAGE_SIZE ) 282  #ELILO_MEMMAP_INC (( EFI_MEMORY_DESCRIPTOR )<<1) ) 284 EFI_STATUS ¡©us ; 286 desc -> m­_size = ELILO_MEMMAP_SIZE_DEFAULT ; 289 desc -> md = ( EFI_MEMORY_DESCRIPTOR *) `®loc (desc-> m­_size , EfiLßd”D©a ); 291 ià( desc -> md =ð NULL ) { 292 `ERR_PRT (( L "failedo‡llocate memory map buffer")); 295 ¡©us = (* BS -> G‘MemÜyM­ )(& desc -> m­_size , desc-> md , &desc-> cook› , &desc-> desc_size , &desc-> desc_v”siÚ ); 296 ià( ¡©us =ð EFI_SUCCESS ) ; 298 `ä“ ( desc -> md ); 300 ià( ¡©us !ð EFI_BUFFER_TOO_SMALL ) { 301 `ERR_PRT (( L "failedo obtain memory map %r")); 304 desc -> m­_size +ð ELILO_MEMMAP_INC ; 306 `DBG_PRT (( L "fš® g‘_memm­ m­_size=%ld", desc -> m­_size )); 309 } } 312 INTN 313 $g‘_memm­ ( mm­_desc_t * desc ) 315 EFI_STATUS ¡©us ; 318 desc -> m­_size = 0; 320 ¡©us = BS -> `G‘MemÜyM­ (& desc -> m­_size , desc-> md , &desc-> cook› , &desc-> desc_size , &desc-> desc_v”siÚ ); 321 ià( ¡©us !ð EFI_BUFFER_TOO_SMALL )  -1; 323 desc -> md = ( EFI_MEMORY_DESCRIPTOR *) `®loc (desc-> m­_size , EfiLßd”D©a ); 324 ià( desc -> md =ð NULL ) { 325 `ERR_PRT (( L "failedo‡llocate memory map buffer")); 330 ¡©us = BS -> `G‘MemÜyM­ (& desc -> m­_size , desc-> md , &desc-> cook› , &desc-> desc_size , &desc-> desc_v”siÚ ); 331 ià( `EFI_ERROR ( ¡©us )) { 332 `ERR_PRT (( L "çžedØobš memÜy m­ %d: %r", desc -> m­_size , ¡©us )); 333 `ä“ ( desc -> md ); 336 `DBG_PRT (( L "fš® g‘_memm­ m­_size=%d", desc -> m­_size )); 339 } } 343 VOID 344 $ä“_memm­ ( mm­_desc_t * desc ) 346 ià( desc -> md ) { 347 `ä“ ( desc -> md ); 348 desc -> md = NULL ; 350 } } 352 VOID 353 $´št_memm­ ( mm­_desc_t * desc ) 355 EFI_MEMORY_DESCRIPTOR * md ; 356 UINTN desc_size ; 357 VOID * p ; 358 VOID * md_’d ; 359 INT8 ´š‹d ; 360 UINTN Áy³s ; 361 CHAR16 * ¡r ; 363  CHAR16 * memty³s []={ 364 L "ReservedMemoryType", 365 L "LoaderCode", 366 L "LoaderData", 367 L "BootServicesCode", 368 L "BootServicesData", 369 L "RuntimeServicesCode", 370 L "RuntimeServicesData", 371 L "ConventionalMemory", 372 L "UnusableMemory", 373 L "ACPIReclaimMemory", 374 L "ACPIMemoryNVS", 375 L "MemoryMappedIO", 376 L "MemoryMappedIOPortSpace", 377 L "PalCode" 381 md_’d = (( VOID *) desc -> md )+desc-> m­_size ; 382 desc_size = desc ->desc_size; 384 Áy³s = ( memty³s )/( CHAR16 *); 386  p = desc -> md ;… < md_’d ;… +ð desc_size ) { 387 md = p ; 389 ¡r = md -> Ty³ < Áy³s ? memty³s [md->Ty³] : L "Unknown"; 391 `Pršt ( L "%24 %lx-%lx %8lx", ¡r , md -> PhysiÿlS¹ , 392 md -> PhysiÿlS¹ +(md-> Numb”OfPages << EFI_PAGE_SHIFT ), 393 md -> Numb”OfPages ); 395 ´š‹d =0; 396  #P_FLG ( f ) { \ 397 `Pršt ( L " % %s", ´š‹d ? L"|":L"", f ); \ 398 ´š‹d =1; \ 399 } ) 401 ià( md -> A‰ribu‹ & EFI_MEMORY_UC ) { 402 `P_FLG ( L "UC"); 404 ià( md -> A‰ribu‹ & EFI_MEMORY_WC ) { 405 `P_FLG ( L "WC"); 407 ià( md -> A‰ribu‹ & EFI_MEMORY_WT ) { 408 `P_FLG ( L "WT"); 410 ià( md -> A‰ribu‹ & EFI_MEMORY_WB ) { 411 `P_FLG ( L "WB"); 413 ià( md -> A‰ribu‹ & EFI_MEMORY_UCE ) { 414 `P_FLG ( L "UCE"); 416 ià( md -> A‰ribu‹ & EFI_MEMORY_WP ) { 417 `P_FLG ( L "WP"); 419 ià( md -> A‰ribu‹ & EFI_MEMORY_RP ) { 420 `P_FLG ( L "RP"); 422 ià( md -> A‰ribu‹ & EFI_MEMORY_XP ) { 423 `P_FLG ( L "XP"); 425 ià( md -> A‰ribu‹ & EFI_MEMORY_RUNTIME ) { 426 `P_FLG ( L "RT"); 428 `Pršt ( L "\n"); 430 } } 432 INTN 433 $fšd_k”Ãl_memÜy ( VOID * low_addr , VOID* max_addr , UINTN ®ignm’t , VOID** ¡¬t ) 435  #HIGHEST_ADDR ( VOID *)(~0) ) 436 mm­_desc_t mdesc ; 437 EFI_MEMORY_DESCRIPTOR * md ; 438 UINT64 size ; 439 VOID * p , * addr ; 440 VOID * desc_’d , * md_’d , * be¡_addr = HIGHEST_ADDR ; 449 ià( `g‘_memm­ (& mdesc ) == -1) { 450 `ERR_PRT (( L "find_kernel_memory :GetMemoryMap() failed")); 454 desc_’d = (( VOID *) mdesc . md è+ mdesc. m­_size ; 455 size = max_addr - low_addr ; 459  p = mdesc . md ;… < desc_’d ;… +ðmdesc. desc_size ) { 460 md = p ; 473 ià( md -> Ty³ !ð EfiCÚv’tiÚ®MemÜy ) ; 478 md_’d = ( VOID *)( md -> PhysiÿlS¹ + md-> Numb”OfPages * EFI_PAGE_SIZE ); 479 addr = ( VOID *) `ROUNDUP ( md -> PhysiÿlS¹ , ®ignm’t ); 489 ià( addr < be¡_addr &&‡dd¸< md_’d &&‡ddr+ size <= md_end) best_addr =‡ddr; 491 ià( be¡_addr =ð HIGHEST_ADDR ) { 492 `ä“_memm­ (& mdesc ); 493 `ERR_PRT (( L "Could‚ot find memory suitable for†oading image")); 497 * ¡¬t = be¡_addr ; 499 `ä“_memm­ (& mdesc ); 502 } } @vars.c 28  ~ 29  ~ 35  #MAX_VARIABLES (26<<1) ) 36  #MAX_VARIABLE_LENGTH 128 ) 37  #VAR_IDX ( a è((×è>ð'a' && (aè<ð'z'è? 26-'a'+×è: (a)-'A') ) 38  #IDX_VAR ( i è((iè< 26 ? 'A'+(iè: 'a'+ ((i)-26)) ) 41 CHAR16 mv®ue [ MAX_VARIABLE_LENGTH ]; 42 } t–žo_v¬_t ; 44  –žo_v¬_t gv¬s [ MAX_VARIABLES ]; 46 INTN 47 $£t_v¬ ( CHAR16 v , CHAR16 * v®ue ) 50 ià( v < 'A' || (v > 'Z' && v < 'a') || v > 'z')  -1; 52 `SŒCpy ( v¬s [ `VAR_IDX ( v )]. v®ue , value); 54 } } 56 CHAR16 * 57 $g‘_v¬ ( CHAR16 v ) 60 ià( v < L 'A' || (v > L'Z' && v < L'a'è|| v > L'z'è NULL ; 62  v¬s [ `VAR_IDX ( v )]. v®ue ; 63 } } 66 VOID 67 $´št_v¬s ( VOID ) 69 INTN i ; 70 UINTN út = 0; 72  i =0; i < MAX_VARIABLES ; i++) { 73 ià( v¬s [ i ]. v®ue [0]) { 74 út ++; 75 `Pršt ( L "%øð\"%s\"\n", `IDX_VAR ( i ), v¬s [i]. v®ue ); 78 ià( út =ð0è `Pršt ( L "no variable defined\n"); 79 } } 82 INTN 83 $sub¡_v¬s ( CHAR16 * š , CHAR16 * out , INTN maxËn ) 89  #DSPEC_CHAR L '&' ) 90 INTN i , l , j , út ; 91 INTN m = 0, d = 0; 92 CHAR16 * v® ; 94 ià( š =ð NULL || out =ðNULL || maxËn <= 1)  -1; 96 l = `SŒL’ ( š ); 98 maxËn --; 100  i =0, j =0;˜< l ; i++) { 101 út = 1; 102 v® = š + i ; 104 ià(* v® =ð DSPEC_CHAR && d == 0) { 105 d = 1; 108 if( m == 1) { 109 m = 0; 110 v® = `g‘_v¬ (*val); 112 ià( v® =ð NULL ) ; 114 út = `SŒL’ ( v® ); 116 } ià(* v® =ð L '%' && d == 0) { 117 m = 1; 120 d = 0; 121  j < maxËn && út ) { 122 out [ j ++] = * v® ++; 123 út --; 125 ià( j =ð maxËn ) ; 127 out [ j ] = CHAR_NULL ; 130 } } @vars.h 29 #iâdeà __ELILO_VARS_H__ 30  #__ELILO_VARS_H__ ) 43  #VAR_NETFS_IPADDR L 'I' ) 44  #VAR_NETFS_NETMASK L 'M' ) 45  #VAR_NETFS_GATEWAY L 'G' ) 46  #VAR_NETFS_HOSTNAME L 'H' ) 47  #VAR_NETFS_DOMAINAME L 'D' ) 49 INTN £t_v¬ ( CHAR16 v , CHAR16 * v®ue ); 50 CHAR16 * g‘_v¬ (CHAR16 v ); 51 VOID ´št_v¬s (VOID); 52 INTN sub¡_v¬s ( CHAR16 * š , CHAR16 * out , INTN maxËn ); @/usr/include/asm/atomic.h 5 #iâdeà __i386STUB__ATOMIC_H__ 6  #__i386STUB__ATOMIC_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/bitops.h 5 #iâdeà __i386STUB__BITOPS_H__ 6  #__i386STUB__BITOPS_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/byteorder.h 5 #iâdeà __i386STUB__BYTEORDER_H__ 6  #__i386STUB__BYTEORDER_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/semaphore.h 5 #iâdeà __i386STUB__SEMAPHORE_H__ 6  #__i386STUB__SEMAPHORE_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/dirent.h 23 #iâdef _DIRENT_H 24  #_DIRENT_H 1 ) 26  ~<ã©u»s.h > 28 g__BEGIN_DECLS 30  ~ 32 #ifdeà __USE_XOPEN 33 #iâdeà __šo_t_defšed 34 #iâdeà __USE_FILE_OFFSET64 35  __šo_t tšo_t ; 37  __šo64_t tšo_t ; 39  #__šo_t_defšed ) 41 #ià defšed __USE_LARGEFILE64 && !defšed __šo64_t_defšed 42  __šo64_t tšo64_t ; 43  #__šo64_t_defšed ) 62  ~ 64 #ià( defšed __USE_BSD || defšed __USE_MISC è&& !defšed d_fž’o 65  #d_šo d_fž’o ) 82 #ifdeà _DIRENT_HAVE_D_NAMLEN 83  #_D_EXACT_NAMLEN ( d è((d)-> d_ÇmËn ) ) 84  #_D_ALLOC_NAMLEN ( d è( `_D_EXACT_NAMLEN (dè+ 1) ) 86  #_D_EXACT_NAMLEN ( d è( `¡¾’ ((d)-> d_Çme )) ) 87 #ifdeà _DIRENT_HAVE_D_RECLEN 88  #_D_ALLOC_NAMLEN ( d è(((*è(dè+ (d)-> d_»þ’ è- &(d)-> d_Çme [0]) ) 90  #_D_ALLOC_NAMLEN ( d è( (d)-> d_Çme > 1 ?  (d)->d_name : \ 91 `_D_EXACT_NAMLEN ( d è+ 1) ) 96 #ifdeà __USE_BSD 100 mDT_UNKNOWN = 0, 101  #DT_UNKNOWN DT_UNKNOWN ) 102 mDT_FIFO = 1, 103  #DT_FIFO DT_FIFO ) 104 mDT_CHR = 2, 105  #DT_CHR DT_CHR ) 106 mDT_DIR = 4, 107  #DT_DIR DT_DIR ) 108 mDT_BLK = 6, 109  #DT_BLK DT_BLK ) 110 mDT_REG = 8, 111  #DT_REG DT_REG ) 112 mDT_LNK = 10, 113  #DT_LNK DT_LNK ) 114 mDT_SOCK = 12, 115  #DT_SOCK DT_SOCK ) 116 mDT_WHT = 14 117  #DT_WHT DT_WHT ) 121  #IFTODT ( mode è(((modeè& 0170000è>> 12) ) 122  #DTTOIF ( dœty³ è((dœty³è<< 12) ) 128  __dœ¡»am tDIR ; 135 DIR * $Ý’dœ ( __cÚ¡ * __Çme è `__nÚnuÎ ((1)); 142  $þo£dœ ( DIR * __dœp è `__nÚnuÎ ((1)); 154 #iâdeà __USE_FILE_OFFSET64 155  dœ’t * $»addœ ( DIR * __dœp è `__nÚnuÎ ((1)); 157 #ifdeà __REDIRECT 158  dœ’t * `__REDIRECT ( »addœ , ( DIR * __dœp ), »addœ64 ) 159 `__nÚnuÎ ((1)); 161  #»addœ »addœ64 ) 165 #ifdeà __USE_LARGEFILE64 166  dœ’t64 * $»addœ64 ( DIR * __dœp è `__nÚnuÎ ((1)); 169 #ià defšed __USE_POSIX || defšed __USE_MISC 175 #iâdeà __USE_FILE_OFFSET64 176  $»addœ_r ( DIR * __»¡riù __dœp , 177  dœ’t * __»¡riù __’Œy , 178  dœ’t ** __»¡riù __»suÉ ) 179 `__nÚnuÎ ((1, 2, 3)); 181 #ifdeà __REDIRECT 182  `__REDIRECT ( »addœ_r , 183 ( DIR * __»¡riù __dœp , 184  dœ’t * __»¡riù __’Œy , 185  dœ’t ** __»¡riù __»suÉ ), 186 »addœ64_r è `__nÚnuÎ ((1, 2, 3)); 188  #»addœ_r »addœ64_r ) 192 #ifdeà __USE_LARGEFILE64 193  $»addœ64_r ( DIR * __»¡riù __dœp , 194  dœ’t64 * __»¡riù __’Œy , 195  dœ’t64 ** __»¡riù __»suÉ ) 196 `__nÚnuÎ ((1, 2, 3)); 201  $»wšddœ ( DIR * __dœp è __THROW `__nÚnuÎ ((1)); 203 #ià defšed __USE_BSD || defšed __USE_MISC || defšed __USE_XOPEN 204  ~ 207  $£ekdœ ( DIR * __dœp ,  __pos è __THROW `__nÚnuÎ ((1)); 210  $‹Îdœ ( DIR * __dœp è __THROW `__nÚnuÎ ((1)); 213 #ià defšed __USE_BSD || defšed __USE_MISC 216  $dœfd ( DIR * __dœp è __THROW `__nÚnuÎ ((1)); 218 #ià defšed __OPTIMIZE__ && defšed _DIR_dœfd 219  #dœfd ( dœp è `_DIR_dœfd (dœp) ) 222 #iâdeà MAXNAMLEN 224  ~ 227 #ifdeà NAME_MAX 228  #MAXNAMLEN NAME_MAX ) 230  #MAXNAMLEN 255 ) 234  #__Ãed_size_t ) 235  ~<¡ddef.h > 241 #iâdeà __USE_FILE_OFFSET64 242  `sÿndœ ( __cÚ¡ * __»¡riù __dœ , 243  dœ’t *** __»¡riù __Çm–i¡ , 244 (* __£ËùÜ è( __cÚ¡  dœ’t *), 245 (* __cmp è( __cÚ¡ *, __const *)) 246 `__nÚnuÎ ((1, 2)); 248 #ifdeà __REDIRECT 249  `__REDIRECT ( sÿndœ , 250 ( __cÚ¡ * __»¡riù __dœ , 251  dœ’t *** __»¡riù __Çm–i¡ , 252 (* __£ËùÜ è( __cÚ¡  dœ’t *), 253 (* __cmp è( __cÚ¡ *, __const *)), 254 sÿndœ64 è `__nÚnuÎ ((1, 2)); 256  #sÿndœ sÿndœ64 ) 260 #ià defšed __USE_GNU && defšed __USE_LARGEFILE64 263  `sÿndœ64 ( __cÚ¡ * __»¡riù __dœ , 264  dœ’t64 *** __»¡riù __Çm–i¡ , 265 (* __£ËùÜ è( __cÚ¡  dœ’t64 *), 266 (* __cmp è( __cÚ¡ *, __const *)) 267 `__nÚnuÎ ((1, 2)); 271 #iâdeà __USE_FILE_OFFSET64 272  $®phasÜt ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ) 273 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 275 #ifdeà __REDIRECT 276  `__REDIRECT_NTH ( ®phasÜt , 277 ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ), 278 ®phasÜt64 è __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 280  #®phasÜt ®phasÜt64 ) 284 #ià defšed __USE_GNU && defšed __USE_LARGEFILE64 285  $®phasÜt64 ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ) 286 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 289 #ifdeà __USE_GNU 291 #iâdeà __USE_FILE_OFFSET64 292  $v”siÚsÜt ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ) 293 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 295 #ifdeà __REDIRECT 296  `__REDIRECT_NTH ( v”siÚsÜt , 297 ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ), 298 v”siÚsÜt64 ) 299 __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 301  #v”siÚsÜt v”siÚsÜt64 ) 305 #ifdeà __USE_LARGEFILE64 306  $v”siÚsÜt64 ( __cÚ¡ * __e1 , __cÚ¡ * __e2 ) 307 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 315 #iâdeà __USE_FILE_OFFSET64 316 __ssize_t $g‘dœ’Œ›s ( __fd , * __»¡riù __buf , 317 size_t __nby‹s , 318 __off_t * __»¡riù __ba£p ) 319 __THROW `__nÚnuÎ ((2, 4)); 321 #ifdeà __REDIRECT 322 __ssize_t `__REDIRECT_NTH ( g‘dœ’Œ›s , 323 ( __fd , * __»¡riù __buf , 324 size_t __nby‹s , 325 __off64_t * __»¡riù __ba£p ), 326 g‘dœ’Œ›s64 è `__nÚnuÎ ((2, 4)); 328  #g‘dœ’Œ›s g‘dœ’Œ›s64 ) 332 #ifdeà __USE_LARGEFILE64 333 __ssize_t $g‘dœ’Œ›s64 ( __fd , * __»¡riù __buf , 334 size_t __nby‹s , 335 __off64_t * __»¡riù __ba£p ) 336 __THROW `__nÚnuÎ ((2, 4)); 341 __END_DECLS @/usr/include/errno.h 23 #iâdef _ERRNO_H 27 #iâdef __Ãed_Em©h 28  #_ERRNO_H 1 ) 29  ~<ã©u»s.h > 32 g__BEGIN_DECLS 36  ~ 37 #undeà __Ãed_Em©h 39 #ifdef _ERRNO_H 46 #iâdef ”ºo 47  ”ºo ; 50 #ifdeà __USE_GNU 55 * ´og¿m_švoÿtiÚ_Çme , * ´og¿m_švoÿtiÚ_shÜt_Çme ; 59 g__END_DECLS 67 #ià defšed __USE_GNU || defšed __Ãed_”rÜ_t 68 #iâdeà __”rÜ_t_defšed 69  t”rÜ_t ; 70  #__”rÜ_t_defšed 1 ) 72 #undeà __Ãed_”rÜ_t @/usr/include/fcntl.h 23 #iâdef _FCNTL_H 24  #_FCNTL_H 1 ) 26  ~<ã©u»s.h > 29 g__BEGIN_DECLS 33  ~ 36 #ifdeà __USE_XOPEN 37  ~ 40 #ifdef __USE_MISC 41 #iâdeà R_OK 44  #R_OK 4 ) 45  #W_OK 2 ) 46  #X_OK 1 ) 47  #F_OK 0 ) 52 #ifdeà __USE_XOPEN 53  #SEEK_SET 0 ) 54  #SEEK_CUR 1 ) 55  #SEEK_END 2 ) 63  fúŽ ( __fd ,  __cmd , ...); 71 #iâdeà __USE_FILE_OFFSET64 72  $Ý’ ( __cÚ¡ * __fže ,  __oæag , ...è `__nÚnuÎ ((1)); 74 #ifdeà __REDIRECT 75  `__REDIRECT ( Ý’ , ( __cÚ¡ * __fže ,  __oæag , ...), Ý’64 ) 76 `__nÚnuÎ ((1)); 78  #Ý’ Ý’64 ) 81 #ifdeà __USE_LARGEFILE64 82  $Ý’64 ( __cÚ¡ * __fže ,  __oæag , ...è `__nÚnuÎ ((1)); 90 #iâdeà __USE_FILE_OFFSET64 91  $ü—t ( __cÚ¡ * __fže , __mode_t __mode è `__nÚnuÎ ((1)); 93 #ifdeà __REDIRECT 94  `__REDIRECT ( ü—t , ( __cÚ¡ * __fže , __mode_t __mode ), 95 ü—t64 è `__nÚnuÎ ((1)); 97  #ü—t ü—t64 ) 100 #ifdeà __USE_LARGEFILE64 101  $ü—t64 ( __cÚ¡ * __fže , __mode_t __mode è `__nÚnuÎ ((1)); 104 #ià! defšed F_LOCK && (defšed __USE_MISC || (defšed __USE_XOPEN_EXTENDED \ 105 && ! defšed __USE_POSIX )) 114  #F_ULOCK 0 ) 115  #F_LOCK 1 ) 116  #F_TLOCK 2 ) 117  #F_TEST 3 ) 119 #iâdeà __USE_FILE_OFFSET64 120  `lockf ( __fd ,  __cmd , __off_t __Ën ); 122 #ifdeà __REDIRECT 123  `__REDIRECT ( lockf , ( __fd ,  __cmd , __off64_t __Ën ), lockf64 ); 125  #lockf lockf64 ) 128 #ifdeà __USE_LARGEFILE64 129  `lockf64 ( __fd ,  __cmd , __off64_t __Ën ); 133 #ifdeà __USE_XOPEN2K 136 #iâdeà __USE_FILE_OFFSET64 137  $posix_çdvi£ ( __fd , __off_t __off£t , __off_ˆ __Ën , 138  __advi£ è __THROW ; 140 #ifdeà __REDIRECT_NTH 141  `__REDIRECT_NTH ( posix_çdvi£ , ( __fd , __off64_t __off£t , 142 __off64_t __Ën ,  __advi£ ), 143 posix_çdvi£64 ); 145  #posix_çdvi£ posix_çdvi£64 ) 148 #ifdeà __USE_LARGEFILE64 149  $posix_çdvi£64 ( __fd , __off64_t __off£t , __off64_ˆ __Ën , 150  __advi£ è __THROW ; 158 #iâdeà __USE_FILE_OFFSET64 159  `posix_çÎoÿ‹ ( __fd , __off_t __off£t , __off_ˆ __Ën ); 161 #ifdeà __REDIRECT 162  `__REDIRECT ( posix_çÎoÿ‹ , ( __fd , __off64_t __off£t , 163 __off64_t __Ën ), 164 posix_çÎoÿ‹64 ); 166  #posix_çÎoÿ‹ posix_çÎoÿ‹64 ) 169 #ifdeà __USE_LARGEFILE64 170  `posix_çÎoÿ‹64 ( __fd , __off64_t __off£t , __off64_ˆ __Ën ); 174 __END_DECLS @/usr/include/linux/adfs_fs_sb.h 7 #iâdeà _ADFS_FS_SB 8  #_ADFS_FS_SB ) 10  ~ 15  gadfs_discm­ ; 16  gadfs_dœ_Ýs ; 21  sadfs_sb_šfo { 22  adfs_discm­ * ms_m­ ; 23  adfs_dœ_Ýs * ms_dœ ; 25 uid_t ms_uid ; 26 gid_t ms_gid ; 27 umode_t ms_owÃr_mask ; 28 umode_t ms_Ùh”_mask ; 30 __u32 ms_ids_³r_zÚe ; 31 __u32 ms_idËn ; 32 __u32 ms_m­_size ; 33  ms_size ; 34 sigÃd  ms_m­2blk ; 35  ms_log2sh¬esize ; 36 __Ë32 ms_v”siÚ ; 37  ms_Çm–’ ; @/usr/include/linux/cache.h 1 #iâdeà __LINUX_CACHE_H 2  #__LINUX_CACHE_H ) 4  ~ 5  ~ 7 #iâdeà L1_CACHE_ALIGN 8  #L1_CACHE_ALIGN ( x è `ALIGN (x, L1_CACHE_BYTES ) ) 11 #iâdeà SMP_CACHE_BYTES 12  #SMP_CACHE_BYTES L1_CACHE_BYTES ) 15 #iâdeà ____ÿch–še_®igÃd 16  #____ÿch–še_®igÃd `__©Œibu‹__ (( `__®igÃd__ ( SMP_CACHE_BYTES ))) ) 19 #iâdeà ____ÿch–še_®igÃd_š_smp 20 #ifdeà CONFIG_SMP 21  #____ÿch–še_®igÃd_š_smp ____ÿch–še_®igÃd ) 23  #____ÿch–še_®igÃd_š_smp ) 27 #iâdeà __ÿch–še_®igÃd 28  #__ÿch–še_®igÃd \ 29 `__©Œibu‹__ (( `__®igÃd__ ( SMP_CACHE_BYTES ), \ 30 `__£ùiÚ__ (".d©a.ÿch–še_®igÃd"))) ) 33 #iâdeà __ÿch–še_®igÃd_š_smp 34 #ifdeà CONFIG_SMP 35  #__ÿch–še_®igÃd_š_smp __ÿch–še_®igÃd ) 37  #__ÿch–še_®igÃd_š_smp ) 41 #ià! defšed ( ____ÿch–še_max®igÃd_š_smp ) 42 #ià defšed ( CONFIG_SMP ) 43  #____ÿch–še_max®igÃd_š_smp \ 44 `__©Œibu‹__ (( `__®igÃd__ (1 << ( L1_CACHE_SHIFT_MAX )))) ) 46  #____ÿch–še_max®igÃd_š_smp ) @/usr/include/linux/config.h @/usr/include/linux/efs_fs_i.h 9 #iâdef __EFS_FS_I_H__ 10  #__EFS_FS_I_H__ ) 12  št32_t tefs_block_t ; 13  ušt32_t tefs_šo_t ; 15  #EFS_DIRECTEXTENTS 12 ) 20  uex‹Á_u { 21  m¿w [8]; 22  sex‹Á_s { 23  mex_magic :8; 24  mex_bn :24; 25  mex_Ëngth :8; 26  mex_off£t :24; 27 } mcooked ; 28 } tefs_ex‹Á ; 30  sedevs { 31 __be16 modev ; 32 __be32 mndev ; 33 } tefs_devs ; 39  sefs_dšode { 40 __be16 mdi_mode ; 41 __be16 mdi_Æšk ; 42 __be16 mdi_uid ; 43 __be16 mdi_gid ; 44 __be32 mdi_size ; 45 __be32 mdi_©ime ; 46 __be32 mdi_mtime ; 47 __be32 mdi_ùime ; 48 __be32 mdi_g’ ; 49 __be16 mdi_numex‹Ás ; 50 u_ch¬ mdi_v”siÚ ; 51 u_ch¬ mdi_¥¬e ; 52  udi_addr { 53 efs_ex‹Á mdi_ex‹Ás [ EFS_DIRECTEXTENTS ]; 54 efs_devs mdi_dev ; 55 } mdi_u ; @/usr/include/linux/efs_fs_sb.h 9 #iâdeà __EFS_FS_SB_H__ 10  #__EFS_FS_SB_H__ ) 12  ~ 15  #EFS_SUPER_MAGIC 0x414A53 ) 18  #EFS_MAGIC 0x072959 ) 19  #EFS_NEWMAGIC 0x07295a ) 21  #IS_EFS_MAGIC ( x è((x =ð EFS_MAGIC è|| (x =ð EFS_NEWMAGIC )) ) 23  #EFS_SUPER 1 ) 24  #EFS_ROOTINODE 2 ) 27  sefs_su³r { 28 __be32 mfs_size ; 29 __be32 mfs_fœ¡cg ; 30 __be32 mfs_cgfsize ; 31 __be16 mfs_cgisize ; 32 __be16 mfs_£ùÜs ; 33 __be16 mfs_h—ds ; 34 __be16 mfs_ncg ; 35 __be16 mfs_dœty ; 36 __be32 mfs_time ; 37 __be32 mfs_magic ; 38  mfs_âame [6]; 39  mfs_åack [6]; 40 __be32 mfs_bmsize ; 41 __be32 mfs_tä“ ; 42 __be32 mfs_tšode ; 43 __be32 mfs_bmblock ; 44 __be32 mfs_»¶sb ; 45 __be32 mfs_Ï¡ŸÎoc ; 46  mfs_¥¬e [20]; 47 __be32 mfs_checksum ; 51  sefs_sb_šfo { 52 __u32 mfs_magic ; 53 __u32 mfs_¡¬t ; 54 __u32 mfœ¡_block ; 55 __u32 mtÙ®_blocks ; 56 __u32 mgroup_size ; 57 __u32 md©a_ä“ ; 58 __u32 mšode_ä“ ; 59 __u16 mšode_blocks ; 60 __u16 mtÙ®_groups ; @/usr/include/linux/fcntl.h 1 #iâdeà _LINUX_FCNTL_H 2  #_LINUX_FCNTL_H ) 4  ~ 6  #F_SETLEASE ( F_LINUX_SPECIFIC_BASE +0) ) 7  #F_GETLEASE ( F_LINUX_SPECIFIC_BASE +1) ) 13  #F_NOTIFY ( F_LINUX_SPECIFIC_BASE +2) ) 18  #DN_ACCESS 0x00000001 ) 19  #DN_MODIFY 0x00000002 ) 20  #DN_CREATE 0x00000004 ) 21  #DN_DELETE 0x00000008 ) 22  #DN_RENAME 0x00000010 ) 23  #DN_ATTRIB 0x00000020 ) 24  #DN_MULTISHOT 0x80000000 ) @/usr/include/linux/ioctl.h 1 #iâdeà _LINUX_IOCTL_H 2  #_LINUX_IOCTL_H ) 4  ~ @/usr/include/linux/iso_fs_i.h 1 #iâdeà _ISO_FS_I 2  #_ISO_FS_I ) 4  ~ 6 eisofs_fže_fÜm© { 7 misofs_fže_nÜm® = 0, 8 misofs_fže_¥¬£ = 1, 9 misofs_fže_com´es£d = 2 @/usr/include/linux/iso_fs_sb.h 1 #iâdeà _ISOFS_FS_SB 2  #_ISOFS_FS_SB ) 7  sisofs_sb_šfo { 8  ms_nšodes ; 9  ms_nzÚes ; 10  ms_fœ¡d©azÚe ; 11  ms_log_zÚe_size ; 12  ms_max_size ; 14  ms_high_s›¼a ; 15  ms_m­pšg ; 16  ms_rock_off£t ; 17  ms_rock ; 18  ms_jÞ›t_Ëv– ; 19  ms_utf8 ; 20  ms_üuá ; 23  ms_unhide ; 24  ms_nosuid ; 25  ms_nodev ; 26  ms_nocom´ess ; 28 mode_t ms_mode ; 29 gid_t ms_gid ; 30 uid_t ms_uid ; 31  Æs_bË * ms_Æs_ioch¬£t ; @/usr/include/linux/kdev_t.h 1 #iâdeà _LINUX_KDEV_T_H 2  #_LINUX_KDEV_T_H ) 8  #MAJOR ( dev è((dev)>>8) ) 9  #MINOR ( dev è((devè& 0xff) ) 10  #MKDEV ( ma , mi è((ma)<<8 | (mi)) ) @/usr/include/linux/limits.h 1 #iâdeà _LINUX_LIMITS_H 2  #_LINUX_LIMITS_H ) 4  #NR_OPEN 1024 ) 6  #NGROUPS_MAX 65536 ) 7  #ARG_MAX 131072 ) 8  #CHILD_MAX 999 ) 9  #OPEN_MAX 256 ) 10  #LINK_MAX 127 ) 11  #MAX_CANON 255 ) 12  #MAX_INPUT 255 ) 13  #NAME_MAX 255 ) 14  #PATH_MAX 4096 ) 15  #PIPE_BUF 4096 ) 16  #XATTR_NAME_MAX 255 ) 17  #XATTR_SIZE_MAX 65536 ) 18  #XATTR_LIST_MAX 65536 ) 20  #RTSIG_MAX 32 ) @/usr/include/linux/linkage.h 1 #iâdeà _LINUX_LINKAGE_H 2  #_LINUX_LINKAGE_H ) 4  ~ 6 #ifdeà __ýlu¥lus 7  #CPP_ASMLINKAGE "C" ) 9  #CPP_ASMLINKAGE ) 12 #iâdeà asmlškage 13  #asmlškage CPP_ASMLINKAGE ) 16 #iâdeà ´ev’t_ž_ÿÎ 17  #´ev’t_ž_ÿÎ ( »t èdØ{ } 0) ) 20 #iâdeà __ALIGN 21  #__ALIGN . ®ign 4,0x90 ) 22  #__ALIGN_STR ".®igÀ4,0x90" ) 25 #ifdeà __ASSEMBLY__ 27  #ALIGN __ALIGN ) 28  #ALIGN_STR __ALIGN_STR ) 30  #ENTRY ( Çme ) \ 31 . globl Çme ; \ 32 ALIGN ; \ 33 Çme : ) 37  #NORET_TYPE ) 38  #ATTRIB_NORET `__©Œibu‹__ (( nÜ‘uº )) ) 39  #NORET_AND nÜ‘uº , ) 41 #iâdeà FASTCALL 42  #FASTCALL ( x è ) x 43  #ç¡ÿÎ ) @/usr/include/linux/list.h 1  ~ @/usr/include/linux/mount.h 1  ~ @/usr/include/linux/net.h 18 #iâdeà _LINUX_NET_H 19  #_LINUX_NET_H ) 21  #NPROTO 32 ) 23  #SYS_SOCKET 1 ) 24  #SYS_BIND 2 ) 25  #SYS_CONNECT 3 ) 26  #SYS_LISTEN 4 ) 27  #SYS_ACCEPT 5 ) 28  #SYS_GETSOCKNAME 6 ) 29  #SYS_GETPEERNAME 7 ) 30  #SYS_SOCKETPAIR 8 ) 31  #SYS_SEND 9 ) 32  #SYS_RECV 10 ) 33  #SYS_SENDTO 11 ) 34  #SYS_RECVFROM 12 ) 35  #SYS_SHUTDOWN 13 ) 36  #SYS_SETSOCKOPT 14 ) 37  #SYS_GETSOCKOPT 15 ) 38  #SYS_SENDMSG 16 ) 39  #SYS_RECVMSG 17 ) 42 mSS_FREE = 0, 43 mSS_UNCONNECTED , 44 mSS_CONNECTING , 45 mSS_CONNECTED , 46 mSS_DISCONNECTING 47 } tsock‘_¡©e ; 49  #__SO_ACCEPTCON (1 << 16è ) @/usr/include/linux/nfs_fs_i.h 1 #iâdeà _NFS_FS_I 2  #_NFS_FS_I ) 4  ~ 5  ~ 7  gÆm_lockowÃr ; 12  snfs_lock_šfo { 13 __u32 m¡©e ; 14 __u32 mæags ; 15  Æm_lockowÃr * mowÃr ; 21  #NFS_LCK_GRANTED 0x0001 ) 22  #NFS_LCK_RECLAIM 0x0002 ) @/usr/include/linux/nfs_fs_sb.h 1 #iâdeà _NFS_FS_SB 2  #_NFS_FS_SB ) 4  ~ 6  ~ 11  snfs_£rv” { 12  ½c_þÁ * mþ›Á ; 13  ½c_þÁ * mþ›Á_sys ; 14  nfs_½c_Ýs * m½c_Ýs ; 15  backšg_dev_šfo mbackšg_dev_šfo ; 16  mæags ; 17  mÿps ; 18  mrsize ; 19  m½ages ; 20  mwsize ; 21  mw·ges ; 22  mwtmuÉ ; 23  mdtsize ; 24  mbsize ; 25  maüegmš ; 26  maüegmax ; 27  macdœmš ; 28  macdœmax ; 29  mÇm–’ ; 30 * mho¡Çme ; 31  nfs_fh mfh ; 32  sockaddr_š maddr ; 33 #ifdeà CONFIG_NFS_V4 37  m_addr [16]; 38 * mmÁ_·th ; 39  nfs4_þ›Á * mnfs4_¡©e ; 40  li¡_h—d mnfs4_siblšgs ; 43 __u32 m©Œ_b™mask [2]; 46 __u32 maþ_b™mask ; 53  #NFS_CAP_READDIRPLUS (1U << 0) ) 54  #NFS_CAP_HARDLINKS (1U << 1) ) 55  #NFS_CAP_SYMLINKS (1U << 2) ) 56  #NFS_CAP_ACLS (1U << 3) ) @/usr/include/linux/pipe_fs_i.h 1 #iâdeà _LINUX_PIPE_FS_I_H 2  #_LINUX_PIPE_FS_I_H ) 4  #PIPEFS_MAGIC 0x50495045 ) 6  #PIPE_BUFFERS (16) ) 8  spe_bufãr { 9  ·ge * m·ge ; 10  moff£t , mËn ; 11  pe_buf_Ý”©iÚs * mÝs ; 14  spe_buf_Ý”©iÚs { 15  mÿn_m”ge ; 16 * (* mm­ )( mfže *,  mpe_šode_šfo *,  mpe_bufãr *); 17 (* munm­ )( mpe_šode_šfo *,  mpe_bufãr *); 18 (* m»Ëa£ )( mpe_šode_šfo *,  mpe_bufãr *); 21  spe_šode_šfo { 22 wa™_queue_h—d_t mwa™ ; 23  mÄbufs , mcurbuf ; 24  pe_bufãr mbufs [ PIPE_BUFFERS ]; 25  ·ge * mtmp_·ge ; 26  m¡¬t ; 27  m»ad”s ; 28  mwr™”s ; 29  mwa™šg_wr™”s ; 30  mr_couÁ” ; 31  mw_couÁ” ; 32  çsync_¡ruù * mçsync_»ad”s ; 33  çsync_¡ruù * mçsync_wr™”s ; 38  #PIPE_SIZE PAGE_SIZE ) 40  #PIPE_SEM ( šode è(&(šode). i_£m ) ) 41  #PIPE_WAIT ( šode è(&(šode). i_pe -> wa™ ) ) 42  #PIPE_BASE ( šode è((šode). i_pe -> ba£ ) ) 43  #PIPE_START ( šode è((šode). i_pe -> ¡¬t ) ) 44  #PIPE_LEN ( šode è((šode). i_pe -> Ën ) ) 45  #PIPE_READERS ( šode è((šode). i_pe -> »ad”s ) ) 46  #PIPE_WRITERS ( šode è((šode). i_pe -> wr™”s ) ) 47  #PIPE_WAITING_WRITERS ( šode è((šode). i_pe -> wa™šg_wr™”s ) ) 48  #PIPE_RCOUNTER ( šode è((šode). i_pe -> r_couÁ” ) ) 49  #PIPE_WCOUNTER ( šode è((šode). i_pe -> w_couÁ” ) ) 50  #PIPE_FASYNC_READERS ( šode è(&((šode). i_pe -> çsync_»ad”s )) ) 51  #PIPE_FASYNC_WRITERS ( šode è(&((šode). i_pe -> çsync_wr™”s )) ) @/usr/include/linux/quota.h 34 #iâdeà _LINUX_QUOTA_ 35  #_LINUX_QUOTA_ ) 37  ~ 38  ~ 40  #__DQUOT_VERSION__ "dquÙ_6.5.1" ) 41  #__DQUOT_NUM_VERSION__ 6*10000+5*100+1 ) 43  __k”Ãl_uid32_t tqid_t ; 44  __u64 tqsize_t ; 47  #QUOTABLOCK_BITS 10 ) 48  #QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS ) ) 51  #qb2kb ( x è((xè<< ( QUOTABLOCK_BITS -10)) ) 52  #kb2qb ( x è((xè>> ( QUOTABLOCK_BITS -10)) ) 53  #toqb ( x è(((xè+ QUOTABLOCK_SIZE - 1è>> QUOTABLOCK_BITS ) ) 55  #MAXQUOTAS 2 ) 56  #USRQUOTA 0 ) 57  #GRPQUOTA 1 ) 62  #INITQFNAMES { \ 66 }; ) 74  #SUBCMDMASK 0x00ff ) 75  #SUBCMDSHIFT 8 ) 76  #QCMD ( cmd , ty³ è(((cmdè<< SUBCMDSHIFT è| (Ñy³è& SUBCMDMASK )) ) 78  #Q_SYNC 0x800001 ) 79  #Q_QUOTAON 0x800002 ) 80  #Q_QUOTAOFF 0x800003 ) 81  #Q_GETFMT 0x800004 ) 82  #Q_GETINFO 0x800005 ) 83  #Q_SETINFO 0x800006 ) 84  #Q_GETQUOTA 0x800007 ) 85  #Q_SETQUOTA 0x800008 ) 91  #QIF_BLIMITS 1 ) 92  #QIF_SPACE 2 ) 93  #QIF_ILIMITS 4 ) 94  #QIF_INODES 8 ) 95  #QIF_BTIME 16 ) 96  #QIF_ITIME 32 ) 97  #QIF_LIMITS ( QIF_BLIMITS | QIF_ILIMITS ) ) 98  #QIF_USAGE ( QIF_SPACE | QIF_INODES ) ) 99  #QIF_TIMES ( QIF_BTIME | QIF_ITIME ) ) 100  #QIF_ALL ( QIF_LIMITS | QIF_USAGE | QIF_TIMES ) ) 102  sif_dqblk { 103 __u64 mdqb_bh¬dlim™ ; 104 __u64 mdqb_bsoálim™ ; 105 __u64 mdqb_cur¥aû ; 106 __u64 mdqb_ih¬dlim™ ; 107 __u64 mdqb_isoálim™ ; 108 __u64 mdqb_curšodes ; 109 __u64 mdqb_btime ; 110 __u64 mdqb_™ime ; 111 __u32 mdqb_v®id ; 118  #IIF_BGRACE 1 ) 119  #IIF_IGRACE 2 ) 120  #IIF_FLAGS 4 ) 121  #IIF_ALL ( IIF_BGRACE | IIF_IGRACE | IIF_FLAGS ) ) 123  sif_dqšfo { 124 __u64 mdqi_bg¿û ; 125 __u64 mdqi_ig¿û ; 126 __u32 mdqi_æags ; 127 __u32 mdqi_v®id ; @/usr/include/linux/stat.h 1 #iâdeà _LINUX_STAT_H 2  #_LINUX_STAT_H ) 4 #ià! defšed ( __GLIBC__ ) 6  #S_IFMT 00170000 ) 7  #S_IFSOCK 0140000 ) 8  #S_IFLNK 0120000 ) 9  #S_IFREG 0100000 ) 10  #S_IFBLK 0060000 ) 11  #S_IFDIR 0040000 ) 12  #S_IFCHR 0020000 ) 13  #S_IFIFO 0010000 ) 14  #S_ISUID 0004000 ) 15  #S_ISGID 0002000 ) 16  #S_ISVTX 0001000 ) 18  #S_ISLNK ( m è(((mè& S_IFMT è=ð S_IFLNK ) ) 19  #S_ISREG ( m è(((mè& S_IFMT è=ð S_IFREG ) ) 20  #S_ISDIR ( m è(((mè& S_IFMT è=ð S_IFDIR ) ) 21  #S_ISCHR ( m è(((mè& S_IFMT è=ð S_IFCHR ) ) 22  #S_ISBLK ( m è(((mè& S_IFMT è=ð S_IFBLK ) ) 23  #S_ISFIFO ( m è(((mè& S_IFMT è=ð S_IFIFO ) ) 24  #S_ISSOCK ( m è(((mè& S_IFMT è=ð S_IFSOCK ) ) 26  #S_IRWXU 00700 ) 27  #S_IRUSR 00400 ) 28  #S_IWUSR 00200 ) 29  #S_IXUSR 00100 ) 31  #S_IRWXG 00070 ) 32  #S_IRGRP 00040 ) 33  #S_IWGRP 00020 ) 34  #S_IXGRP 00010 ) 36  #S_IRWXO 00007 ) 37  #S_IROTH 00004 ) 38  #S_IWOTH 00002 ) 39  #S_IXOTH 00001 ) @/usr/include/linux/stddef.h 1 #iâdeà _LINUX_STDDEF_H 2  #_LINUX_STDDEF_H ) 4 #undeà NULL 5 #ià defšed ( __ýlu¥lus ) 6  #NULL 0 ) 8  #NULL ((*)0) ) 11 #undeà off£tof 12 #ifdeà __compž”_off£tof 13  #off£tof ( TYPE , MEMBER è `__compž”_off£tof (TYPE,MEMBER) ) 15  #off£tof ( TYPE , MEMBER è(( size_t è&((TYPE *)0)->MEMBER) ) @/usr/include/linux/types.h 1 #iâdeà _LINUX_TYPES_H 2  #_LINUX_TYPES_H ) 4  ~ 5  ~ 6  ~ 8 #iâdeà __KERNEL_STRICT_NAMES 10  __u32 t__k”Ãl_dev_t ; 12 #ià defšed WANT_KERNEL_TYPES || !defšed( __GLIBC__ ) 13  __k”Ãl_fd_£t tfd_£t ; 14  __k”Ãl_dev_t tdev_t ; 15  __k”Ãl_šo_t tšo_t ; 16  __k”Ãl_mode_t tmode_t ; 17  __k”Ãl_Æšk_t tÆšk_t ; 18  __k”Ãl_off_t toff_t ; 19  __k”Ãl_pid_t tpid_t ; 20  __k”Ãl_daddr_t tdaddr_t ; 21  __k”Ãl_key_t tkey_t ; 22  __k”Ãl_su£cÚds_t tsu£cÚds_t ; 23  __k”Ãl_tim”_t ttim”_t ; 24  __k”Ãl_þockid_t tþockid_t ; 25  __k”Ãl_mqd_t tmqd_t ; 27  __k”Ãl_uid_t tuid_t ; 28  __k”Ãl_gid_t tgid_t ; 30 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 31  __k”Ãl_loff_t tloff_t ; 38 #iâdeà _SIZE_T 39  #_SIZE_T ) 40  __k”Ãl_size_t tsize_t ; 43 #iâdeà _SSIZE_T 44  #_SSIZE_T ) 45  __k”Ãl_ssize_t tssize_t ; 48 #iâdeà _PTRDIFF_T 49  #_PTRDIFF_T ) 50  __k”Ãl_±rdiff_t t±rdiff_t ; 53 #iâdeà _TIME_T 54  #_TIME_T ) 55  __k”Ãl_time_t ttime_t ; 58 #iâdeà _CLOCK_T 59  #_CLOCK_T ) 60  __k”Ãl_þock_t tþock_t ; 63 #iâdeà _CADDR_T 64  #_CADDR_T ) 65  __k”Ãl_ÿddr_t tÿddr_t ; 69  tu_ch¬ ; 70  tu_shÜt ; 71  tu_št ; 72  tu_lÚg ; 75  tunch¬ ; 76  tushÜt ; 77  tušt ; 78  tulÚg ; 80 #iâdeà __BIT_TYPES_DEFINED__ 81  #__BIT_TYPES_DEFINED__ ) 83  __u8 tu_št8_t ; 84  __s8 tšt8_t ; 85  __u16 tu_št16_t ; 86  __s16 tšt16_t ; 87  __u32 tu_št32_t ; 88  __s32 tšt32_t ; 92  __u8 tušt8_t ; 93  __u16 tušt16_t ; 94  __u32 tušt32_t ; 96 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 97  __u64 tušt64_t ; 98  __u64 tu_št64_t ; 99  __s64 tšt64_t ; 107 #iâdeà HAVE_SECTOR_T 108  t£ùÜ_t ; 115 #iâdeà pgoff_t 116  #pgoff_t  ) 121  tunch¬ ; 122 #iâdeà HAVE_SECTOR_T 123  t£ùÜ_t ; 125 #iâdeà pgoff_t 126  #pgoff_t  ) 133  __u16 t__Ë16 ; 134  __u16 t__be16 ; 135  __u32 t__Ë32 ; 136  __u32 t__be32 ; 138 #ià defšed ( __GNUC__ ) 139 #ià! defšed ( __STRICT_ANSI__ è|| ( __STDC_VERSION__ >ð199901Lè|| defšed( __LLH_TYPE_LONG_IS_64BIT__ ) 140  __u64 t__Ë64 ; 141  __u64 t__be64 ; 153  su¡© { 154 __k”Ãl_daddr_t mf_tä“ ; 155 __k”Ãl_šo_t mf_tšode ; 156  mf_âame [6]; 157  mf_åack [6]; @/usr/include/linux/udf_fs_i.h 18 #iâdeà _UDF_FS_I_H 19  #_UDF_FS_I_H 1 ) 24  #UDF_GETEASIZE `_IOR ('l', 0x40, ) ) 25  #UDF_GETEABLOCK `_IOR ('l', 0x41, *) ) 26  #UDF_GETVOLIDENT `_IOR ('l', 0x42, *) ) 27  #UDF_RELOCATE_BLOCKS `_IOWR ('l', 0x43, ) ) @/usr/include/linux/udf_fs_sb.h 18 #iâdeà _UDF_FS_SB_H 19  #_UDF_FS_SB_H 1 ) 21  ~ 23  ~ 25 #´agm¨ ·ck (1) 27  #UDF_MAX_BLOCK_LOADED 8 ) 29  #UDF_TYPE1_MAP15 0x1511U ) 30  #UDF_VIRTUAL_MAP15 0x1512U ) 31  #UDF_VIRTUAL_MAP20 0x2012U ) 32  #UDF_SPARABLE_MAP15 0x1522U ) 35  sudf_vœtu®_d©a 37 __u32 ms_num_’Œ›s ; 38 __u16 ms_¡¬t_off£t ; 43 #´agm¨ ·ck () @/usr/include/linux/wait.h 1 #iâdeà _LINUX_WAIT_H 2  #_LINUX_WAIT_H ) 4 #ià defšed ( __GLIBC__ ) 6 #ià defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ ) 9  ~ 13  #WNOHANG 0x00000001 ) 14  #WUNTRACED 0x00000002 ) 15  #WSTOPPED WUNTRACED ) 16  #WEXITED 0x00000004 ) 17  #WCONTINUED 0x00000008 ) 18  #WNOWAIT 0x01000000 ) 20  #__WNOTHREAD 0x20000000 ) 21  #__WALL 0x40000000 ) 22  #__WCLONE 0x80000000 ) 25  #P_ALL 0 ) 26  #P_PID 1 ) 27  #P_PGID 2 ) @/usr/include/setjmp.h 23 #iâdef _SETJMP_H 24  #_SETJMP_H 1 ) 26  ~<ã©u»s.h > 28 g__BEGIN_DECLS 30  ~ 31  ~ 33 __BEGIN_NAMESPACE_STD 36  s__jmp_buf_g 42 __jmp_buf m__jmpbuf ; 43  m__mask_was_§ved ; 44 __sig£t_t m__§ved_mask ; 45 } tjmp_buf [1]; 50  $£tjmp ( jmp_buf __’v è __THROW ; 52 __END_NAMESPACE_STD 53 $__USING_NAMESPACE_STD ( __jmp_buf_g ) 58  `__sig£tjmp ( __jmp_buf_g __’v [1],  __§vemask è __THROW ; 60 #iâdef __FAVOR_BSD 63  `_£tjmp ( __jmp_buf_g __’v [1]è __THROW ; 67  #£tjmp ( ’v è `_£tjmp (’v) ) 72  #£tjmp ( ’v è `£tjmp (’v) ) 76 __BEGIN_NAMESPACE_STD 80  `lÚgjmp ( __jmp_buf_g __’v [1],  __v® ) 81 __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 83 __END_NAMESPACE_STD 85 #ià defšed __USE_BSD || defšed __USE_XOPEN 89  `_lÚgjmp ( __jmp_buf_g __’v [1],  __v® ) 90 __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 94 #ifdef __USE_POSIX 98  __jmp_buf_g tsigjmp_buf [1]; 102  #sig£tjmp ( ’v , §vemask è `__sig£tjmp (’v, savemask) ) 108  $siglÚgjmp ( sigjmp_buf __’v ,  __v® ) 109 __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 112 __END_DECLS @/usr/include/stdint.h 23 #iâdeà _STDINT_H 24  #_STDINT_H 1 ) 26  ~<ã©u»s.h > 27  ~ 28  ~ 35 #iâdeà __št8_t_defšed 36  #__št8_t_defšed ) 37 sigÃd  tšt8_t ; 38  tšt16_t ; 39  tšt32_t ; 40 #ià __WORDSIZE == 64 41  tšt64_t ; 43 __ex‹nsiÚ__ 44  tšt64_t ; 49  tušt8_t ; 50  tušt16_t ; 51 #iâdeà __ušt32_t_defšed 52  tušt32_t ; 53  #__ušt32_t_defšed ) 55 #ià __WORDSIZE == 64 56  tušt64_t ; 58 __ex‹nsiÚ__ 59  tušt64_t ; 66 sigÃd  tšt_Ëa¡8_t ; 67  tšt_Ëa¡16_t ; 68  tšt_Ëa¡32_t ; 69 #ià __WORDSIZE == 64 70  tšt_Ëa¡64_t ; 72 __ex‹nsiÚ__ 73  tšt_Ëa¡64_t ; 77  tušt_Ëa¡8_t ; 78  tušt_Ëa¡16_t ; 79  tušt_Ëa¡32_t ; 80 #ià __WORDSIZE == 64 81  tušt_Ëa¡64_t ; 83 __ex‹nsiÚ__ 84  tušt_Ëa¡64_t ; 91 sigÃd  tšt_ç¡8_t ; 92 #ià __WORDSIZE == 64 93  tšt_ç¡16_t ; 94  tšt_ç¡32_t ; 95  tšt_ç¡64_t ; 97  tšt_ç¡16_t ; 98  tšt_ç¡32_t ; 99 __ex‹nsiÚ__ 100  tšt_ç¡64_t ; 104  tušt_ç¡8_t ; 105 #ià __WORDSIZE == 64 106  tušt_ç¡16_t ; 107  tušt_ç¡32_t ; 108  tušt_ç¡64_t ; 110  tušt_ç¡16_t ; 111  tušt_ç¡32_t ; 112 __ex‹nsiÚ__ 113  tušt_ç¡64_t ; 118 #ià __WORDSIZE == 64 119 #iâdeà __šŒ_t_defšed 120  tšŒ_t ; 121  #__šŒ_t_defšed ) 123  tušŒ_t ; 125 #iâdeà __šŒ_t_defšed 126  tšŒ_t ; 127  #__šŒ_t_defšed ) 129  tušŒ_t ; 134 #ià __WORDSIZE == 64 135  tštmax_t ; 136  tuštmax_t ; 138 __ex‹nsiÚ__ 139  tštmax_t ; 140 __ex‹nsiÚ__ 141  tuštmax_t ; 147 #ià! defšed __ýlu¥lus || defšed __STDC_LIMIT_MACROS 149 #ià __WORDSIZE == 64 150  #__INT64_C ( c èø## L ) 151  #__UINT64_C ( c èø## UL ) 153  #__INT64_C ( c èø## LL ) 154  #__UINT64_C ( c èø## ULL ) 160  #INT8_MIN (-128) ) 161  #INT16_MIN (-32767-1) ) 162  #INT32_MIN (-2147483647-1) ) 163  #INT64_MIN (- `__INT64_C (9223372036854775807)-1) ) 165  #INT8_MAX (127) ) 166  #INT16_MAX (32767) ) 167  #INT32_MAX (2147483647) ) 168  #INT64_MAX ( `__INT64_C (9223372036854775807)) ) 171  #UINT8_MAX (255) ) 172  #UINT16_MAX (65535) ) 173  #UINT32_MAX (4294967295U) ) 174  #UINT64_MAX ( `__UINT64_C (18446744073709551615)) ) 178  #INT_LEAST8_MIN (-128) ) 179  #INT_LEAST16_MIN (-32767-1) ) 180  #INT_LEAST32_MIN (-2147483647-1) ) 181  #INT_LEAST64_MIN (- `__INT64_C (9223372036854775807)-1) ) 183  #INT_LEAST8_MAX (127) ) 184  #INT_LEAST16_MAX (32767) ) 185  #INT_LEAST32_MAX (2147483647) ) 186  #INT_LEAST64_MAX ( `__INT64_C (9223372036854775807)) ) 189  #UINT_LEAST8_MAX (255) ) 190  #UINT_LEAST16_MAX (65535) ) 191  #UINT_LEAST32_MAX (4294967295U) ) 192  #UINT_LEAST64_MAX ( `__UINT64_C (18446744073709551615)) ) 196  #INT_FAST8_MIN (-128) ) 197 #ià __WORDSIZE == 64 198  #INT_FAST16_MIN (-9223372036854775807L-1) ) 199  #INT_FAST32_MIN (-9223372036854775807L-1) ) 201  #INT_FAST16_MIN (-2147483647-1) ) 202  #INT_FAST32_MIN (-2147483647-1) ) 204  #INT_FAST64_MIN (- `__INT64_C (9223372036854775807)-1) ) 206  #INT_FAST8_MAX (127) ) 207 #ià __WORDSIZE == 64 208  #INT_FAST16_MAX (9223372036854775807L) ) 209  #INT_FAST32_MAX (9223372036854775807L) ) 211  #INT_FAST16_MAX (2147483647) ) 212  #INT_FAST32_MAX (2147483647) ) 214  #INT_FAST64_MAX ( `__INT64_C (9223372036854775807)) ) 217  #UINT_FAST8_MAX (255) ) 218 #ià __WORDSIZE == 64 219  #UINT_FAST16_MAX (18446744073709551615UL) ) 220  #UINT_FAST32_MAX (18446744073709551615UL) ) 222  #UINT_FAST16_MAX (4294967295U) ) 223  #UINT_FAST32_MAX (4294967295U) ) 225  #UINT_FAST64_MAX ( `__UINT64_C (18446744073709551615)) ) 229 #ià __WORDSIZE == 64 230  #INTPTR_MIN (-9223372036854775807L-1) ) 231  #INTPTR_MAX (9223372036854775807L) ) 232  #UINTPTR_MAX (18446744073709551615UL) ) 234  #INTPTR_MIN (-2147483647-1) ) 235  #INTPTR_MAX (2147483647) ) 236  #UINTPTR_MAX (4294967295U) ) 241  #INTMAX_MIN (- `__INT64_C (9223372036854775807)-1) ) 243  #INTMAX_MAX ( `__INT64_C (9223372036854775807)) ) 246  #UINTMAX_MAX ( `__UINT64_C (18446744073709551615)) ) 252 #ià __WORDSIZE == 64 253  #PTRDIFF_MIN (-9223372036854775807L-1) ) 254  #PTRDIFF_MAX (9223372036854775807L) ) 256  #PTRDIFF_MIN (-2147483647-1) ) 257  #PTRDIFF_MAX (2147483647) ) 261  #SIG_ATOMIC_MIN (-2147483647-1) ) 262  #SIG_ATOMIC_MAX (2147483647) ) 265 #ià __WORDSIZE == 64 266  #SIZE_MAX (18446744073709551615UL) ) 268  #SIZE_MAX (4294967295U) ) 272 #iâdeà WCHAR_MIN 274  #WCHAR_MIN __WCHAR_MIN ) 275  #WCHAR_MAX __WCHAR_MAX ) 279  #WINT_MIN (0u) ) 280  #WINT_MAX (4294967295u) ) 287 #ià! defšed __ýlu¥lus || defšed __STDC_CONSTANT_MACROS 290  #INT8_C ( c è ) c 291  #INT16_C ( c è ) c 292  #INT32_C ( c è ) c 293 #ià __WORDSIZE == 64 294  #INT64_C ( c èø## L ) 296  #INT64_C ( c èø## LL ) 300  #UINT8_C ( c èø## U ) 301  #UINT16_C ( c èø## U ) 302  #UINT32_C ( c èø## U ) 303 #ià __WORDSIZE == 64 304  #UINT64_C ( c èø## UL ) 306  #UINT64_C ( c èø## ULL ) 310 #ià __WORDSIZE == 64 311  #INTMAX_C ( c èø## L ) 312  #UINTMAX_C ( c èø## UL ) 314  #INTMAX_C ( c èø## LL ) 315  #UINTMAX_C ( c èø## ULL ) @/usr/include/stdio.h 24 #iâdeà _STDIO_H 26 #ià! defšed __Ãed_FILE && !defšed __Ãed___FILE 27  #_STDIO_H 1 ) 28  ~<ã©u»s.h > 30 g__BEGIN_DECLS 32  #__Ãed_size_t ) 33  #__Ãed_NULL ) 34  ~<¡ddef.h > 36  ~ 37  #__Ãed_FILE ) 38  #__Ãed___FILE ) 42 #ià! defšed __FILE_defšed && defšed __Ãed_FILE 44 __BEGIN_NAMESPACE_STD 46  _IO_FILE tFILE ; 47 g__END_NAMESPACE_STD 48 #ià defšed __USE_LARGEFILE64 || defšed __USE_SVID || defšed __USE_POSIX \ 49 || defšed g__USE_BSD || defšed g__USE_ISOC99 || defšed g__USE_XOPEN \ 50 || defšed __USE_POSIX2 51 $__USING_NAMESPACE_STD ( FILE ) 54  #__FILE_defšed 1 ) 56 #undeà __Ãed_FILE 59 #ià! defšed ____FILE_defšed && defšed __Ãed___FILE 62  _IO_FILE t__FILE ; 64  #____FILE_defšed 1 ) 66 #undeà __Ãed___FILE 69 #ifdef _STDIO_H 70  #_STDIO_USES_IOSTREAM ) 72  ~ 74 #ifdeà __USE_XOPEN 75 #ifdeà __GNUC__ 76 #iâdeà _VA_LIST_DEFINED 77  _G_va_li¡ tva_li¡ ; 78  #_VA_LIST_DEFINED ) 81  ~<¡d¬g.h > 86 __BEGIN_NAMESPACE_STD 87 #iâdeà __USE_FILE_OFFSET64 88  _G_åos_t tåos_t ; 90  _G_åos64_t tåos_t ; 92 __END_NAMESPACE_STD 93 #ifdeà __USE_LARGEFILE64 94  _G_åos64_t tåos64_t ; 98  #_IOFBF 0 ) 99  #_IOLBF 1 ) 100  #_IONBF 2 ) 104 #iâdeà BUFSIZ 105  #BUFSIZ _IO_BUFSIZ ) 111 #iâdeà EOF 112  #EOF (-1) ) 118  #SEEK_SET 0 ) 119  #SEEK_CUR 1 ) 120  #SEEK_END 2 ) 123 #ià defšed __USE_SVID || defšed __USE_XOPEN 125  #P_tmpdœ "/tmp" ) 138  ~ 142  _IO_FILE * ¡dš ; 143  _IO_FILE * ¡dout ; 144  _IO_FILE * ¡d”r ; 146  #¡dš ¡dš ) 147  #¡dout ¡dout ) 148  #¡d”r ¡d”r ) 150 __BEGIN_NAMESPACE_STD 152  $»move ( __cÚ¡ * __fž’ame è __THROW ; 154  $»Çme ( __cÚ¡ * __Þd , __cÚ¡ * __Ãw è __THROW ; 155 __END_NAMESPACE_STD 158 __BEGIN_NAMESPACE_STD 163 #iâdeà __USE_FILE_OFFSET64 164 FILE * `tmpfže (); 166 #ifdeà __REDIRECT 167 FILE * `__REDIRECT ( tmpfže , (), tmpfže64 ); 169  #tmpfže tmpfže64 ) 173 #ifdeà __USE_LARGEFILE64 174 FILE * `tmpfže64 (); 178 * $tm²am (* __s è __THROW ; 179 __END_NAMESPACE_STD 181 #ifdeà __USE_MISC 184 * $tm²am_r (* __s è __THROW ; 188 #ià defšed __USE_SVID || defšed __USE_XOPEN 196 * $‹m²am ( __cÚ¡ * __dœ , __cÚ¡ * __pfx ) 197 __THROW __©Œibu‹_m®loc__ ; 201 __BEGIN_NAMESPACE_STD 206  `fþo£ ( FILE * __¡»am ); 211  `fæush ( FILE * __¡»am ); 212 __END_NAMESPACE_STD 214 #ifdeà __USE_MISC 221  `fæush_uÆocked ( FILE * __¡»am ); 224 #ifdeà __USE_GNU 231  `fþo£®l (); 235 __BEGIN_NAMESPACE_STD 236 #iâdeà __USE_FILE_OFFSET64 241 FILE * `fÝ’ ( __cÚ¡ * __»¡riù __fž’ame , 242 __cÚ¡ * __»¡riù __modes ); 247 FILE * `äeÝ’ ( __cÚ¡ * __»¡riù __fž’ame , 248 __cÚ¡ * __»¡riù __modes , 249 FILE * __»¡riù __¡»am ); 251 #ifdeà __REDIRECT 252 FILE * `__REDIRECT ( fÝ’ , ( __cÚ¡ * __»¡riù __fž’ame , 253 __cÚ¡ * __»¡riù __modes ), fÝ’64 ); 254 FILE * `__REDIRECT ( äeÝ’ , ( __cÚ¡ * __»¡riù __fž’ame , 255 __cÚ¡ * __»¡riù __modes , 256 FILE * __»¡riù __¡»am ), äeÝ’64 ); 258  #fÝ’ fÝ’64 ) 259  #äeÝ’ äeÝ’64 ) 262 __END_NAMESPACE_STD 263 #ifdeà __USE_LARGEFILE64 264 FILE * `fÝ’64 ( __cÚ¡ * __»¡riù __fž’ame , 265 __cÚ¡ * __»¡riù __modes ); 266 FILE * `äeÝ’64 ( __cÚ¡ * __»¡riù __fž’ame , 267 __cÚ¡ * __»¡riù __modes , 268 FILE * __»¡riù __¡»am ); 271 #ifdef __USE_POSIX 273 FILE * $fdÝ’ ( __fd , __cÚ¡ * __modes è __THROW ; 276 #ifdef __USE_GNU 279 FILE * $fÝ’cook› (* __»¡riù __magic_cook› , 280 __cÚ¡ * __»¡riù __modes , 281 _IO_cook›_io_funùiÚs_t __io_funcs è __THROW ; 284 FILE * $fmemÝ’ (* __s , size_t __Ën , __cÚ¡ * __modes è __THROW ; 289 FILE * $Ý’_mem¡»am (** __»¡riù __buæoc , 290 size_t * __»¡riù __siz–oc è __THROW ; 294 __BEGIN_NAMESPACE_STD 297  $£tbuf ( FILE * __»¡riù __¡»am , *__»¡riù __buf è __THROW ; 301  $£tvbuf ( FILE * __»¡riù __¡»am , *__»¡riù __buf , 302  __modes , size_t __n è __THROW ; 303 __END_NAMESPACE_STD 305 #ifdef __USE_BSD 308  $£tbufãr ( FILE * __»¡riù __¡»am , *__»¡riù __buf , 309 size_t __size è __THROW ; 312  $£Žšebuf ( FILE * __¡»am è __THROW ; 316 __BEGIN_NAMESPACE_STD 321  `årštf ( FILE * __»¡riù __¡»am , 322 __cÚ¡ * __»¡riù __fÜm© , ...); 327  `´štf ( __cÚ¡ * __»¡riù __fÜm© , ...); 329  $¥rštf (* __»¡riù __s , 330 __cÚ¡ * __»¡riù __fÜm© , ...è __THROW ; 336  `vårštf ( FILE * __»¡riù __s , __cÚ¡ *__»¡riù __fÜm© , 337 _G_va_li¡ __¬g ); 342  `v´štf ( __cÚ¡ * __»¡riù __fÜm© , _G_va_li¡ __¬g ); 344  $v¥rštf (* __»¡riù __s , __cÚ¡ *__»¡riù __fÜm© , 345 _G_va_li¡ __¬g è __THROW ; 346 __END_NAMESPACE_STD 348 #ià defšed __USE_BSD || defšed __USE_ISOC99 || defšed __USE_UNIX98 349 __BEGIN_NAMESPACE_C99 351  $¢´štf (* __»¡riù __s , size_t __maxËn , 352 __cÚ¡ * __»¡riù __fÜm© , ...) 353 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 3, 4))); 355  $v¢´štf (* __»¡riù __s , size_t __maxËn , 356 __cÚ¡ * __»¡riù __fÜm© , _G_va_li¡ __¬g ) 357 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 3, 0))); 358 __END_NAMESPACE_C99 361 #ifdeà __USE_GNU 364  $va¥rštf (** __»¡riù __±r , __cÚ¡ *__»¡riù __f , 365 _G_va_li¡ __¬g ) 366 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 0))); 367  $__a¥rštf (** __»¡riù __±r , 368 __cÚ¡ * __»¡riù __fmt , ...) 369 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 3))); 370  $a¥rštf (** __»¡riù __±r , 371 __cÚ¡ * __»¡riù __fmt , ...) 372 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 3))); 380  $vd´štf ( __fd , __cÚ¡ * __»¡riù __fmt , 381 _G_va_li¡ __¬g ) 382 `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 0))); 383  $d´štf ( __fd , __cÚ¡ * __»¡riù __fmt , ...) 384 `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 3))); 388 __BEGIN_NAMESPACE_STD 393  `fsÿnf ( FILE * __»¡riù __¡»am , 394 __cÚ¡ * __»¡riù __fÜm© , ...); 399  `sÿnf ( __cÚ¡ * __»¡riù __fÜm© , ...); 401  $ssÿnf ( __cÚ¡ * __»¡riù __s , 402 __cÚ¡ * __»¡riù __fÜm© , ...è __THROW ; 403 __END_NAMESPACE_STD 405 #ifdef __USE_ISOC99 406 __BEGIN_NAMESPACE_C99 411  $vfsÿnf ( FILE * __»¡riù __s , __cÚ¡ *__»¡riù __fÜm© , 412 _G_va_li¡ __¬g ) 413 `__©Œibu‹__ (( `__fÜm©__ ( __sÿnf__ , 2, 0))); 419  $vsÿnf ( __cÚ¡ * __»¡riù __fÜm© , _G_va_li¡ __¬g ) 420 `__©Œibu‹__ (( `__fÜm©__ ( __sÿnf__ , 1, 0))); 423  $vssÿnf ( __cÚ¡ * __»¡riù __s , 424 __cÚ¡ * __»¡riù __fÜm© , _G_va_li¡ __¬g ) 425 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __sÿnf__ , 2, 0))); 426 __END_NAMESPACE_C99 430 __BEGIN_NAMESPACE_STD 435  `fg‘c ( FILE * __¡»am ); 436  `g‘c ( FILE * __¡»am ); 442  `g‘ch¬ (); 443 __END_NAMESPACE_STD 447  #g‘c ( _å è `_IO_g‘c (_å) ) 449 #ià defšed __USE_POSIX || defšed __USE_MISC 454  `g‘c_uÆocked ( FILE * __¡»am ); 455  `g‘ch¬_uÆocked (); 458 #ifdeà __USE_MISC 465  `fg‘c_uÆocked ( FILE * __¡»am ); 469 __BEGIN_NAMESPACE_STD 477  `åutc ( __c , FILE * __¡»am ); 478  `putc ( __c , FILE * __¡»am ); 484  `putch¬ ( __c ); 485 __END_NAMESPACE_STD 489  #putc ( _ch , _å è `_IO_putc (_ch, _å) ) 491 #ifdeà __USE_MISC 498  `åutc_uÆocked ( __c , FILE * __¡»am ); 501 #ià defšed __USE_POSIX || defšed __USE_MISC 506  `putc_uÆocked ( __c , FILE * __¡»am ); 507  `putch¬_uÆocked ( __c ); 511 #ià defšed __USE_SVID || defšed __USE_MISC \ 512 || ( defšed __USE_XOPEN && !defšed __USE_XOPEN2K ) 514  `g‘w ( FILE * __¡»am ); 517  `putw ( __w , FILE * __¡»am ); 521 __BEGIN_NAMESPACE_STD 526 * `fg‘s (* __»¡riù __s ,  __n , FILE *__»¡riù __¡»am ); 533 * `g‘s (* __s ); 534 __END_NAMESPACE_STD 536 #ifdeà __USE_GNU 543 * `fg‘s_uÆocked (* __»¡riù __s ,  __n , 544 FILE * __»¡riù __¡»am ); 548 #ifdef __USE_GNU 559 _IO_ssize_t `__g‘d–im (** __»¡riù __lš•Œ , 560 size_t * __»¡riù __n ,  __d–im™” , 561 FILE * __»¡riù __¡»am ); 562 _IO_ssize_t `g‘d–im (** __»¡riù __lš•Œ , 563 size_t * __»¡riù __n ,  __d–im™” , 564 FILE * __»¡riù __¡»am ); 572 _IO_ssize_t `g‘lše (** __»¡riù __lš•Œ , 573 size_t * __»¡riù __n , 574 FILE * __»¡riù __¡»am ); 578 __BEGIN_NAMESPACE_STD 583  `åuts ( __cÚ¡ * __»¡riù __s , FILE *__»¡riù __¡»am ); 589  `puts ( __cÚ¡ * __s ); 596  `ung‘c ( __c , FILE * __¡»am ); 603 size_t `ä—d (* __»¡riù __±r , size_ˆ __size , 604 size_t __n , FILE * __»¡riù __¡»am ); 609 size_t `fwr™e ( __cÚ¡ * __»¡riù __±r , size_ˆ __size , 610 size_t __n , FILE * __»¡riù __s ); 611 __END_NAMESPACE_STD 613 #ifdeà __USE_GNU 620  `åuts_uÆocked ( __cÚ¡ * __»¡riù __s , 621 FILE * __»¡riù __¡»am ); 624 #ifdeà __USE_MISC 631 size_t `ä—d_uÆocked (* __»¡riù __±r , size_ˆ __size , 632 size_t __n , FILE * __»¡riù __¡»am ); 633 size_t `fwr™e_uÆocked ( __cÚ¡ * __»¡riù __±r , size_ˆ __size , 634 size_t __n , FILE * __»¡riù __¡»am ); 638 __BEGIN_NAMESPACE_STD 643  `f£ek ( FILE * __¡»am ,  __off ,  __wh’û ); 648  `á–l ( FILE * __¡»am ); 653  `»wšd ( FILE * __¡»am ); 654 __END_NAMESPACE_STD 661 #ià defšed __USE_LARGEFILE || defšed __USE_XOPEN2K 662 #iâdeà __USE_FILE_OFFSET64 667  `f£eko ( FILE * __¡»am , __off_t __off ,  __wh’û ); 672 __off_t `á–lo ( FILE * __¡»am ); 674 #ifdeà __REDIRECT 675  `__REDIRECT ( f£eko , 676 ( FILE * __¡»am , __off64_t __off ,  __wh’û ), 677 f£eko64 ); 678 __off64_t `__REDIRECT ( á–lo , ( FILE * __¡»am ), á–lo64 ); 680  #f£eko f£eko64 ) 681  #á–lo á–lo64 ) 686 __BEGIN_NAMESPACE_STD 687 #iâdeà __USE_FILE_OFFSET64 692  `fg‘pos ( FILE * __»¡riù __¡»am , åos_t *__»¡riù __pos ); 697  `f£os ( FILE * __¡»am , __cÚ¡ åos_t * __pos ); 699 #ifdeà __REDIRECT 700  `__REDIRECT ( fg‘pos , ( FILE * __»¡riù __¡»am , 701 åos_t * __»¡riù __pos ), fg‘pos64 ); 702  `__REDIRECT ( f£os , 703 ( FILE * __¡»am , __cÚ¡ åos_t * __pos ), f£os64 ); 705  #fg‘pos fg‘pos64 ) 706  #f£os f£os64 ) 709 __END_NAMESPACE_STD 711 #ifdeà __USE_LARGEFILE64 712  `f£eko64 ( FILE * __¡»am , __off64_t __off ,  __wh’û ); 713 __off64_t `á–lo64 ( FILE * __¡»am ); 714  `fg‘pos64 ( FILE * __»¡riù __¡»am , åos64_t *__»¡riù __pos ); 715  `f£os64 ( FILE * __¡»am , __cÚ¡ åos64_t * __pos ); 718 __BEGIN_NAMESPACE_STD 720  $þ—»¼ ( FILE * __¡»am è __THROW ; 722  $ãof ( FILE * __¡»am è __THROW ; 724  $ã¼Ü ( FILE * __¡»am è __THROW ; 725 __END_NAMESPACE_STD 727 #ifdeà __USE_MISC 729  $þ—»¼_uÆocked ( FILE * __¡»am è __THROW ; 730  $ãof_uÆocked ( FILE * __¡»am è __THROW ; 731  $ã¼Ü_uÆocked ( FILE * __¡»am è __THROW ; 735 __BEGIN_NAMESPACE_STD 740  `³¼Ü ( __cÚ¡ * __s ); 741 __END_NAMESPACE_STD 747  ~ 750 #ifdef __USE_POSIX 752  $fž’o ( FILE * __¡»am è __THROW ; 755 #ifdeà __USE_MISC 757  $fž’o_uÆocked ( FILE * __¡»am è __THROW ; 761 #ià( defšed __USE_POSIX2 || defšed __USE_SVID || defšed __USE_BSD || \ 762 defšed __USE_MISC ) 767 FILE * `pÝ’ ( __cÚ¡ * __commªd , __cÚ¡ * __modes ); 773  `pþo£ ( FILE * __¡»am ); 777 #ifdef __USE_POSIX 779 * $ù”mid (* __s è __THROW ; 783 #ifdeà __USE_XOPEN 785 * `cu£rid (* __s ); 789 #ifdef __USE_GNU 790  ob¡ack ; 793  $ob¡ack_´štf ( ob¡ack * __»¡riù __ob¡ack , 794 __cÚ¡ * __»¡riù __fÜm© , ...) 795 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 3))); 796  $ob¡ack_v´štf ( ob¡ack * __»¡riù __ob¡ack , 797 __cÚ¡ * __»¡riù __fÜm© , 798 _G_va_li¡ __¬gs ) 799 __THROW `__©Œibu‹__ (( `__fÜm©__ ( __´štf__ , 2, 0))); 803 #ià defšed __USE_POSIX || defšed __USE_MISC 807  $æockfže ( FILE * __¡»am è __THROW ; 811  $árylockfže ( FILE * __¡»am è __THROW ; 814  $fuÆockfže ( FILE * __¡»am è __THROW ; 817 #ià defšed __USE_XOPEN && !defšed __USE_XOPEN2K && !defšed __USE_GNU 821  #__Ãed_g‘Ýt ) 822  ~ 827 #ifdeà __USE_EXTERN_INLINES 828  ~ 830 #ià __USE_FORTIFY_LEVEL > 0 && ! defšed __ýlu¥lus 831  ~ 834 __END_DECLS @/usr/include/stdlib.h 23 #iâdef _STDLIB_H 25  ~<ã©u»s.h > 28  #__Ãed_size_t ) 29 #iâdeà __Ãed_m®loc_ªd_ÿÎoc 30  #__Ãed_wch¬_t ) 31  #__Ãed_NULL ) 33  ~<¡ddef.h > 35 g__BEGIN_DECLS 37 #iâdeà __Ãed_m®loc_ªd_ÿÎoc 38  #_STDLIB_H 1 ) 40 #ià defšed __USE_XOPEN && !defšed _SYS_WAIT_H 42  ~ 43  ~ 45 #ifdeà __USE_BSD 50 #ià defšed __GNUC__ && !defšed __ýlu¥lus 51  #__WAIT_INT ( ¡©us ) \ 52 ( `__ex‹nsiÚ__ ({ uniÚ { `__ty³of ( ¡©us è __š ;  __i ; } __u ; \ 53 __u . __š = ( ¡©us ); __u. __i ; })) ) 55  #__WAIT_INT ( ¡©us è(*(*è&(¡©us)) ) 63 #ià! defšed __GNUC__ || __GNUC__ < 2 || defšed __ýlu¥lus 64  #__WAIT_STATUS * ) 65  #__WAIT_STATUS_DEFN * ) 70  wa™ * m__u±r ; 71 * m__Œ ; 72 } t__WAIT_STATUS t__©Œibu‹__ (( t__Œª¥¬’t_uniÚ__ )); 73  #__WAIT_STATUS_DEFN * ) 78  #__WAIT_INT ( ¡©us è(¡©us) ) 79  #__WAIT_STATUS * ) 80  #__WAIT_STATUS_DEFN * ) 85  #WEXITSTATUS ( ¡©us è `__WEXITSTATUS ( `__WAIT_INT (¡©us)) ) 86  #WTERMSIG ( ¡©us è `__WTERMSIG ( `__WAIT_INT (¡©us)) ) 87  #WSTOPSIG ( ¡©us è `__WSTOPSIG ( `__WAIT_INT (¡©us)) ) 88  #WIFEXITED ( ¡©us è `__WIFEXITED ( `__WAIT_INT (¡©us)) ) 89  #WIFSIGNALED ( ¡©us è `__WIFSIGNALED ( `__WAIT_INT (¡©us)) ) 90  #WIFSTOPPED ( ¡©us è `__WIFSTOPPED ( `__WAIT_INT (¡©us)) ) 91 #ifdeà __WIFCONTINUED 92  #WIFCONTINUED ( ¡©us è `__WIFCONTINUED ( `__WAIT_INT (¡©us)) ) 96 __BEGIN_NAMESPACE_STD 100  mquÙ ; 101  m»m ; 102 } tdiv_t ; 105 #iâdeà __ldiv_t_defšed 108  mquÙ ; 109  m»m ; 110 } tldiv_t ; 111  #__ldiv_t_defšed 1 ) 113 g__END_NAMESPACE_STD 115 #ià defšed __USE_ISOC99 && !defšed __Îdiv_t_defšed 116 __BEGIN_NAMESPACE_C99 118 __ex‹nsiÚ__ struct 120  mquÙ ; 121  m»m ; 122 } tÎdiv_t ; 123  #__Îdiv_t_defšed 1 ) 124 g__END_NAMESPACE_C99 129  #RAND_MAX 2147483647 ) 134  #EXIT_FAILURE 1 ) 135  #EXIT_SUCCESS 0 ) 139  #MB_CUR_MAX ( `__ùy³_g‘_mb_cur_max ()) ) 140 size_t $__ùy³_g‘_mb_cur_max (è __THROW ; 143 __BEGIN_NAMESPACE_STD 145  $©of ( __cÚ¡ * __ÅŒ ) 146 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 148  $©oi ( __cÚ¡ * __ÅŒ ) 149 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 151  $©Þ ( __cÚ¡ * __ÅŒ ) 152 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 153 __END_NAMESPACE_STD 155 #ià defšed __USE_ISOC99 || (defšed __GLIBC_HAVE_LONG_LONG && defšed __USE_MISC ) 156 __BEGIN_NAMESPACE_C99 158 __ex‹nsiÚ__  $©Þl ( __cÚ¡ * __ÅŒ ) 159 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 160 __END_NAMESPACE_C99 163 __BEGIN_NAMESPACE_STD 165  $¡¹od ( __cÚ¡ * __»¡riù __ÅŒ , 166 ** __»¡riù __’d±r è __THROW `__nÚnuÎ ((1)); 167 __END_NAMESPACE_STD 169 #ifdef __USE_ISOC99 170 __BEGIN_NAMESPACE_C99 172  $¡¹of ( __cÚ¡ * __»¡riù __ÅŒ , 173 ** __»¡riù __’d±r è __THROW `__nÚnuÎ ((1)); 175  $¡¹Þd ( __cÚ¡ * __»¡riù __ÅŒ , 176 ** __»¡riù __’d±r ) 177 __THROW `__nÚnuÎ ((1)); 178 __END_NAMESPACE_C99 181 __BEGIN_NAMESPACE_STD 183  $¡¹Þ ( __cÚ¡ * __»¡riù __ÅŒ , 184 ** __»¡riù __’d±r ,  __ba£ ) 185 __THROW `__nÚnuÎ ((1)); 187  $¡¹oul ( __cÚ¡ * __»¡riù __ÅŒ , 188 ** __»¡riù __’d±r ,  __ba£ ) 189 __THROW `__nÚnuÎ ((1)); 190 __END_NAMESPACE_C99 192 #ià defšed __GLIBC_HAVE_LONG_LONG && defšed __USE_BSD 194 __ex‹nsiÚ__ 195  $¡¹oq ( __cÚ¡ * __»¡riù __ÅŒ , 196 ** __»¡riù __’d±r ,  __ba£ ) 197 __THROW `__nÚnuÎ ((1)); 199 __ex‹nsiÚ__ 200  $¡¹ouq ( __cÚ¡ * __»¡riù __ÅŒ , 201 ** __»¡riù __’d±r ,  __ba£ ) 202 __THROW `__nÚnuÎ ((1)); 205 #ià defšed __USE_ISOC99 || (defšed __GLIBC_HAVE_LONG_LONG && defšed __USE_MISC ) 206 __BEGIN_NAMESPACE_C99 208 __ex‹nsiÚ__ 209  $¡¹Þl ( __cÚ¡ * __»¡riù __ÅŒ , 210 ** __»¡riù __’d±r ,  __ba£ ) 211 __THROW `__nÚnuÎ ((1)); 213 __ex‹nsiÚ__ 214  $¡¹ouÎ ( __cÚ¡ * __»¡riù __ÅŒ , 215 ** __»¡riù __’d±r ,  __ba£ ) 216 __THROW `__nÚnuÎ ((1)); 217 __END_NAMESPACE_C99 221 #ifdeà __USE_GNU 235  ~ 239  $¡¹Þ_l ( __cÚ¡ * __»¡riù __ÅŒ , 240 ** __»¡riù __’d±r ,  __ba£ , 241 __loÿË_t __loc è __THROW `__nÚnuÎ ((1, 4)); 243  $¡¹oul_l ( __cÚ¡ * __»¡riù __ÅŒ , 244 ** __»¡riù __’d±r , 245  __ba£ , __loÿË_t __loc ) 246 __THROW `__nÚnuÎ ((1, 4)); 248 __ex‹nsiÚ__ 249  $¡¹Þl_l ( __cÚ¡ * __»¡riù __ÅŒ , 250 ** __»¡riù __’d±r ,  __ba£ , 251 __loÿË_t __loc ) 252 __THROW `__nÚnuÎ ((1, 4)); 254 __ex‹nsiÚ__ 255  $¡¹ouÎ_l ( __cÚ¡ * __»¡riù __ÅŒ , 256 ** __»¡riù __’d±r , 257  __ba£ , __loÿË_t __loc ) 258 __THROW `__nÚnuÎ ((1, 4)); 260  $¡¹od_l ( __cÚ¡ * __»¡riù __ÅŒ , 261 ** __»¡riù __’d±r , __loÿË_t __loc ) 262 __THROW `__nÚnuÎ ((1, 3)); 264  $¡¹of_l ( __cÚ¡ * __»¡riù __ÅŒ , 265 ** __»¡riù __’d±r , __loÿË_t __loc ) 266 __THROW `__nÚnuÎ ((1, 3)); 268  $¡¹Þd_l ( __cÚ¡ * __»¡riù __ÅŒ , 269 ** __»¡riù __’d±r , 270 __loÿË_t __loc è __THROW `__nÚnuÎ ((1, 3)); 277  $__¡¹od_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 278 ** __»¡riù __’d±r ,  __group ) 279 __THROW `__nÚnuÎ ((1)); 280  $__¡¹of_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 281 ** __»¡riù __’d±r ,  __group ) 282 __THROW `__nÚnuÎ ((1)); 283  $__¡¹Þd_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 284 ** __»¡riù __’d±r , 285  __group è __THROW `__nÚnuÎ ((1)); 286 #iâdeà __¡¹Þ_š‹º®_defšed 287  $__¡¹Þ_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 288 ** __»¡riù __’d±r , 289  __ba£ ,  __group ) 290 __THROW `__nÚnuÎ ((1)); 291  #__¡¹Þ_š‹º®_defšed 1 ) 293 #iâdeà __¡¹oul_š‹º®_defšed 294  $__¡¹oul_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 295 ** __»¡riù __’d±r , 296  __ba£ ,  __group ) 297 __THROW `__nÚnuÎ ((1)); 298  #__¡¹oul_š‹º®_defšed 1 ) 300 #ià defšed __GNUC__ || defšed __USE_ISOC99 301 #iâdeà __¡¹Þl_š‹º®_defšed 302 __ex‹nsiÚ__ 303  $__¡¹Þl_š‹º® ( __cÚ¡ * __»¡riù __ÅŒ , 304 ** __»¡riù __’d±r , 305  __ba£ ,  __group ) 306 __THROW `__nÚnuÎ ((1)); 307  #__¡¹Þl_š‹º®_defšed 1 ) 309 #iâdeà __¡¹ouÎ_š‹º®_defšed 310 __ex‹nsiÚ__ 311  $__¡¹ouÎ_š‹º® ( __cÚ¡ * 312 __»¡riù __ÅŒ , 313 ** __»¡riù __’d±r , 314  __ba£ ,  __group ) 315 __THROW `__nÚnuÎ ((1)); 316  #__¡¹ouÎ_š‹º®_defšed 1 ) 320 #ifdeà __USE_EXTERN_INLINES 323 __BEGIN_NAMESPACE_STD 324 __šlše  325 `__NTH ( $¡¹od ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r )) 327  `__¡¹od_š‹º® ( __ÅŒ , __’d±r , 0); 328 } } 329 __šlše  330 __NTH ( $¡¹Þ ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 331  __ba£ )) 333  `__¡¹Þ_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 334 } } 335 __šlše  336 __NTH ( $¡¹oul ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 337  __ba£ )) 339  `__¡¹oul_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 340 } } 341 __END_NAMESPACE_STD 343 #ifdeà __USE_ISOC99 344 __BEGIN_NAMESPACE_C99 345 __šlše  346 __NTH ( $¡¹of ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r )) 348  `__¡¹of_š‹º® ( __ÅŒ , __’d±r , 0); 349 } } 350 __šlše  351 __NTH ( $¡¹Þd ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r )) 353  `__¡¹Þd_š‹º® ( __ÅŒ , __’d±r , 0); 354 } } 355 __END_NAMESPACE_C99 358 #ifdeà __USE_BSD 359 __ex‹nsiÚ__ __šlše  360 __NTH ( $¡¹oq ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 361  __ba£ )) 363  `__¡¹Þl_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 364 } } 365 __ex‹nsiÚ__ __šlše  366 __NTH ( $¡¹ouq ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 367  __ba£ )) 369  `__¡¹ouÎ_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 370 } } 373 #ià defšed __USE_MISC || defšed __USE_ISOC99 374 __BEGIN_NAMESPACE_C99 375 __ex‹nsiÚ__ __šlše  376 __NTH ( $¡¹Þl ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 377  __ba£ )) 379  `__¡¹Þl_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 380 } } 381 __ex‹nsiÚ__ __šlše  382 __NTH ( $¡¹ouÎ ( __cÚ¡ * __»¡riù __ÅŒ , **__»¡riù __’d±r , 383  __ba£ )) 385  `__¡¹ouÎ_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); 386 } } 387 __END_NAMESPACE_C99 390 __BEGIN_NAMESPACE_STD 391 __šlše  392 __NTH ( $©of ( __cÚ¡ * __ÅŒ )) 394  `¡¹od ( __ÅŒ , (**è NULL ); 395 } } 396 __šlše  397 __NTH ( $©oi ( __cÚ¡ * __ÅŒ )) 399  (è `¡¹Þ ( __ÅŒ , (**è NULL , 10); 400 } } 401 __šlše  402 __NTH ( $©Þ ( __cÚ¡ * __ÅŒ )) 404  `¡¹Þ ( __ÅŒ , (**è NULL , 10); 405 } } 406 __END_NAMESPACE_STD 408 #ià defšed __USE_MISC || defšed __USE_ISOC99 409 __BEGIN_NAMESPACE_C99 410 __ex‹nsiÚ__ __šlše  411 __NTH ( $©Þl ( __cÚ¡ * __ÅŒ )) 413  `¡¹Þl ( __ÅŒ , (**è NULL , 10); 414 } } 415 __END_NAMESPACE_C99 420 #ià defšed __USE_SVID || defšed __USE_XOPEN_EXTENDED 424 * $l64a ( __n è __THROW ; 427  $a64l ( __cÚ¡ * __s ) 428 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 432 #ià defšed __USE_SVID || defšed __USE_XOPEN_EXTENDED || defšed __USE_BSD 433  ~ 440  $¿ndom (è __THROW ; 443  $¤ªdom ( __£ed è __THROW ; 449 * $š™¡©e ( __£ed , * __¡©ebuf , 450 size_t __¡©–’ è __THROW `__nÚnuÎ ((2)); 454 * $£t¡©e (* __¡©ebuf è __THROW `__nÚnuÎ ((1)); 457 #ifdeà __USE_MISC 462  s¿ndom_d©a 464 št32_t * åŒ ; 465 št32_t * ½Œ ; 466 št32_t * ¡©e ; 467  ¿nd_ty³ ; 468  ¿nd_deg ; 469  ¿nd_£p ; 470 št32_t * ’d_±r ; 473  $¿ndom_r ( ¿ndom_d©a * __»¡riù __buf , 474 št32_t * __»¡riù __»suÉ è __THROW `__nÚnuÎ ((1, 2)); 476  $¤ªdom_r ( __£ed ,  ¿ndom_d©a * __buf ) 477 __THROW `__nÚnuÎ ((2)); 479  $š™¡©e_r ( __£ed , * __»¡riù __¡©ebuf , 480 size_t __¡©–’ , 481  ¿ndom_d©a * __»¡riù __buf ) 482 __THROW `__nÚnuÎ ((2, 4)); 484  $£t¡©e_r (* __»¡riù __¡©ebuf , 485  ¿ndom_d©a * __»¡riù __buf ) 486 __THROW `__nÚnuÎ ((1, 2)); 491 __BEGIN_NAMESPACE_STD 493  $¿nd (è __THROW ; 495  $¤ªd ( __£ed è __THROW ; 496 __END_NAMESPACE_STD 498 #ifdeà __USE_POSIX 500  $¿nd_r (* __£ed è __THROW ; 504 #ià defšed __USE_SVID || defšed __USE_XOPEN 508  $d¿nd48 (è __THROW ; 509  `”ªd48 ( __xsubi [3]è __THROW `__nÚnuÎ ((1)); 512  $̪d48 (è __THROW ; 513  `Īd48 ( __xsubi [3]) 514 __THROW `__nÚnuÎ ((1)); 517  $m¿nd48 (è __THROW ; 518  `j¿nd48 ( __xsubi [3]) 519 __THROW `__nÚnuÎ ((1)); 522  $¤ªd48 ( __£edv® è __THROW ; 523 * `£ed48 ( __£ed16v [3]) 524 __THROW `__nÚnuÎ ((1)); 525  `lcÚg48 ( __·¿m [7]è __THROW `__nÚnuÎ ((1)); 527 #ifdeà __USE_MISC 531  sd¿nd48_d©a 533  __x [3]; 534  __Þd_x [3]; 535  __c ; 536  __š™ ; 537  __a ; 541  $d¿nd48_r ( d¿nd48_d©a * __»¡riù __bufãr , 542 * __»¡riù __»suÉ è __THROW `__nÚnuÎ ((1, 2)); 543  `”ªd48_r ( __xsubi [3], 544  d¿nd48_d©a * __»¡riù __bufãr , 545 * __»¡riù __»suÉ è __THROW `__nÚnuÎ ((1, 2)); 548  $̪d48_r ( d¿nd48_d©a * __»¡riù __bufãr , 549 * __»¡riù __»suÉ ) 550 __THROW `__nÚnuÎ ((1, 2)); 551  `Īd48_r ( __xsubi [3], 552  d¿nd48_d©a * __»¡riù __bufãr , 553 * __»¡riù __»suÉ ) 554 __THROW `__nÚnuÎ ((1, 2)); 557  $m¿nd48_r ( d¿nd48_d©a * __»¡riù __bufãr , 558 * __»¡riù __»suÉ ) 559 __THROW `__nÚnuÎ ((1, 2)); 560  `j¿nd48_r ( __xsubi [3], 561  d¿nd48_d©a * __»¡riù __bufãr , 562 * __»¡riù __»suÉ ) 563 __THROW `__nÚnuÎ ((1, 2)); 566  $¤ªd48_r ( __£edv® ,  d¿nd48_d©a * __bufãr ) 567 __THROW `__nÚnuÎ ((2)); 569  `£ed48_r ( __£ed16v [3], 570  d¿nd48_d©a * __bufãr è __THROW `__nÚnuÎ ((1, 2)); 572  `lcÚg48_r ( __·¿m [7], 573  d¿nd48_d©a * __bufãr ) 574 __THROW `__nÚnuÎ ((1, 2)); 580 #iâdeà __m®loc_ªd_ÿÎoc_defšed 581  #__m®loc_ªd_ÿÎoc_defšed ) 582 __BEGIN_NAMESPACE_STD 584 * $m®loc ( size_t __size è __THROW __©Œibu‹_m®loc__ ; 586 * $ÿÎoc ( size_t __nmemb , size_ˆ __size ) 587 __THROW __©Œibu‹_m®loc__ ; 588 __END_NAMESPACE_STD 591 #iâdeà __Ãed_m®loc_ªd_ÿÎoc 592 __BEGIN_NAMESPACE_STD 595 * $»®loc (* __±r , size_t __size è __THROW __©Œibu‹_m®loc__ ; 597  $ä“ (* __±r è __THROW ; 598 __END_NAMESPACE_STD 600 #ifdef __USE_MISC 602  $cä“ (* __±r è __THROW ; 605 #ià defšed __USE_GNU || defšed __USE_BSD || defšed __USE_MISC 606  ~<®loÿ.h > 609 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 611 * $v®loc ( size_t __size è __THROW __©Œibu‹_m®loc__ ; 614 #ifdeà __USE_XOPEN2K 616  $posix_mem®ign (** __mem±r , size_t __®ignm’t , size_ˆ __size ) 617 __THROW `__nÚnuÎ ((1)); 620 __BEGIN_NAMESPACE_STD 622  $abÜt (è __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 626  `©ex™ ((* __func è()è __THROW `__nÚnuÎ ((1)); 627 __END_NAMESPACE_STD 629 #ifdef __USE_MISC 632  `Ú_ex™ ((* __func è( __¡©us , * __¬g ), *__arg) 633 __THROW `__nÚnuÎ ((1)); 636 __BEGIN_NAMESPACE_STD 640  $ex™ ( __¡©us è __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 641 __END_NAMESPACE_STD 643 #ifdeà __USE_ISOC99 644 __BEGIN_NAMESPACE_C99 647  $_Ex™ ( __¡©us è __THROW `__©Œibu‹__ (( __nÜ‘uº__ )); 648 __END_NAMESPACE_C99 652 __BEGIN_NAMESPACE_STD 654 * $g‘’v ( __cÚ¡ * __Çme è __THROW `__nÚnuÎ ((1)); 655 __END_NAMESPACE_STD 659 * $__£cu»_g‘’v ( __cÚ¡ * __Çme è __THROW `__nÚnuÎ ((1)); 661 #ià defšed __USE_SVID || defšed __USE_XOPEN 665  $pu‹nv (* __¡ršg è __THROW `__nÚnuÎ ((1)); 668 #ià defšed __USE_BSD || defšed __USE_XOPEN2K 671  $£‹nv ( __cÚ¡ * __Çme , __cÚ¡ * __v®ue ,  __»¶aû ) 672 __THROW `__nÚnuÎ ((2)); 675  $un£‹nv ( __cÚ¡ * __Çme è __THROW ; 678 #ifdef __USE_MISC 682  $þ—»nv (è __THROW ; 686 #ià defšed __USE_MISC || defšed __USE_XOPEN_EXTENDED 691 * $mk‹mp (* __‹m¶©e è __THROW `__nÚnuÎ ((1)); 701 #iâdeà __USE_FILE_OFFSET64 702  $mk¡emp (* __‹m¶©e è `__nÚnuÎ ((1)); 704 #ifdeà __REDIRECT 705  `__REDIRECT ( mk¡emp , (* __‹m¶©e ), mk¡emp64 è `__nÚnuÎ ((1)); 707  #mk¡emp mk¡emp64 ) 710 #ifdeà __USE_LARGEFILE64 711  $mk¡emp64 (* __‹m¶©e è `__nÚnuÎ ((1)); 715 #ifdeà __USE_BSD 721 * $mkd‹mp (* __‹m¶©e è __THROW `__nÚnuÎ ((1)); 725 __BEGIN_NAMESPACE_STD 730  `sy¡em ( __cÚ¡ * __commªd ); 731 __END_NAMESPACE_STD 734 #ifdef __USE_GNU 738 * $ÿnÚiÿlize_fže_Çme ( __cÚ¡ * __Çme ) 739 __THROW `__nÚnuÎ ((1)); 742 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 749 * $»®·th ( __cÚ¡ * __»¡riù __Çme , 750 * __»¡riù __»sÞved è __THROW ; 755 #iâdeà __COMPAR_FN_T 756  #__COMPAR_FN_T ) 757 (* t__com·r_â_t è( t__cÚ¡ *, __const *); 759 #ifdef __USE_GNU 760  __com·r_â_t tcom·risÚ_â_t ; 764 __BEGIN_NAMESPACE_STD 767 * $b£¬ch ( __cÚ¡ * __key , __cÚ¡ * __ba£ , 768 size_t __nmemb , size_ˆ __size , __com·r_â_t __com·r ) 769 `__nÚnuÎ ((1, 2, 5)); 773  $qsÜt (* __ba£ , size_t __nmemb , size_ˆ __size , 774 __com·r_â_t __com·r è `__nÚnuÎ ((1, 4)); 778  $abs ( __x è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 779  $Ïbs ( __x è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 780 __END_NAMESPACE_STD 782 #ifdeà __USE_ISOC99 783 __ex‹nsiÚ__  $Îabs ( __x ) 784 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 788 __BEGIN_NAMESPACE_STD 792 div_t $div ( __num” ,  __d’om ) 793 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 794 ldiv_t $ldiv ( __num” ,  __d’om ) 795 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 796 __END_NAMESPACE_STD 798 #ifdeà __USE_ISOC99 799 __BEGIN_NAMESPACE_C99 800 __ex‹nsiÚ__ Îdiv_t $Îdiv ( __num” , 801  __d’om ) 802 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 803 __END_NAMESPACE_C99 807 #ià defšed __USE_SVID || defšed __USE_XOPEN_EXTENDED 814 * $ecvt ( __v®ue ,  __ndig™ , * __»¡riù __deýt , 815 * __»¡riù __sign è __THROW `__nÚnuÎ ((3, 4)); 820 * $fcvt ( __v®ue ,  __ndig™ , * __»¡riù __deýt , 821 * __»¡riù __sign è __THROW `__nÚnuÎ ((3, 4)); 826 * $gcvt ( __v®ue ,  __ndig™ , * __buf ) 827 __THROW `__nÚnuÎ ((3)); 830 #ifdeà __USE_MISC 832 * $qecvt ( __v®ue ,  __ndig™ , 833 * __»¡riù __deýt , *__»¡riù __sign ) 834 __THROW `__nÚnuÎ ((3, 4)); 835 * $qfcvt ( __v®ue ,  __ndig™ , 836 * __»¡riù __deýt , *__»¡riù __sign ) 837 __THROW `__nÚnuÎ ((3, 4)); 838 * $qgcvt ( __v®ue ,  __ndig™ , * __buf ) 839 __THROW `__nÚnuÎ ((3)); 844  $ecvt_r ( __v®ue ,  __ndig™ , * __»¡riù __deýt , 845 * __»¡riù __sign , *__»¡riù __buf , 846 size_t __Ën è __THROW `__nÚnuÎ ((3, 4, 5)); 847  $fcvt_r ( __v®ue ,  __ndig™ , * __»¡riù __deýt , 848 * __»¡riù __sign , *__»¡riù __buf , 849 size_t __Ën è __THROW `__nÚnuÎ ((3, 4, 5)); 851  $qecvt_r ( __v®ue ,  __ndig™ , 852 * __»¡riù __deýt , *__»¡riù __sign , 853 * __»¡riù __buf , size_t __Ën ) 854 __THROW `__nÚnuÎ ((3, 4, 5)); 855  $qfcvt_r ( __v®ue ,  __ndig™ , 856 * __»¡riù __deýt , *__»¡riù __sign , 857 * __»¡riù __buf , size_t __Ën ) 858 __THROW `__nÚnuÎ ((3, 4, 5)); 863 __BEGIN_NAMESPACE_STD 866  $mbËn ( __cÚ¡ * __s , size_t __n è __THROW ; 869  $mbtowc ( wch¬_t * __»¡riù __pwc , 870 __cÚ¡ * __»¡riù __s , size_t __n è __THROW ; 873  $wùomb (* __s , wch¬_t __wch¬ è __THROW ; 877 size_t $mb¡owcs ( wch¬_t * __»¡riù __pwcs , 878 __cÚ¡ * __»¡riù __s , size_t __n è __THROW ; 880 size_t $wc¡ombs (* __»¡riù __s , 881 __cÚ¡ wch¬_t * __»¡riù __pwcs , size_t __n ) 882 __THROW ; 883 __END_NAMESPACE_STD 886 #ifdeà __USE_SVID 891  $½m©ch ( __cÚ¡ * __»¥Ú£ è __THROW `__nÚnuÎ ((1)); 895 #ifdeà __USE_XOPEN_EXTENDED 902  $g‘subÝt (** __»¡riù __ÝtiÚp , 903 * __cÚ¡ * __»¡riù __tok’s , 904 ** __»¡riù __v®u• ) 905 __THROW `__nÚnuÎ ((1, 2, 3)); 909 #ifdeà __USE_XOPEN 911  $£tkey ( __cÚ¡ * __key è __THROW `__nÚnuÎ ((1)); 917 #ifdeà __USE_XOPEN2K 919  `posix_Ý’± ( __oæag ); 922 #ifdeà __USE_XOPEN 927  $g¿Á± ( __fd è __THROW ; 931  $uÆock± ( __fd è __THROW ; 936 * $±¢ame ( __fd è __THROW ; 939 #ifdeà __USE_GNU 943  $±¢ame_r ( __fd , * __buf , size_t __buæ’ ) 944 __THROW `__nÚnuÎ ((2)); 947  `g‘± (); 950 #ifdeà __USE_BSD 954  $g‘lßdavg ( __lßdavg [],  __ÃËm ) 955 __THROW `__nÚnuÎ ((1)); 959 #undeà __Ãed_m®loc_ªd_ÿÎoc 961 __END_DECLS @/usr/include/string.h 23 #iâdef _STRING_H 24  #_STRING_H 1 ) 26  ~<ã©u»s.h > 28 g__BEGIN_DECLS 31  #__Ãed_size_t ) 32  #__Ãed_NULL ) 33  ~<¡ddef.h > 36 __BEGIN_NAMESPACE_STD 38 * $memýy (* __»¡riù __de¡ , 39 __cÚ¡ * __»¡riù __¤c , size_t __n ) 40 __THROW `__nÚnuÎ ((1, 2)); 43 * $memmove (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 44 __THROW `__nÚnuÎ ((1, 2)); 45 __END_NAMESPACE_STD 50 #ià defšed __USE_SVID || defšed __USE_BSD || defšed __USE_XOPEN 51 * $memcýy (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c , 52  __c , size_t __n ) 53 __THROW `__nÚnuÎ ((1, 2)); 57 __BEGIN_NAMESPACE_STD 59 * $mem£t (* __s ,  __c , size_t __n è __THROW `__nÚnuÎ ((1)); 62  $memcmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 63 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 66 * $memchr ( __cÚ¡ * __s ,  __c , size_t __n ) 67 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 68 __END_NAMESPACE_STD 70 #ifdeà __USE_GNU 73 * $¿wmemchr ( __cÚ¡ * __s ,  __c ) 74 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 77 * $memrchr ( __cÚ¡ * __s ,  __c , size_t __n ) 78 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 82 __BEGIN_NAMESPACE_STD 84 * $¡rýy (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c ) 85 __THROW `__nÚnuÎ ((1, 2)); 87 * $¡ºýy (* __»¡riù __de¡ , 88 __cÚ¡ * __»¡riù __¤c , size_t __n ) 89 __THROW `__nÚnuÎ ((1, 2)); 92 * $¡rÿt (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c ) 93 __THROW `__nÚnuÎ ((1, 2)); 95 * $¡ºÿt (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c , 96 size_t __n è __THROW `__nÚnuÎ ((1, 2)); 99  $¡rcmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ) 100 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 102  $¡ºcmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 103 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 106  $¡rcÞl ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ) 107 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 109 size_t $¡rxäm (* __»¡riù __de¡ , 110 __cÚ¡ * __»¡riù __¤c , size_t __n ) 111 __THROW `__nÚnuÎ ((2)); 112 __END_NAMESPACE_STD 114 #ifdeà __USE_GNU 118  ~ 121  $¡rcÞl_l ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , __loÿË_t __l ) 122 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2, 3)); 124 size_t $¡rxäm_l (* __de¡ , __cÚ¡ * __¤c , size_t __n , 125 __loÿË_t __l è __THROW `__nÚnuÎ ((2, 4)); 128 #ià defšed __USE_SVID || defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 130 * $¡rdup ( __cÚ¡ * __s ) 131 __THROW __©Œibu‹_m®loc__ `__nÚnuÎ ((1)); 137 #ià defšed __USE_GNU 138 * $¡ºdup ( __cÚ¡ * __¡ršg , size_t __n ) 139 __THROW __©Œibu‹_m®loc__ `__nÚnuÎ ((1)); 142 #ià defšed __USE_GNU && defšed __GNUC__ 144  #¡rdu· ( s ) \ 145 ( __ex‹nsiÚ__ \ 147 __cÚ¡ * __Þd = ( s ); \ 148 size_t __Ën = `¡¾’ ( __Þd ) + 1; \ 149 * __Ãw = (*è `__bužtš_®loÿ ( __Ën ); \ 150 (*è `memýy ( __Ãw , __Þd , __Ën ); \ 151 } })) ) 154  #¡ºdu· ( s , n ) \ 155 ( __ex‹nsiÚ__ \ 157 __cÚ¡ * __Þd = ( s ); \ 158 size_t __Ën = `¡ºËn ( __Þd , ( n )); \ 159 * __Ãw = (*è `__bužtš_®loÿ ( __Ën + 1); \ 160 __Ãw [ __Ën ] = '\0'; \ 161 (*è `memýy ( __Ãw , __Þd , __Ën ); \ 162 })) ) 165 __BEGIN_NAMESPACE_STD 167 * $¡rchr ( __cÚ¡ * __s ,  __c ) 168 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 170 * $¡¼chr ( __cÚ¡ * __s ,  __c ) 171 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 172 __END_NAMESPACE_STD 174 #ifdeà __USE_GNU 177 * $¡rchºul ( __cÚ¡ * __s ,  __c ) 178 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 181 __BEGIN_NAMESPACE_STD 184 size_t $¡rc¥n ( __cÚ¡ * __s , __cÚ¡ * __»jeù ) 185 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 188 size_t $¡r¥n ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 189 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 191 * $¡½brk ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 192 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 194 * $¡r¡r ( __cÚ¡ * __hay¡ack , __cÚ¡ * __ÃedË ) 195 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 199 * $¡¹ok (* __»¡riù __s , __cÚ¡ *__»¡riù __d–im ) 200 __THROW `__nÚnuÎ ((2)); 201 __END_NAMESPACE_STD 205 * $__¡¹ok_r (* __»¡riù __s , 206 __cÚ¡ * __»¡riù __d–im , 207 ** __»¡riù __§ve_±r ) 208 __THROW `__nÚnuÎ ((2, 3)); 209 #ià defšed __USE_POSIX || defšed __USE_MISC 210 * $¡¹ok_r (* __»¡riù __s , __cÚ¡ *__»¡riù __d–im , 211 ** __»¡riù __§ve_±r ) 212 __THROW `__nÚnuÎ ((2, 3)); 215 #ifdeà __USE_GNU 217 * $¡rÿ£¡r ( __cÚ¡ * __hay¡ack , __cÚ¡ * __ÃedË ) 218 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 221 #ifdeà __USE_GNU 225 * $memmem ( __cÚ¡ * __hay¡ack , size_t __hay¡ackËn , 226 __cÚ¡ * __ÃedË , size_t __ÃedËËn ) 227 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 3)); 231 * $__mempýy (* __»¡riù __de¡ , 232 __cÚ¡ * __»¡riù __¤c , size_t __n ) 233 __THROW `__nÚnuÎ ((1, 2)); 234 * $mempýy (* __»¡riù __de¡ , 235 __cÚ¡ * __»¡riù __¤c , size_t __n ) 236 __THROW `__nÚnuÎ ((1, 2)); 240 __BEGIN_NAMESPACE_STD 242 size_t $¡¾’ ( __cÚ¡ * __s ) 243 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 244 __END_NAMESPACE_STD 246 #ifdef __USE_GNU 249 size_t $¡ºËn ( __cÚ¡ * __¡ršg , size_t __maxËn ) 250 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 254 __BEGIN_NAMESPACE_STD 256 * $¡»¼Ü ( __”ºum è __THROW ; 257 __END_NAMESPACE_STD 258 #ià defšed __USE_XOPEN2K || defšed __USE_MISC 266 #ià defšed __USE_XOPEN2K && !defšed __USE_GNU 269 #ifdeà __REDIRECT_NTH 270  `__REDIRECT_NTH ( ¡»¼Ü_r , 271 ( __”ºum , * __buf , size_t __buæ’ ), 272 __xpg_¡»¼Ü_r è `__nÚnuÎ ((2)); 274  $__xpg_¡»¼Ü_r ( __”ºum , * __buf , size_t __buæ’ ) 275 __THROW `__nÚnuÎ ((2)); 276  #¡»¼Ü_r __xpg_¡»¼Ü_r ) 281 * $¡»¼Ü_r ( __”ºum , * __buf , size_t __buæ’ ) 282 __THROW `__nÚnuÎ ((2)); 288  $__bz”o (* __s , size_t __n è __THROW `__nÚnuÎ ((1)); 290 #ifdeà __USE_BSD 292  $bcÝy ( __cÚ¡ * __¤c , * __de¡ , size_t __n ) 293 __THROW `__nÚnuÎ ((1, 2)); 296  $bz”o (* __s , size_t __n è __THROW `__nÚnuÎ ((1)); 299  $bcmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 300 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 303 * $šdex ( __cÚ¡ * __s ,  __c ) 304 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 307 * $ršdex ( __cÚ¡ * __s ,  __c ) 308 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1)); 312  $ffs ( __i è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 316 #ifdef __USE_GNU 317  $ff¦ ( __l è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 318 #ifdeà __GNUC__ 319 __ex‹nsiÚ__  $ff¦l ( __Î ) 320 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 325  $¡rÿ£cmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ) 326 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 329  $¡ºÿ£cmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 330 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 333 #ifdef __USE_GNU 336  $¡rÿ£cmp_l ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , 337 __loÿË_t __loc ) 338 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2, 3)); 340  $¡ºÿ£cmp_l ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , 341 size_t __n , __loÿË_t __loc ) 342 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2, 4)); 345 #ifdef __USE_BSD 348 * $¡r£p (** __»¡riù __¡ršgp , 349 __cÚ¡ * __»¡riù __d–im ) 350 __THROW `__nÚnuÎ ((1, 2)); 353 #ifdef __USE_GNU 355  $¡rv”scmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ) 356 __THROW __©Œibu‹_pu»__ `__nÚnuÎ ((1, 2)); 359 * $¡rsigÇl ( __sig è __THROW ; 362 * $__¡pýy (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c ) 363 __THROW `__nÚnuÎ ((1, 2)); 364 * $¡pýy (* __»¡riù __de¡ , __cÚ¡ *__»¡riù __¤c ) 365 __THROW `__nÚnuÎ ((1, 2)); 369 * $__¡²ýy (* __»¡riù __de¡ , 370 __cÚ¡ * __»¡riù __¤c , size_t __n ) 371 __THROW `__nÚnuÎ ((1, 2)); 372 * $¡²ýy (* __»¡riù __de¡ , 373 __cÚ¡ * __»¡riù __¤c , size_t __n ) 374 __THROW `__nÚnuÎ ((1, 2)); 377 * $¡räy (* __¡ršg è __THROW `__nÚnuÎ ((1)); 380 * $memäob (* __s , size_t __n è __THROW `__nÚnuÎ ((1)); 382 #iâdeà ba£Çme 387 * $ba£Çme ( __cÚ¡ * __fž’ame è __THROW `__nÚnuÎ ((1)); 392 #ià defšed __GNUC__ && __GNUC__ >= 2 393 #ià defšed __OPTIMIZE__ && !defšed __OPTIMIZE_SIZE__ \ 394 && ! defšed __NO_INLINE__ && !defšed __ýlu¥lus 414  ~ 417  ~ 420 #ià __USE_FORTIFY_LEVEL > 0 && ! defšed __ýlu¥lus 422  ~ 426 __END_DECLS @/usr/include/sys/types.h 24 #iâdef _SYS_TYPES_H 25  #_SYS_TYPES_H 1 ) 27  ~<ã©u»s.h > 29 g__BEGIN_DECLS 31  ~ 33 #ifdef __USE_BSD 34 #iâdeà __u_ch¬_defšed 35  __u_ch¬ tu_ch¬ ; 36  __u_shÜt tu_shÜt ; 37  __u_št tu_št ; 38  __u_lÚg tu_lÚg ; 39  __quad_t tquad_t ; 40  __u_quad_t tu_quad_t ; 41  __fsid_t tfsid_t ; 42  #__u_ch¬_defšed ) 46  __loff_t tloff_t ; 48 #iâdeà __šo_t_defšed 49 #iâdeà __USE_FILE_OFFSET64 50  __šo_t tšo_t ; 52  __šo64_t tšo_t ; 54  #__šo_t_defšed ) 56 #ià defšed __USE_LARGEFILE64 && !defšed __šo64_t_defšed 57  __šo64_t tšo64_t ; 58  #__šo64_t_defšed ) 61 #iâdeà __dev_t_defšed 62  __dev_t tdev_t ; 63  #__dev_t_defšed ) 66 #iâdeà __gid_t_defšed 67  __gid_t tgid_t ; 68  #__gid_t_defšed ) 71 #iâdeà __mode_t_defšed 72  __mode_t tmode_t ; 73  #__mode_t_defšed ) 76 #iâdeà __Æšk_t_defšed 77  __Æšk_t tÆšk_t ; 78  #__Æšk_t_defšed ) 81 #iâdeà __uid_t_defšed 82  __uid_t tuid_t ; 83  #__uid_t_defšed ) 86 #iâdeà __off_t_defšed 87 #iâdeà __USE_FILE_OFFSET64 88  __off_t toff_t ; 90  __off64_t toff_t ; 92  #__off_t_defšed ) 94 #ià defšed __USE_LARGEFILE64 && !defšed __off64_t_defšed 95  __off64_t toff64_t ; 96  #__off64_t_defšed ) 99 #iâdeà __pid_t_defšed 100  __pid_t tpid_t ; 101  #__pid_t_defšed ) 104 #ià( defšed __USE_SVID || defšed __USE_XOPEN è&& !defšed __id_t_defšed 105  __id_t tid_t ; 106  #__id_t_defšed ) 109 #iâdeà __ssize_t_defšed 110  __ssize_t tssize_t ; 111  #__ssize_t_defšed ) 114 #ifdef __USE_BSD 115 #iâdeà __daddr_t_defšed 116  __daddr_t tdaddr_t ; 117  __ÿddr_t tÿddr_t ; 118  #__daddr_t_defšed ) 122 #ià( defšed __USE_SVID || defšed __USE_XOPEN è&& !defšed __key_t_defšed 123  __key_t tkey_t ; 124  #__key_t_defšed ) 127 #ifdeà __USE_XOPEN 128  #__Ãed_þock_t ) 130  #__Ãed_time_t ) 131  #__Ãed_tim”_t ) 132  #__Ãed_þockid_t ) 133  ~ 135 #ifdeà __USE_XOPEN 136 #iâdeà __u£cÚds_t_defšed 137  __u£cÚds_t tu£cÚds_t ; 138  #__u£cÚds_t_defšed ) 140 #iâdeà __su£cÚds_t_defšed 141  __su£cÚds_t tsu£cÚds_t ; 142  #__su£cÚds_t_defšed ) 146  #__Ãed_size_t ) 147  ~<¡ddef.h > 149 #ifdeà __USE_MISC 151  tulÚg ; 152  tushÜt ; 153  tušt ; 158 #ià! __GNUC_PREREQ (2, 7) 161 #iâdeà __št8_t_defšed 162  #__št8_t_defšed ) 163  tšt8_t ; 164  tšt16_t ; 165  tšt32_t ; 166 #ià __GLIBC_HAVE_LONG_LONG 167 __ex‹nsiÚ__  tšt64_t ; 172  tu_št8_t ; 173  tu_št16_t ; 174  tu_št32_t ; 175 #ià __GLIBC_HAVE_LONG_LONG 176 __ex‹nsiÚ__  tu_št64_t ; 179  t»gi¡”_t ; 184  #__štN_t ( N , MODE ) \ 185 ## tN ## t_t t__©Œibu‹__ (( t__mode__ ( tMODE ))) ) 186  t__u_štN_t ( tN , tMODE ) \ 187  tu_št ## tN ## t_t t__©Œibu‹__ (( t__mode__ ( tMODE ))) ) 189 #iâdeà t__št8_t_defšed 190  t__št8_t_defšed ) 191 t__štN_t (8, t__QI__ ); 192 __štN_t (16, __HI__ ); 193 __štN_t (32, __SI__ ); 194 __štN_t (64, __DI__ ); 197 __u_štN_t (8, __QI__ ); 198 __u_štN_t (16, __HI__ ); 199 __u_štN_t (32, __SI__ ); 200 __u_štN_t (64, __DI__ ); 202  t»gi¡”_t t__©Œibu‹__ (( t__mode__ ( t__wÜd__ ))); 208  #__BIT_TYPES_DEFINED__ 1 ) 211 #ifdef __USE_BSD 213  ~<’dŸn.h > 216  ~ 219  ~ 223 #ià defšed __USE_UNIX98 && !defšed __blksize_t_defšed 224  __blksize_t tblksize_t ; 225  #__blksize_t_defšed ) 229 #iâdeà __USE_FILE_OFFSET64 230 #iâdeà __blkút_t_defšed 231  __blkút_t tblkút_t ; 232  #__blkút_t_defšed ) 234 #iâdeà __fsblkút_t_defšed 235  __fsblkút_t tfsblkút_t ; 236  #__fsblkút_t_defšed ) 238 #iâdeà __fsfžút_t_defšed 239  __fsfžút_t tfsfžút_t ; 240  #__fsfžút_t_defšed ) 243 #iâdeà __blkút_t_defšed 244  __blkút64_t tblkút_t ; 245  #__blkút_t_defšed ) 247 #iâdeà __fsblkút_t_defšed 248  __fsblkút64_t tfsblkút_t ; 249  #__fsblkút_t_defšed ) 251 #iâdeà __fsfžút_t_defšed 252  __fsfžút64_t tfsfžút_t ; 253  #__fsfžút_t_defšed ) 257 #ifdeà __USE_LARGEFILE64 258  __blkút64_t tblkút64_t ; 259  __fsblkút64_t tfsblkút64_t ; 260  __fsfžút64_t tfsfžút64_t ; 265 #ià defšed __USE_POSIX199506 || defšed __USE_UNIX98 266  ~ 269 g__END_DECLS @/usr/include/unistd.h 23 #iâdef _UNISTD_H 24  #_UNISTD_H 1 ) 26  ~<ã©u»s.h > 28 g__BEGIN_DECLS 34  #_POSIX_VERSION 200112L ) 40  #_POSIX2_VERSION 200112L ) 44  #_POSIX2_C_BIND 200112L ) 48  #_POSIX2_C_DEV 200112L ) 52  #_POSIX2_SW_DEV 200112L ) 56  #_POSIX2_LOCALEDEF 200112L ) 59 #ifdeà __USE_UNIX98 60  #_XOPEN_VERSION 500 ) 62  #_XOPEN_VERSION 4 ) 66  #_XOPEN_XCU_VERSION 4 ) 69  #_XOPEN_XPG2 1 ) 70  #_XOPEN_XPG3 1 ) 71  #_XOPEN_XPG4 1 ) 74  #_XOPEN_UNIX 1 ) 77  #_XOPEN_CRYPT 1 ) 81  #_XOPEN_ENH_I18N 1 ) 84  #_XOPEN_LEGACY 1 ) 171  ~ 174 #ifdeà __USE_UNIX98 175  ~ 179  #STDIN_FILENO 0 ) 180  #STDOUT_FILENO 1 ) 181  #STDERR_FILENO 2 ) 186  ~ 188 #iâdef __ssize_t_defšed 189  __ssize_t tssize_t ; 190  #__ssize_t_defšed ) 193  #__Ãed_size_t ) 194  #__Ãed_NULL ) 195  ~<¡ddef.h > 197 #ià defšed __USE_XOPEN || defšed __USE_XOPEN2K 200 #iâdeà __gid_t_defšed 201  __gid_t tgid_t ; 202  #__gid_t_defšed ) 205 #iâdeà __uid_t_defšed 206  __uid_t tuid_t ; 207  #__uid_t_defšed ) 210 #iâdeà __off_t_defšed 211 #iâdeà __USE_FILE_OFFSET64 212  __off_t toff_t ; 214  __off64_t toff_t ; 216  #__off_t_defšed ) 218 #ià defšed __USE_LARGEFILE64 && !defšed __off64_t_defšed 219  __off64_t toff64_t ; 220  #__off64_t_defšed ) 223 #iâdeà __u£cÚds_t_defšed 224  __u£cÚds_t tu£cÚds_t ; 225  #__u£cÚds_t_defšed ) 228 #iâdeà __pid_t_defšed 229  __pid_t tpid_t ; 230  #__pid_t_defšed ) 234 #ià defšed __USE_MISC || defšed __USE_XOPEN_EXTENDED 235 #iâdeà __šŒ_t_defšed 236  __šŒ_t tšŒ_t ; 237  #__šŒ_t_defšed ) 241 #ià defšed __USE_BSD || defšed __USE_XOPEN 242 #iâdeà __sockËn_t_defšed 243  __sockËn_t tsockËn_t ; 244  #__sockËn_t_defšed ) 250  #R_OK 4 ) 251  #W_OK 2 ) 252  #X_OK 1 ) 253  #F_OK 0 ) 256  $acûss ( __cÚ¡ * __Çme ,  __ty³ è __THROW `__nÚnuÎ ((1)); 258 #ifdeà __USE_GNU 261  $euidacûss ( __cÚ¡ * __Çme ,  __ty³ ) 262 __THROW `__nÚnuÎ ((1)); 267 #iâdef _STDIO_H 268  #SEEK_SET 0 ) 269  #SEEK_CUR 1 ) 270  #SEEK_END 2 ) 273 #ià defšed __USE_BSD && !defšed L_SET 275  #L_SET SEEK_SET ) 276  #L_INCR SEEK_CUR ) 277  #L_XTND SEEK_END ) 286 #iâdeà __USE_FILE_OFFSET64 287 __off_t $l£ek ( __fd , __off_t __off£t ,  __wh’û è __THROW ; 289 #ifdeà __REDIRECT_NTH 290 __off64_t `__REDIRECT_NTH ( l£ek , 291 ( __fd , __off64_t __off£t ,  __wh’û ), 292 l£ek64 ); 294  #l£ek l£ek64 ) 297 #ifdeà __USE_LARGEFILE64 298 __off64_t $l£ek64 ( __fd , __off64_t __off£t ,  __wh’û è __THROW ; 305  `þo£ ( __fd ); 312 ssize_t `»ad ( __fd , * __buf , size_t __nby‹s ); 318 ssize_t `wr™e ( __fd , __cÚ¡ * __buf , size_t __n ); 320 #ifdeà __USE_UNIX98 321 #iâdeà __USE_FILE_OFFSET64 328 ssize_t `´—d ( __fd , * __buf , size_t __nby‹s , 329 __off_t __off£t ); 336 ssize_t `pwr™e ( __fd , __cÚ¡ * __buf , size_t __n , 337 __off_t __off£t ); 339 #ifdeà __REDIRECT 340 ssize_t `__REDIRECT ( ´—d , ( __fd , * __buf , size_t __nby‹s , 341 __off64_t __off£t ), 342 ´—d64 ); 343 ssize_t `__REDIRECT ( pwr™e , ( __fd , __cÚ¡ * __buf , 344 size_t __nby‹s , __off64_t __off£t ), 345 pwr™e64 ); 347  #´—d ´—d64 ) 348  #pwr™e pwr™e64 ) 352 #ifdeà __USE_LARGEFILE64 356 ssize_t `´—d64 ( __fd , * __buf , size_t __nby‹s , 357 __off64_t __off£t ); 360 ssize_t `pwr™e64 ( __fd , __cÚ¡ * __buf , size_t __n , 361 __off64_t __off£t ); 369  `pe ( __pedes [2]è __THROW ; 378  $®¬m ( __£cÚds è __THROW ; 390  `¦“p ( __£cÚds ); 392 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 397 __u£cÚds_t $u®¬m ( __u£cÚds_t __v®ue , __u£cÚds_ˆ __š‹rv® ) 398 __THROW ; 405  `u¦“p ( __u£cÚds_t __u£cÚds ); 414  `·u£ (); 418  $chown ( __cÚ¡ * __fže , __uid_t __owÃr , __gid_t __group ) 419 __THROW `__nÚnuÎ ((1)); 421 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 423  $fchown ( __fd , __uid_t __owÃr , __gid_t __group è __THROW ; 428  $lchown ( __cÚ¡ * __fže , __uid_t __owÃr , __gid_t __group ) 429 __THROW `__nÚnuÎ ((1)); 434  $chdœ ( __cÚ¡ * __·th è __THROW `__nÚnuÎ ((1)); 436 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 438  $fchdœ ( __fd è __THROW ; 448 * $g‘cwd (* __buf , size_t __size è __THROW ; 450 #ifdef __USE_GNU 454 * $g‘_cu¼’t_dœ_Çme (è __THROW ; 457 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 461 * $g‘wd (* __buf è __THROW `__nÚnuÎ ((1)); 466  $dup ( __fd è __THROW ; 469  $dup2 ( __fd ,  __fd2 è __THROW ; 472 ** __’vœÚ ; 473 #ifdeà __USE_GNU 474 ** ’vœÚ ; 480  $execve ( __cÚ¡ * __·th , *__cÚ¡ __¬gv [], 481 * __cÚ¡ __’vp []è __THROW `__nÚnuÎ ((1)); 483 #ifdeà __USE_GNU 486  $ãxecve ( __fd , * __cÚ¡ __¬gv [], *__cÚ¡ __’vp []) 487 __THROW ; 492  $execv ( __cÚ¡ * __·th , *__cÚ¡ __¬gv []) 493 __THROW `__nÚnuÎ ((1)); 497  $exeþe ( __cÚ¡ * __·th , __cÚ¡ * __¬g , ...) 498 __THROW `__nÚnuÎ ((1)); 502  $exeþ ( __cÚ¡ * __·th , __cÚ¡ * __¬g , ...) 503 __THROW `__nÚnuÎ ((1)); 507  $execvp ( __cÚ¡ * __fže , *__cÚ¡ __¬gv []) 508 __THROW `__nÚnuÎ ((1)); 513  $exeþp ( __cÚ¡ * __fže , __cÚ¡ * __¬g , ...) 514 __THROW `__nÚnuÎ ((1)); 517 #ià defšed __USE_MISC || defšed __USE_XOPEN 519  $niû ( __šc è __THROW ; 524  $_ex™ ( __¡©us è `__©Œibu‹__ (( __nÜ‘uº__ )); 530  ~ 533  $·thcÚf ( __cÚ¡ * __·th ,  __Çme ) 534 __THROW `__nÚnuÎ ((1)); 537  $å©hcÚf ( __fd ,  __Çme è __THROW ; 540  $syscÚf ( __Çme è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 542 #ifdef __USE_POSIX2 544 size_t $cÚf¡r ( __Çme , * __buf , size_t __Ën è __THROW ; 549 __pid_t $g‘pid (è __THROW ; 552 __pid_t $g‘µid (è __THROW ; 556 #iâdeà __FAVOR_BSD 557 __pid_t $g‘pg½ (è __THROW ; 559 #ifdeà __REDIRECT_NTH 560 __pid_t `__REDIRECT_NTH ( g‘pg½ , (__pid_ˆ __pid ), __g‘pgid ); 562  #g‘pg½ __g‘pgid ) 567 __pid_t $__g‘pgid ( __pid_t __pid è __THROW ; 568 #ifdeà __USE_XOPEN_EXTENDED 569 __pid_t $g‘pgid ( __pid_t __pid è __THROW ; 576  $£gid ( __pid_t __pid , __pid_ˆ __pgid è __THROW ; 578 #ià defšed __USE_SVID || defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 589 #iâdeà __FAVOR_BSD 593  $£g½ (è __THROW ; 598 #ifdeà __REDIRECT_NTH 599  `__REDIRECT_NTH ( £g½ , ( __pid_t __pid , __pid_ˆ __pg½ ), £gid ); 601  #£g½ £gid ) 610 __pid_t $£tsid (è __THROW ; 612 #ifdeà __USE_XOPEN_EXTENDED 614 __pid_t $g‘sid ( __pid_t __pid è __THROW ; 618 __uid_t $g‘uid (è __THROW ; 621 __uid_t $g‘euid (è __THROW ; 624 __gid_t $g‘gid (è __THROW ; 627 __gid_t $g‘egid (è __THROW ; 632  $g‘groups ( __size , __gid_t __li¡ []è __THROW ; 634 #ifdef __USE_GNU 636  $group_memb” ( __gid_t __gid è __THROW ; 643  $£tuid ( __uid_t __uid è __THROW ; 645 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 648  $£Œeuid ( __uid_t __ruid , __uid_ˆ __euid è __THROW ; 651 #ià defšed __USE_BSD || defšed __USE_XOPEN2K 653  $£‹uid ( __uid_t __uid è __THROW ; 660  $£tgid ( __gid_t __gid è __THROW ; 662 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 665  $£Œegid ( __gid_t __rgid , __gid_ˆ __egid è __THROW ; 668 #ià defšed __USE_BSD || defšed __USE_XOPEN2K 670  $£‹gid ( __gid_t __gid è __THROW ; 673 #ifdeà __USE_GNU 676  `g‘»suid ( __uid_t * __euid , __uid_ˆ* __ruid , __uid_ˆ* __suid ); 680  `g‘»sgid ( __gid_t * __egid , __gid_ˆ* __rgid , __gid_ˆ* __sgid ); 684  `£Œesuid ( __uid_t __euid , __uid_ˆ __ruid , __uid_ˆ __suid ); 688  `£Œesgid ( __gid_t __egid , __gid_ˆ __rgid , __gid_ˆ __sgid ); 695 __pid_t $fÜk (è __THROW ; 697 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 702 __pid_t $vfÜk (è __THROW ; 708 * $‰yÇme ( __fd è __THROW ; 712  $‰yÇme_r ( __fd , * __buf , size_t __buæ’ ) 713 __THROW `__nÚnuÎ ((2)); 717  $i§‰y ( __fd è __THROW ; 719 #ià defšed __USE_BSD \ 720 || ( defšed __USE_XOPEN_EXTENDED && !defšed __USE_UNIX98 ) 723  $‰y¦Ù (è __THROW ; 728  $lšk ( __cÚ¡ * __äom , __cÚ¡ * __to ) 729 __THROW `__nÚnuÎ ((1, 2)); 731 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED || defšed __USE_XOPEN2K 733  $symlšk ( __cÚ¡ * __äom , __cÚ¡ * __to ) 734 __THROW `__nÚnuÎ ((1, 2)); 739  $»adlšk ( __cÚ¡ * __»¡riù __·th , *__»¡riù __buf , 740 size_t __Ën è __THROW `__nÚnuÎ ((1, 2)); 744  $uÆšk ( __cÚ¡ * __Çme è __THROW `__nÚnuÎ ((1)); 747  $rmdœ ( __cÚ¡ * __·th è __THROW `__nÚnuÎ ((1)); 751 __pid_t $tcg‘pg½ ( __fd è __THROW ; 754  $tc£g½ ( __fd , __pid_t __pg½_id è __THROW ; 761 * `g‘logš (); 762 #ià defšed __USE_REENTRANT || defšed __USE_UNIX98 769  $g‘logš_r (* __Çme , size_t __Çme_Ën è `__nÚnuÎ ((1)); 772 #ifdef __USE_BSD 774  $£Žogš ( __cÚ¡ * __Çme è __THROW `__nÚnuÎ ((1)); 778 #ifdef __USE_POSIX2 782  #__Ãed_g‘Ýt ) 783  ~ 787 #ià defšed __USE_BSD || defšed __USE_UNIX98 791  $g‘ho¡Çme (* __Çme , size_t __Ën è __THROW `__nÚnuÎ ((1)); 795 #ià defšed __USE_BSD || (defšed __USE_XOPEN && !defšed __USE_UNIX98 ) 798  $£tho¡Çme ( __cÚ¡ * __Çme , size_t __Ën ) 799 __THROW `__nÚnuÎ ((1)); 803  $£tho¡id ( __id è __THROW ; 809  $g‘domašÇme (* __Çme , size_t __Ën ) 810 __THROW `__nÚnuÎ ((1)); 811  $£tdomašÇme ( __cÚ¡ * __Çme , size_t __Ën ) 812 __THROW `__nÚnuÎ ((1)); 818  $vhªgup (è __THROW ; 821  $»voke ( __cÚ¡ * __fže è __THROW `__nÚnuÎ ((1)); 829  $´ofž (* __§m¶e_bufãr , size_t __size , 830 size_t __off£t ,  __sÿË ) 831 __THROW `__nÚnuÎ ((1)); 837  $acù ( __cÚ¡ * __Çme è __THROW ; 841 * $g‘u£rsh–l (è __THROW ; 842  $’du£rsh–l (è __THROW ; 843  $£tu£rsh–l (è __THROW ; 849  $d«mÚ ( __nochdœ ,  __noþo£ è __THROW ; 853 #ià defšed __USE_BSD || (defšed __USE_XOPEN && !defšed __USE_XOPEN2K ) 856  $chroÙ ( __cÚ¡ * __·th è __THROW `__nÚnuÎ ((1)); 860 * $g‘·ss ( __cÚ¡ * __´om± è `__nÚnuÎ ((1)); 864 #ià defšed __USE_BSD || defšed __USE_XOPEN 869  `fsync ( __fd ); 873 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 876  `g‘ho¡id (); 879  $sync (è __THROW ; 884  $g‘·gesize (è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 889  $g‘dbËsize (è __THROW ; 893 #iâdeà __USE_FILE_OFFSET64 894  $Œunÿ‹ ( __cÚ¡ * __fže , __off_t __Ëngth ) 895 __THROW `__nÚnuÎ ((1)); 897 #ifdeà __REDIRECT_NTH 898  `__REDIRECT_NTH ( Œunÿ‹ , 899 ( __cÚ¡ * __fže , __off64_t __Ëngth ), 900 Œunÿ‹64 è `__nÚnuÎ ((1)); 902  #Œunÿ‹ Œunÿ‹64 ) 905 #ifdeà __USE_LARGEFILE64 906  $Œunÿ‹64 ( __cÚ¡ * __fže , __off64_t __Ëngth ) 907 __THROW `__nÚnuÎ ((1)); 912 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED || defšed __USE_XOPEN2K 915 #iâdeà __USE_FILE_OFFSET64 916  $árunÿ‹ ( __fd , __off_t __Ëngth è __THROW ; 918 #ifdeà __REDIRECT_NTH 919  `__REDIRECT_NTH ( árunÿ‹ , ( __fd , __off64_t __Ëngth ), 920 árunÿ‹64 ); 922  #árunÿ‹ árunÿ‹64 ) 925 #ifdeà __USE_LARGEFILE64 926  $árunÿ‹64 ( __fd , __off64_t __Ëngth è __THROW ; 932 #ià defšed __USE_MISC || defšed __USE_XOPEN_EXTENDED 936  $brk (* __addr è __THROW ; 942 * $sbrk ( šŒ_t __d– è __THROW ; 946 #ifdeà __USE_MISC 957  $sysÿÎ ( __sy¢o , ...è __THROW ; 962 #ià( defšed __USE_MISC || defšed __USE_XOPEN_EXTENDED è&& !defšed F_LOCK 974  #F_ULOCK 0 ) 975  #F_LOCK 1 ) 976  #F_TLOCK 2 ) 977  #F_TEST 3 ) 979 #iâdeà __USE_FILE_OFFSET64 980  `lockf ( __fd ,  __cmd , __off_t __Ën ); 982 #ifdeà __REDIRECT 983  `__REDIRECT ( lockf , ( __fd ,  __cmd , __off64_t __Ën ), 984 lockf64 ); 986  #lockf lockf64 ) 989 #ifdeà __USE_LARGEFILE64 990  `lockf64 ( __fd ,  __cmd , __off64_t __Ën ); 995 #ifdeà __USE_GNU 1000  #TEMP_FAILURE_RETRY ( ex´essiÚ ) \ 1001 ( __ex‹nsiÚ__ \ 1002 ({  __»suÉ ; \ 1003 dØ __»suÉ = (è( ex´essiÚ ); \ 1004  __»suÉ =ð-1L && ”ºo =ð EINTR ); \ 1005 __»suÉ ; } })) ) 1008 #ià defšed __USE_POSIX199309 || defšed __USE_UNIX98 1011  $fd©async ( __fždes è __THROW ; 1017 #ifdef __USE_XOPEN 1019 * $üy± ( __cÚ¡ * __key , __cÚ¡ * __§É ) 1020 __THROW `__nÚnuÎ ((1, 2)); 1024  $’üy± (* __block ,  __edæag è __THROW `__nÚnuÎ ((1)); 1031  $swab ( __cÚ¡ * __»¡riù __äom , *__»¡riù __to , 1032 ssize_t __n è __THROW `__nÚnuÎ ((1, 2)); 1038 #ifdeà __USE_XOPEN 1040 * $ù”mid (* __s è __THROW `__nÚnuÎ ((1)); 1043 __END_DECLS @/usr/include/alloca.h 19 #iâdef _ALLOCA_H 20  #_ALLOCA_H 1 ) 22  ~<ã©u»s.h > 24  #__Ãed_size_t ) 25  ~<¡ddef.h > 27 g__BEGIN_DECLS 30 #undeà ®loÿ 33 * $®loÿ ( size_t __size è __THROW ; 35 #ifdef __GNUC__ 36  #®loÿ ( size è `__bužtš_®loÿ (size) ) 39 __END_DECLS @/usr/include/asm-i386/atomic.h 1 #iâdeà __ARCH_I386_ATOMIC__ 2  #__ARCH_I386_ATOMIC__ ) 10 #ifdeà CONFIG_SMP 11  #LOCK "lock ; " ) 13  #LOCK "" ) 21 ¡ruù { vÞ©ž mcouÁ” ; } t©omic_t ; 23  #ATOMIC_INIT ( i è{ (iè} ) 31  #©omic_»ad ( v è((v)-> couÁ” ) ) 40  #©omic_£t ( v , i è(((v)-> couÁ” èð(i)) ) 49  __šlše__  $©omic_add ( i , ©omic_t * v ) 51 __asm__ `__vÞ©že__ ( 52 LOCK "addl %1,%0" 53 :"=m" ( v -> couÁ” ) 54 :"œ" ( i ), "m" ( v -> couÁ” )); 55 } } 64  __šlše__  $©omic_sub ( i , ©omic_t * v ) 66 __asm__ `__vÞ©že__ ( 67 LOCK "subl %1,%0" 68 :"=m" ( v -> couÁ” ) 69 :"œ" ( i ), "m" ( v -> couÁ” )); 70 } } 81  __šlše__  $©omic_sub_ªd_‹¡ ( i , ©omic_t * v ) 83  c ; 85 __asm__ `__vÞ©že__ ( 86 LOCK "subl %2,%0; sete %1" 87 :"=m" ( v -> couÁ” ), "=qm" ( c ) 88 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 89  c ; 90 } } 98  __šlše__  $©omic_šc ( ©omic_t * v ) 100 __asm__ `__vÞ©že__ ( 101 LOCK "incl %0" 102 :"=m" ( v -> couÁ” ) 103 :"m" ( v -> couÁ” )); 104 } } 112  __šlše__  $©omic_dec ( ©omic_t * v ) 114 __asm__ `__vÞ©že__ ( 115 LOCK "decl %0" 116 :"=m" ( v -> couÁ” ) 117 :"m" ( v -> couÁ” )); 118 } } 128  __šlše__  $©omic_dec_ªd_‹¡ ( ©omic_t * v ) 130  c ; 132 __asm__ `__vÞ©že__ ( 133 LOCK "decl %0; sete %1" 134 :"=m" ( v -> couÁ” ), "=qm" ( c ) 135 :"m" ( v -> couÁ” ) : "memory"); 136  c != 0; 137 } } 147  __šlše__  $©omic_šc_ªd_‹¡ ( ©omic_t * v ) 149  c ; 151 __asm__ `__vÞ©že__ ( 152 LOCK "incl %0; sete %1" 153 :"=m" ( v -> couÁ” ), "=qm" ( c ) 154 :"m" ( v -> couÁ” ) : "memory"); 155  c != 0; 156 } } 167  __šlše__  $©omic_add_Ãg©ive ( i , ©omic_t * v ) 169  c ; 171 __asm__ `__vÞ©že__ ( 172 LOCK "addl %2,%0; sets %1" 173 :"=m" ( v -> couÁ” ), "=qm" ( c ) 174 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 175  c ; 176 } } 185  __šlše__  $©omic_add_»tuº ( i , ©omic_t * v ) 187  __i ; 188 #ifdeà CONFIG_M386 189 if( `uÆik–y ( boÙ_ýu_d©a . x86 ==3)) 190  no_xadd ; 193 __i = i ; 194 __asm__ `__vÞ©že__ ( 195 LOCK "xaddl %0, %1;" 196 :"ô"( i ) 197 :"m"( v -> couÁ” ), "0"( i )); 198  i + __i ; 200 #ifdeà CONFIG_M386 201 no_xadd : 202 `loÿl_œq_di§bË (); 203 __i = `©omic_»ad ( v ); 204 `©omic_£t ( v , i + __i ); 205 `loÿl_œq_’abË (); 206  i + __i ; 208 } } 210  __šlše__  $©omic_sub_»tuº ( i , ©omic_t * v ) 212  `©omic_add_»tuº (- i , v ); 213 } } 215  #©omic_šc_»tuº ( v è( `©omic_add_»tuº (1,v)) ) 216  #©omic_dec_»tuº ( v è( `©omic_sub_»tuº (1,v)) ) 219  #©omic_þ—r_mask ( mask , addr ) \ 220 __asm__ `__vÞ©že__ ( LOCK "andl %0,%1" \ 221 : : "r" (~( mask )),"m" (* addr è: "memÜy") ) 223  #©omic_£t_mask ( mask , addr ) \ 224 __asm__ `__vÞ©že__ ( LOCK "orl %0,%1" \ 225 : : "r" ( mask ),"m" (*( addr )è: "memÜy") ) 228  #smp_mb__befÜe_©omic_dec (è `b¬r›r () ) 229  #smp_mb__aá”_©omic_dec (è `b¬r›r () ) 230  #smp_mb__befÜe_©omic_šc (è `b¬r›r () ) 231  #smp_mb__aá”_©omic_šc (è `b¬r›r () ) @/usr/include/asm-i386/bitops.h 1 #iâdeà _I386_BITOPS_H 2  #_I386_BITOPS_H ) 18 #ià0 && defšed ( CONFIG_SMP ) 19  #LOCK_PREFIX "lock ; " ) 21  #LOCK_PREFIX "" ) 24  #ADDR (*(vÞ©ž*è addr ) ) 41  šlše  $£t_b™ ( Ä , vÞ©ž* addr ) 43 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 45 :"=m" ( ADDR ) 46 :"Ir" ( Ä )); 47 } } 58  šlše  $__£t_b™ ( Ä , vÞ©ž* addr ) 60 `__asm__ ( 62 :"=m" ( ADDR ) 63 :"Ir" ( Ä )); 64 } } 76  šlše  $þ—r_b™ ( Ä , vÞ©ž* addr ) 78 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 80 :"=m" ( ADDR ) 81 :"Ir" ( Ä )); 82 } } 84  šlše  $__þ—r_b™ ( Ä , vÞ©ž* addr ) 86 __asm__ `__vÞ©že__ ( 88 :"=m" ( ADDR ) 89 :"Ir" ( Ä )); 90 } } 101  šlše  $__chªge_b™ ( Ä , vÞ©ž* addr ) 103 __asm__ `__vÞ©že__ ( 105 :"=m" ( ADDR ) 106 :"Ir" ( Ä )); 107 } } 119  šlše  $chªge_b™ ( Ä , vÞ©ž* addr ) 121 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 123 :"=m" ( ADDR ) 124 :"Ir" ( Ä )); 125 } } 136  šlše  $‹¡_ªd_£t_b™ ( Ä , vÞ©ž* addr ) 138  Þdb™ ; 140 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 142 :"ô" ( Þdb™ ),"=m" ( ADDR ) 143 :"Ir" ( Ä ) : "memory"); 144  Þdb™ ; 145 } } 156  šlše  $__‹¡_ªd_£t_b™ ( Ä , vÞ©ž* addr ) 158  Þdb™ ; 160 `__asm__ ( 162 :"ô" ( Þdb™ ),"=m" ( ADDR ) 163 :"Ir" ( Ä )); 164  Þdb™ ; 165 } } 176  šlše  $‹¡_ªd_þ—r_b™ ( Ä , vÞ©ž* addr ) 178  Þdb™ ; 180 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 182 :"ô" ( Þdb™ ),"=m" ( ADDR ) 183 :"Ir" ( Ä ) : "memory"); 184  Þdb™ ; 185 } } 196  šlše  $__‹¡_ªd_þ—r_b™ ( Ä , vÞ©ž* addr ) 198  Þdb™ ; 200 `__asm__ ( 202 :"ô" ( Þdb™ ),"=m" ( ADDR ) 203 :"Ir" ( Ä )); 204  Þdb™ ; 205 } } 208  šlše  $__‹¡_ªd_chªge_b™ ( Ä , vÞ©ž* addr ) 210  Þdb™ ; 212 __asm__ `__vÞ©že__ ( 214 :"ô" ( Þdb™ ),"=m" ( ADDR ) 215 :"Ir" ( Ä ) : "memory"); 216  Þdb™ ; 217 } } 227  šlše  $‹¡_ªd_chªge_b™ ( Ä , vÞ©ž* addr ) 229  Þdb™ ; 231 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 233 :"ô" ( Þdb™ ),"=m" ( ADDR ) 234 :"Ir" ( Ä ) : "memory"); 235  Þdb™ ; 236 } } 244  ‹¡_b™ ( Ä , cÚ¡ vÞ©ž* addr ); 247  šlše  $cÚ¡ªt_‹¡_b™ ( Ä , cÚ¡ vÞ©ž* addr ) 249  ((1UL << ( Ä & 31)è& ( addr [nr >> 5])) != 0; 250 } } 252  šlše  $v¬ŸbË_‹¡_b™ ( Ä , cÚ¡ vÞ©ž* addr ) 254  Þdb™ ; 256 __asm__ `__vÞ©že__ ( 258 :"ô" ( Þdb™ ) 259 :"m" ( ADDR ),"Ir" ( Ä )); 260  Þdb™ ; 261 } } 263  #‹¡_b™ ( Ä , addr ) \ 264 ( `__bužtš_cÚ¡ªt_p ( Ä ) ? \ 265 `cÚ¡ªt_‹¡_b™ (( Ä ),( addr )) : \ 266 `v¬ŸbË_‹¡_b™ (( Ä ),( addr ))) ) 268 #undeà ADDR 278  šlše  $fšd_fœ¡_z”o_b™ (cÚ¡ * addr ,  size ) 280  d0 , d1 , d2 ; 281  »s ; 283 ià(! size ) 286 __asm__ `__vÞ©že__ ( 297 :"=d" ( »s ), "=&c" ( d0 ), "=&D" ( d1 ), "=&a" ( d2 ) 298 :"1" (( size + 31è>> 5), "2" ( addr ), "b" (addr) : "memory"); 299  »s ; 300 } } 308  fšd_Ãxt_z”o_b™ (cÚ¡ * addr ,  size ,  off£t ); 318  šlše  $fšd_fœ¡_b™ (cÚ¡ * addr ,  size ) 320  d0 , d1 ; 321  »s ; 324 __asm__ `__vÞ©že__ ( 333 :"÷" ( »s ), "=&c" ( d0 ), "=&D" ( d1 ) 334 :"1" (( size + 31è>> 5), "2" ( addr ), "b" (addr) : "memory"); 335  »s ; 336 } } 344  fšd_Ãxt_b™ (cÚ¡ * addr ,  size ,  off£t ); 352  šlše  $ffz ( wÜd ) 354 `__asm__ ("bsfl %1,%0" 355 :"ô" ( wÜd ) 356 :"r" (~ wÜd )); 357  wÜd ; 358 } } 366  šlše  $__ffs ( wÜd ) 368 `__asm__ ("bsfl %1,%0" 369 :"ô" ( wÜd ) 370 :"rm" ( wÜd )); 371  wÜd ; 372 } } 378  #æs ( x è `g’”ic_æs (x) ) @/usr/include/asm-i386/byteorder.h 1 #iâdeà _I386_BYTEORDER_H 2  #_I386_BYTEORDER_H ) 4  ~ @/usr/include/asm-i386/semaphore.h 1 #iâdeà _I386_SEMAPHORE_H 2  #_I386_SEMAPHORE_H ) 4  ~ @/usr/include/asm-x86_64/atomic.h 1 #iâdeà __ARCH_X86_64_ATOMIC__ 2  #__ARCH_X86_64_ATOMIC__ ) 12 #ifdeà CONFIG_SMP 13  #LOCK "lock ; " ) 15  #LOCK "" ) 23 ¡ruù { vÞ©ž mcouÁ” ; } t©omic_t ; 25  #ATOMIC_INIT ( i è{ (iè} ) 33  #©omic_»ad ( v è((v)-> couÁ” ) ) 42  #©omic_£t ( v , i è(((v)-> couÁ” èð(i)) ) 51  __šlše__  $©omic_add ( i , ©omic_t * v ) 53 __asm__ `__vÞ©že__ ( 54 LOCK "addl %1,%0" 55 :"=m" ( v -> couÁ” ) 56 :"œ" ( i ), "m" ( v -> couÁ” )); 57 } } 66  __šlše__  $©omic_sub ( i , ©omic_t * v ) 68 __asm__ `__vÞ©že__ ( 69 LOCK "subl %1,%0" 70 :"=m" ( v -> couÁ” ) 71 :"œ" ( i ), "m" ( v -> couÁ” )); 72 } } 83  __šlše__  $©omic_sub_ªd_‹¡ ( i , ©omic_t * v ) 85  c ; 87 __asm__ `__vÞ©že__ ( 88 LOCK "subl %2,%0; sete %1" 89 :"=m" ( v -> couÁ” ), "=qm" ( c ) 90 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 91  c ; 92 } } 100  __šlše__  $©omic_šc ( ©omic_t * v ) 102 __asm__ `__vÞ©že__ ( 103 LOCK "incl %0" 104 :"=m" ( v -> couÁ” ) 105 :"m" ( v -> couÁ” )); 106 } } 114  __šlše__  $©omic_dec ( ©omic_t * v ) 116 __asm__ `__vÞ©že__ ( 117 LOCK "decl %0" 118 :"=m" ( v -> couÁ” ) 119 :"m" ( v -> couÁ” )); 120 } } 130  __šlše__  $©omic_dec_ªd_‹¡ ( ©omic_t * v ) 132  c ; 134 __asm__ `__vÞ©že__ ( 135 LOCK "decl %0; sete %1" 136 :"=m" ( v -> couÁ” ), "=qm" ( c ) 137 :"m" ( v -> couÁ” ) : "memory"); 138  c != 0; 139 } } 149  __šlše__  $©omic_šc_ªd_‹¡ ( ©omic_t * v ) 151  c ; 153 __asm__ `__vÞ©že__ ( 154 LOCK "incl %0; sete %1" 155 :"=m" ( v -> couÁ” ), "=qm" ( c ) 156 :"m" ( v -> couÁ” ) : "memory"); 157  c != 0; 158 } } 169  __šlše__  $©omic_add_Ãg©ive ( i , ©omic_t * v ) 171  c ; 173 __asm__ `__vÞ©že__ ( 174 LOCK "addl %2,%0; sets %1" 175 :"=m" ( v -> couÁ” ), "=qm" ( c ) 176 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 177  c ; 178 } } 182 ¡ruù { vÞ©ž mcouÁ” ; } t©omic64_t ; 184  #ATOMIC64_INIT ( i è{ (iè} ) 193  #©omic64_»ad ( v è((v)-> couÁ” ) ) 202  #©omic64_£t ( v , i è(((v)-> couÁ” èð(i)) ) 211  __šlše__  $©omic64_add ( i , ©omic64_t * v ) 213 __asm__ `__vÞ©že__ ( 214 LOCK "addq %1,%0" 215 :"=m" ( v -> couÁ” ) 216 :"œ" ( i ), "m" ( v -> couÁ” )); 217 } } 226  __šlše__  $©omic64_sub ( i , ©omic64_t * v ) 228 __asm__ `__vÞ©že__ ( 229 LOCK "subq %1,%0" 230 :"=m" ( v -> couÁ” ) 231 :"œ" ( i ), "m" ( v -> couÁ” )); 232 } } 243  __šlše__  $©omic64_sub_ªd_‹¡ ( i , ©omic64_t * v ) 245  c ; 247 __asm__ `__vÞ©že__ ( 248 LOCK "subq %2,%0; sete %1" 249 :"=m" ( v -> couÁ” ), "=qm" ( c ) 250 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 251  c ; 252 } } 260  __šlše__  $©omic64_šc ( ©omic64_t * v ) 262 __asm__ `__vÞ©že__ ( 263 LOCK "incq %0" 264 :"=m" ( v -> couÁ” ) 265 :"m" ( v -> couÁ” )); 266 } } 274  __šlše__  $©omic64_dec ( ©omic64_t * v ) 276 __asm__ `__vÞ©že__ ( 277 LOCK "decq %0" 278 :"=m" ( v -> couÁ” ) 279 :"m" ( v -> couÁ” )); 280 } } 290  __šlše__  $©omic64_dec_ªd_‹¡ ( ©omic64_t * v ) 292  c ; 294 __asm__ `__vÞ©že__ ( 295 LOCK "decq %0; sete %1" 296 :"=m" ( v -> couÁ” ), "=qm" ( c ) 297 :"m" ( v -> couÁ” ) : "memory"); 298  c != 0; 299 } } 309  __šlše__  $©omic64_šc_ªd_‹¡ ( ©omic64_t * v ) 311  c ; 313 __asm__ `__vÞ©že__ ( 314 LOCK "incq %0; sete %1" 315 :"=m" ( v -> couÁ” ), "=qm" ( c ) 316 :"m" ( v -> couÁ” ) : "memory"); 317  c != 0; 318 } } 329  __šlše__  $©omic64_add_Ãg©ive ( i , ©omic64_t * v ) 331  c ; 333 __asm__ `__vÞ©že__ ( 334 LOCK "addq %2,%0; sets %1" 335 :"=m" ( v -> couÁ” ), "=qm" ( c ) 336 :"œ" ( i ), "m" ( v -> couÁ” ) : "memory"); 337  c ; 338 } } 347  __šlše__  $©omic_add_»tuº ( i , ©omic_t * v ) 349  __i = i ; 350 __asm__ `__vÞ©že__ ( 351 LOCK "xaddl %0, %1;" 352 :"ô"( i ) 353 :"m"( v -> couÁ” ), "0"( i )); 354  i + __i ; 355 } } 357  __šlše__  $©omic_sub_»tuº ( i , ©omic_t * v ) 359  `©omic_add_»tuº (- i , v ); 360 } } 362  #©omic_šc_»tuº ( v è( `©omic_add_»tuº (1,v)) ) 363  #©omic_dec_»tuº ( v è( `©omic_sub_»tuº (1,v)) ) 366  #©omic_þ—r_mask ( mask , addr ) \ 367 __asm__ `__vÞ©že__ ( LOCK "andl %0,%1" \ 368 : : "r" (~( mask )),"m" (* addr è: "memÜy") ) 370  #©omic_£t_mask ( mask , addr ) \ 371 __asm__ `__vÞ©že__ ( LOCK "orl %0,%1" \ 372 : : "r" (() mask ),"m" (*( addr )è: "memÜy") ) 375  #smp_mb__befÜe_©omic_dec (è `b¬r›r () ) 376  #smp_mb__aá”_©omic_dec (è `b¬r›r () ) 377  #smp_mb__befÜe_©omic_šc (è `b¬r›r () ) 378  #smp_mb__aá”_©omic_šc (è `b¬r›r () ) @/usr/include/asm-x86_64/bitops.h 1 #iâdeà _X86_64_BITOPS_H 2  #_X86_64_BITOPS_H ) 11 #ià0 && defšed ( CONFIG_SMP ) 12  #LOCK_PREFIX "lock ; " ) 14  #LOCK_PREFIX "" ) 17  #ADDR (*(vÞ©ž*è addr ) ) 29  __šlše__  $£t_b™ ( Ä , vÞ©ž* addr ) 31 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 33 :"=m" ( ADDR ) 34 :"dIr" ( Ä ) : "memory"); 35 } } 46  __šlše__  $__£t_b™ ( Ä , vÞ©ž* addr ) 48 __asm__ volatile( 50 :"=m" ( ADDR ) 51 :"dIr" ( Ä ) : "memory"); 52 } } 64  __šlše__  $þ—r_b™ ( Ä , vÞ©ž* addr ) 66 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 68 :"=m" ( ADDR ) 69 :"dIr" ( Ä )); 70 } } 72  __šlše__  $__þ—r_b™ ( Ä , vÞ©ž* addr ) 74 __asm__ `__vÞ©že__ ( 76 :"=m" ( ADDR ) 77 :"dIr" ( Ä )); 78 } } 89  __šlše__  $__chªge_b™ ( Ä , vÞ©ž* addr ) 91 __asm__ `__vÞ©že__ ( 93 :"=m" ( ADDR ) 94 :"dIr" ( Ä )); 95 } } 106  __šlše__  $chªge_b™ ( Ä , vÞ©ž* addr ) 108 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 110 :"=m" ( ADDR ) 111 :"dIr" ( Ä )); 112 } } 122  __šlše__  $‹¡_ªd_£t_b™ ( Ä , vÞ©ž* addr ) 124  Þdb™ ; 126 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 128 :"ô" ( Þdb™ ),"=m" ( ADDR ) 129 :"dIr" ( Ä ) : "memory"); 130  Þdb™ ; 131 } } 142  __šlše__  $__‹¡_ªd_£t_b™ ( Ä , vÞ©ž* addr ) 144  Þdb™ ; 146 `__asm__ ( 148 :"ô" ( Þdb™ ),"=m" ( ADDR ) 149 :"dIr" ( Ä )); 150  Þdb™ ; 151 } } 161  __šlše__  $‹¡_ªd_þ—r_b™ ( Ä , vÞ©ž* addr ) 163  Þdb™ ; 165 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 167 :"ô" ( Þdb™ ),"=m" ( ADDR ) 168 :"dIr" ( Ä ) : "memory"); 169  Þdb™ ; 170 } } 181  __šlše__  $__‹¡_ªd_þ—r_b™ ( Ä , vÞ©ž* addr ) 183  Þdb™ ; 185 `__asm__ ( 187 :"ô" ( Þdb™ ),"=m" ( ADDR ) 188 :"dIr" ( Ä )); 189  Þdb™ ; 190 } } 193  __šlše__  $__‹¡_ªd_chªge_b™ ( Ä , vÞ©ž* addr ) 195  Þdb™ ; 197 __asm__ `__vÞ©že__ ( 199 :"ô" ( Þdb™ ),"=m" ( ADDR ) 200 :"dIr" ( Ä ) : "memory"); 201  Þdb™ ; 202 } } 212  __šlše__  $‹¡_ªd_chªge_b™ ( Ä , vÞ©ž* addr ) 214  Þdb™ ; 216 __asm__ `__vÞ©že__ Ð LOCK_PREFIX 218 :"ô" ( Þdb™ ),"=m" ( ADDR ) 219 :"dIr" ( Ä ) : "memory"); 220  Þdb™ ; 221 } } 229  ‹¡_b™ ( Ä , cÚ¡ vÞ©ž* addr ); 232  __šlše__  $cÚ¡ªt_‹¡_b™ ( Ä , cÚ¡ vÞ©ž* addr ) 234  ((1UL << ( Ä & 31)è& (((cÚ¡ vÞ©ž*è addr )[nr >> 5])) != 0; 235 } } 237  __šlše__  $v¬ŸbË_‹¡_b™ ( Ä , vÞ©žcÚ¡ * addr ) 239  Þdb™ ; 241 __asm__ `__vÞ©že__ ( 243 :"ô" ( Þdb™ ) 244 :"m" ( ADDR ),"dIr" ( Ä )); 245  Þdb™ ; 246 } } 248  #‹¡_b™ ( Ä , addr ) \ 249 ( `__bužtš_cÚ¡ªt_p ( Ä ) ? \ 250 `cÚ¡ªt_‹¡_b™ (( Ä ),( addr )) : \ 251 `v¬ŸbË_‹¡_b™ (( Ä ),( addr ))) ) 253 #undeà ADDR 255  fšd_fœ¡_z”o_b™ (cÚ¡ * addr ,  size ); 256  fšd_Ãxt_z”o_b™ (cÚ¡ * addr ,  size ,  off£t ); 257  fšd_fœ¡_b™ (cÚ¡ * addr ,  size ); 258  fšd_Ãxt_b™ (cÚ¡ * addr ,  size ,  off£t ); 261  šlše  $__sÿnb™ ( v® ,  max ) 263 `asm ("bsfq %1,%0 ; cmovz %2,%0" : "=&r" ( v® è: "r" (v®), "r" ( max )); 264  v® ; 265 } } 267  #fšd_fœ¡_b™ ( addr , size ) \ 268 (( `__bužtš_cÚ¡ªt_p ( size è&& (sizeè<ð BITS_PER_LONG ? \ 269 ( `__sÿnb™ (*(*) addr ,( size ))) : \ 270 `fšd_fœ¡_b™ ( addr , size ))) ) 272  #fšd_Ãxt_b™ ( addr , size , off ) \ 273 (( `__bužtš_cÚ¡ªt_p ( size è&& (sizeè<ð BITS_PER_LONG ? \ 274 (( off è+ ( `__sÿnb™ ((*(*) addr è>> (off),( size )-(off)))) : \ 275 `fšd_Ãxt_b™ ( addr , size , off ))) ) 277  #fšd_fœ¡_z”o_b™ ( addr , size ) \ 278 (( `__bužtš_cÚ¡ªt_p ( size è&& (sizeè<ð BITS_PER_LONG ? \ 279 ( `__sÿnb™ (~*(*) addr ,( size ))) : \ 280 `fšd_fœ¡_z”o_b™ ( addr , size ))) ) 282  #fšd_Ãxt_z”o_b™ ( addr , size , off ) \ 283 (( `__bužtš_cÚ¡ªt_p ( size è&& (sizeè<ð BITS_PER_LONG ? \ 284 (( off )+( `__sÿnb™ (~(((*(*) addr )è>> (off)),( size )-(off)))) : \ 285 `fšd_Ãxt_z”o_b™ ( addr , size , off ))) ) 287  šlše  $£t_b™_¡ršg (* b™m­ ,  i , 288  Ën ) 290  ’d = i + Ën ; 291  i < ’d ) { 292 `__£t_b™ ( i , b™m­ ); 293 i ++; 295 } } 297  šlše  $__þ—r_b™_¡ršg (* b™m­ ,  i , 298  Ën ) 300  ’d = i + Ën ; 301  i < ’d ) { 302 `__þ—r_b™ ( i , b™m­ ); 303 i ++; 305 } } 313  __šlše__  $ffz ( wÜd ) 315 `__asm__ ("bsfq %1,%0" 316 :"ô" ( wÜd ) 317 :"r" (~ wÜd )); 318  wÜd ; 319 } } 327  __šlše__  $__ffs ( wÜd ) 329 `__asm__ ("bsfq %1,%0" 330 :"ô" ( wÜd ) 331 :"rm" ( wÜd )); 332  wÜd ; 333 } } @/usr/include/asm-x86_64/byteorder.h 1 #iâdeà _X86_64_BYTEORDER_H 2  #_X86_64_BYTEORDER_H ) 4  ~ @/usr/include/asm-x86_64/semaphore.h 1 #iâdeà _X86_64_SEMAPHORE_H 2  #_X86_64_SEMAPHORE_H ) 4  ~ @/usr/include/asm/cache.h 5 #iâdeà __i386STUB__CACHE_H__ 6  #__i386STUB__CACHE_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/fcntl.h 5 #iâdeà __i386STUB__FCNTL_H__ 6  #__i386STUB__FCNTL_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/ioctl.h 5 #iâdeà __i386STUB__IOCTL_H__ 6  #__i386STUB__IOCTL_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/linkage.h 5 #iâdeà __i386STUB__LINKAGE_H__ 6  #__i386STUB__LINKAGE_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/types.h 5 #iâdeà __i386STUB__TYPES_H__ 6  #__i386STUB__TYPES_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/bits/confname.h 21 #iâdeà _UNISTD_H 28 m_PC_LINK_MAX , 29  #_PC_LINK_MAX _PC_LINK_MAX ) 30 m_PC_MAX_CANON , 31  #_PC_MAX_CANON _PC_MAX_CANON ) 32 m_PC_MAX_INPUT , 33  #_PC_MAX_INPUT _PC_MAX_INPUT ) 34 m_PC_NAME_MAX , 35  #_PC_NAME_MAX _PC_NAME_MAX ) 36 m_PC_PATH_MAX , 37  #_PC_PATH_MAX _PC_PATH_MAX ) 38 m_PC_PIPE_BUF , 39  #_PC_PIPE_BUF _PC_PIPE_BUF ) 40 m_PC_CHOWN_RESTRICTED , 41  #_PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED ) 42 m_PC_NO_TRUNC , 43  #_PC_NO_TRUNC _PC_NO_TRUNC ) 44 m_PC_VDISABLE , 45  #_PC_VDISABLE _PC_VDISABLE ) 46 m_PC_SYNC_IO , 47  #_PC_SYNC_IO _PC_SYNC_IO ) 48 m_PC_ASYNC_IO , 49  #_PC_ASYNC_IO _PC_ASYNC_IO ) 50 m_PC_PRIO_IO , 51  #_PC_PRIO_IO _PC_PRIO_IO ) 52 m_PC_SOCK_MAXBUF , 53  #_PC_SOCK_MAXBUF _PC_SOCK_MAXBUF ) 54 m_PC_FILESIZEBITS , 55  #_PC_FILESIZEBITS _PC_FILESIZEBITS ) 56 m_PC_REC_INCR_XFER_SIZE , 57  #_PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE ) 58 m_PC_REC_MAX_XFER_SIZE , 59  #_PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE ) 60 m_PC_REC_MIN_XFER_SIZE , 61  #_PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE ) 62 m_PC_REC_XFER_ALIGN , 63  #_PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN ) 64 m_PC_ALLOC_SIZE_MIN , 65  #_PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN ) 66 m_PC_SYMLINK_MAX , 67  #_PC_SYMLINK_MAX _PC_SYMLINK_MAX ) 68 m_PC_2_SYMLINKS 69  #_PC_2_SYMLINKS _PC_2_SYMLINKS ) 75 m_SC_ARG_MAX , 76  #_SC_ARG_MAX _SC_ARG_MAX ) 77 m_SC_CHILD_MAX , 78  #_SC_CHILD_MAX _SC_CHILD_MAX ) 79 m_SC_CLK_TCK , 80  #_SC_CLK_TCK _SC_CLK_TCK ) 81 m_SC_NGROUPS_MAX , 82  #_SC_NGROUPS_MAX _SC_NGROUPS_MAX ) 83 m_SC_OPEN_MAX , 84  #_SC_OPEN_MAX _SC_OPEN_MAX ) 85 m_SC_STREAM_MAX , 86  #_SC_STREAM_MAX _SC_STREAM_MAX ) 87 m_SC_TZNAME_MAX , 88  #_SC_TZNAME_MAX _SC_TZNAME_MAX ) 89 m_SC_JOB_CONTROL , 90  #_SC_JOB_CONTROL _SC_JOB_CONTROL ) 91 m_SC_SAVED_IDS , 92  #_SC_SAVED_IDS _SC_SAVED_IDS ) 93 m_SC_REALTIME_SIGNALS , 94  #_SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS ) 95 m_SC_PRIORITY_SCHEDULING , 96  #_SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING ) 97 m_SC_TIMERS , 98  #_SC_TIMERS _SC_TIMERS ) 99 m_SC_ASYNCHRONOUS_IO , 100  #_SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO ) 101 m_SC_PRIORITIZED_IO , 102  #_SC_PRIORITIZED_IO _SC_PRIORITIZED_IO ) 103 m_SC_SYNCHRONIZED_IO , 104  #_SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO ) 105 m_SC_FSYNC , 106  #_SC_FSYNC _SC_FSYNC ) 107 m_SC_MAPPED_FILES , 108  #_SC_MAPPED_FILES _SC_MAPPED_FILES ) 109 m_SC_MEMLOCK , 110  #_SC_MEMLOCK _SC_MEMLOCK ) 111 m_SC_MEMLOCK_RANGE , 112  #_SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE ) 113 m_SC_MEMORY_PROTECTION , 114  #_SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION ) 115 m_SC_MESSAGE_PASSING , 116  #_SC_MESSAGE_PASSING _SC_MESSAGE_PASSING ) 117 m_SC_SEMAPHORES , 118  #_SC_SEMAPHORES _SC_SEMAPHORES ) 119 m_SC_SHARED_MEMORY_OBJECTS , 120  #_SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS ) 121 m_SC_AIO_LISTIO_MAX , 122  #_SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX ) 123 m_SC_AIO_MAX , 124  #_SC_AIO_MAX _SC_AIO_MAX ) 125 m_SC_AIO_PRIO_DELTA_MAX , 126  #_SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX ) 127 m_SC_DELAYTIMER_MAX , 128  #_SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX ) 129 m_SC_MQ_OPEN_MAX , 130  #_SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX ) 131 m_SC_MQ_PRIO_MAX , 132  #_SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX ) 133 m_SC_VERSION , 134  #_SC_VERSION _SC_VERSION ) 135 m_SC_PAGESIZE , 136  #_SC_PAGESIZE _SC_PAGESIZE ) 137  #_SC_PAGE_SIZE _SC_PAGESIZE ) 138 m_SC_RTSIG_MAX , 139  #_SC_RTSIG_MAX _SC_RTSIG_MAX ) 140 m_SC_SEM_NSEMS_MAX , 141  #_SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX ) 142 m_SC_SEM_VALUE_MAX , 143  #_SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX ) 144 m_SC_SIGQUEUE_MAX , 145  #_SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX ) 146 m_SC_TIMER_MAX , 147  #_SC_TIMER_MAX _SC_TIMER_MAX ) 151 m_SC_BC_BASE_MAX , 152  #_SC_BC_BASE_MAX _SC_BC_BASE_MAX ) 153 m_SC_BC_DIM_MAX , 154  #_SC_BC_DIM_MAX _SC_BC_DIM_MAX ) 155 m_SC_BC_SCALE_MAX , 156  #_SC_BC_SCALE_MAX _SC_BC_SCALE_MAX ) 157 m_SC_BC_STRING_MAX , 158  #_SC_BC_STRING_MAX _SC_BC_STRING_MAX ) 159 m_SC_COLL_WEIGHTS_MAX , 160  #_SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX ) 161 m_SC_EQUIV_CLASS_MAX , 162  #_SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX ) 163 m_SC_EXPR_NEST_MAX , 164  #_SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX ) 165 m_SC_LINE_MAX , 166  #_SC_LINE_MAX _SC_LINE_MAX ) 167 m_SC_RE_DUP_MAX , 168  #_SC_RE_DUP_MAX _SC_RE_DUP_MAX ) 169 m_SC_CHARCLASS_NAME_MAX , 170  #_SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX ) 172 m_SC_2_VERSION , 173  #_SC_2_VERSION _SC_2_VERSION ) 174 m_SC_2_C_BIND , 175  #_SC_2_C_BIND _SC_2_C_BIND ) 176 m_SC_2_C_DEV , 177  #_SC_2_C_DEV _SC_2_C_DEV ) 178 m_SC_2_FORT_DEV , 179  #_SC_2_FORT_DEV _SC_2_FORT_DEV ) 180 m_SC_2_FORT_RUN , 181  #_SC_2_FORT_RUN _SC_2_FORT_RUN ) 182 m_SC_2_SW_DEV , 183  #_SC_2_SW_DEV _SC_2_SW_DEV ) 184 m_SC_2_LOCALEDEF , 185  #_SC_2_LOCALEDEF _SC_2_LOCALEDEF ) 187 m_SC_PII , 188  #_SC_PII _SC_PII ) 189 m_SC_PII_XTI , 190  #_SC_PII_XTI _SC_PII_XTI ) 191 m_SC_PII_SOCKET , 192  #_SC_PII_SOCKET _SC_PII_SOCKET ) 193 m_SC_PII_INTERNET , 194  #_SC_PII_INTERNET _SC_PII_INTERNET ) 195 m_SC_PII_OSI , 196  #_SC_PII_OSI _SC_PII_OSI ) 197 m_SC_POLL , 198  #_SC_POLL _SC_POLL ) 199 m_SC_SELECT , 200  #_SC_SELECT _SC_SELECT ) 201 m_SC_UIO_MAXIOV , 202  #_SC_UIO_MAXIOV _SC_UIO_MAXIOV ) 203 m_SC_IOV_MAX = _SC_UIO_MAXIOV , 204  #_SC_IOV_MAX _SC_IOV_MAX ) 205 m_SC_PII_INTERNET_STREAM , 206  #_SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM ) 207 m_SC_PII_INTERNET_DGRAM , 208  #_SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM ) 209 m_SC_PII_OSI_COTS , 210  #_SC_PII_OSI_COTS _SC_PII_OSI_COTS ) 211 m_SC_PII_OSI_CLTS , 212  #_SC_PII_OSI_CLTS _SC_PII_OSI_CLTS ) 213 m_SC_PII_OSI_M , 214  #_SC_PII_OSI_M _SC_PII_OSI_M ) 215 m_SC_T_IOV_MAX , 216  #_SC_T_IOV_MAX _SC_T_IOV_MAX ) 219 m_SC_THREADS , 220  #_SC_THREADS _SC_THREADS ) 221 m_SC_THREAD_SAFE_FUNCTIONS , 222  #_SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS ) 223 m_SC_GETGR_R_SIZE_MAX , 224  #_SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX ) 225 m_SC_GETPW_R_SIZE_MAX , 226  #_SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX ) 227 m_SC_LOGIN_NAME_MAX , 228  #_SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX ) 229 m_SC_TTY_NAME_MAX , 230  #_SC_TTY_NAME_MAX _SC_TTY_NAME_MAX ) 231 m_SC_THREAD_DESTRUCTOR_ITERATIONS , 232  #_SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS ) 233 m_SC_THREAD_KEYS_MAX , 234  #_SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX ) 235 m_SC_THREAD_STACK_MIN , 236  #_SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN ) 237 m_SC_THREAD_THREADS_MAX , 238  #_SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX ) 239 m_SC_THREAD_ATTR_STACKADDR , 240  #_SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR ) 241 m_SC_THREAD_ATTR_STACKSIZE , 242  #_SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE ) 243 m_SC_THREAD_PRIORITY_SCHEDULING , 244  #_SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING ) 245 m_SC_THREAD_PRIO_INHERIT , 246  #_SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT ) 247 m_SC_THREAD_PRIO_PROTECT , 248  #_SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT ) 249 m_SC_THREAD_PROCESS_SHARED , 250  #_SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED ) 252 m_SC_NPROCESSORS_CONF , 253  #_SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF ) 254 m_SC_NPROCESSORS_ONLN , 255  #_SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN ) 256 m_SC_PHYS_PAGES , 257  #_SC_PHYS_PAGES _SC_PHYS_PAGES ) 258 m_SC_AVPHYS_PAGES , 259  #_SC_AVPHYS_PAGES _SC_AVPHYS_PAGES ) 260 m_SC_ATEXIT_MAX , 261  #_SC_ATEXIT_MAX _SC_ATEXIT_MAX ) 262 m_SC_PASS_MAX , 263  #_SC_PASS_MAX _SC_PASS_MAX ) 265 m_SC_XOPEN_VERSION , 266  #_SC_XOPEN_VERSION _SC_XOPEN_VERSION ) 267 m_SC_XOPEN_XCU_VERSION , 268  #_SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION ) 269 m_SC_XOPEN_UNIX , 270  #_SC_XOPEN_UNIX _SC_XOPEN_UNIX ) 271 m_SC_XOPEN_CRYPT , 272  #_SC_XOPEN_CRYPT _SC_XOPEN_CRYPT ) 273 m_SC_XOPEN_ENH_I18N , 274  #_SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N ) 275 m_SC_XOPEN_SHM , 276  #_SC_XOPEN_SHM _SC_XOPEN_SHM ) 278 m_SC_2_CHAR_TERM , 279  #_SC_2_CHAR_TERM _SC_2_CHAR_TERM ) 280 m_SC_2_C_VERSION , 281  #_SC_2_C_VERSION _SC_2_C_VERSION ) 282 m_SC_2_UPE , 283  #_SC_2_UPE _SC_2_UPE ) 285 m_SC_XOPEN_XPG2 , 286  #_SC_XOPEN_XPG2 _SC_XOPEN_XPG2 ) 287 m_SC_XOPEN_XPG3 , 288  #_SC_XOPEN_XPG3 _SC_XOPEN_XPG3 ) 289 m_SC_XOPEN_XPG4 , 290  #_SC_XOPEN_XPG4 _SC_XOPEN_XPG4 ) 292 m_SC_CHAR_BIT , 293  #_SC_CHAR_BIT _SC_CHAR_BIT ) 294 m_SC_CHAR_MAX , 295  #_SC_CHAR_MAX _SC_CHAR_MAX ) 296 m_SC_CHAR_MIN , 297  #_SC_CHAR_MIN _SC_CHAR_MIN ) 298 m_SC_INT_MAX , 299  #_SC_INT_MAX _SC_INT_MAX ) 300 m_SC_INT_MIN , 301  #_SC_INT_MIN _SC_INT_MIN ) 302 m_SC_LONG_BIT , 303  #_SC_LONG_BIT _SC_LONG_BIT ) 304 m_SC_WORD_BIT , 305  #_SC_WORD_BIT _SC_WORD_BIT ) 306 m_SC_MB_LEN_MAX , 307  #_SC_MB_LEN_MAX _SC_MB_LEN_MAX ) 308 m_SC_NZERO , 309  #_SC_NZERO _SC_NZERO ) 310 m_SC_SSIZE_MAX , 311  #_SC_SSIZE_MAX _SC_SSIZE_MAX ) 312 m_SC_SCHAR_MAX , 313  #_SC_SCHAR_MAX _SC_SCHAR_MAX ) 314 m_SC_SCHAR_MIN , 315  #_SC_SCHAR_MIN _SC_SCHAR_MIN ) 316 m_SC_SHRT_MAX , 317  #_SC_SHRT_MAX _SC_SHRT_MAX ) 318 m_SC_SHRT_MIN , 319  #_SC_SHRT_MIN _SC_SHRT_MIN ) 320 m_SC_UCHAR_MAX , 321  #_SC_UCHAR_MAX _SC_UCHAR_MAX ) 322 m_SC_UINT_MAX , 323  #_SC_UINT_MAX _SC_UINT_MAX ) 324 m_SC_ULONG_MAX , 325  #_SC_ULONG_MAX _SC_ULONG_MAX ) 326 m_SC_USHRT_MAX , 327  #_SC_USHRT_MAX _SC_USHRT_MAX ) 329 m_SC_NL_ARGMAX , 330  #_SC_NL_ARGMAX _SC_NL_ARGMAX ) 331 m_SC_NL_LANGMAX , 332  #_SC_NL_LANGMAX _SC_NL_LANGMAX ) 333 m_SC_NL_MSGMAX , 334  #_SC_NL_MSGMAX _SC_NL_MSGMAX ) 335 m_SC_NL_NMAX , 336  #_SC_NL_NMAX _SC_NL_NMAX ) 337 m_SC_NL_SETMAX , 338  #_SC_NL_SETMAX _SC_NL_SETMAX ) 339 m_SC_NL_TEXTMAX , 340  #_SC_NL_TEXTMAX _SC_NL_TEXTMAX ) 342 m_SC_XBS5_ILP32_OFF32 , 343  #_SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32 ) 344 m_SC_XBS5_ILP32_OFFBIG , 345  #_SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG ) 346 m_SC_XBS5_LP64_OFF64 , 347  #_SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64 ) 348 m_SC_XBS5_LPBIG_OFFBIG , 349  #_SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG ) 351 m_SC_XOPEN_LEGACY , 352  #_SC_XOPEN_LEGACY _SC_XOPEN_LEGACY ) 353 m_SC_XOPEN_REALTIME , 354  #_SC_XOPEN_REALTIME _SC_XOPEN_REALTIME ) 355 m_SC_XOPEN_REALTIME_THREADS , 356  #_SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS ) 358 m_SC_ADVISORY_INFO , 359  #_SC_ADVISORY_INFO _SC_ADVISORY_INFO ) 360 m_SC_BARRIERS , 361  #_SC_BARRIERS _SC_BARRIERS ) 362 m_SC_BASE , 363  #_SC_BASE _SC_BASE ) 364 m_SC_C_LANG_SUPPORT , 365  #_SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT ) 366 m_SC_C_LANG_SUPPORT_R , 367  #_SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R ) 368 m_SC_CLOCK_SELECTION , 369  #_SC_CLOCK_SELECTION _SC_CLOCK_SELECTION ) 370 m_SC_CPUTIME , 371  #_SC_CPUTIME _SC_CPUTIME ) 372 m_SC_THREAD_CPUTIME , 373  #_SC_THREAD_CPUTIME _SC_THREAD_CPUTIME ) 374 m_SC_DEVICE_IO , 375  #_SC_DEVICE_IO _SC_DEVICE_IO ) 376 m_SC_DEVICE_SPECIFIC , 377  #_SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC ) 378 m_SC_DEVICE_SPECIFIC_R , 379  #_SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R ) 380 m_SC_FD_MGMT , 381  #_SC_FD_MGMT _SC_FD_MGMT ) 382 m_SC_FIFO , 383  #_SC_FIFO _SC_FIFO ) 384 m_SC_PIPE , 385  #_SC_PIPE _SC_PIPE ) 386 m_SC_FILE_ATTRIBUTES , 387  #_SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES ) 388 m_SC_FILE_LOCKING , 389  #_SC_FILE_LOCKING _SC_FILE_LOCKING ) 390 m_SC_FILE_SYSTEM , 391  #_SC_FILE_SYSTEM _SC_FILE_SYSTEM ) 392 m_SC_MONOTONIC_CLOCK , 393  #_SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK ) 394 m_SC_MULTI_PROCESS , 395  #_SC_MULTI_PROCESS _SC_MULTI_PROCESS ) 396 m_SC_SINGLE_PROCESS , 397  #_SC_SINGLE_PROCESS _SC_SINGLE_PROCESS ) 398 m_SC_NETWORKING , 399  #_SC_NETWORKING _SC_NETWORKING ) 400 m_SC_READER_WRITER_LOCKS , 401  #_SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS ) 402 m_SC_SPIN_LOCKS , 403  #_SC_SPIN_LOCKS _SC_SPIN_LOCKS ) 404 m_SC_REGEXP , 405  #_SC_REGEXP _SC_REGEXP ) 406 m_SC_REGEX_VERSION , 407  #_SC_REGEX_VERSION _SC_REGEX_VERSION ) 408 m_SC_SHELL , 409  #_SC_SHELL _SC_SHELL ) 410 m_SC_SIGNALS , 411  #_SC_SIGNALS _SC_SIGNALS ) 412 m_SC_SPAWN , 413  #_SC_SPAWN _SC_SPAWN ) 414 m_SC_SPORADIC_SERVER , 415  #_SC_SPORADIC_SERVER _SC_SPORADIC_SERVER ) 416 m_SC_THREAD_SPORADIC_SERVER , 417  #_SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER ) 418 m_SC_SYSTEM_DATABASE , 419  #_SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE ) 420 m_SC_SYSTEM_DATABASE_R , 421  #_SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R ) 422 m_SC_TIMEOUTS , 423  #_SC_TIMEOUTS _SC_TIMEOUTS ) 424 m_SC_TYPED_MEMORY_OBJECTS , 425  #_SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS ) 426 m_SC_USER_GROUPS , 427  #_SC_USER_GROUPS _SC_USER_GROUPS ) 428 m_SC_USER_GROUPS_R , 429  #_SC_USER_GROUPS_R _SC_USER_GROUPS_R ) 430 m_SC_2_PBS , 431  #_SC_2_PBS _SC_2_PBS ) 432 m_SC_2_PBS_ACCOUNTING , 433  #_SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING ) 434 m_SC_2_PBS_LOCATE , 435  #_SC_2_PBS_LOCATE _SC_2_PBS_LOCATE ) 436 m_SC_2_PBS_MESSAGE , 437  #_SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE ) 438 m_SC_2_PBS_TRACK , 439  #_SC_2_PBS_TRACK _SC_2_PBS_TRACK ) 440 m_SC_SYMLOOP_MAX , 441  #_SC_SYMLOOP_MAX _SC_SYMLOOP_MAX ) 442 m_SC_STREAMS , 443  #_SC_STREAMS _SC_STREAMS ) 444 m_SC_2_PBS_CHECKPOINT , 445  #_SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT ) 447 m_SC_V6_ILP32_OFF32 , 448  #_SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32 ) 449 m_SC_V6_ILP32_OFFBIG , 450  #_SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG ) 451 m_SC_V6_LP64_OFF64 , 452  #_SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64 ) 453 m_SC_V6_LPBIG_OFFBIG , 454  #_SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG ) 456 m_SC_HOST_NAME_MAX , 457  #_SC_HOST_NAME_MAX _SC_HOST_NAME_MAX ) 458 m_SC_TRACE , 459  #_SC_TRACE _SC_TRACE ) 460 m_SC_TRACE_EVENT_FILTER , 461  #_SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER ) 462 m_SC_TRACE_INHERIT , 463  #_SC_TRACE_INHERIT _SC_TRACE_INHERIT ) 464 m_SC_TRACE_LOG , 465  #_SC_TRACE_LOG _SC_TRACE_LOG ) 467 m_SC_LEVEL1_ICACHE_SIZE , 468  #_SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE ) 469 m_SC_LEVEL1_ICACHE_ASSOC , 470  #_SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC ) 471 m_SC_LEVEL1_ICACHE_LINESIZE , 472  #_SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE ) 473 m_SC_LEVEL1_DCACHE_SIZE , 474  #_SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE ) 475 m_SC_LEVEL1_DCACHE_ASSOC , 476  #_SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC ) 477 m_SC_LEVEL1_DCACHE_LINESIZE , 478  #_SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE ) 479 m_SC_LEVEL2_CACHE_SIZE , 480  #_SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE ) 481 m_SC_LEVEL2_CACHE_ASSOC , 482  #_SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC ) 483 m_SC_LEVEL2_CACHE_LINESIZE , 484  #_SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE ) 485 m_SC_LEVEL3_CACHE_SIZE , 486  #_SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE ) 487 m_SC_LEVEL3_CACHE_ASSOC , 488  #_SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC ) 489 m_SC_LEVEL3_CACHE_LINESIZE , 490  #_SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE ) 491 m_SC_LEVEL4_CACHE_SIZE , 492  #_SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE ) 493 m_SC_LEVEL4_CACHE_ASSOC , 494  #_SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC ) 495 m_SC_LEVEL4_CACHE_LINESIZE , 496  #_SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE ) 499 m_SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, 500  #_SC_IPV6 _SC_IPV6 ) 501 m_SC_RAW_SOCKETS 502  #_SC_RAW_SOCKETS _SC_RAW_SOCKETS ) 508 m_CS_PATH , 509  #_CS_PATH _CS_PATH ) 511 m_CS_V6_WIDTH_RESTRICTED_ENVS , 512  #_CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS ) 514 m_CS_GNU_LIBC_VERSION , 515  #_CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION ) 516 m_CS_GNU_LIBPTHREAD_VERSION , 517  #_CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION ) 519 m_CS_LFS_CFLAGS = 1000, 520  #_CS_LFS_CFLAGS _CS_LFS_CFLAGS ) 521 m_CS_LFS_LDFLAGS , 522  #_CS_LFS_LDFLAGS _CS_LFS_LDFLAGS ) 523 m_CS_LFS_LIBS , 524  #_CS_LFS_LIBS _CS_LFS_LIBS ) 525 m_CS_LFS_LINTFLAGS , 526  #_CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS ) 527 m_CS_LFS64_CFLAGS , 528  #_CS_LFS64_CFLAGS _CS_LFS64_CFLAGS ) 529 m_CS_LFS64_LDFLAGS , 530  #_CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS ) 531 m_CS_LFS64_LIBS , 532  #_CS_LFS64_LIBS _CS_LFS64_LIBS ) 533 m_CS_LFS64_LINTFLAGS , 534  #_CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS ) 536 m_CS_XBS5_ILP32_OFF32_CFLAGS = 1100, 537  #_CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS ) 538 m_CS_XBS5_ILP32_OFF32_LDFLAGS , 539  #_CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS ) 540 m_CS_XBS5_ILP32_OFF32_LIBS , 541  #_CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS ) 542 m_CS_XBS5_ILP32_OFF32_LINTFLAGS , 543  #_CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS ) 544 m_CS_XBS5_ILP32_OFFBIG_CFLAGS , 545  #_CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS ) 546 m_CS_XBS5_ILP32_OFFBIG_LDFLAGS , 547  #_CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS ) 548 m_CS_XBS5_ILP32_OFFBIG_LIBS , 549  #_CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS ) 550 m_CS_XBS5_ILP32_OFFBIG_LINTFLAGS , 551  #_CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS ) 552 m_CS_XBS5_LP64_OFF64_CFLAGS , 553  #_CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS ) 554 m_CS_XBS5_LP64_OFF64_LDFLAGS , 555  #_CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS ) 556 m_CS_XBS5_LP64_OFF64_LIBS , 557  #_CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS ) 558 m_CS_XBS5_LP64_OFF64_LINTFLAGS , 559  #_CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS ) 560 m_CS_XBS5_LPBIG_OFFBIG_CFLAGS , 561  #_CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS ) 562 m_CS_XBS5_LPBIG_OFFBIG_LDFLAGS , 563  #_CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS ) 564 m_CS_XBS5_LPBIG_OFFBIG_LIBS , 565  #_CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS ) 566 m_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS , 567  #_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS ) 569 m_CS_POSIX_V6_ILP32_OFF32_CFLAGS , 570  #_CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS ) 571 m_CS_POSIX_V6_ILP32_OFF32_LDFLAGS , 572  #_CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS ) 573 m_CS_POSIX_V6_ILP32_OFF32_LIBS , 574  #_CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS ) 575 m_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS , 576  #_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS ) 577 m_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS , 578  #_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS ) 579 m_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS , 580  #_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS ) 581 m_CS_POSIX_V6_ILP32_OFFBIG_LIBS , 582  #_CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS ) 583 m_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS , 584  #_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS ) 585 m_CS_POSIX_V6_LP64_OFF64_CFLAGS , 586  #_CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS ) 587 m_CS_POSIX_V6_LP64_OFF64_LDFLAGS , 588  #_CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS ) 589 m_CS_POSIX_V6_LP64_OFF64_LIBS , 590  #_CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS ) 591 m_CS_POSIX_V6_LP64_OFF64_LINTFLAGS , 592  #_CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS ) 593 m_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS , 594  #_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS ) 595 m_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS , 596  #_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS ) 597 m_CS_POSIX_V6_LPBIG_OFFBIG_LIBS , 598  #_CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS ) 599 m_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS 600  #_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS ) @/usr/include/bits/dirent.h 19 #iâdeà _DIRENT_H 23  sdœ’t 25 #iâdeà __USE_FILE_OFFSET64 26 __šo_t md_šo ; 27 __off_t md_off ; 29 __šo64_t md_šo ; 30 __off64_t md_off ; 32  md_»þ’ ; 33  md_ty³ ; 34  md_Çme [256]; 37 #ifdeà __USE_LARGEFILE64 38  sdœ’t64 40 __šo64_t md_šo ; 41 __off64_t md_off ; 42  md_»þ’ ; 43  md_ty³ ; 44  md_Çme [256]; 48  #d_fž’o d_šo ) 50 #undeà _DIRENT_HAVE_D_NAMLEN 51  #_DIRENT_HAVE_D_RECLEN ) 52  #_DIRENT_HAVE_D_OFF ) 53  #_DIRENT_HAVE_D_TYPE ) @/usr/include/bits/environments.h 19 #iâdeà _UNISTD_H 41  #_POSIX_V6_ILP32_OFF32 1 ) 42  #_POSIX_V6_ILP32_OFFBIG 1 ) 43  #_XBS5_ILP32_OFF32 1 ) 44  #_XBS5_ILP32_OFFBIG 1 ) 57  #__ILP32_OFF32_CFLAGS "-m32" ) 58  #__ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" ) 59  #__ILP32_OFF32_LDFLAGS "-m32" ) 60  #__ILP32_OFFBIG_LDFLAGS "-m32" ) 61  #__LP64_OFF64_CFLAGS "-m64" ) 62  #__LP64_OFF64_LDFLAGS "-m64" ) @/usr/include/bits/errno.h 20 #ifdeà _ERRNO_H 22 #undeà EDOM 23 #undeà EILSEQ 24 #undeà ERANGE 25  ~ 28  #ENOTSUP EOPNOTSUPP ) 32 #iâdeà ECANCELED 33  #ECANCELED 125 ) 36 #iâdeà __ASSEMBLER__ 38 * $__”ºo_loÿtiÚ (è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 40 #ià! defšed _LIBC || defšed _LIBC_REENTRANT 42  #”ºo (* `__”ºo_loÿtiÚ ()) ) 47 #ià! defšed _ERRNO_H && defšed __Ãed_Em©h 51  #EDOM 33 ) 52  #EILSEQ 84 ) 53  #ERANGE 34 ) @/usr/include/bits/fcntl.h 21 #iâdef _FCNTL_H 26  ~ 30  #O_ACCMODE 0003 ) 31  #O_RDONLY 00 ) 32  #O_WRONLY 01 ) 33  #O_RDWR 02 ) 34  #O_CREAT 0100 ) 35  #O_EXCL 0200 ) 36  #O_NOCTTY 0400 ) 37  #O_TRUNC 01000 ) 38  #O_APPEND 02000 ) 39  #O_NONBLOCK 04000 ) 40  #O_NDELAY O_NONBLOCK ) 41  #O_SYNC 010000 ) 42  #O_FSYNC O_SYNC ) 43  #O_ASYNC 020000 ) 45 #ifdeà __USE_GNU 46  #O_DIRECT 040000 ) 47  #O_DIRECTORY 0200000 ) 48  #O_NOFOLLOW 0400000 ) 49  #O_NOATIME 01000000 ) 55 #ià defšed __USE_POSIX199309 || defšed __USE_UNIX98 56  #O_DSYNC O_SYNC ) 57  #O_RSYNC O_SYNC ) 60 #ifdeà __USE_LARGEFILE64 61  #O_LARGEFILE 0100000 ) 65  #F_DUPFD 0 ) 66  #F_GETFD 1 ) 67  #F_SETFD 2 ) 68  #F_GETFL 3 ) 69  #F_SETFL 4 ) 70 #iâdeà __USE_FILE_OFFSET64 71  #F_GETLK 5 ) 72  #F_SETLK 6 ) 73  #F_SETLKW 7 ) 75  #F_GETLK F_GETLK64 ) 76  #F_SETLK F_SETLK64 ) 77  #F_SETLKW F_SETLKW64 ) 79  #F_GETLK64 12 ) 80  #F_SETLK64 13 ) 81  #F_SETLKW64 14 ) 83 #ià defšed __USE_BSD || defšed __USE_UNIX98 84  #F_SETOWN 8 ) 85  #F_GETOWN 9 ) 88 #ifdeà __USE_GNU 89  #F_SETSIG 10 ) 90  #F_GETSIG 11 ) 93 #ifdeà __USE_GNU 94  #F_SETLEASE 1024 ) 95  #F_GETLEASE 1025 ) 96  #F_NOTIFY 1026 ) 100  #FD_CLOEXEC 1 ) 103  #F_RDLCK 0 ) 104  #F_WRLCK 1 ) 105  #F_UNLCK 2 ) 108  #F_EXLCK 4 ) 109  #F_SHLCK 8 ) 111 #ifdeà __USE_BSD 113  #LOCK_SH 1 ) 114  #LOCK_EX 2 ) 115  #LOCK_NB 4 ) 117  #LOCK_UN 8 ) 120 #ifdeà __USE_GNU 121  #LOCK_MAND 32 ) 122  #LOCK_READ 64 ) 123  #LOCK_WRITE 128 ) 124  #LOCK_RW 192 ) 127 #ifdeà __USE_GNU 129  #DN_ACCESS 0x00000001 ) 130  #DN_MODIFY 0x00000002 ) 131  #DN_CREATE 0x00000004 ) 132  #DN_DELETE 0x00000008 ) 133  #DN_RENAME 0x00000010 ) 134  #DN_ATTRIB 0x00000020 ) 135  #DN_MULTISHOT 0x80000000 ) 138  sæock 140  ml_ty³ ; 141  ml_wh’û ; 142 #iâdeà __USE_FILE_OFFSET64 143 __off_t ml_¡¬t ; 144 __off_t ml_Ën ; 146 __off64_t ml_¡¬t ; 147 __off64_t ml_Ën ; 149 __pid_t ml_pid ; 152 #ifdeà __USE_LARGEFILE64 153  sæock64 155  ml_ty³ ; 156  ml_wh’û ; 157 __off64_t ml_¡¬t ; 158 __off64_t ml_Ën ; 159 __pid_t ml_pid ; 165 #ifdef __USE_BSD 166  #FAPPEND O_APPEND ) 167  #FFSYNC O_FSYNC ) 168  #FASYNC O_ASYNC ) 169  #FNONBLOCK O_NONBLOCK ) 170  #FNDELAY O_NDELAY ) 174 #ifdeà __USE_XOPEN2K 175  #POSIX_FADV_NORMAL 0 ) 176  #POSIX_FADV_RANDOM 1 ) 177  #POSIX_FADV_SEQUENTIAL 2 ) 178  #POSIX_FADV_WILLNEED 3 ) 179  #POSIX_FADV_DONTNEED 4 ) 180  #POSIX_FADV_NOREUSE 5 ) 183 __BEGIN_DECLS 186 ssize_t $»adah—d ( __fd , __off64_t __off£t , size_t __couÁ ) 187 __THROW ; 189 __END_DECLS @/usr/include/bits/posix1_lim.h 25 #iâdef _BITS_POSIX1_LIM_H 26  #_BITS_POSIX1_LIM_H 1 ) 32  #_POSIX_AIO_LISTIO_MAX 2 ) 35  #_POSIX_AIO_MAX 1 ) 38  #_POSIX_ARG_MAX 4096 ) 41 #ifdeà __USE_XOPEN2K 42  #_POSIX_CHILD_MAX 25 ) 44  #_POSIX_CHILD_MAX 6 ) 48  #_POSIX_DELAYTIMER_MAX 32 ) 52  #_POSIX_HOST_NAME_MAX 255 ) 55  #_POSIX_LINK_MAX 8 ) 58  #_POSIX_LOGIN_NAME_MAX 9 ) 61  #_POSIX_MAX_CANON 255 ) 65  #_POSIX_MAX_INPUT 255 ) 68  #_POSIX_MQ_OPEN_MAX 8 ) 71  #_POSIX_MQ_PRIO_MAX 32 ) 74  #_POSIX_NAME_MAX 14 ) 77 #ifdeà __USE_XOPEN2K 78  #_POSIX_NGROUPS_MAX 8 ) 80  #_POSIX_NGROUPS_MAX 0 ) 84 #ifdeà __USE_XOPEN2K 85  #_POSIX_OPEN_MAX 20 ) 87  #_POSIX_OPEN_MAX 16 ) 92  #_POSIX_FD_SETSIZE _POSIX_OPEN_MAX ) 95  #_POSIX_PATH_MAX 256 ) 98  #_POSIX_PIPE_BUF 512 ) 102  #_POSIX_RE_DUP_MAX 255 ) 105  #_POSIX_RTSIG_MAX 8 ) 108  #_POSIX_SEM_NSEMS_MAX 256 ) 111  #_POSIX_SEM_VALUE_MAX 32767 ) 114  #_POSIX_SIGQUEUE_MAX 32 ) 117  #_POSIX_SSIZE_MAX 32767 ) 120  #_POSIX_STREAM_MAX 8 ) 123  #_POSIX_SYMLINK_MAX 255 ) 127  #_POSIX_SYMLOOP_MAX 8 ) 130  #_POSIX_TIMER_MAX 32 ) 133  #_POSIX_TTY_NAME_MAX 9 ) 136  #_POSIX_TZNAME_MAX 6 ) 139  #_POSIX_QLIMIT 1 ) 143  #_POSIX_HIWAT _POSIX_PIPE_BUF ) 146  #_POSIX_UIO_MAXIOV 16 ) 149  #_POSIX_CLOCKRES_MIN 20000000 ) 153  ~ 156 #iâdef SSIZE_MAX 157  #SSIZE_MAX LONG_MAX ) 164 #iâdef NGROUPS_MAX 165  #NGROUPS_MAX 8 ) @/usr/include/bits/posix_opt.h 20 #iâdef _POSIX_OPT_H 21  #_POSIX_OPT_H 1 ) 24  #_POSIX_JOB_CONTROL 1 ) 27  #_POSIX_SAVED_IDS 1 ) 30  #_POSIX_PRIORITY_SCHEDULING 200112L ) 33  #_POSIX_SYNCHRONIZED_IO 200112L ) 36  #_POSIX_FSYNC 200112L ) 39  #_POSIX_MAPPED_FILES 200112L ) 42  #_POSIX_MEMLOCK 200112L ) 45  #_POSIX_MEMLOCK_RANGE 200112L ) 48  #_POSIX_MEMORY_PROTECTION 200112L ) 51  #_POSIX_CHOWN_RESTRICTED 1 ) 55  #_POSIX_VDISABLE '\0' ) 58  #_POSIX_NO_TRUNC 1 ) 61  #_XOPEN_REALTIME 1 ) 64  #_XOPEN_REALTIME_THREADS 1 ) 67  #_XOPEN_SHM 1 ) 70  #_POSIX_THREADS 200112L ) 73  #_POSIX_REENTRANT_FUNCTIONS 1 ) 74  #_POSIX_THREAD_SAFE_FUNCTIONS 200112L ) 77  #_POSIX_THREAD_PRIORITY_SCHEDULING 200112L ) 80  #_POSIX_THREAD_ATTR_STACKSIZE 200112L ) 83  #_POSIX_THREAD_ATTR_STACKADDR 200112L ) 86  #_POSIX_SEMAPHORES 200112L ) 89  #_POSIX_REALTIME_SIGNALS 200112L ) 92  #_POSIX_ASYNCHRONOUS_IO 200112L ) 93  #_POSIX_ASYNC_IO 1 ) 95  #_LFS_ASYNCHRONOUS_IO 1 ) 97  #_POSIX_PRIORITIZED_IO 200112L ) 100  #_LFS64_ASYNCHRONOUS_IO 1 ) 103  #_LFS_LARGEFILE 1 ) 104  #_LFS64_LARGEFILE 1 ) 105  #_LFS64_STDIO 1 ) 108  #_POSIX_SHARED_MEMORY_OBJECTS 200112L ) 111  #_POSIX_CPUTIME 0 ) 114  #_POSIX_THREAD_CPUTIME 0 ) 117  #_POSIX_REGEXP 1 ) 120  #_POSIX_READER_WRITER_LOCKS 200112L ) 123  #_POSIX_SHELL 1 ) 126  #_POSIX_TIMEOUTS 200112L ) 129  #_POSIX_SPIN_LOCKS 200112L ) 132  #_POSIX_SPAWN 200112L ) 135  #_POSIX_TIMERS 200112L ) 138  #_POSIX_BARRIERS 200112L ) 141  #_POSIX_MESSAGE_PASSING 200112L ) 144  #_POSIX_THREAD_PROCESS_SHARED -1 ) 147  #_POSIX_MONOTONIC_CLOCK 0 ) 150  #_POSIX_CLOCK_SELECTION -1 ) 153  #_POSIX_ADVISORY_INFO 200112L ) 156  #_POSIX_IPV6 200112L ) 159  #_POSIX_RAW_SOCKETS 200112L ) 162  #_POSIX2_CHAR_TERM 200112L ) 165  #_POSIX_SPORADIC_SERVER -1 ) 166  #_POSIX_THREAD_SPORADIC_SERVER -1 ) 169  #_POSIX_TRACE -1 ) 170  #_POSIX_TRACE_EVENT_FILTER -1 ) 171  #_POSIX_TRACE_INHERIT -1 ) 172  #_POSIX_TRACE_LOG -1 ) 175  #_POSIX_TYPED_MEMORY_OBJECTS -1 ) 178  #_POSIX_THREAD_PRIO_INHERIT -1 ) 179  #_POSIX_THREAD_PRIO_PROTECT -1 ) @/usr/include/bits/pthreadtypes.h 15 #ià! defšed _BITS_TYPES_H && !defšed _PTHREAD_H 19 #iâdeà _BITS_PTHREADTYPES_H 20  #_BITS_PTHREADTYPES_H 1 ) 22  #__Ãed_sched·¿m ) 23  ~ 25  t__©omic_lock_t ; 28  s_±h»ad_ç¡lock 30  m__¡©us ; 31 __©omic_lock_t m__¥šlock ; 35 #iâdeà _PTHREAD_DESCR_DEFINED 37  _±h»ad_desü_¡ruù * t_±h»ad_desü ; 38  #_PTHREAD_DESCR_DEFINED ) 43  s__±h»ad_©Œ_s 45  m__d‘ach¡©e ; 46  m__schedpÞicy ; 47  __sched_·¿m m__sched·¿m ; 48  m__šh”™sched ; 49  m__scÝe ; 50 size_t m__gu¬dsize ; 51  m__¡ackaddr_£t ; 52 * m__¡ackaddr ; 53 size_t m__¡acksize ; 54 } t±h»ad_©Œ_t ; 59 #ifdeà __GLIBC_HAVE_LONG_LONG 60 __ex‹nsiÚ__  t__±h»ad_cÚd_®ign_t ; 62  t__±h»ad_cÚd_®ign_t ; 67  _±h»ad_ç¡lock m__c_lock ; 68 _±h»ad_desü m__c_wa™šg ; 69  m__·ddšg [48 -  ( _±h»ad_ç¡lock ) 70 -  ( _±h»ad_desü è-  ( __±h»ad_cÚd_®ign_t )]; 71 __±h»ad_cÚd_®ign_t m__®ign ; 72 } t±h»ad_cÚd_t ; 78  m__dummy ; 79 } t±h»ad_cÚd©Œ_t ; 82  t±h»ad_key_t ; 90  m__m_»£rved ; 91  m__m_couÁ ; 92 _±h»ad_desü m__m_owÃr ; 93  m__m_kšd ; 94  _±h»ad_ç¡lock m__m_lock ; 95 } t±h»ad_mu‹x_t ; 101  m__mu‹xkšd ; 102 } t±h»ad_mu‹x©Œ_t ; 106  t±h»ad_Úû_t ; 109 #ià defšed __USE_UNIX98 || defšed __USE_XOPEN2K 111  s_±h»ad_rwlock_t 113  _±h»ad_ç¡lock m__rw_lock ; 114  m__rw_»ad”s ; 115 _±h»ad_desü m__rw_wr™” ; 116 _±h»ad_desü m__rw_»ad_wa™šg ; 117 _±h»ad_desü m__rw_wr™e_wa™šg ; 118  m__rw_kšd ; 119  m__rw_psh¬ed ; 120 } t±h»ad_rwlock_t ; 126  m__lockkšd ; 127  m__psh¬ed ; 128 } t±h»ad_rwlock©Œ_t ; 131 #ifdeà __USE_XOPEN2K 133 vÞ©ž t±h»ad_¥šlock_t ; 137  _±h»ad_ç¡lock m__ba_lock ; 138  m__ba_»quœed ; 139  m__ba_´e£Á ; 140 _±h»ad_desü m__ba_wa™šg ; 141 } t±h»ad_b¬r›r_t ; 145  m__psh¬ed ; 146 } t±h»ad_b¬r›¿‰r_t ; 152  t±h»ad_t ; @/usr/include/bits/setjmp.h 20 #iâdeà _BITS_SETJMP_H 21  #_BITS_SETJMP_H 1 ) 23 #ià! defšed _SETJMP_H && !defšed _PTHREAD_H 27 #ià defšed __USE_MISC || defšed _ASM 28  #JB_BX 0 ) 29  #JB_SI 1 ) 30  #JB_DI 2 ) 31  #JB_BP 3 ) 32  #JB_SP 4 ) 33  #JB_PC 5 ) 34  #JB_SIZE 24 ) 37 #iâdef _ASM 38  t__jmp_buf [6]; 43  #_JMPBUF_UNWINDS ( jmpbuf , add»ss ) \ 44 ((*è( add»ss è< (*è( jmpbuf )[ JB_SP ]) ) @/usr/include/bits/sigset.h 20 #iâdef _SIGSET_H_ty³s 21  #_SIGSET_H_ty³s 1 ) 23  t__sig_©omic_t ; 27  #_SIGSET_NWORDS (1024 / (8 *  ())) ) 30  m__v® [ _SIGSET_NWORDS ]; 31 } t__sig£t_t ; 42 #ià! defšed _SIGSET_H_âs && defšed _SIGNAL_H 43  #_SIGSET_H_âs 1 ) 45 #iâdeà _EXTERN_INLINE 46  #_EXTERN_INLINE __šlše ) 50  #__sigmask ( sig ) \ 51 (((è1è<< ((( sig è- 1è% (8 *  ()))) ) 54  #__sigwÜd ( sig è(((sigè- 1è/ (8 *  ())) ) 56 #ià defšed __GNUC__ && __GNUC__ >= 2 57  #__sigem±y£t ( £t ) \ 58 ( `__ex‹nsiÚ__ ({  __út = _SIGSET_NWORDS ; \ 59 sig£t_t * __£t = ( £t ); \ 60 -- __út >ð0è __£t -> __v® [__cnt] = 0; \ 61 0; })) ) 62  #__sigfžl£t ( £t ) \ 63 ( `__ex‹nsiÚ__ ({  __út = _SIGSET_NWORDS ; \ 64 sig£t_t * __£t = ( £t ); \ 65 -- __út >ð0è __£t -> __v® [__cnt] = ~0UL; \ 66 0; })) ) 68 #ifdeà __USE_GNU 72  #__sigi£m±y£t ( £t ) \ 73 ( `__ex‹nsiÚ__ ({  __út = _SIGSET_NWORDS ; \ 74 cÚ¡ sig£t_t * __£t = ( £t ); \ 75  __»t = __£t -> __v® [-- __út ]; \ 76 ! __»t && -- __út >= 0) \ 77 __»t = __£t -> __v® [ __út ]; \ 78 __»t =ð0; })) ) 79  #__sigªd£t ( de¡ , Ëá , right ) \ 80 ( `__ex‹nsiÚ__ ({  __út = _SIGSET_NWORDS ; \ 81 sig£t_t * __de¡ = ( de¡ ); \ 82 cÚ¡ sig£t_t * __Ëá = ( Ëá ); \ 83 cÚ¡ sig£t_t * __right = ( right ); \ 84 -- __út >= 0) \ 85 __de¡ -> __v® [ __út ] = ( __Ëá ->__val[__cnt] \ 86 & __right -> __v® [ __út ]); \ 87 0; })) ) 88  #__sigÜ£t ( de¡ , Ëá , right ) \ 89 ( `__ex‹nsiÚ__ ({  __út = _SIGSET_NWORDS ; \ 90 sig£t_t * __de¡ = ( de¡ ); \ 91 cÚ¡ sig£t_t * __Ëá = ( Ëá ); \ 92 cÚ¡ sig£t_t * __right = ( right ); \ 93 -- __út >= 0) \ 94 __de¡ -> __v® [ __út ] = ( __Ëá ->__val[__cnt] \ 95 | __right -> __v® [ __út ]); \ 96 0; })) ) 103  __sigismemb” ( __cÚ¡ __sig£t_t *, ); 104  __sigadd£t ( __sig£t_t *, ); 105  __sigd–£t ( __sig£t_t *, ); 107 #ifdeà __USE_EXTERN_INLINES 108  #__SIGSETFN ( NAME , BODY , CONST ) \ 109 _EXTERN_INLINE \ 110 `NAME ( CONST __sig£t_t * __£t ,  __sig ) \ 112  __mask = `__sigmask ( __sig ); \ 113  __wÜd = `__sigwÜd ( __sig ); \ 114  BODY ; \ 115 } ) 117 __SIGSETFN ( __sigismemb” , ( __£t -> __v® [ __wÜd ] & __mask è? 1 : 0, __cÚ¡ ) 118 __SIGSETFN ( __sigadd£t , (( __£t -> __v® [ __wÜd ] |ð __mask ), 0), ) 119 __SIGSETFN ( __sigd–£t , (( __£t -> __v® [ __wÜd ] &ð~ __mask ), 0), ) 121 #undeà __SIGSETFN @/usr/include/bits/stdio.h 20 #iâdeà _STDIO_H 24 #ifdeà __ýlu¥lus 25  #__STDIO_INLINE šlše ) 27  #__STDIO_INLINE __šlše ) 31 #ifdeà __USE_EXTERN_INLINES 33 __STDIO_INLINE  34 $v´štf ( __cÚ¡ * __»¡riù __fmt , _G_va_li¡ __¬g ) 36  `vårštf ( ¡dout , __fmt , __¬g ); 37 } } 40 __STDIO_INLINE  41 $g‘ch¬ () 43  `_IO_g‘c ( ¡dš ); 44 } } 47 #ià defšed __USE_POSIX || defšed __USE_MISC 49 __STDIO_INLINE  50 $g‘c_uÆocked ( FILE * __å ) 52  `_IO_g‘c_uÆocked ( __å ); 53 } } 56 __STDIO_INLINE  57 $g‘ch¬_uÆocked () 59  `_IO_g‘c_uÆocked ( ¡dš ); 60 } } 65 __STDIO_INLINE  66 $putch¬ ( __c ) 68  `_IO_putc ( __c , ¡dout ); 69 } } 72 #ifdeà __USE_MISC 74 __STDIO_INLINE  75 $åutc_uÆocked ( __c , FILE * __¡»am ) 77  `_IO_putc_uÆocked ( __c , __¡»am ); 78 } } 82 #ià defšed __USE_POSIX || defšed __USE_MISC 84 __STDIO_INLINE  85 $putc_uÆocked ( __c , FILE * __¡»am ) 87  `_IO_putc_uÆocked ( __c , __¡»am ); 88 } } 91 __STDIO_INLINE  92 $putch¬_uÆocked ( __c ) 94  `_IO_putc_uÆocked ( __c , ¡dout ); 95 } } 99 #ifdef __USE_GNU 101 __STDIO_INLINE _IO_ssize_t 102 $g‘lše (** __lš•Œ , size_t * __n , FILE * __¡»am ) 104  `__g‘d–im ( __lš•Œ , __n , '\n', __¡»am ); 105 } } 109 #ifdeà __USE_MISC 111 __STDIO_INLINE  112 __NTH ( $ãof_uÆocked ( FILE * __¡»am )) 114  `_IO_ãof_uÆocked ( __¡»am ); 115 } } 118 __STDIO_INLINE  119 __NTH ( $ã¼Ü_uÆocked ( FILE * __¡»am )) 121  `_IO_ã¼Ü_uÆocked ( __¡»am ); 122 } } 128 #ià defšed __USE_MISC && defšed __GNUC__ && defšed __OPTIMIZE__ 130  #ä—d_uÆocked ( ±r , size , n , ¡»am ) \ 131 ( `__ex‹nsiÚ__ (( `__bužtš_cÚ¡ªt_p ( size è&& __bužtš_cÚ¡ªt_°( n ) \ 132 && ( size_t è( size è* (size_tè( n ) <= 8 \ 133 && ( size_t è( size ) != 0) \ 134 ? ({ * __±r = (*è( ±r ); \ 135 FILE * __¡»am = ( ¡»am ); \ 136 size_t __út ; \ 137  __út = ( size_t è( size è* (size_tè( n ); \ 138 __út > 0; --__cnt) \ 140  __c = `_IO_g‘c_uÆocked ( __¡»am ); \ 141 ià( __c =ð EOF ) \ 143 * __±r ++ = __c ; \ 145 (( size_t è( size è* (size_tè( n è- __út ) \ 146 / ( size_t è( size ); }) \ 147 : ((( `__bužtš_cÚ¡ªt_p ( size è&& ( size_t ) (size) == 0) \ 148 || ( `__bužtš_cÚ¡ªt_p ( n è&& ( size_t ) (n) == 0)) \ 150 ? ((è( ±r ), (è( ¡»am ), (è( size ), \ 151 (è( n ), ( size_t ) 0) \ 152 : `ä—d_uÆocked ( ±r , size , n , ¡»am )))) ) 154  #fwr™e_uÆocked ( ±r , size , n , ¡»am ) \ 155 ( `__ex‹nsiÚ__ (( `__bužtš_cÚ¡ªt_p ( size è&& __bužtš_cÚ¡ªt_°( n ) \ 156 && ( size_t è( size è* (size_tè( n ) <= 8 \ 157 && ( size_t è( size ) != 0) \ 158 ? ({ cÚ¡ * __±r = (cÚ¡ *è( ±r ); \ 159 FILE * __¡»am = ( ¡»am ); \ 160 size_t __út ; \ 161  __út = ( size_t è( size è* (size_tè( n ); \ 162 __út > 0; --__cnt) \ 163 ià( `_IO_putc_uÆocked (* __±r ++, __¡»am è=ð EOF ) \ 165 (( size_t è( size è* (size_tè( n è- __út ) \ 166 / ( size_t è( size ); }) \ 167 : ((( `__bužtš_cÚ¡ªt_p ( size è&& ( size_t ) (size) == 0) \ 168 || ( `__bužtš_cÚ¡ªt_p ( n è&& ( size_t ) (n) == 0)) \ 170 ? ((è( ±r ), (è( ¡»am ), (è( size ), \ 171 (è( n ), ( size_t ) 0) \ 172 : `fwr™e_uÆocked ( ±r , size , n , ¡»am )))) ) 176 #undeà __STDIO_INLINE @/usr/include/bits/stdio2.h 20 #iâdeà _STDIO_H 24  $__¥rštf_chk (* __»¡riù __s ,  __æag , size_t __¦’ , 25 __cÚ¡ * __»¡riù __fÜm© , ...è __THROW ; 26  $__v¥rštf_chk (* __»¡riù __s ,  __æag , size_t __¦’ , 27 __cÚ¡ * __»¡riù __fÜm© , 28 _G_va_li¡ __­ è __THROW ; 30  #¥rštf ( ¡r , ...) \ 31 `__bužtš___¥rštf_chk ( ¡r , __USE_FORTIFY_LEVEL - 1, `__bos (str), \ 32 __VA_ARGS__ ) ) 33  #v¥rštf ( ¡r , fmt , ­ ) \ 34 `__bužtš___v¥rštf_chk ( ¡r , __USE_FORTIFY_LEVEL - 1, `__bos (¡r), fmt , ­ ) ) 36 #ià defšed __USE_BSD || defšed __USE_ISOC99 || defšed __USE_UNIX98 38  $__¢´štf_chk (* __»¡riù __s , size_t __n ,  __æag , 39 size_t __¦’ , __cÚ¡ * __»¡riù __fÜm© , 40 ...è __THROW ; 41  $__v¢´štf_chk (* __»¡riù __s , size_t __n ,  __æag , 42 size_t __¦’ , __cÚ¡ * __»¡riù __fÜm© , 43 _G_va_li¡ __­ è __THROW ; 45  #¢´štf ( ¡r , Ën , ...) \ 46 `__bužtš___¢´štf_chk ( ¡r , Ën , __USE_FORTIFY_LEVEL - 1, `__bos (str), \ 47 __VA_ARGS__ ) ) 48  #v¢´štf ( ¡r , Ën , fmt , ­ ) \ 49 `__bužtš___v¢´štf_chk ( ¡r , Ën , __USE_FORTIFY_LEVEL - 1, `__bos (str), \ 50 fmt , ­ ) ) 54 #ià __USE_FORTIFY_LEVEL > 1 56  `__årštf_chk ( FILE * __»¡riù __¡»am ,  __æag , 57 __cÚ¡ * __»¡riù __fÜm© , ...); 58  `__´štf_chk ( __æag , __cÚ¡ * __»¡riù __fÜm© , ...); 59  `__vårštf_chk ( FILE * __»¡riù __¡»am ,  __æag , 60 __cÚ¡ * __»¡riù __fÜm© , _G_va_li¡ __­ ); 61  `__v´štf_chk ( __æag , __cÚ¡ * __»¡riù __fÜm© , 62 _G_va_li¡ __­ ); 64  #´štf (...) \ 65 `__´štf_chk ( __USE_FORTIFY_LEVEL - 1, __VA_ARGS__ ) ) 66  #årštf ( ¡»am , ...) \ 67 `__årštf_chk ( ¡»am , __USE_FORTIFY_LEVEL - 1, __VA_ARGS__ ) ) 68  #v´štf ( fÜm© , ­ ) \ 69 `__v´štf_chk ( __USE_FORTIFY_LEVEL - 1, fÜm© , ­ ) ) 70  #vårštf ( ¡»am , fÜm© , ­ ) \ 71 `__vårštf_chk ( ¡»am , __USE_FORTIFY_LEVEL - 1, fÜm© , ­ ) ) 75 * `__g‘s_chk (* __¡r , size_t ); 76  #g‘s ( __¡r ) \ 77 (( `__bos ( __¡r è=ð( size_t ) -1) \ 78 ? ( g‘s è( __¡r è: `__g‘s_chk (__¡r, `__bos (__¡r))) ) @/usr/include/bits/stdio_lim.h 19 #ià! defšed _STDIO_H && !defšed __Ãed_FOPEN_MAX && !defšed __Ãed_IOV_MAX 23 #ifdeà _STDIO_H 24  #L_tm²am 20 ) 25  #TMP_MAX 238328 ) 26  #FILENAME_MAX 4096 ) 28 #ifdeà __USE_POSIX 29  #L_ù”mid 9 ) 30  #L_cu£rid 9 ) 34 #ià defšed __Ãed_FOPEN_MAX || defšed _STDIO_H 35 #undeà FOPEN_MAX 36  #FOPEN_MAX 16 ) 39 #ià defšed __Ãed_IOV_MAX && !defšed IOV_MAX 40  #IOV_MAX 1024 ) @/usr/include/bits/string.h 21 #iâdeà _STRING_H 26  #_STRING_ARCH_uÇligÃd 1 ) 31 #ià! defšed __NO_STRING_INLINES && defšed __USE_STRING_INLINES \ 32 && defšed g__GNUC__ && __GNUC__ >ð2 && ! __BOUNDED_POINTERS__ 34 #iâdeà __STRING_INLINE 35 #ifdeà __ýlu¥lus 36  #__STRING_INLINE šlše ) 38  #__STRING_INLINE __šlše ) 43  #__STRING_SMALL_GET16 ( ¤c , idx ) \ 44 (((( __cÚ¡ *è( ¤c ))[ idx + 1] << 8) \ 45 | (( __cÚ¡ *è( ¤c ))[ idx ]) ) 46  #__STRING_SMALL_GET32 ( ¤c , idx ) \ 47 ((((( __cÚ¡ *è( ¤c ))[ idx + 3] << 8 \ 48 | (( __cÚ¡ *è( ¤c ))[ idx + 2]) << 8 \ 49 | (( __cÚ¡ *è( ¤c ))[ idx + 1]) << 8 \ 50 | (( __cÚ¡ *è( ¤c ))[ idx ]) ) 54  #_HAVE_STRING_ARCH_memýy 1 ) 55  #memýy ( de¡ , ¤c , n ) \ 56 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( n ) \ 57 ? `__memýy_c (( de¡ ), ( ¤c ), ( n )) \ 58 : `__memýy_g (( de¡ ), ( ¤c ), ( n )))) ) 59  #__memýy_c ( de¡ , ¤c , n ) \ 60 (( n ) == 0 \ 61 ? ( de¡ ) \ 62 : ((( n ) % 4 == 0) \ 63 ? `__memýy_by4 ( de¡ , ¤c , n ) \ 64 : ((( n ) % 2 == 0) \ 65 ? `__memýy_by2 ( de¡ , ¤c , n ) \ 66 : `__memýy_g ( de¡ , ¤c , n )))) ) 68 __STRING_INLINE * __memýy_by4 (* __de¡ , __cÚ¡ * __¤c , 69 size_t __n ); 71 __STRING_INLINE * 72 $__memýy_by4 (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 74  __d0 , __d1 ; 75 * __tmp = __de¡ ; 76 __asm__ __vÞ©že__ 84 : "=&r" ( __d0 ), "=&r" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __d1 ) 85 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __n / 4) 87  __de¡ ; 88 } } 90 __STRING_INLINE * __memýy_by2 (* __de¡ , __cÚ¡ * __¤c , 91 size_t __n ); 93 __STRING_INLINE * 94 $__memýy_by2 (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 96  __d0 , __d1 ; 97 * __tmp = __de¡ ; 98 __asm__ __vÞ©že__ 111 : "=&q" ( __d0 ), "=&r" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __d1 ) 112 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __n / 2) 114  __de¡ ; 115 } } 117 __STRING_INLINE * __memýy_g (* __de¡ , __cÚ¡ * __¤c , 118 size_t __n ); 120 __STRING_INLINE * 121 $__memýy_g (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 123  __d0 , __d1 , __d2 ; 124 * __tmp = __de¡ ; 125 __asm__ __vÞ©že__ 136 : "=&c" ( __d0 ), "=&D" ( __d1 ), "=&S" ( __d2 ), 137 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __de¡ ) 138 : "0" ( __n ), "1" ( __tmp ), "2" ( __¤c ), 139 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __¤c ) 141  __de¡ ; 142 } } 144  #_HAVE_STRING_ARCH_memmove 1 ) 145 #iâdeà _FORCE_INLINES 148 __STRING_INLINE * 149 $memmove (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 151  __d0 , __d1 , __d2 ; 152 * __tmp = __de¡ ; 153 ià( __de¡ < __¤c ) 154 __asm__ __vÞ©že__ 157 : "=&c" ( __d0 ), "=&S" ( __d1 ), "=&D" ( __d2 ), 158 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __de¡ ) 159 : "0" ( __n ), "1" ( __¤c ), "2" ( __tmp ), 160 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __¤c )); 162 __asm__ __vÞ©že__ 166 : "=&c" ( __d0 ), "=&S" ( __d1 ), "=&D" ( __d2 ), 167 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __de¡ ) 168 : "0" ( __n ), "1" (__À- 1 + ( __cÚ¡ *è __¤c ), 169 "2" ( __n - 1 + (*è __tmp ), 170 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __¤c )); 171  __de¡ ; 172 } } 176  #_HAVE_STRING_ARCH_memcmp 1 ) 177 #iâdeà _FORCE_INLINES 178 #iâdeà __PIC__ 180 __STRING_INLINE  181 $memcmp ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 183  __d0 , __d1 , __d2 ; 184  __»s ; 185 __asm__ __vÞ©že__ 193 : "=&a" ( __»s ), "=&S" ( __d0 ), "=&D" ( __d1 ), "=&c" ( __d2 ) 194 : "0" (0), "1" ( __s1 ), "2" ( __s2 ), "3" ( __n ), 195 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s1 ), 196 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s2 ) 198  __»s ; 199 } } 204  #_HAVE_STRING_ARCH_mem£t 1 ) 205  #_USE_STRING_ARCH_mem£t 1 ) 206  #mem£t ( s , c , n ) \ 207 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( n ) && (n) <= 16 \ 208 ? (( n ) == 1 \ 209 ? `__mem£t_c1 (( s ), ( c )) \ 210 : `__mem£t_gc (( s ), ( c ), ( n ))) \ 211 : ( `__bužtš_cÚ¡ªt_p ( c ) \ 212 ? ( `__bužtš_cÚ¡ªt_p ( n ) \ 213 ? `__mem£t_cú (( s ), ( c ), ( n )) \ 214 : `mem£t (( s ), ( c ), ( n ))) \ 215 : ( `__bužtš_cÚ¡ªt_p ( n ) \ 216 ? `__mem£t_gú (( s ), ( c ), ( n )) \ 217 : `mem£t (( s ), ( c ), ( n )))))) ) 219  #__mem£t_c1 ( s , c è({ * __s = (s); \ 220 *((*è __s èð(è( c ); \ 221 __s ; }) ) 223  #__mem£t_gc ( s , c , n ) \ 224 ({ * __s = ( s ); \ 226  __ui ; \ 227  __usi ; \ 228  __uc ; \ 229 } * __u = __s ; \ 230  __c = ((è((è( c ))) * 0x01010101; \ 236 ià(( n ) == 3 || (n) >= 5) \ 237 __asm__ `__vÞ©že__ ("" : "ô" ( __c ) : "0" (__c)); \ 240  n ) \ 243 __u -> __ui = __c ; \ 244 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 246 __u -> __ui = __c ; \ 247 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 249 __u -> __ui = __c ; \ 250 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 252 __u -> __usi = (è __c ; \ 253 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 254 __u -> __uc = (è __c ; \ 258 __u -> __ui = __c ; \ 259 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 261 __u -> __ui = __c ; \ 262 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 264 __u -> __ui = __c ; \ 265 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 267 __u -> __usi = (è __c ; \ 271 __u -> __ui = __c ; \ 272 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 274 __u -> __ui = __c ; \ 275 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 277 __u -> __ui = __c ; \ 278 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 280 __u -> __uc = (è __c ; \ 284 __u -> __ui = __c ; \ 285 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 287 __u -> __ui = __c ; \ 288 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 290 __u -> __ui = __c ; \ 291 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 293 __u -> __ui = __c ; \ 298 __s ; }) ) 300  #__mem£t_cú ( s , c , n ) \ 301 ((( n ) % 4 == 0) \ 302 ? `__mem£t_cú_by4 ( s , ((è((è( c ))) * 0x01010101,\ 303 n ) \ 304 : ((( n ) % 2 == 0) \ 305 ? `__mem£t_cú_by2 ( s , \ 306 ((è((è( c ))) * 0x01010101,\ 307 n ) \ 308 : `mem£t ( s , c , n ))) ) 310 __STRING_INLINE * __mem£t_cú_by4 (* __s ,  __c , 311 size_t __n ); 313 __STRING_INLINE * 314 $__mem£t_cú_by4 (* __s ,  __c , size_t __n ) 316 * __tmp = __s ; 317  __d0 ; 318 #ifdeà __i686__ 319 __asm__ __vÞ©že__ 322 : "=&a" ( __c ), "=&D" ( __tmp ), "=&c" ( __d0 ), 323 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 324 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 327 __asm__ __vÞ©že__ 333 : "=&r" ( __c ), "=&r" ( __tmp ), "=&r" ( __d0 ), 334 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 335 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 338  __s ; 339 } } 341 __STRING_INLINE * __mem£t_cú_by2 (* __s ,  __c , 342 size_t __n ); 344 __STRING_INLINE * 345 $__mem£t_cú_by2 (* __s ,  __c , size_t __n ) 347  __d0 , __d1 ; 348 * __tmp = __s ; 349 #ifdeà __i686__ 350 __asm__ __vÞ©že__ 354 : "=&a" ( __d0 ), "=&D" ( __tmp ), "=&c" ( __d1 ), 355 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 356 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 359 __asm__ __vÞ©že__ 365 : "=&q" ( __d0 ), "=&r" ( __tmp ), "=&r" ( __d1 ), 366 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 367 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 370  __s ; 371 } } 373  #__mem£t_gú ( s , c , n ) \ 374 ((( n ) % 4 == 0) \ 375 ? `__mem£t_gú_by4 ( s , c , n ) \ 376 : ((( n ) % 2 == 0) \ 377 ? `__mem£t_gú_by2 ( s , c , n ) \ 378 : `mem£t ( s , c , n ))) ) 380 __STRING_INLINE * __mem£t_gú_by4 (* __s ,  __c , size_t __n ); 382 __STRING_INLINE * 383 $__mem£t_gú_by4 (* __s ,  __c , size_t __n ) 385 * __tmp = __s ; 386  __d0 ; 387 __asm__ __vÞ©že__ 397 : "=&q" ( __c ), "=&r" ( __tmp ), "=&r" ( __d0 ), 398 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 399 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 401  __s ; 402 } } 404 __STRING_INLINE * __mem£t_gú_by2 (* __s ,  __c , size_t __n ); 406 __STRING_INLINE * 407 $__mem£t_gú_by2 (* __s ,  __c , size_t __n ) 409  __d0 , __d1 ; 410 * __tmp = __s ; 411 __asm__ __vÞ©že__ 422 : "=&q" ( __d0 ), "=&r" ( __tmp ), "=&r" ( __d1 ), 423 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 424 : "0" ((è __c ), "1" ( __tmp ), "2" ( __n / 4) 426  __s ; 427 } } 431  #_HAVE_STRING_ARCH_memchr 1 ) 432 #iâdeà _FORCE_INLINES 433 __STRING_INLINE * 434 $memchr ( __cÚ¡ * __s ,  __c , size_t __n ) 436  __d0 ; 437 #ifdeà __i686__ 438  __d1 ; 440 * __»s ; 441 ià( __n == 0) 442  NULL ; 443 #ifdeà __i686__ 444 __asm__ __vÞ©že__ 448 : "=D" ( __»s ), "=&c" ( __d0 ), "=&r" ( __d1 ) 449 : "a" ( __c ), "0" ( __s ), "1" ( __n ), "2" (1), 450 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 453 __asm__ __vÞ©že__ 459 : "=D" ( __»s ), "=&c" ( __d0 ) 460 : "a" ( __c ), "0" ( __s ), "1" ( __n ), 461 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 464  __»s - 1; 465 } } 468  #_HAVE_STRING_ARCH_memrchr 1 ) 469 #iâdeà _FORCE_INLINES 470 __STRING_INLINE * __memrchr ( __cÚ¡ * __s ,  __c , size_t __n ); 472 __STRING_INLINE * 473 $__memrchr ( __cÚ¡ * __s ,  __c , size_t __n ) 475  __d0 ; 476 #ifdeà __i686__ 477  __d1 ; 479 * __»s ; 480 ià( __n == 0) 481  NULL ; 482 #ifdeà __i686__ 483 __asm__ __vÞ©že__ 489 : "=D" ( __»s ), "=&c" ( __d0 ), "=&r" ( __d1 ) 490 : "a" ( __c ), "0" ( __s + __n - 1), "1" (__n), "2" (-1), 491 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 494 __asm__ __vÞ©že__ 501 : "=D" ( __»s ), "=&c" ( __d0 ) 502 : "a" ( __c ), "0" ( __s + __n - 1), "1" (__n), 503 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s ) 506  __»s ; 507 } } 508 #ifdeà __USE_GNU 509  #memrchr ( s , c , n è `__memrchr ((s), (c), (n)) ) 514  #_HAVE_STRING_ARCH_¿wmemchr 1 ) 515 __STRING_INLINE * __¿wmemchr (cÚ¡ * __s ,  __c ); 517 #iâdeà _FORCE_INLINES 518 __STRING_INLINE * 519 $__¿wmemchr (cÚ¡ * __s ,  __c ) 521  __d0 ; 522 * __»s ; 523 __asm__ __vÞ©že__ 526 : "=D" ( __»s ), "=&c" ( __d0 ) 527 : "a" ( __c ), "0" ( __s ), "1" (0xffffffff), 528 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 530  __»s - 1; 531 } } 532 #ifdeà __USE_GNU 533 __STRING_INLINE * 534 $¿wmemchr (cÚ¡ * __s ,  __c ) 536  `__¿wmemchr ( __s , __c ); 537 } } 543  #_HAVE_STRING_ARCH_¡¾’ 1 ) 544  #¡¾’ ( ¡r ) \ 545 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¡r ) \ 546 ? `__bužtš_¡¾’ ( ¡r ) \ 547 : `__¡¾’_g ( ¡r ))) ) 548 __STRING_INLINE size_t __¡¾’_g ( __cÚ¡ * __¡r ); 550 __STRING_INLINE size_t 551 $__¡¾’_g ( __cÚ¡ * __¡r ) 553  __dummy ; 554  __cÚ¡ * __tmp = __¡r ; 555 __asm__ __vÞ©že__ 561 : "ô" ( __tmp ), "=&q" ( __dummy ) 562 : "0" ( __¡r ), 563 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __¡r ) 565  __tmp - __¡r - 1; 566 } } 570  #_HAVE_STRING_ARCH_¡rýy 1 ) 571  #¡rýy ( de¡ , ¤c ) \ 572 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 573 ? ( (( ¤c )[0]è=ð1 && `¡¾’ (src) + 1 <= 8 \ 574 ? `__¡rýy_a_sm®l (( de¡ ), ( ¤c ), `¡¾’ (src) + 1) \ 575 : (*è `memýy ((*è( de¡ ), \ 576 ( __cÚ¡ *è( ¤c ), \ 577 `¡¾’ ( ¤c ) + 1)) \ 578 : `__¡rýy_g (( de¡ ), ( ¤c )))) ) 580  #__¡rýy_a_sm®l ( de¡ , ¤c , ¤þ’ ) \ 581 ( `__ex‹nsiÚ__ ({ * __de¡ = ( de¡ ); \ 583  __ui ; \ 584  __usi ; \ 585  __uc ; \ 586  __c ; \ 587 } * __u = (*è __de¡ ; \ 588  ¤þ’ ) \ 591 __u -> __uc = '\0'; \ 594 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 0); \ 597 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 0); \ 598 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 599 __u -> __uc = '\0'; \ 602 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 605 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 606 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 607 __u -> __uc = '\0'; \ 610 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 611 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 612 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 4); \ 615 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 616 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 617 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 4); \ 618 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 619 __u -> __uc = '\0'; \ 622 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 623 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 624 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 4); \ 627 (*è __de¡ ; })) ) 629 __STRING_INLINE * __¡rýy_g (* __de¡ , __cÚ¡ * __¤c ); 631 __STRING_INLINE * 632 $__¡rýy_g (* __de¡ , __cÚ¡ * __¤c ) 634 * __tmp = __de¡ ; 635  __dummy ; 636 __asm__ __vÞ©že__ 645 : "=&r" ( __¤c ), "=&r" ( __tmp ), "=&q" ( __dummy ), 646 "=m" ( *(¡ruù {  __x [0xfffffff]; } *) __de¡ ) 647 : "0" ( __¤c ), "1" ( __tmp ), 648 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __¤c ) 650  __de¡ ; 651 } } 654 #ifdeà __USE_GNU 655  #_HAVE_STRING_ARCH_¡pýy 1 ) 657  #__¡pýy ( de¡ , ¤c ) \ 658 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 659 ? ( `¡¾’ ( ¤c ) + 1 <= 8 \ 660 ? `__¡pýy_a_sm®l (( de¡ ), ( ¤c ), `¡¾’ (src) + 1) \ 661 : `__¡pýy_c (( de¡ ), ( ¤c ), `¡¾’ (src) + 1)) \ 662 : `__¡pýy_g (( de¡ ), ( ¤c )))) ) 663  #__¡pýy_c ( de¡ , ¤c , ¤þ’ ) \ 664 (( ¤þ’ ) % 4 == 0 \ 665 ? `__mempýy_by4 ( de¡ , ¤c , ¤þ’ ) - 1 \ 666 : (( ¤þ’ ) % 2 == 0 \ 667 ? `__mempýy_by2 ( de¡ , ¤c , ¤þ’ ) - 1 \ 668 : `__mempýy_byn ( de¡ , ¤c , ¤þ’ è- 1)) ) 671  #¡pýy ( de¡ , ¤c è `__¡pýy ((de¡), (¤c)) ) 673  #__¡pýy_a_sm®l ( de¡ , ¤c , ¤þ’ ) \ 674 ( `__ex‹nsiÚ__ ({ union { \ 675  __ui ; \ 676  __usi ; \ 677  __uc ; \ 678  __c ; \ 679 } * __u = (*è( de¡ ); \ 680  ¤þ’ ) \ 683 __u -> __uc = '\0'; \ 686 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 0); \ 687 __u = `__ex‹nsiÚ__ ((*) __u + 1); \ 690 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 0); \ 691 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 692 __u -> __uc = '\0'; \ 695 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 696 __u = `__ex‹nsiÚ__ ((*) __u + 3); \ 699 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 700 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 701 __u -> __uc = '\0'; \ 704 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 705 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 706 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 4); \ 707 __u = `__ex‹nsiÚ__ ((*) __u + 1); \ 710 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 711 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 712 __u -> __usi = `__STRING_SMALL_GET16 ( ¤c , 4); \ 713 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 714 __u -> __uc = '\0'; \ 717 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 0); \ 718 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 719 __u -> __ui = `__STRING_SMALL_GET32 ( ¤c , 4); \ 720 __u = `__ex‹nsiÚ__ ((*) __u + 3); \ 723 (*è __u ; })) ) 725 __STRING_INLINE * __mempýy_by4 (* __de¡ , __cÚ¡ * __¤c , 726 size_t __¤þ’ ); 728 __STRING_INLINE * 729 $__mempýy_by4 (* __de¡ , __cÚ¡ * __¤c , size_t __¤þ’ ) 731 * __tmp = __de¡ ; 732  __d0 , __d1 ; 733 __asm__ __vÞ©že__ 741 : "=&r" ( __d0 ), "ô" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __d1 ) 742 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __¤þ’ / 4) 744  __tmp ; 745 } } 747 __STRING_INLINE * __mempýy_by2 (* __de¡ , __cÚ¡ * __¤c , 748 size_t __¤þ’ ); 750 __STRING_INLINE * 751 $__mempýy_by2 (* __de¡ , __cÚ¡ * __¤c , size_t __¤þ’ ) 753 * __tmp = __de¡ ; 754  __d0 , __d1 ; 755 __asm__ __vÞ©že__ 768 : "=&q" ( __d0 ), "ô" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __d1 ), 769 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __de¡ ) 770 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __¤þ’ / 2), 771 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 773  __tmp + 2; 774 } } 776 __STRING_INLINE * __mempýy_byn (* __de¡ , __cÚ¡ * __¤c , 777 size_t __¤þ’ ); 779 __STRING_INLINE * 780 $__mempýy_byn (* __de¡ , __cÚ¡ * __¤c , size_t __¤þ’ ) 782  __d0 , __d1 ; 783 * __tmp = __de¡ ; 784 __asm__ __vÞ©že__ 795 : "=D" ( __tmp ), "=&c" ( __d0 ), "=&S" ( __d1 ), 796 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __de¡ ) 797 : "0" ( __tmp ), "1" ( __¤þ’ ), "2" ( __¤c ), 798 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 800  __tmp ; 801 } } 803 __STRING_INLINE * __¡pýy_g (* __de¡ , __cÚ¡ * __¤c ); 805 __STRING_INLINE * 806 $__¡pýy_g (* __de¡ , __cÚ¡ * __¤c ) 808 * __tmp = __de¡ ; 809  __dummy ; 810 __asm__ __vÞ©že__ 819 : "=&r" ( __¤c ), "ô" ( __tmp ), "=&q" ( __dummy ), 820 "=m" ( *(¡ruù {  __x [0xfffffff]; } *) __de¡ ) 821 : "0" ( __¤c ), "1" ( __tmp ), 822 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __¤c ) 824  __tmp - 1; 825 } } 830  #_HAVE_STRING_ARCH_¡ºýy 1 ) 831  #¡ºýy ( de¡ , ¤c , n ) \ 832 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 833 ? (( `¡¾’ ( ¤c è+ 1 >ð(( size_t è( n )) \ 834 ? (*è `memýy ((*è( de¡ ), \ 835 ( __cÚ¡ *è( ¤c ), n ) \ 836 : `__¡ºýy_cg (( de¡ ), ( ¤c ), `¡¾’ (¤cè+ 1, n ))) \ 837 : `__¡ºýy_gg (( de¡ ), ( ¤c ), n ))) ) 838  #__¡ºýy_cg ( de¡ , ¤c , ¤þ’ , n ) \ 839 ((( ¤þ’ ) % 4 == 0) \ 840 ? `__¡ºýy_by4 ( de¡ , ¤c , ¤þ’ , n ) \ 841 : ((( ¤þ’ ) % 2 == 0) \ 842 ? `__¡ºýy_by2 ( de¡ , ¤c , ¤þ’ , n ) \ 843 : `__¡ºýy_byn ( de¡ , ¤c , ¤þ’ , n ))) ) 845 __STRING_INLINE * __¡ºýy_by4 (* __de¡ , __cÚ¡  __¤c [], 846 size_t __¤þ’ , size_ˆ __n ); 848 __STRING_INLINE * 849 $__¡ºýy_by4 (* __de¡ , __cÚ¡  __¤c [], size_t __¤þ’ , size_ˆ __n ) 851 * __tmp = __de¡ ; 852  __dummy1 , __dummy2 ; 853 __asm__ __vÞ©že__ 861 : "=&r" ( __dummy1 ), "ô" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __dummy2 ), 862 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __de¡ ) 863 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __¤þ’ / 4), 864 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 866 (è `mem£t ( __tmp , '\0', __n - __¤þ’ ); 867  __de¡ ; 868 } } 870 __STRING_INLINE * __¡ºýy_by2 (* __de¡ , __cÚ¡  __¤c [], 871 size_t __¤þ’ , size_ˆ __n ); 873 __STRING_INLINE * 874 $__¡ºýy_by2 (* __de¡ , __cÚ¡  __¤c [], size_t __¤þ’ , size_ˆ __n ) 876 * __tmp = __de¡ ; 877  __dummy1 , __dummy2 ; 878 __asm__ __vÞ©že__ 891 : "=&q" ( __dummy1 ), "ô" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __dummy2 ), 892 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __de¡ ) 893 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __¤þ’ / 2), 894 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 896 (è `mem£t ( __tmp + 2, '\0', __n - __¤þ’ ); 897  __de¡ ; 898 } } 900 __STRING_INLINE * __¡ºýy_byn (* __de¡ , __cÚ¡  __¤c [], 901 size_t __¤þ’ , size_ˆ __n ); 903 __STRING_INLINE * 904 $__¡ºýy_byn (* __de¡ , __cÚ¡  __¤c [], size_t __¤þ’ , size_ˆ __n ) 906  __d0 , __d1 ; 907 * __tmp = __de¡ ; 908 __asm__ __vÞ©že__ 919 : "=D" ( __tmp ), "=&c" ( __d0 ), "=&S" ( __d1 ), 920 "=m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __de¡ ) 921 : "1" ( __¤þ’ ), "0" ( __tmp ),"2" ( __¤c ), 922 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 924 (è `mem£t ( __tmp , '\0', __n - __¤þ’ ); 925  __de¡ ; 926 } } 928 __STRING_INLINE * __¡ºýy_gg (* __de¡ , __cÚ¡ * __¤c , 929 size_t __n ); 931 __STRING_INLINE * 932 $__¡ºýy_gg (* __de¡ , __cÚ¡ * __¤c , size_t __n ) 934 * __tmp = __de¡ ; 935  __dummy ; 936 ià( __n > 0) 937 __asm__ __vÞ©že__ 953 : "=&r" ( __¤c ), "=&r" ( __tmp ), "=&q" ( __dummy ), "=&r" ( __n ) 954 : "0" ( __¤c ), "1" ( __tmp ), "3" ( __n ) 957  __de¡ ; 958 } } 962  #_HAVE_STRING_ARCH_¡rÿt 1 ) 963  #¡rÿt ( de¡ , ¤c ) \ 964 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 965 ? `__¡rÿt_c (( de¡ ), ( ¤c ), `¡¾’ (src) + 1) \ 966 : `__¡rÿt_g (( de¡ ), ( ¤c )))) ) 968 __STRING_INLINE * __¡rÿt_c (* __de¡ , __cÚ¡  __¤c [], 969 size_t __¤þ’ ); 971 __STRING_INLINE * 972 $__¡rÿt_c (* __de¡ , __cÚ¡  __¤c [], size_t __¤þ’ ) 974 #ifdeà __i686__ 975  __d0 ; 976 * __tmp ; 977 __asm__ __vÞ©že__ 979 : "=D" ( __tmp ), "=&c" ( __d0 ), 980 "=m" ( *(¡ruù {  __x [0xfffffff]; } *) __de¡ ) 981 : "0" ( __de¡ ), "1" (0xffffffff), "a" (0), 982 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 984 -- __tmp ; 986 * __tmp = __de¡ - 1; 987 __asm__ __vÞ©že__ 992 : "ô" ( __tmp ), 993 "=m" ( *(¡ruù {  __x [0xfffffff]; } *) __de¡ ) 994 : "0" ( __tmp ), 995 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __¤þ’ ]; } *) __¤c ) 998 (è `memýy ( __tmp , __¤c , __¤þ’ ); 999  __de¡ ; 1000 } } 1002 __STRING_INLINE * __¡rÿt_g (* __de¡ , __cÚ¡ * __¤c ); 1004 __STRING_INLINE * 1005 $__¡rÿt_g (* __de¡ , __cÚ¡ * __¤c ) 1007 * __tmp = __de¡ - 1; 1008  __dummy ; 1009 __asm__ __vÞ©že__ 1021 : "=&q" ( __dummy ), "=&r" ( __tmp ), "=&r" ( __¤c ), 1022 "=m" ( *(¡ruù {  __x [0xfffffff]; } *) __de¡ ) 1023 : "1" ( __tmp ), "2" ( __¤c ), 1024 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __¤c ) 1026  __de¡ ; 1027 } } 1031  #_HAVE_STRING_ARCH_¡ºÿt 1 ) 1032  #¡ºÿt ( de¡ , ¤c , n ) \ 1033 ( `__ex‹nsiÚ__ ({ * __de¡ = ( de¡ ); \ 1034 `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 1035 ? ( `¡¾’ ( ¤c è< (( size_t è( n )) \ 1036 ? `¡rÿt ( __de¡ , ( ¤c )) \ 1037 : (*(*) `__mempýy ( `¡rchr ( __de¡ , '\0'), \ 1038 ( __cÚ¡ *è( ¤c ), \ 1039 ( n )èð0, __de¡ )) \ 1040 : `__¡ºÿt_g ( __de¡ , ( ¤c ), ( n )); })) ) 1042 __STRING_INLINE * __¡ºÿt_g (* __de¡ , __cÚ¡  __¤c [], 1043 size_t __n ); 1045 __STRING_INLINE * 1046 $__¡ºÿt_g (* __de¡ , __cÚ¡  __¤c [], size_t __n ) 1048 * __tmp = __de¡ ; 1049  __dummy ; 1050 #ifdeà __i686__ 1051 __asm__ __vÞ©že__ 1065 : "=&a" ( __dummy ), "=&D" ( __tmp ), "=&S" ( __¤c ), "=&c" ( __n ) 1066 : "g" ( __n ), "0" (0), "1" ( __tmp ), "2" ( __¤c ), "3" (0xffffffff) 1069 -- __tmp ; 1070 __asm__ __vÞ©že__ 1087 : "=&q" ( __dummy ), "=&r" ( __tmp ), "=&r" ( __¤c ), "=&r" ( __n ) 1088 : "1" ( __tmp ), "2" ( __¤c ), "3" ( __n ) 1091  __de¡ ; 1092 } } 1096  #_HAVE_STRING_ARCH_¡rcmp 1 ) 1097  #¡rcmp ( s1 , s2 ) \ 1098 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( s1 è&& __bužtš_cÚ¡ªt_°( s2 ) \ 1099 && ( (( s1 )[0]è!ð1 || `¡¾’ (s1) >= 4) \ 1100 && ( (( s2 )[0]è!ð1 || `¡¾’ (s2) >= 4) \ 1101 ? `memcmp (( __cÚ¡ *è( s1 ), (__cÚ¡ *è( s2 ), \ 1102 ( `¡¾’ ( s1 è< sŒËÀ( s2 ) \ 1103 ? `¡¾’ ( s1 è: sŒËÀ( s2 )) + 1) \ 1104 : ( `__bužtš_cÚ¡ªt_p ( s1 ) &&  ((s1)[0]) == 1 \ 1105 &&  (( s2 )[0]è=ð1 && `¡¾’ ( s1 ) < 4 \ 1106 ? ( `__bužtš_cÚ¡ªt_p ( s2 ) &&  ((s2)[0]) == 1 \ 1107 ? `__¡rcmp_cc (( __cÚ¡ *è( s1 ), \ 1108 ( __cÚ¡ *è( s2 ), \ 1109 `¡¾’ ( s1 )) \ 1110 : `__¡rcmp_cg (( __cÚ¡ *è( s1 ), \ 1111 ( __cÚ¡ *è( s2 ), \ 1112 `¡¾’ ( s1 ))) \ 1113 : ( `__bužtš_cÚ¡ªt_p ( s2 è&&  (( s1 )[0]) == 1 \ 1114 &&  (( s2 )[0]è=ð1 && `¡¾’ (s2) < 4 \ 1115 ? ( `__bužtš_cÚ¡ªt_p ( s1 ) \ 1116 ? `__¡rcmp_cc (( __cÚ¡ *è( s1 ), \ 1117 ( __cÚ¡ *è( s2 ), \ 1118 `¡¾’ ( s2 )) \ 1119 : `__¡rcmp_gc (( __cÚ¡ *è( s1 ), \ 1120 ( __cÚ¡ *è( s2 ), \ 1121 `¡¾’ ( s2 ))) \ 1122 : `__¡rcmp_gg (( s1 ), ( s2 )))))) ) 1124  #__¡rcmp_cc ( s1 , s2 , l ) \ 1125 ( `__ex‹nsiÚ__ ({  __»suÉ = ( s1 )[0] - ( s2 )[0]; \ 1126 ià( l > 0 && __»suÉ == 0) \ 1128 __»suÉ = ( s1 )[1] - ( s2 )[1]; \ 1129 ià( l > 1 && __»suÉ == 0) \ 1131 __»suÉ = ( s1 )[2] - ( s2 )[2]; \ 1132 ià( l > 2 && __»suÉ == 0) \ 1133 __»suÉ = ( s1 )[3] - ( s2 )[3]; \ 1136 __»suÉ ; })) ) 1138  #__¡rcmp_cg ( s1 , s2 , l1 ) \ 1139 ( `__ex‹nsiÚ__ ({ __cÚ¡ * __s2 = ( s2 ); \ 1140  __»suÉ = ( s1 )[0] - __s2 [0]; \ 1141 ià( l1 > 0 && __»suÉ == 0) \ 1143 __»suÉ = ( s1 )[1] - __s2 [1]; \ 1144 ià( l1 > 1 && __»suÉ == 0) \ 1146 __»suÉ = ( s1 )[2] - __s2 [2]; \ 1147 ià( l1 > 2 && __»suÉ == 0) \ 1148 __»suÉ = ( s1 )[3] - __s2 [3]; \ 1151 __»suÉ ; })) ) 1153  #__¡rcmp_gc ( s1 , s2 , l2 ) \ 1154 ( `__ex‹nsiÚ__ ({ __cÚ¡ * __s1 = ( s1 ); \ 1155  __»suÉ = __s1 [0] - ( s2 )[0]; \ 1156 ià( l2 > 0 && __»suÉ == 0) \ 1158 __»suÉ = __s1 [1] - ( s2 )[1]; \ 1159 ià( l2 > 1 && __»suÉ == 0) \ 1161 __»suÉ = __s1 [2] - ( s2 )[2]; \ 1162 ià( l2 > 2 && __»suÉ == 0) \ 1163 __»suÉ = __s1 [3] - ( s2 )[3]; \ 1166 __»suÉ ; })) ) 1168 __STRING_INLINE  __¡rcmp_gg ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ); 1170 __STRING_INLINE  1171 $__¡rcmp_gg ( __cÚ¡ * __s1 , __cÚ¡ * __s2 ) 1173  __»s ; 1174 __asm__ __vÞ©že__ 1190 : "=q" ( __»s ), "=&r" ( __s1 ), "=&r" ( __s2 ) 1191 : "1" ( __s1 ), "2" ( __s2 ), 1192 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s1 ), 1193 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s2 ) 1195  __»s ; 1196 } } 1200  #_HAVE_STRING_ARCH_¡ºcmp 1 ) 1201  #¡ºcmp ( s1 , s2 , n ) \ 1202 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( s1 è&& `¡¾’ (s1è< (( size_t è( n )) \ 1203 ? `¡rcmp (( s1 ), ( s2 )) \ 1204 : ( `__bužtš_cÚ¡ªt_p ( s2 è&& `¡¾’ (s2è< (( size_t è( n ))\ 1205 ? `¡rcmp (( s1 ), ( s2 )) \ 1206 : `__¡ºcmp_g (( s1 ), ( s2 ), ( n ))))) ) 1208 __STRING_INLINE  __¡ºcmp_g ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , 1209 size_t __n ); 1211 __STRING_INLINE  1212 $__¡ºcmp_g ( __cÚ¡ * __s1 , __cÚ¡ * __s2 , size_t __n ) 1214  __»s ; 1215 __asm__ __vÞ©že__ 1234 : "=q" ( __»s ), "=&r" ( __s1 ), "=&r" ( __s2 ), "=&r" ( __n ) 1235 : "1" ( __s1 ), "2" ( __s2 ), "3" ( __n ), 1236 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s1 ), 1237 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __n ]; } *) __s2 ) 1239  __»s ; 1240 } } 1244  #_HAVE_STRING_ARCH_¡rchr 1 ) 1245  #_USE_STRING_ARCH_¡rchr 1 ) 1246  #¡rchr ( s , c ) \ 1247 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) \ 1248 ? (( c ) == '\0' \ 1249 ? (*è `__¿wmemchr (( s ), ( c )) \ 1250 : `__¡rchr_c (( s ), (( c ) & 0xff) << 8)) \ 1251 : `__¡rchr_g (( s ), ( c )))) ) 1253 __STRING_INLINE * __¡rchr_c ( __cÚ¡ * __s ,  __c ); 1255 __STRING_INLINE * 1256 $__¡rchr_c ( __cÚ¡ * __s ,  __c ) 1258  __d0 ; 1259 * __»s ; 1260 __asm__ __vÞ©že__ 1270 : "ô" ( __»s ), "=&a" ( __d0 ) 1271 : "0" ( __s ), "1" ( __c ), 1272 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1274  __»s ; 1275 } } 1277 __STRING_INLINE * __¡rchr_g ( __cÚ¡ * __s ,  __c ); 1279 __STRING_INLINE * 1280 $__¡rchr_g ( __cÚ¡ * __s ,  __c ) 1282  __d0 ; 1283 * __»s ; 1284 __asm__ __vÞ©že__ 1295 : "ô" ( __»s ), "=&a" ( __d0 ) 1296 : "0" ( __s ), "1" ( __c ), 1297 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1299  __»s ; 1300 } } 1304  #_HAVE_STRING_ARCH_¡rchºul 1 ) 1305  #__¡rchºul ( s , c ) \ 1306 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) \ 1307 ? (( c ) == '\0' \ 1308 ? (*è `__¿wmemchr (( s ), c ) \ 1309 : `__¡rchºul_c (( s ), (( c ) & 0xff) << 8)) \ 1310 : `__¡rchºul_g (( s ), c ))) ) 1312 __STRING_INLINE * __¡rchºul_c ( __cÚ¡ * __s ,  __c ); 1314 __STRING_INLINE * 1315 $__¡rchºul_c ( __cÚ¡ * __s ,  __c ) 1317  __d0 ; 1318 * __»s ; 1319 __asm__ __vÞ©že__ 1329 : "ô" ( __»s ), "=&a" ( __d0 ) 1330 : "0" ( __s ), "1" ( __c ), 1331 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1333  __»s ; 1334 } } 1336 __STRING_INLINE * __¡rchºul_g ( __cÚ¡ * __s ,  __c ); 1338 __STRING_INLINE * 1339 $__¡rchºul_g ( __cÚ¡ * __s ,  __c ) 1341  __d0 ; 1342 * __»s ; 1343 __asm__ __vÞ©že__ 1354 : "ô" ( __»s ), "=&a" ( __d0 ) 1355 : "0" ( __s ), "1" ( __c ), 1356 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1358  __»s ; 1359 } } 1360 #ifdeà __USE_GNU 1361  #¡rchºul ( s , c è `__¡rchºul ((s), (c)) ) 1365 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 1367  #_HAVE_STRING_ARCH_šdex 1 ) 1368  #šdex ( s , c ) \ 1369 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) \ 1370 ? `__¡rchr_c (( s ), (( c ) & 0xff) << 8) \ 1371 : `__¡rchr_g (( s ), ( c )))) ) 1376  #_HAVE_STRING_ARCH_¡¼chr 1 ) 1377  #¡¼chr ( s , c ) \ 1378 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) \ 1379 ? `__¡¼chr_c (( s ), (( c ) & 0xff) << 8) \ 1380 : `__¡¼chr_g (( s ), ( c )))) ) 1382 #ifdeà __i686__ 1383 __STRING_INLINE * __¡¼chr_c ( __cÚ¡ * __s ,  __c ); 1385 __STRING_INLINE * 1386 $__¡¼chr_c ( __cÚ¡ * __s ,  __c ) 1388  __d0 , __d1 ; 1389 * __»s ; 1390 __asm__ __vÞ©že__ 1398 : "=d" ( __»s ), "=&S" ( __d0 ), "=&a" ( __d1 ) 1399 : "0" (1), "1" ( __s ), "2" ( __c ), 1400 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1402  __»s - 1; 1403 } } 1405 __STRING_INLINE * __¡¼chr_g ( __cÚ¡ * __s ,  __c ); 1407 __STRING_INLINE * 1408 $__¡¼chr_g ( __cÚ¡ * __s ,  __c ) 1410  __d0 , __d1 ; 1411 * __»s ; 1412 __asm__ __vÞ©že__ 1421 : "=d" ( __»s ), "=&S" ( __d0 ), "=&a" ( __d1 ) 1422 : "0" (1), "1" ( __s ), "2" ( __c ), 1423 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1425  __»s - 1; 1426 } } 1428 __STRING_INLINE * __¡¼chr_c ( __cÚ¡ * __s ,  __c ); 1430 __STRING_INLINE * 1431 $__¡¼chr_c ( __cÚ¡ * __s ,  __c ) 1433  __d0 , __d1 ; 1434 * __»s ; 1435 __asm__ __vÞ©že__ 1445 : "=d" ( __»s ), "=&S" ( __d0 ), "=&a" ( __d1 ) 1446 : "0" (0), "1" ( __s ), "2" ( __c ), 1447 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1449  __»s ; 1450 } } 1452 __STRING_INLINE * __¡¼chr_g ( __cÚ¡ * __s ,  __c ); 1454 __STRING_INLINE * 1455 $__¡¼chr_g ( __cÚ¡ * __s ,  __c ) 1457  __d0 , __d1 ; 1458 * __»s ; 1459 __asm__ __vÞ©že__ 1470 : "ô" ( __»s ), "=&S" ( __d0 ), "=&a" ( __d1 ) 1471 : "0" (0), "1" ( __s ), "2" ( __c ), 1472 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1474  __»s ; 1475 } } 1479 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 1481  #_HAVE_STRING_ARCH_ršdex 1 ) 1482  #ršdex ( s , c ) \ 1483 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) \ 1484 ? `__¡¼chr_c (( s ), (( c ) & 0xff) << 8) \ 1485 : `__¡¼chr_g (( s ), ( c )))) ) 1491  #_HAVE_STRING_ARCH_¡rc¥n 1 ) 1492  #¡rc¥n ( s , »jeù ) \ 1493 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( »jeù ) &&  ((reject)[0]) == 1 \ 1494 ? (( »jeù )[0] == '\0' \ 1495 ? `¡¾’ ( s ) \ 1496 : (( »jeù )[1] == '\0' \ 1497 ? `__¡rc¥n_c1 (( s ), ((( »jeù )[0] << 8) & 0xff00)) \ 1498 : `__¡rc¥n_cg (( s ), ( »jeù ), `¡¾’ (reject)))) \ 1499 : `__¡rc¥n_g (( s ), ( »jeù )))) ) 1501 __STRING_INLINE size_t __¡rc¥n_c1 ( __cÚ¡ * __s ,  __»jeù ); 1503 #iâdeà _FORCE_INLINES 1504 __STRING_INLINE size_t 1505 $__¡rc¥n_c1 ( __cÚ¡ * __s ,  __»jeù ) 1507  __d0 ; 1508 * __»s ; 1509 __asm__ __vÞ©že__ 1518 : "ô" ( __»s ), "=&a" ( __d0 ) 1519 : "0" ( __s ), "1" ( __»jeù ), 1520 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1522  ( __»s - 1è- __s ; 1523 } } 1526 __STRING_INLINE size_t __¡rc¥n_cg ( __cÚ¡ * __s , __cÚ¡  __»jeù [], 1527 size_t __»jeù_Ën ); 1529 __STRING_INLINE size_t 1530 $__¡rc¥n_cg ( __cÚ¡ * __s , __cÚ¡  __»jeù [], size_t __»jeù_Ën ) 1532  __d0 , __d1 , __d2 ; 1533  __cÚ¡ * __»s ; 1534 __asm__ __vÞ©že__ 1545 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1546 : "0" ( __s ), "d" ( __»jeù ), "g" ( __»jeù_Ën ) 1548  ( __»s - 1è- __s ; 1549 } } 1551 __STRING_INLINE size_t __¡rc¥n_g ( __cÚ¡ * __s , __cÚ¡ * __»jeù ); 1552 #ifdeà __PIC__ 1554 __STRING_INLINE size_t 1555 $__¡rc¥n_g ( __cÚ¡ * __s , __cÚ¡ * __»jeù ) 1557  __d0 , __d1 , __d2 ; 1558  __cÚ¡ * __»s ; 1559 __asm__ __vÞ©že__ 1576 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1577 : "r" ( __»jeù ), "0" ( __s ), "1" (0), "2" (0xffffffff) 1579  ( __»s - 1è- __s ; 1580 } } 1582 __STRING_INLINE size_t 1583 $__¡rc¥n_g ( __cÚ¡ * __s , __cÚ¡ * __»jeù ) 1585  __d0 , __d1 , __d2 , __d3 ; 1586  __cÚ¡ * __»s ; 1587 __asm__ __vÞ©že__ 1601 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ), "=&d" ( __d3 ) 1602 : "0" ( __s ), "1" (0), "2" (0xffffffff), "3" ( __»jeù ), "b" (__reject) 1605  ( __»s - 1è- __s ; 1606 } } 1612  #_HAVE_STRING_ARCH_¡r¥n 1 ) 1613  #¡r¥n ( s , acû± ) \ 1614 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( acû± ) &&  ((accept)[0]) == 1 \ 1615 ? (( acû± )[0] == '\0' \ 1616 ? ((è( s ), 0) \ 1617 : (( acû± )[1] == '\0' \ 1618 ? `__¡r¥n_c1 (( s ), ((( acû± )[0] << 8 ) & 0xff00)) \ 1619 : `__¡r¥n_cg (( s ), ( acû± ), `¡¾’ (accept)))) \ 1620 : `__¡r¥n_g (( s ), ( acû± )))) ) 1622 #iâdeà _FORCE_INLINES 1623 __STRING_INLINE size_t __¡r¥n_c1 ( __cÚ¡ * __s ,  __acû± ); 1625 __STRING_INLINE size_t 1626 $__¡r¥n_c1 ( __cÚ¡ * __s ,  __acû± ) 1628  __d0 ; 1629 * __»s ; 1631 __asm__ __vÞ©že__ 1637 : "ô" ( __»s ), "=&q" ( __d0 ) 1638 : "0" ( __s ), "1" ( __acû± ), 1639 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ) 1641  ( __»s - 1è- __s ; 1642 } } 1645 __STRING_INLINE size_t __¡r¥n_cg ( __cÚ¡ * __s , __cÚ¡  __acû± [], 1646 size_t __acû±_Ën ); 1648 __STRING_INLINE size_t 1649 $__¡r¥n_cg ( __cÚ¡ * __s , __cÚ¡  __acû± [], size_t __acû±_Ën ) 1651  __d0 , __d1 , __d2 ; 1652  __cÚ¡ * __»s ; 1653 __asm__ __vÞ©že__ 1664 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1665 : "0" ( __s ), "g" ( __acû± ), "g" ( __acû±_Ën ), 1668 "m" ( *(¡ruù {  __x [0xfffffff]; } *) __s ), 1669 "m" ( *(¡ruù { __ex‹nsiÚ__  __x [ __acû±_Ën ]; } *) __acû± ) 1671  ( __»s - 1è- __s ; 1672 } } 1674 __STRING_INLINE size_t __¡r¥n_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ); 1675 #ifdeà __PIC__ 1677 __STRING_INLINE size_t 1678 $__¡r¥n_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 1680  __d0 , __d1 , __d2 ; 1681  __cÚ¡ * __»s ; 1682 __asm__ __vÞ©že__ 1698 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1699 : "d" ( __acû± ), "0" ( __s ), "1" (0), "2" (0xffffffff), "3" (__accept) 1701  ( __»s - 1è- __s ; 1702 } } 1704 __STRING_INLINE size_t 1705 $__¡r¥n_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 1707  __d0 , __d1 , __d2 , __d3 ; 1708  __cÚ¡ * __»s ; 1709 __asm__ __vÞ©že__ 1723 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ), "=&d" ( __d3 ) 1724 : "0" ( __s ), "1" (0), "2" (0xffffffff), "3" ( __acû± ), "b" (__accept) 1726  ( __»s - 1è- __s ; 1727 } } 1732  #_HAVE_STRING_ARCH_¡½brk 1 ) 1733  #¡½brk ( s , acû± ) \ 1734 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( acû± ) &&  ((accept)[0]) == 1 \ 1735 ? (( acû± )[0] == '\0' \ 1736 ? ((è( s ), (*) 0) \ 1737 : (( acû± )[1] == '\0' \ 1738 ? `¡rchr (( s ), ( acû± )[0]) \ 1739 : `__¡½brk_cg (( s ), ( acû± ), `¡¾’ (accept)))) \ 1740 : `__¡½brk_g (( s ), ( acû± )))) ) 1742 __STRING_INLINE * __¡½brk_cg ( __cÚ¡ * __s , __cÚ¡  __acû± [], 1743 size_t __acû±_Ën ); 1745 __STRING_INLINE * 1746 $__¡½brk_cg ( __cÚ¡ * __s , __cÚ¡  __acû± [], size_t __acû±_Ën ) 1748  __d0 , __d1 , __d2 ; 1749 * __»s ; 1750 __asm__ __vÞ©že__ 1765 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1766 : "0" ( __s ), "d" ( __acû± ), "g" ( __acû±_Ën ) 1768  __»s ; 1769 } } 1771 __STRING_INLINE * __¡½brk_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ); 1772 #ifdeà __PIC__ 1774 __STRING_INLINE * 1775 $__¡½brk_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 1777  __d0 , __d1 , __d2 ; 1778 * __»s ; 1779 __asm__ __vÞ©že__ 1800 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&D" ( __d2 ) 1801 : "d" ( __acû± ), "0" ( __s ), "1" (0), "2" (0xffffffff) 1803  __»s ; 1804 } } 1806 __STRING_INLINE * 1807 $__¡½brk_g ( __cÚ¡ * __s , __cÚ¡ * __acû± ) 1809  __d0 , __d1 , __d2 , __d3 ; 1810 * __»s ; 1811 __asm__ __vÞ©že__ 1830 : "=S" ( __»s ), "=&a" ( __d0 ), "=&c" ( __d1 ), "=&d" ( __d2 ), "=&D" ( __d3 ) 1831 : "0" ( __s ), "1" (0), "2" (0xffffffff), "b" ( __acû± ) 1833  __»s ; 1834 } } 1839  #_HAVE_STRING_ARCH_¡r¡r 1 ) 1840  #¡r¡r ( hay¡ack , ÃedË ) \ 1841 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ÃedË ) &&  ((needle)[0]) == 1 \ 1842 ? (( ÃedË )[0] == '\0' \ 1843 ? ( hay¡ack ) \ 1844 : (( ÃedË )[1] == '\0' \ 1845 ? `¡rchr (( hay¡ack ), ( ÃedË )[0]) \ 1846 : `__¡r¡r_cg (( hay¡ack ), ( ÃedË ), \ 1847 `¡¾’ ( ÃedË )))) \ 1848 : `__¡r¡r_g (( hay¡ack ), ( ÃedË )))) ) 1852 __STRING_INLINE * __¡r¡r_cg ( __cÚ¡ * __hay¡ack , __cÚ¡  __ÃedË [], 1853 size_t __ÃedË_Ën ); 1855 __STRING_INLINE * 1856 $__¡r¡r_cg ( __cÚ¡ * __hay¡ack , __cÚ¡  __ÃedË [], 1857 size_t __ÃedË_Ën ) 1859  __d0 , __d1 , __d2 ; 1860 * __»s ; 1861 __asm__ __vÞ©že__ 1874 : "=&a" ( __»s ), "=&S" ( __d0 ), "=&D" ( __d1 ), "=&c" ( __d2 ) 1875 : "g" ( __ÃedË_Ën ), "1" ( __hay¡ack ), "d" ( __ÃedË ) 1877  __»s ; 1878 } } 1880 __STRING_INLINE * __¡r¡r_g ( __cÚ¡ * __hay¡ack , __cÚ¡ * __ÃedË ); 1881 #ifdeà __PIC__ 1883 __STRING_INLINE * 1884 $__¡r¡r_g ( __cÚ¡ * __hay¡ack , __cÚ¡ * __ÃedË ) 1886  __d0 , __d1 , __d2 ; 1887 * __»s ; 1888 __asm__ __vÞ©že__ 1907 : "=&a" ( __»s ), "=&c" ( __d0 ), "=&S" ( __d1 ), "=&D" ( __d2 ) 1908 : "0" (0), "1" (0xffffffff), "2" ( __hay¡ack ), "3" ( __ÃedË ), 1909 "d" ( __ÃedË ) 1911  __»s ; 1912 } } 1914 __STRING_INLINE * 1915 $__¡r¡r_g ( __cÚ¡ * __hay¡ack , __cÚ¡ * __ÃedË ) 1917  __d0 , __d1 , __d2 , __d3 ; 1918 * __»s ; 1919 __asm__ __vÞ©že__ 1936 : "=&a" ( __»s ), "=&c" ( __d0 ), "=&S" ( __d1 ), "=&D" ( __d2 ), "=&d" ( __d3 ) 1937 : "0" (0), "1" (0xffffffff), "2" ( __hay¡ack ), "3" ( __ÃedË ), 1938 "b" ( __ÃedË ) 1940  __»s ; 1941 } } 1947 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 1948 #ifdeà __i686__ 1949  #_HAVE_STRING_ARCH_ffs 1 ) 1950  #ffs ( wÜd è( `__bužtš_cÚ¡ªt_p (word) \ 1951 ? `__bužtš_ffs ( wÜd ) \ 1952 : ({  __út , __tmp ; \ 1953 __asm__ __vÞ©že__ \ 1956 : "=&r" ( __út ), "ô" ( __tmp ) \ 1957 : "rm" ( wÜd ), "1" (-1)); \ 1958 __út + 1; })) ) 1960 #iâdeà ff¦ 1961  #ff¦ ( wÜd è `ffs (wÜd) ) 1966 #iâdeà _FORCE_INLINES 1967 #undeà __STRING_INLINE @/usr/include/bits/string2.h 21 #iâdeà _STRING_H 25 #ià! defšed __NO_STRING_INLINES && !defšed __BOUNDED_POINTERS__ 42 #iâdeà __STRING_INLINE 43 #ifdeà __ýlu¥lus 44  #__STRING_INLINE šlše ) 46  #__STRING_INLINE __šlše ) 50 #ià _STRING_ARCH_uÇligÃd 52  ~<’dŸn.h > 53  ~ 55 #ià __BYTE_ORDER =ð __LITTLE_ENDIAN 56  #__STRING2_SMALL_GET16 ( ¤c , idx ) \ 57 ((( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 1] << 8 \ 58 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx ]) ) 59  #__STRING2_SMALL_GET32 ( ¤c , idx ) \ 60 ((((( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 3] << 8 \ 61 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 2]) << 8 \ 62 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 1]) << 8 \ 63 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx ]) ) 65  #__STRING2_SMALL_GET16 ( ¤c , idx ) \ 66 ((( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx ] << 8 \ 67 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 1]) ) 68  #__STRING2_SMALL_GET32 ( ¤c , idx ) \ 69 ((((( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx ] << 8 \ 70 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 1]) << 8 \ 71 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 2]) << 8 \ 72 | (( __cÚ¡ *è(__cÚ¡ *è( ¤c ))[ idx + 3]) ) 77  #__STRING2_COPY_TYPE ( N ) \ 78 ¡ruù {  __¬r [ N ]; } \ 79 t__©Œibu‹__ (( t__·cked__ )è t__STRING2_COPY_ARR ## tN ) 80 t__STRING2_COPY_TYPE (2); 81 __STRING2_COPY_TYPE (3); 82 __STRING2_COPY_TYPE (4); 83 __STRING2_COPY_TYPE (5); 84 __STRING2_COPY_TYPE (6); 85 __STRING2_COPY_TYPE (7); 86 __STRING2_COPY_TYPE (8); 87 #undeà __STRING2_COPY_TYPE 93  #__¡ršg2_1b±r_p ( __x ) \ 94 (( size_t )(cÚ¡ *)(( __x è+ 1è- (size_t)(cÚ¡ *)(__xè=ð1) ) 97 #ià! defšed _HAVE_STRING_ARCH_mem£t 98 #ià! __GNUC_PREREQ (3, 0) 99 #ià _STRING_ARCH_uÇligÃd 100  #mem£t ( s , c , n ) \ 101 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( n ) && (n) <= 16 \ 102 ? (( n ) == 1 \ 103 ? `__mem£t_1 ( s , c ) \ 104 : `__mem£t_gc ( s , c , n )) \ 105 : ( `__bužtš_cÚ¡ªt_p ( c ) && (c) == '\0' \ 106 ? ({ * __s = ( s ); `__bz”o (__s, n ); __s; }) \ 107 : `mem£t ( s , c , n )))) ) 109  #__mem£t_1 ( s , c è({ * __s = (s); \ 110 *(( __ušt8_t *è __s èð(__ušt8_tè( c ); __s; }) ) 112  #__mem£t_gc ( s , c , n ) \ 113 ({ * __s = ( s ); \ 115  __ui ; \ 116  __usi ; \ 117  __uc ; \ 118 } * __u = __s ; \ 119 __ušt8_t __c = (__ušt8_tè( c ); \ 122 (è( n )) \ 125 __u -> __ui = __c * 0x01010101; \ 126 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 128 __u -> __ui = __c * 0x01010101; \ 129 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 131 __u -> __ui = __c * 0x01010101; \ 132 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 134 __u -> __usi = (è __c * 0x0101; \ 135 __u = `__ex‹nsiÚ__ ((*) __u + 2); \ 136 __u -> __uc = (è __c ; \ 140 __u -> __ui = __c * 0x01010101; \ 141 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 143 __u -> __ui = __c * 0x01010101; \ 144 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 146 __u -> __ui = __c * 0x01010101; \ 147 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 149 __u -> __usi = (è __c * 0x0101; \ 153 __u -> __ui = __c * 0x01010101; \ 154 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 156 __u -> __ui = __c * 0x01010101; \ 157 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 159 __u -> __ui = __c * 0x01010101; \ 160 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 162 __u -> __uc = (è __c ; \ 166 __u -> __ui = __c * 0x01010101; \ 167 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 169 __u -> __ui = __c * 0x01010101; \ 170 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 172 __u -> __ui = __c * 0x01010101; \ 173 __u = `__ex‹nsiÚ__ ((*) __u + 4); \ 175 __u -> __ui = __c * 0x01010101; \ 180 __s ; }) ) 182  #mem£t ( s , c , n ) \ 183 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) && (c) == '\0' \ 184 ? ({ * __s = ( s ); `__bz”o (__s, n ); __s; }) \ 185 : `mem£t ( s , c , n ))) ) 194 #ià __GNUC_PREREQ (2, 91) 195  #__bz”o ( s , n è `__bužtš_mem£t (s, '\0',‚) ) 203 #ifdeà __USE_GNU 204 #ià! defšed _HAVE_STRING_ARCH_mempýy || defšed _FORCE_INLINES 205 #iâdeà _HAVE_STRING_ARCH_mempýy 206 #ià __GNUC_PREREQ (3, 4) 207  #__mempýy ( de¡ , ¤c , n è `__bužtš_mempýy (de¡, src,‚) ) 208 #–ià __GNUC_PREREQ (3, 0) 209  #__mempýy ( de¡ , ¤c , n ) \ 210 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 211 && `__¡ršg2_1b±r_p ( ¤c è&& n <= 8 \ 212 ? `__bužtš_memýy ( de¡ , ¤c , n ) + (n) \ 213 : `__mempýy ( de¡ , ¤c , n ))) ) 215  #__mempýy ( de¡ , ¤c , n ) \ 216 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 217 && `__¡ršg2_1b±r_p ( ¤c è&& n <= 8 \ 218 ? `__mempýy_sm®l ( de¡ , `__mempýy_¬gs ( ¤c ), n ) \ 219 : `__mempýy ( de¡ , ¤c , n ))) ) 223  #mempýy ( de¡ , ¤c , n è `__mempýy (de¡, src,‚) ) 226 #ià! __GNUC_PREREQ (3, 0è|| defšed _FORCE_INLINES 227 #ià _STRING_ARCH_uÇligÃd 228 #iâdeà _FORCE_INLINES 229  #__mempýy_¬gs ( ¤c ) \ 230 (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[2], \ 231 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[6], \ 232 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 0), \ 233 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 4), \ 234 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 0), \ 235 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 4) ) 237 __STRING_INLINE * __mempýy_sm®l (*, , , , , 238 __ušt16_t , __ušt16_t, __ušt32_t , 239 __ušt32_t , size_t ); 240 __STRING_INLINE * 241 $__mempýy_sm®l (* __de¡1 , 242  __¤c0_1 ,  __¤c2_1 ,  __¤c4_1 ,  __¤c6_1 , 243 __ušt16_t __¤c0_2 , __ušt16_ˆ __¤c4_2 , 244 __ušt32_t __¤c0_4 , __ušt32_ˆ __¤c4_4 , 245 size_t __¤þ’ ) 248 __ušt32_t __ui ; 249 __ušt16_t __usi ; 250  __uc ; 251  __c ; 252 } * __u = __de¡1 ; 253 (è __¤þ’ ) 256 __u -> __c = __¤c0_1 ; 257 __u = `__ex‹nsiÚ__ ((*) __u + 1); 260 __u -> __usi = __¤c0_2 ; 261 __u = `__ex‹nsiÚ__ ((*) __u + 2); 264 __u -> __usi = __¤c0_2 ; 265 __u = `__ex‹nsiÚ__ ((*) __u + 2); 266 __u -> __c = __¤c2_1 ; 267 __u = `__ex‹nsiÚ__ ((*) __u + 1); 270 __u -> __ui = __¤c0_4 ; 271 __u = `__ex‹nsiÚ__ ((*) __u + 4); 274 __u -> __ui = __¤c0_4 ; 275 __u = `__ex‹nsiÚ__ ((*) __u + 4); 276 __u -> __c = __¤c4_1 ; 277 __u = `__ex‹nsiÚ__ ((*) __u + 1); 280 __u -> __ui = __¤c0_4 ; 281 __u = `__ex‹nsiÚ__ ((*) __u + 4); 282 __u -> __usi = __¤c4_2 ; 283 __u = `__ex‹nsiÚ__ ((*) __u + 2); 286 __u -> __ui = __¤c0_4 ; 287 __u = `__ex‹nsiÚ__ ((*) __u + 4); 288 __u -> __usi = __¤c4_2 ; 289 __u = `__ex‹nsiÚ__ ((*) __u + 2); 290 __u -> __c = __¤c6_1 ; 291 __u = `__ex‹nsiÚ__ ((*) __u + 1); 294 __u -> __ui = __¤c0_4 ; 295 __u = `__ex‹nsiÚ__ ((*) __u + 4); 296 __u -> __ui = __¤c4_4 ; 297 __u = `__ex‹nsiÚ__ ((*) __u + 4); 300  (*è __u ; 301 } } 303 #iâdeà _FORCE_INLINES 304  #__mempýy_¬gs ( ¤c ) \ 305 (( __cÚ¡ *è( ¤c ))[0], \ 306 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR2 ) \ 307 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1] } }), \ 308 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR3 ) \ 309 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 310 (( __cÚ¡ *è( ¤c ))[2] } }), \ 311 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR4 ) \ 312 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 313 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3] } }), \ 314 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR5 ) \ 315 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 316 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 317 (( __cÚ¡ *è( ¤c ))[4] } }), \ 318 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR6 ) \ 319 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 320 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 321 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5] } }), \ 322 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR7 ) \ 323 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 324 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 325 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 326 (( __cÚ¡ *è( ¤c ))[6] } }), \ 327 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR8 ) \ 328 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 329 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 330 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 331 (( __cÚ¡ *è( ¤c ))[6], ((__cÚ¡ *è(¤c))[7] } }) ) 333 __STRING_INLINE * __mempýy_sm®l (*, , __STRING2_COPY_ARR2 , 334 __STRING2_COPY_ARR3 , 335 __STRING2_COPY_ARR4 , 336 __STRING2_COPY_ARR5 , 337 __STRING2_COPY_ARR6 , 338 __STRING2_COPY_ARR7 , 339 __STRING2_COPY_ARR8 , size_t ); 340 __STRING_INLINE * 341 $__mempýy_sm®l (* __de¡ ,  __¤c1 , 342 __STRING2_COPY_ARR2 __¤c2 , __STRING2_COPY_ARR3 __¤c3 , 343 __STRING2_COPY_ARR4 __¤c4 , __STRING2_COPY_ARR5 __¤c5 , 344 __STRING2_COPY_ARR6 __¤c6 , __STRING2_COPY_ARR7 __¤c7 , 345 __STRING2_COPY_ARR8 __¤c8 , size_t __¤þ’ ) 348  __c ; 349 __STRING2_COPY_ARR2 __sÿ2 ; 350 __STRING2_COPY_ARR3 __sÿ3 ; 351 __STRING2_COPY_ARR4 __sÿ4 ; 352 __STRING2_COPY_ARR5 __sÿ5 ; 353 __STRING2_COPY_ARR6 __sÿ6 ; 354 __STRING2_COPY_ARR7 __sÿ7 ; 355 __STRING2_COPY_ARR8 __sÿ8 ; 356 } * __u = __de¡ ; 357 (è __¤þ’ ) 360 __u -> __c = __¤c1 ; 363 __ex‹nsiÚ__ __u -> __sÿ2 = __¤c2 ; 366 __ex‹nsiÚ__ __u -> __sÿ3 = __¤c3 ; 369 __ex‹nsiÚ__ __u -> __sÿ4 = __¤c4 ; 372 __ex‹nsiÚ__ __u -> __sÿ5 = __¤c5 ; 375 __ex‹nsiÚ__ __u -> __sÿ6 = __¤c6 ; 378 __ex‹nsiÚ__ __u -> __sÿ7 = __¤c7 ; 381 __ex‹nsiÚ__ __u -> __sÿ8 = __¤c8 ; 384  `__ex‹nsiÚ__ ((*è __u + __¤þ’ ); 385 } } 393 #iâdeà _HAVE_STRING_ARCH_¡rchr 394 * __¿wmemchr (cÚ¡ * __s ,  __c ); 395 #ià __GNUC_PREREQ (3, 2) 396  #¡rchr ( s , c ) \ 397 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c è&& !__bužtš_cÚ¡ªt_°( s ) \ 398 && ( c ) == '\0' \ 399 ? (*è `__¿wmemchr ( s , c ) \ 400 : `__bužtš_¡rchr ( s , c ))) ) 402  #¡rchr ( s , c ) \ 403 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( c ) && (c) == '\0' \ 404 ? (*è `__¿wmemchr ( s , c ) \ 405 : `¡rchr ( s , c ))) ) 411 #ià(! defšed _HAVE_STRING_ARCH_¡rýy && ! __GNUC_PREREQ (3, 0)) \ 412 || defšed g_FORCE_INLINES 413 #ià! defšed _HAVE_STRING_ARCH_¡rýy && ! __GNUC_PREREQ (3, 0) 414  #¡rýy ( de¡ , ¤c ) \ 415 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 416 ? ( `__¡ršg2_1b±r_p ( ¤c è&& `¡¾’ (src) + 1 <= 8 \ 417 ? `__¡rýy_sm®l ( de¡ , `__¡rýy_¬gs ( ¤c ), \ 418 `¡¾’ ( ¤c ) + 1) \ 419 : (*è `memýy ( de¡ , ¤c , `¡¾’ (src) + 1)) \ 420 : `¡rýy ( de¡ , ¤c ))) ) 423 #ià _STRING_ARCH_uÇligÃd 424 #iâdeà _FORCE_INLINES 425  #__¡rýy_¬gs ( ¤c ) \ 426 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 0), \ 427 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 4), \ 428 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 0), \ 429 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 4) ) 431 __STRING_INLINE * __¡rýy_sm®l (*, __ušt16_t , __uint16_t, 432 __ušt32_t , __ušt32_t, size_t ); 433 __STRING_INLINE * 434 $__¡rýy_sm®l (* __de¡ , 435 __ušt16_t __¤c0_2 , __ušt16_ˆ __¤c4_2 , 436 __ušt32_t __¤c0_4 , __ušt32_ˆ __¤c4_4 , 437 size_t __¤þ’ ) 440 __ušt32_t __ui ; 441 __ušt16_t __usi ; 442  __uc ; 443 } * __u = (*è __de¡ ; 444 (è __¤þ’ ) 447 __u -> __uc = '\0'; 450 __u -> __usi = __¤c0_2 ; 453 __u -> __usi = __¤c0_2 ; 454 __u = `__ex‹nsiÚ__ ((*) __u + 2); 455 __u -> __uc = '\0'; 458 __u -> __ui = __¤c0_4 ; 461 __u -> __ui = __¤c0_4 ; 462 __u = `__ex‹nsiÚ__ ((*) __u + 4); 463 __u -> __uc = '\0'; 466 __u -> __ui = __¤c0_4 ; 467 __u = `__ex‹nsiÚ__ ((*) __u + 4); 468 __u -> __usi = __¤c4_2 ; 471 __u -> __ui = __¤c0_4 ; 472 __u = `__ex‹nsiÚ__ ((*) __u + 4); 473 __u -> __usi = __¤c4_2 ; 474 __u = `__ex‹nsiÚ__ ((*) __u + 2); 475 __u -> __uc = '\0'; 478 __u -> __ui = __¤c0_4 ; 479 __u = `__ex‹nsiÚ__ ((*) __u + 4); 480 __u -> __ui = __¤c4_4 ; 483  __de¡ ; 484 } } 486 #iâdeà _FORCE_INLINES 487  #__¡rýy_¬gs ( ¤c ) \ 488 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR2 ) \ 489 { { (( __cÚ¡ *è( ¤c ))[0], '\0' } }), \ 490 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR3 ) \ 491 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 493 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR4 ) \ 494 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 495 (( __cÚ¡ *è( ¤c ))[2], '\0' } }), \ 496 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR5 ) \ 497 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 498 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 500 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR6 ) \ 501 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 502 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 503 (( __cÚ¡ *è( ¤c ))[4], '\0' } }), \ 504 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR7 ) \ 505 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 506 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 507 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 509 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR8 ) \ 510 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 511 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 512 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 513 (( __cÚ¡ *è( ¤c ))[6], '\0' } }) ) 515 __STRING_INLINE * __¡rýy_sm®l (*, __STRING2_COPY_ARR2 , 516 __STRING2_COPY_ARR3 , 517 __STRING2_COPY_ARR4 , 518 __STRING2_COPY_ARR5 , 519 __STRING2_COPY_ARR6 , 520 __STRING2_COPY_ARR7 , 521 __STRING2_COPY_ARR8 , size_t ); 522 __STRING_INLINE * 523 $__¡rýy_sm®l (* __de¡ , 524 __STRING2_COPY_ARR2 __¤c2 , __STRING2_COPY_ARR3 __¤c3 , 525 __STRING2_COPY_ARR4 __¤c4 , __STRING2_COPY_ARR5 __¤c5 , 526 __STRING2_COPY_ARR6 __¤c6 , __STRING2_COPY_ARR7 __¤c7 , 527 __STRING2_COPY_ARR8 __¤c8 , size_t __¤þ’ ) 530  __c ; 531 __STRING2_COPY_ARR2 __sÿ2 ; 532 __STRING2_COPY_ARR3 __sÿ3 ; 533 __STRING2_COPY_ARR4 __sÿ4 ; 534 __STRING2_COPY_ARR5 __sÿ5 ; 535 __STRING2_COPY_ARR6 __sÿ6 ; 536 __STRING2_COPY_ARR7 __sÿ7 ; 537 __STRING2_COPY_ARR8 __sÿ8 ; 538 } * __u = (*è __de¡ ; 539 (è __¤þ’ ) 542 __u -> __c = '\0'; 545 __ex‹nsiÚ__ __u -> __sÿ2 = __¤c2 ; 548 __ex‹nsiÚ__ __u -> __sÿ3 = __¤c3 ; 551 __ex‹nsiÚ__ __u -> __sÿ4 = __¤c4 ; 554 __ex‹nsiÚ__ __u -> __sÿ5 = __¤c5 ; 557 __ex‹nsiÚ__ __u -> __sÿ6 = __¤c6 ; 560 __ex‹nsiÚ__ __u -> __sÿ7 = __¤c7 ; 563 __ex‹nsiÚ__ __u -> __sÿ8 = __¤c8 ; 566  __de¡ ; 567 } } 573 #ifdeà __USE_GNU 574 #ià! defšed _HAVE_STRING_ARCH_¡pýy || defšed _FORCE_INLINES 575 #iâdeà _HAVE_STRING_ARCH_¡pýy 576 #ià __GNUC_PREREQ (3, 4) 577  #__¡pýy ( de¡ , ¤c è `__bužtš_¡pýy (de¡, src) ) 578 #–ià __GNUC_PREREQ (3, 0) 579  #__¡pýy ( de¡ , ¤c ) \ 580 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 581 ? ( `__¡ršg2_1b±r_p ( ¤c è&& `¡¾’ (src) + 1 <= 8 \ 582 ? `__bužtš_¡rýy ( de¡ , ¤c è+ `¡¾’ (src) \ 583 : ((*è( __mempýy è( de¡ , ¤c , `¡¾’ (src) + 1) \ 585 : `__¡pýy ( de¡ , ¤c ))) ) 587  #__¡pýy ( de¡ , ¤c ) \ 588 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c ) \ 589 ? ( `__¡ršg2_1b±r_p ( ¤c è&& `¡¾’ (src) + 1 <= 8 \ 590 ? `__¡pýy_sm®l ( de¡ , `__¡pýy_¬gs ( ¤c ), \ 591 `¡¾’ ( ¤c ) + 1) \ 592 : ((*è( __mempýy è( de¡ , ¤c , `¡¾’ (src) + 1) \ 594 : `__¡pýy ( de¡ , ¤c ))) ) 598  #¡pýy ( de¡ , ¤c è `__¡pýy (de¡, src) ) 601 #ià! __GNUC_PREREQ (3, 0è|| defšed _FORCE_INLINES 602 #ià _STRING_ARCH_uÇligÃd 603 #iâdeà _FORCE_INLINES 604  #__¡pýy_¬gs ( ¤c ) \ 605 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 0), \ 606 __ex‹nsiÚ__ `__STRING2_SMALL_GET16 ( ¤c , 4), \ 607 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 0), \ 608 __ex‹nsiÚ__ `__STRING2_SMALL_GET32 ( ¤c , 4) ) 610 __STRING_INLINE * __¡pýy_sm®l (*, __ušt16_t , __uint16_t, 611 __ušt32_t , __ušt32_t, size_t ); 612 __STRING_INLINE * 613 $__¡pýy_sm®l (* __de¡ , 614 __ušt16_t __¤c0_2 , __ušt16_ˆ __¤c4_2 , 615 __ušt32_t __¤c0_4 , __ušt32_ˆ __¤c4_4 , 616 size_t __¤þ’ ) 619  __ui ; 620  __usi ; 621  __uc ; 622  __c ; 623 } * __u = (*è __de¡ ; 624 (è __¤þ’ ) 627 __u -> __uc = '\0'; 630 __u -> __usi = __¤c0_2 ; 631 __u = `__ex‹nsiÚ__ ((*) __u + 1); 634 __u -> __usi = __¤c0_2 ; 635 __u = `__ex‹nsiÚ__ ((*) __u + 2); 636 __u -> __uc = '\0'; 639 __u -> __ui = __¤c0_4 ; 640 __u = `__ex‹nsiÚ__ ((*) __u + 3); 643 __u -> __ui = __¤c0_4 ; 644 __u = `__ex‹nsiÚ__ ((*) __u + 4); 645 __u -> __uc = '\0'; 648 __u -> __ui = __¤c0_4 ; 649 __u = `__ex‹nsiÚ__ ((*) __u + 4); 650 __u -> __usi = __¤c4_2 ; 651 __u = `__ex‹nsiÚ__ ((*) __u + 1); 654 __u -> __ui = __¤c0_4 ; 655 __u = `__ex‹nsiÚ__ ((*) __u + 4); 656 __u -> __usi = __¤c4_2 ; 657 __u = `__ex‹nsiÚ__ ((*) __u + 2); 658 __u -> __uc = '\0'; 661 __u -> __ui = __¤c0_4 ; 662 __u = `__ex‹nsiÚ__ ((*) __u + 4); 663 __u -> __ui = __¤c4_4 ; 664 __u = `__ex‹nsiÚ__ ((*) __u + 3); 667  & __u -> __c ; 668 } } 670 #iâdeà _FORCE_INLINES 671  #__¡pýy_¬gs ( ¤c ) \ 672 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR2 ) \ 673 { { (( __cÚ¡ *è( ¤c ))[0], '\0' } }), \ 674 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR3 ) \ 675 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 677 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR4 ) \ 678 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 679 (( __cÚ¡ *è( ¤c ))[2], '\0' } }), \ 680 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR5 ) \ 681 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 682 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 684 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR6 ) \ 685 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 686 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 687 (( __cÚ¡ *è( ¤c ))[4], '\0' } }), \ 688 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR7 ) \ 689 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 690 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 691 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 693 `__ex‹nsiÚ__ (( __STRING2_COPY_ARR8 ) \ 694 { { (( __cÚ¡ *è( ¤c ))[0], ((__const *) (src))[1], \ 695 (( __cÚ¡ *è( ¤c ))[2], ((__const *) (src))[3], \ 696 (( __cÚ¡ *è( ¤c ))[4], ((__const *) (src))[5], \ 697 (( __cÚ¡ *è( ¤c ))[6], '\0' } }) ) 699 __STRING_INLINE * __¡pýy_sm®l (*, __STRING2_COPY_ARR2 , 700 __STRING2_COPY_ARR3 , 701 __STRING2_COPY_ARR4 , 702 __STRING2_COPY_ARR5 , 703 __STRING2_COPY_ARR6 , 704 __STRING2_COPY_ARR7 , 705 __STRING2_COPY_ARR8 , size_t ); 706 __STRING_INLINE * 707 $__¡pýy_sm®l (* __de¡ , 708 __STRING2_COPY_ARR2 __¤c2 , __STRING2_COPY_ARR3 __¤c3 , 709 __STRING2_COPY_ARR4 __¤c4 , __STRING2_COPY_ARR5 __¤c5 , 710 __STRING2_COPY_ARR6 __¤c6 , __STRING2_COPY_ARR7 __¤c7 , 711 __STRING2_COPY_ARR8 __¤c8 , size_t __¤þ’ ) 714  __c ; 715 __STRING2_COPY_ARR2 __sÿ2 ; 716 __STRING2_COPY_ARR3 __sÿ3 ; 717 __STRING2_COPY_ARR4 __sÿ4 ; 718 __STRING2_COPY_ARR5 __sÿ5 ; 719 __STRING2_COPY_ARR6 __sÿ6 ; 720 __STRING2_COPY_ARR7 __sÿ7 ; 721 __STRING2_COPY_ARR8 __sÿ8 ; 722 } * __u = (*è __de¡ ; 723 (è __¤þ’ ) 726 __u -> __c = '\0'; 729 __ex‹nsiÚ__ __u -> __sÿ2 = __¤c2 ; 732 __ex‹nsiÚ__ __u -> __sÿ3 = __¤c3 ; 735 __ex‹nsiÚ__ __u -> __sÿ4 = __¤c4 ; 738 __ex‹nsiÚ__ __u -> __sÿ5 = __¤c5 ; 741 __ex‹nsiÚ__ __u -> __sÿ6 = __¤c6 ; 744 __ex‹nsiÚ__ __u -> __sÿ7 = __¤c7 ; 747 __ex‹nsiÚ__ __u -> __sÿ8 = __¤c8 ; 750  __de¡ + __¤þ’ - 1; 751 } } 759 #iâdeà _HAVE_STRING_ARCH_¡ºýy 760 #ià __GNUC_PREREQ (3, 2) 761  #¡ºýy ( de¡ , ¤c , n è `__bužtš_¡ºýy (de¡, src,‚) ) 763  #¡ºýy ( de¡ , ¤c , n ) \ 764 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 765 ? ( `¡¾’ ( ¤c è+ 1 >ð(( size_t è( n )) \ 766 ? (*è `memýy ( de¡ , ¤c , n ) \ 767 : `¡ºýy ( de¡ , ¤c , n )) \ 768 : `¡ºýy ( de¡ , ¤c , n ))) ) 774 #iâdeà _HAVE_STRING_ARCH_¡ºÿt 775 #ifdeà _USE_STRING_ARCH_¡rchr 776  #¡ºÿt ( de¡ , ¤c , n ) \ 777 ( `__ex‹nsiÚ__ ({ * __de¡ = ( de¡ ); \ 778 `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 779 ? ( `¡¾’ ( ¤c è< (( size_t è( n )) \ 780 ? `¡rÿt ( __de¡ , ¤c ) \ 781 : (*((*è `__mempýy ( `¡rchr ( __de¡ , '\0'), \ 782 ¤c , n )èð'\0', __de¡ )) \ 783 : `¡ºÿt ( de¡ , ¤c , n ); })) ) 784 #–ià __GNUC_PREREQ (3, 2) 785  #¡ºÿt ( de¡ , ¤c , n è `__bužtš_¡ºÿt (de¡, src,‚) ) 787  #¡ºÿt ( de¡ , ¤c , n ) \ 788 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ¤c è&& __bužtš_cÚ¡ªt_°( n ) \ 789 ? ( `¡¾’ ( ¤c è< (( size_t è( n )) \ 790 ? `¡rÿt ( de¡ , ¤c ) \ 791 : `¡ºÿt ( de¡ , ¤c , n )) \ 792 : `¡ºÿt ( de¡ , ¤c , n ))) ) 798 #iâdeà _HAVE_STRING_ARCH_¡rcmp 799 #ià __GNUC_PREREQ (3, 2) 800  #¡rcmp ( s1 , s2 ) \ 801 __ex‹nsiÚ__ \ 802 ({ size_t __s1_Ën , __s2_Ën ; \ 803 ( `__bužtš_cÚ¡ªt_p ( s1 è&& __bužtš_cÚ¡ªt_°( s2 ) \ 804 && ( __s1_Ën = `¡¾’ ( s1 ), __s2_Ën = sŒËÀ( s2 ), \ 805 (! `__¡ršg2_1b±r_p ( s1 è|| __s1_Ën >= 4) \ 806 && (! `__¡ršg2_1b±r_p ( s2 è|| __s2_Ën >= 4)) \ 807 ? `__bužtš_¡rcmp ( s1 , s2 ) \ 808 : ( `__bužtš_cÚ¡ªt_p ( s1 è&& `__¡ršg2_1b±r_p (s1) \ 809 && ( __s1_Ën = `¡¾’ ( s1 ), __s1_len < 4) \ 810 ? ( `__bužtš_cÚ¡ªt_p ( s2 è&& `__¡ršg2_1b±r_p (s2) \ 811 ? `__bužtš_¡rcmp ( s1 , s2 ) \ 812 : `__¡rcmp_cg ( s1 , s2 , __s1_Ën )) \ 813 : ( `__bužtš_cÚ¡ªt_p ( s2 è&& `__¡ršg2_1b±r_p (s2) \ 814 && ( __s2_Ën = `¡¾’ ( s2 ), __s2_len < 4) \ 815 ? ( `__bužtš_cÚ¡ªt_p ( s1 è&& `__¡ršg2_1b±r_p (s1) \ 816 ? `__bužtš_¡rcmp ( s1 , s2 ) \ 817 : `__¡rcmp_gc ( s1 , s2 , __s2_Ën )) \ 818 : `__bužtš_¡rcmp ( s1 , s2 )))); }) ) 820  #¡rcmp ( s1 , s2 ) \ 821 __ex‹nsiÚ__ \ 822 ({ size_t __s1_Ën , __s2_Ën ; \ 823 ( `__bužtš_cÚ¡ªt_p ( s1 è&& __bužtš_cÚ¡ªt_°( s2 ) \ 824 && ( __s1_Ën = `¡¾’ ( s1 ), __s2_Ën = sŒËÀ( s2 ), \ 825 (! `__¡ršg2_1b±r_p ( s1 è|| __s1_Ën >= 4) \ 826 && (! `__¡ršg2_1b±r_p ( s2 è|| __s2_Ën >= 4)) \ 827 ? `memcmp (( __cÚ¡ *è( s1 ), (__cÚ¡ *è( s2 ), \ 828 ( __s1_Ën < __s2_Ën ? __s1_len : __s2_len) + 1) \ 829 : ( `__bužtš_cÚ¡ªt_p ( s1 è&& `__¡ršg2_1b±r_p (s1) \ 830 && ( __s1_Ën = `¡¾’ ( s1 ), __s1_len < 4) \ 831 ? ( `__bužtš_cÚ¡ªt_p ( s2 è&& `__¡ršg2_1b±r_p (s2) \ 832 ? `__¡rcmp_cc ( s1 , s2 , __s1_Ën ) \ 833 : `__¡rcmp_cg ( s1 , s2 , __s1_Ën )) \ 834 : ( `__bužtš_cÚ¡ªt_p ( s2 è&& `__¡ršg2_1b±r_p (s2) \ 835 && ( __s2_Ën = `¡¾’ ( s2 ), __s2_len < 4) \ 836 ? ( `__bužtš_cÚ¡ªt_p ( s1 è&& `__¡ršg2_1b±r_p (s1) \ 837 ? `__¡rcmp_cc ( s1 , s2 , __s2_Ën ) \ 838 : `__¡rcmp_gc ( s1 , s2 , __s2_Ën )) \ 839 : `¡rcmp ( s1 , s2 )))); }) ) 842  #__¡rcmp_cc ( s1 , s2 , l ) \ 843 ( `__ex‹nsiÚ__ ({  __»suÉ = \ 844 ((( __cÚ¡ *è(__cÚ¡ *è( s1 ))[0] \ 845 - (( __cÚ¡ *è(__cÚ¡ *)( s2 ))[0]);\ 846 ià( l > 0 && __»suÉ == 0) \ 848 __»suÉ = ((( __cÚ¡ *) \ 849 ( __cÚ¡ *è( s1 ))[1] \ 850 - (( __cÚ¡ *) \ 851 ( __cÚ¡ *è( s2 ))[1]); \ 852 ià( l > 1 && __»suÉ == 0) \ 854 __»suÉ = \ 855 ((( __cÚ¡ *) \ 856 ( __cÚ¡ *è( s1 ))[2] \ 857 - (( __cÚ¡ *) \ 858 ( __cÚ¡ *è( s2 ))[2]); \ 859 ià( l > 2 && __»suÉ == 0) \ 860 __»suÉ = \ 861 ((( __cÚ¡ *) \ 862 ( __cÚ¡ *è( s1 ))[3] \ 863 - (( __cÚ¡ *) \ 864 ( __cÚ¡ *è( s2 ))[3]); \ 867 __»suÉ ; })) ) 869  #__¡rcmp_cg ( s1 , s2 , l1 ) \ 870 ( `__ex‹nsiÚ__ ({ __cÚ¡ * __s2 = \ 871 ( __cÚ¡ *è(__cÚ¡ *è( s2 ); \ 872  __»suÉ = \ 873 ((( __cÚ¡ *è(__cÚ¡ *è( s1 ))[0] \ 874 - __s2 [0]); \ 875 ià( l1 > 0 && __»suÉ == 0) \ 877 __»suÉ = ((( __cÚ¡ *) \ 878 ( __cÚ¡ *è( s1 ))[1] - __s2 [1]); \ 879 ià( l1 > 1 && __»suÉ == 0) \ 881 __»suÉ = ((( __cÚ¡ *) \ 882 ( __cÚ¡ *è( s1 ))[2] - __s2 [2]);\ 883 ià( l1 > 2 && __»suÉ == 0) \ 884 __»suÉ = ((( __cÚ¡ *) \ 885 ( __cÚ¡ *è( s1 ))[3] \ 886 - __s2 [3]); \ 889 __»suÉ ; })) ) 891  #__¡rcmp_gc ( s1 , s2 , l2 ) \ 892 ( `__ex‹nsiÚ__ ({ __cÚ¡ * __s1 = \ 893 ( __cÚ¡ *è(__cÚ¡ *è( s1 ); \ 894  __»suÉ = \ 895 __s1 [0] - (( __cÚ¡ *) \ 896 ( __cÚ¡ *è( s2 ))[0]; \ 897 ià( l2 > 0 && __»suÉ == 0) \ 899 __»suÉ = ( __s1 [1] \ 900 - (( __cÚ¡ *) \ 901 ( __cÚ¡ *è( s2 ))[1]); \ 902 ià( l2 > 1 && __»suÉ == 0) \ 904 __»suÉ = \ 905 ( __s1 [2] - (( __cÚ¡ *) \ 906 ( __cÚ¡ *è( s2 ))[2]); \ 907 ià( l2 > 2 && __»suÉ == 0) \ 908 __»suÉ = \ 909 ( __s1 [3] \ 910 - (( __cÚ¡ *) \ 911 ( __cÚ¡ *è( s2 ))[3]); \ 914 __»suÉ ; })) ) 919 #iâdeà _HAVE_STRING_ARCH_¡ºcmp 920  #¡ºcmp ( s1 , s2 , n ) \ 921 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( n ) \ 922 && (( `__bužtš_cÚ¡ªt_p ( s1 ) \ 923 && `¡¾’ ( s1 è< (( size_t è( n ))) \ 924 || ( `__bužtš_cÚ¡ªt_p ( s2 ) \ 925 && `¡¾’ ( s2 è< (( size_t è( n )))) \ 926 ? `¡rcmp ( s1 , s2 è: `¡ºcmp (s1, s2, n ))) ) 932 #ià! defšed _HAVE_STRING_ARCH_¡rc¥n || defšed _FORCE_INLINES 933 #iâdeà _HAVE_STRING_ARCH_¡rc¥n 934 #ià __GNUC_PREREQ (3, 2) 935  #¡rc¥n ( s , »jeù ) \ 936 __ex‹nsiÚ__ \ 937 ({  __r0 , __r1 , __r2 ; \ 938 ( `__bužtš_cÚ¡ªt_p ( »jeù è&& `__¡ršg2_1b±r_p (reject) \ 939 ? (( `__bužtš_cÚ¡ªt_p ( s è&& `__¡ršg2_1b±r_p (s)) \ 940 ? `__bužtš_¡rc¥n ( s , »jeù ) \ 941 : (( __r0 = (( __cÚ¡ *è( »jeù ))[0], __r0 == '\0') \ 942 ? `¡¾’ ( s ) \ 943 : (( __r1 = (( __cÚ¡ *è( »jeù ))[1], __r1 == '\0') \ 944 ? `__¡rc¥n_c1 ( s , __r0 ) \ 945 : (( __r2 = (( __cÚ¡ *è( »jeù ))[2], __r2 == '\0') \ 946 ? `__¡rc¥n_c2 ( s , __r0 , __r1 ) \ 947 : ((( __cÚ¡ *è( »jeù ))[3] == '\0' \ 948 ? `__¡rc¥n_c3 ( s , __r0 , __r1 , __r2 ) \ 949 : `__bužtš_¡rc¥n ( s , »jeù )))))) \ 950 : `__bužtš_¡rc¥n ( s , »jeù )); }) ) 952  #¡rc¥n ( s , »jeù ) \ 953 __ex‹nsiÚ__ \ 954 ({  __r0 , __r1 , __r2 ; \ 955 ( `__bužtš_cÚ¡ªt_p ( »jeù è&& `__¡ršg2_1b±r_p (reject) \ 956 ? (( __r0 = (( __cÚ¡ *è( »jeù ))[0], __r0 == '\0') \ 957 ? `¡¾’ ( s ) \ 958 : (( __r1 = (( __cÚ¡ *è( »jeù ))[1], __r1 == '\0') \ 959 ? `__¡rc¥n_c1 ( s , __r0 ) \ 960 : (( __r2 = (( __cÚ¡ *è( »jeù ))[2], __r2 == '\0') \ 961 ? `__¡rc¥n_c2 ( s , __r0 , __r1 ) \ 962 : ((( __cÚ¡ *è( »jeù ))[3] == '\0' \ 963 ? `__¡rc¥n_c3 ( s , __r0 , __r1 , __r2 ) \ 964 : `¡rc¥n ( s , »jeù ))))) \ 965 : `¡rc¥n ( s , »jeù )); }) ) 969 __STRING_INLINE size_t __¡rc¥n_c1 ( __cÚ¡ * __s ,  __»jeù ); 970 __STRING_INLINE size_t 971 $__¡rc¥n_c1 ( __cÚ¡ * __s ,  __»jeù ) 973  size_t __»suÉ = 0; 974  __s [ __»suÉ ] !ð'\0' && __s[__»suÉ] !ð __»jeù ) 975 ++ __»suÉ ; 976  __»suÉ ; 977 } } 979 __STRING_INLINE size_t __¡rc¥n_c2 ( __cÚ¡ * __s ,  __»jeù1 , 980  __»jeù2 ); 981 __STRING_INLINE size_t 982 $__¡rc¥n_c2 ( __cÚ¡ * __s ,  __»jeù1 ,  __»jeù2 ) 984  size_t __»suÉ = 0; 985  __s [ __»suÉ ] !ð'\0' && __s[__»suÉ] !ð __»jeù1 986 && __s [ __»suÉ ] !ð __»jeù2 ) 987 ++ __»suÉ ; 988  __»suÉ ; 989 } } 991 __STRING_INLINE size_t __¡rc¥n_c3 ( __cÚ¡ * __s ,  __»jeù1 , 992  __»jeù2 ,  __»jeù3 ); 993 __STRING_INLINE size_t 994 $__¡rc¥n_c3 ( __cÚ¡ * __s ,  __»jeù1 ,  __»jeù2 , 995  __»jeù3 ) 997  size_t __»suÉ = 0; 998  __s [ __»suÉ ] !ð'\0' && __s[__»suÉ] !ð __»jeù1 999 && __s [ __»suÉ ] !ð __»jeù2 && __s[__»suÉ] !ð __»jeù3 ) 1000 ++ __»suÉ ; 1001  __»suÉ ; 1002 } } 1008 #ià! defšed _HAVE_STRING_ARCH_¡r¥n || defšed _FORCE_INLINES 1009 #iâdeà _HAVE_STRING_ARCH_¡r¥n 1010 #ià __GNUC_PREREQ (3, 2) 1011  #¡r¥n ( s , acû± ) \ 1012 __ex‹nsiÚ__ \ 1013 ({  __a0 , __a1 , __a2 ; \ 1014 ( `__bužtš_cÚ¡ªt_p ( acû± è&& `__¡ršg2_1b±r_p (accept) \ 1015 ? (( `__bužtš_cÚ¡ªt_p ( s è&& `__¡ršg2_1b±r_p (s)) \ 1016 ? `__bužtš_¡r¥n ( s , acû± ) \ 1017 : (( __a0 = (( __cÚ¡ *è( acû± ))[0], __a0 == '\0') \ 1018 ? ((è( s ), 0) \ 1019 : (( __a1 = (( __cÚ¡ *è( acû± ))[1], __a1 == '\0') \ 1020 ? `__¡r¥n_c1 ( s , __a0 ) \ 1021 : (( __a2 = (( __cÚ¡ *è( acû± ))[2], __a2 == '\0') \ 1022 ? `__¡r¥n_c2 ( s , __a0 , __a1 ) \ 1023 : ((( __cÚ¡ *è( acû± ))[3] == '\0' \ 1024 ? `__¡r¥n_c3 ( s , __a0 , __a1 , __a2 ) \ 1025 : `__bužtš_¡r¥n ( s , acû± )))))) \ 1026 : `__bužtš_¡r¥n ( s , acû± )); }) ) 1028  #¡r¥n ( s , acû± ) \ 1029 __ex‹nsiÚ__ \ 1030 ({  __a0 , __a1 , __a2 ; \ 1031 ( `__bužtš_cÚ¡ªt_p ( acû± è&& `__¡ršg2_1b±r_p (accept) \ 1032 ? (( __a0 = (( __cÚ¡ *è( acû± ))[0], __a0 == '\0') \ 1033 ? ((è( s ), 0) \ 1034 : (( __a1 = (( __cÚ¡ *è( acû± ))[1], __a1 == '\0') \ 1035 ? `__¡r¥n_c1 ( s , __a0 ) \ 1036 : (( __a2 = (( __cÚ¡ *è( acû± ))[2], __a2 == '\0') \ 1037 ? `__¡r¥n_c2 ( s , __a0 , __a1 ) \ 1038 : ((( __cÚ¡ *è( acû± ))[3] == '\0' \ 1039 ? `__¡r¥n_c3 ( s , __a0 , __a1 , __a2 ) \ 1040 : `¡r¥n ( s , acû± ))))) \ 1041 : `¡r¥n ( s , acû± )); }) ) 1045 __STRING_INLINE size_t __¡r¥n_c1 ( __cÚ¡ * __s ,  __acû± ); 1046 __STRING_INLINE size_t 1047 $__¡r¥n_c1 ( __cÚ¡ * __s ,  __acû± ) 1049  size_t __»suÉ = 0; 1051  __s [ __»suÉ ] =ð __acû± ) 1052 ++ __»suÉ ; 1053  __»suÉ ; 1054 } } 1056 __STRING_INLINE size_t __¡r¥n_c2 ( __cÚ¡ * __s ,  __acû±1 , 1057  __acû±2 ); 1058 __STRING_INLINE size_t 1059 $__¡r¥n_c2 ( __cÚ¡ * __s ,  __acû±1 ,  __acû±2 ) 1061  size_t __»suÉ = 0; 1063  __s [ __»suÉ ] =ð __acû±1 || __s[__»suÉ] =ð __acû±2 ) 1064 ++ __»suÉ ; 1065  __»suÉ ; 1066 } } 1068 __STRING_INLINE size_t __¡r¥n_c3 ( __cÚ¡ * __s ,  __acû±1 , 1069  __acû±2 ,  __acû±3 ); 1070 __STRING_INLINE size_t 1071 $__¡r¥n_c3 ( __cÚ¡ * __s ,  __acû±1 ,  __acû±2 ,  __acû±3 ) 1073  size_t __»suÉ = 0; 1075  __s [ __»suÉ ] =ð __acû±1 || __s[__»suÉ] =ð __acû±2 1076 || __s [ __»suÉ ] =ð __acû±3 ) 1077 ++ __»suÉ ; 1078  __»suÉ ; 1079 } } 1084 #ià! defšed _HAVE_STRING_ARCH_¡½brk || defšed _FORCE_INLINES 1085 #iâdeà _HAVE_STRING_ARCH_¡½brk 1086 #ià __GNUC_PREREQ (3, 2) 1087  #¡½brk ( s , acû± ) \ 1088 __ex‹nsiÚ__ \ 1089 ({  __a0 , __a1 , __a2 ; \ 1090 ( `__bužtš_cÚ¡ªt_p ( acû± è&& `__¡ršg2_1b±r_p (accept) \ 1091 ? (( `__bužtš_cÚ¡ªt_p ( s è&& `__¡ršg2_1b±r_p (s)) \ 1092 ? `__bužtš_¡½brk ( s , acû± ) \ 1093 : (( __a0 = (( __cÚ¡ *è( acû± ))[0], __a0 == '\0') \ 1094 ? ((è( s ), (*è NULL ) \ 1095 : (( __a1 = (( __cÚ¡ *è( acû± ))[1], __a1 == '\0') \ 1096 ? `__bužtš_¡rchr ( s , __a0 ) \ 1097 : (( __a2 = (( __cÚ¡ *è( acû± ))[2], __a2 == '\0') \ 1098 ? `__¡½brk_c2 ( s , __a0 , __a1 ) \ 1099 : ((( __cÚ¡ *è( acû± ))[3] == '\0' \ 1100 ? `__¡½brk_c3 ( s , __a0 , __a1 , __a2 ) \ 1101 : `__bužtš_¡½brk ( s , acû± )))))) \ 1102 : `__bužtš_¡½brk ( s , acû± )); }) ) 1104  #¡½brk ( s , acû± ) \ 1105 __ex‹nsiÚ__ \ 1106 ({  __a0 , __a1 , __a2 ; \ 1107 ( `__bužtš_cÚ¡ªt_p ( acû± è&& `__¡ršg2_1b±r_p (accept) \ 1108 ? (( __a0 = (( __cÚ¡ *è( acû± ))[0], __a0 == '\0') \ 1109 ? ((è( s ), (*è NULL ) \ 1110 : (( __a1 = (( __cÚ¡ *è( acû± ))[1], __a1 == '\0') \ 1111 ? `¡rchr ( s , __a0 ) \ 1112 : (( __a2 = (( __cÚ¡ *è( acû± ))[2], __a2 == '\0') \ 1113 ? `__¡½brk_c2 ( s , __a0 , __a1 ) \ 1114 : ((( __cÚ¡ *è( acû± ))[3] == '\0' \ 1115 ? `__¡½brk_c3 ( s , __a0 , __a1 , __a2 ) \ 1116 : `¡½brk ( s , acû± ))))) \ 1117 : `¡½brk ( s , acû± )); }) ) 1121 __STRING_INLINE * __¡½brk_c2 ( __cÚ¡ * __s ,  __acû±1 , 1122  __acû±2 ); 1123 __STRING_INLINE * 1124 $__¡½brk_c2 ( __cÚ¡ * __s ,  __acû±1 ,  __acû±2 ) 1127 * __s !ð'\0' && *__ !ð __acû±1 && *__ !ð __acû±2 ) 1128 ++ __s ; 1129  * __s =ð'\0' ? NULL : (*è( size_t ) __s; 1130 } } 1132 __STRING_INLINE * __¡½brk_c3 ( __cÚ¡ * __s ,  __acû±1 , 1133  __acû±2 ,  __acû±3 ); 1134 __STRING_INLINE * 1135 $__¡½brk_c3 ( __cÚ¡ * __s ,  __acû±1 ,  __acû±2 , 1136  __acû±3 ) 1139 * __s !ð'\0' && *__ !ð __acû±1 && *__ !ð __acû±2 1140 && * __s !ð __acû±3 ) 1141 ++ __s ; 1142  * __s =ð'\0' ? NULL : (*è( size_t ) __s; 1143 } } 1149 #ià! defšed _HAVE_STRING_ARCH_¡r¡r && ! __GNUC_PREREQ (2, 97) 1150  #¡r¡r ( hay¡ack , ÃedË ) \ 1151 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( ÃedË è&& `__¡ršg2_1b±r_p (needle) \ 1152 ? ((( __cÚ¡ *è( ÃedË ))[0] == '\0' \ 1153 ? (*è( size_t è( hay¡ack ) \ 1154 : ((( __cÚ¡ *è( ÃedË ))[1] == '\0' \ 1155 ? `¡rchr ( hay¡ack , \ 1156 (( __cÚ¡ *è( ÃedË ))[0]) \ 1157 : `¡r¡r ( hay¡ack , ÃedË ))) \ 1158 : `¡r¡r ( hay¡ack , ÃedË ))) ) 1162 #ià! defšed _HAVE_STRING_ARCH_¡¹ok_r || defšed _FORCE_INLINES 1163 #iâdeà _HAVE_STRING_ARCH_¡¹ok_r 1164  #__¡¹ok_r ( s , £p , Ãx ) \ 1165 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( £p è&& `__¡ršg2_1b±r_p (sep) \ 1166 ? ((( __cÚ¡ *è( £p ))[0] != '\0' \ 1167 && (( __cÚ¡ *è( £p ))[1] == '\0' \ 1168 ? `__¡¹ok_r_1c ( s , (( __cÚ¡ *è( £p ))[0], Ãx ) \ 1169 : `__¡¹ok_r ( s , £p , Ãx )) \ 1170 : `__¡¹ok_r ( s , £p , Ãx ))) ) 1173 __STRING_INLINE * __¡¹ok_r_1c (* __s ,  __£p , ** __Ãx ); 1174 __STRING_INLINE * 1175 $__¡¹ok_r_1c (* __s ,  __£p , ** __Ãx ) 1177 * __»suÉ ; 1178 ià( __s =ð NULL ) 1179 __s = * __Ãx ; 1180 * __s =ð __£p ) 1181 ++ __s ; 1182 __»suÉ = NULL ; 1183 ià(* __s != '\0') 1185 __»suÉ = __s ++; 1186 * __s != '\0') 1187 ià(* __s ++ =ð __£p ) 1189 __s [-1] = '\0'; 1192 * __Ãx = __s ; 1194  __»suÉ ; 1195 } } 1196 #ià defšed __USE_POSIX || defšed __USE_MISC 1197  #¡¹ok_r ( s , £p , Ãx è `__¡¹ok_r (s, s•,‚ex) ) 1202 #ià! defšed _HAVE_STRING_ARCH_¡r£p || defšed _FORCE_INLINES 1203 #iâdeà _HAVE_STRING_ARCH_¡r£p 1205 * __¡r£p_g (** __¡ršgp , __cÚ¡ * __d–im ); 1206  #__¡r£p ( s , »jeù ) \ 1207 __ex‹nsiÚ__ \ 1208 ({  __r0 , __r1 , __r2 ; \ 1209 ( `__bužtš_cÚ¡ªt_p ( »jeù è&& `__¡ršg2_1b±r_p (reject) \ 1210 && ( __r0 = (( __cÚ¡ *è( »jeù ))[0], \ 1211 (( __cÚ¡ *è( »jeù ))[0] != '\0') \ 1212 ? (( __r1 = (( __cÚ¡ *è( »jeù ))[1], \ 1213 (( __cÚ¡ *è( »jeù ))[1] == '\0') \ 1214 ? `__¡r£p_1c ( s , __r0 ) \ 1215 : (( __r2 = (( __cÚ¡ *è( »jeù ))[2], __r2 == '\0') \ 1216 ? `__¡r£p_2c ( s , __r0 , __r1 ) \ 1217 : ((( __cÚ¡ *è( »jeù ))[3] == '\0' \ 1218 ? `__¡r£p_3c ( s , __r0 , __r1 , __r2 ) \ 1219 : `__¡r£p_g ( s , »jeù )))) \ 1220 : `__¡r£p_g ( s , »jeù )); }) ) 1223 __STRING_INLINE * __¡r£p_1c (** __s ,  __»jeù ); 1224 __STRING_INLINE * 1225 $__¡r£p_1c (** __s ,  __»jeù ) 1227 * __»tv® = * __s ; 1228 ià( __»tv® !ð NULL && (* __s = `¡rchr (__»tv®, __»jeù )) != NULL) 1229 *(* __s )++ = '\0'; 1230  __»tv® ; 1231 } } 1233 __STRING_INLINE * __¡r£p_2c (** __s ,  __»jeù1 ,  __»jeù2 ); 1234 __STRING_INLINE * 1235 $__¡r£p_2c (** __s ,  __»jeù1 ,  __»jeù2 ) 1237 * __»tv® = * __s ; 1238 ià( __»tv® !ð NULL ) 1240 * __ý = __»tv® ; 1243 ià(* __ý == '\0') 1245 __ý = NULL ; 1248 ià(* __ý =ð __»jeù1 || *__ý =ð __»jeù2 ) 1250 * __ý ++ = '\0'; 1253 ++ __ý ; 1255 * __s = __ý ; 1257  __»tv® ; 1258 } } 1260 __STRING_INLINE * __¡r£p_3c (** __s ,  __»jeù1 ,  __»jeù2 , 1261  __»jeù3 ); 1262 __STRING_INLINE * 1263 $__¡r£p_3c (** __s ,  __»jeù1 ,  __»jeù2 ,  __»jeù3 ) 1265 * __»tv® = * __s ; 1266 ià( __»tv® !ð NULL ) 1268 * __ý = __»tv® ; 1271 ià(* __ý == '\0') 1273 __ý = NULL ; 1276 ià(* __ý =ð __»jeù1 || *__ý =ð __»jeù2 || *__ý =ð __»jeù3 ) 1278 * __ý ++ = '\0'; 1281 ++ __ý ; 1283 * __s = __ý ; 1285  __»tv® ; 1286 } } 1287 #ifdeà __USE_BSD 1288  #¡r£p ( s , »jeù è `__¡r£p (s,„ejeù) ) 1295 #ifdeà __USE_MISC 1297 #ià! defšed _HAVE_STRING_ARCH_¡rdup || !defšed _HAVE_STRING_ARCH_¡ºdup 1298  #__Ãed_m®loc_ªd_ÿÎoc ) 1299  ~<¡dlib.h > 1302 #iâdeà _HAVE_STRING_ARCH_¡rdup 1304 * $__¡rdup ( __cÚ¡ * __¡ršg è __THROW __©Œibu‹_m®loc__ ; 1305  #__¡rdup ( s ) \ 1306 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( s è&& `__¡ršg2_1b±r_p (s) \ 1307 ? ((( __cÚ¡ *è( s ))[0] == '\0' \ 1308 ? (*è `ÿÎoc (1, 1) \ 1309 : ({ size_t __Ën = `¡¾’ ( s ) + 1; \ 1310 * __»tv® = (*è `m®loc ( __Ën ); \ 1311 ià( __»tv® !ð NULL ) \ 1312 __»tv® = (*è `memýy (__»tv®, s , __Ën ); \ 1313 __»tv® ; } })) \ 1314 : `__¡rdup ( s ))) ) 1316 #ià defšed __USE_SVID || defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 1317  #¡rdup ( s è `__¡rdup (s) ) 1321 #iâdeà _HAVE_STRING_ARCH_¡ºdup 1323 * $__¡ºdup ( __cÚ¡ * __¡ršg , size_t __n ) 1324 __THROW __©Œibu‹_m®loc__ ; 1325  #__¡ºdup ( s , n ) \ 1326 ( `__ex‹nsiÚ__ ( `__bužtš_cÚ¡ªt_p ( s è&& `__¡ršg2_1b±r_p (s) \ 1327 ? ((( __cÚ¡ *è( s ))[0] == '\0' \ 1328 ? (*è `ÿÎoc (1, 1) \ 1329 : ({ size_t __Ën = `¡¾’ ( s ) + 1; \ 1330 size_t __n = ( n ); \ 1331 * __»tv® ; \ 1332 ià( __n < __Ën ) \ 1333 __Ën = __n + 1; \ 1334 __»tv® = (*è `m®loc ( __Ën ); \ 1335 ià( __»tv® !ð NULL ) \ 1337 __»tv® [ __Ën - 1] = '\0'; \ 1338 __»tv® = (*è `memýy (__»tv®, s , \ 1339 __Ën - 1); \ 1341 __»tv® ; } })) \ 1342 : `__¡ºdup ( s , n ))) ) 1344 #ifdeà __USE_GNU 1345  #¡ºdup ( s , n è `__¡ºdup (s,‚) ) 1351 #iâdeà _FORCE_INLINES 1352 #undeà __STRING_INLINE @/usr/include/bits/string3.h 19 #iâdeà _STRING_H 26 #undeà memýy 27 #undeà memmove 28 #undeà mem£t 29 #undeà ¡rÿt 30 #undeà ¡rýy 31 #undeà ¡ºÿt 32 #undeà ¡ºýy 33 #ifdeà __USE_GNU 34 #undeà mempýy 35 #undeà ¡pýy 37 #ifdeà __USE_BSD 38 #undeà bcÝy 39 #undeà bz”o 43  #memýy ( de¡ , ¤c , Ën ) \ 44 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 45 ? `__bužtš___memýy_chk ( de¡ , ¤c , Ën , `__bos0 (dest)) \ 46 : `__memýy_ichk ( de¡ , ¤c , Ën )) ) 47  __šlše__ * 48 __©Œibu‹__ (( __®ways_šlše__ )) 49 $__memýy_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c , 50 size_t __Ën ) 52  `__bužtš___memýy_chk ( __de¡ , __¤c , __Ën , `__bos0 (__dest)); 53 } } 56  #memmove ( de¡ , ¤c , Ën ) \ 57 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 58 ? `__bužtš___memmove_chk ( de¡ , ¤c , Ën , `__bos0 (dest)) \ 59 : `__memmove_ichk ( de¡ , ¤c , Ën )) ) 60  __šlše__ * 61 __©Œibu‹__ (( __®ways_šlše__ )) 62 $__memmove_ichk (* __de¡ , cÚ¡ * __¤c , size_t __Ën ) 64  `__bužtš___memmove_chk ( __de¡ , __¤c , __Ën , `__bos0 (__dest)); 65 } } 68 #ifdeà __USE_GNU 69  #mempýy ( de¡ , ¤c , Ën ) \ 70 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 71 ? `__bužtš___mempýy_chk ( de¡ , ¤c , Ën , `__bos0 (dest)) \ 72 : `__mempýy_ichk ( de¡ , ¤c , Ën )) ) 73  __šlše__ * 74 __©Œibu‹__ (( __®ways_šlše__ )) 75 $__mempýy_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c , 76 size_t __Ën ) 78  `__bužtš___mempýy_chk ( __de¡ , __¤c , __Ën , `__bos0 (__dest)); 79 } } 83  #mem£t ( de¡ , ch , Ën ) \ 84 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 85 ? `__bužtš___mem£t_chk ( de¡ , ch , Ën , `__bos0 (dest)) \ 86 : `__mem£t_ichk ( de¡ , ch , Ën )) ) 87  __šlše__ * 88 __©Œibu‹__ (( __®ways_šlše__ )) 89 $__mem£t_ichk (* __de¡ ,  __ch , size_t __Ën ) 91  `__bužtš___mem£t_chk ( __de¡ , __ch , __Ën , `__bos0 (__dest)); 92 } } 94 #ifdeà __USE_BSD 95  #bcÝy ( ¤c , de¡ , Ën ) (() \ 96 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 97 ? `__bužtš___memmove_chk ( de¡ , ¤c , Ën , `__bos0 (dest)) \ 98 : `__memmove_ichk ( de¡ , ¤c , Ën ))) ) 99  #bz”o ( de¡ , Ën ) (() \ 100 (( `__bos0 ( de¡ è!ð( size_t ) -1) \ 101 ? `__bužtš___mem£t_chk ( de¡ , '\0', Ën , `__bos0 (dest)) \ 102 : `__mem£t_ichk ( de¡ , '\0', Ën ))) ) 106  #¡rýy ( de¡ , ¤c ) \ 107 (( `__bos ( de¡ è!ð( size_t ) -1) \ 108 ? `__bužtš___¡rýy_chk ( de¡ , ¤c , `__bos (dest)) \ 109 : `__¡rýy_ichk ( de¡ , ¤c )) ) 110  __šlše__ * 111 __©Œibu‹__ (( __®ways_šlše__ )) 112 $__¡rýy_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c ) 114  `__bužtš___¡rýy_chk ( __de¡ , __¤c , `__bos (__dest)); 115 } } 118 #ifdeà __USE_GNU 119  #¡pýy ( de¡ , ¤c ) \ 120 (( `__bos ( de¡ è!ð( size_t ) -1) \ 121 ? `__bužtš___¡pýy_chk ( de¡ , ¤c , `__bos (dest)) \ 122 : `__¡pýy_ichk ( de¡ , ¤c )) ) 123  __šlše__ * 124 __©Œibu‹__ (( __®ways_šlše__ )) 125 $__¡pýy_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c ) 127  `__bužtš___¡pýy_chk ( __de¡ , __¤c , `__bos (__dest)); 128 } } 132  #¡ºýy ( de¡ , ¤c , Ën ) \ 133 (( `__bos ( de¡ è!ð( size_t ) -1) \ 134 ? `__bužtš___¡ºýy_chk ( de¡ , ¤c , Ën , `__bos (dest)) \ 135 : `__¡ºýy_ichk ( de¡ , ¤c , Ën )) ) 136  __šlše__ * 137 __©Œibu‹__ (( __®ways_šlše__ )) 138 $__¡ºýy_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c , 139 size_t __Ën ) 141  `__bužtš___¡ºýy_chk ( __de¡ , __¤c , __Ën , `__bos (__dest)); 142 } } 145  #¡rÿt ( de¡ , ¤c ) \ 146 (( `__bos ( de¡ è!ð( size_t ) -1) \ 147 ? `__bužtš___¡rÿt_chk ( de¡ , ¤c , `__bos (dest)) \ 148 : `__¡rÿt_ichk ( de¡ , ¤c )) ) 149  __šlše__ * 150 __©Œibu‹__ (( __®ways_šlše__ )) 151 $__¡rÿt_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c ) 153  `__bužtš___¡rÿt_chk ( __de¡ , __¤c , `__bos (__dest)); 154 } } 157  #¡ºÿt ( de¡ , ¤c , Ën ) \ 158 (( `__bos ( de¡ è!ð( size_t ) -1) \ 159 ? `__bužtš___¡ºÿt_chk ( de¡ , ¤c , Ën , `__bos (dest)) \ 160 : `__¡ºÿt_ichk ( de¡ , ¤c , Ën )) ) 161  __šlše__ * 162 __©Œibu‹__ (( __®ways_šlše__ )) 163 $__¡ºÿt_ichk (* __»¡riù __de¡ , cÚ¡ *__»¡riù __¤c , 164 size_t __Ën ) 166  `__bužtš___¡ºÿt_chk ( __de¡ , __¤c , __Ën , `__bos (__dest)); 167 } } @/usr/include/bits/sys_errlist.h 20 #iâdeà _STDIO_H 26 #ifdeà __USE_BSD 27  sys_ü ; 28 __cÚ¡ *__cÚ¡ sys_”¾i¡ []; 30 #ifdeà __USE_GNU 31  _sys_ü ; 32 __cÚ¡ *__cÚ¡ _sys_”¾i¡ []; @/usr/include/bits/types.h 24 #iâdef _BITS_TYPES_H 25  #_BITS_TYPES_H 1 ) 27  ~<ã©u»s.h > 28  ~ 30  #__Ãed_size_t ) 31  ~<¡ddef.h > 34  t__u_ch¬ ; 35  t__u_shÜt ; 36  t__u_št ; 37  t__u_lÚg ; 40 sigÃd  t__št8_t ; 41  t__ušt8_t ; 42 sigÃd  t__št16_t ; 43  t__ušt16_t ; 44 sigÃd  t__št32_t ; 45  t__ušt32_t ; 46 #ià __WORDSIZE == 64 47 sigÃd  t__št64_t ; 48  t__ušt64_t ; 49 #–ià defšed __GLIBC_HAVE_LONG_LONG 50 __ex‹nsiÚ__ sigÃd  t__št64_t ; 51 __ex‹nsiÚ__  t__ušt64_t ; 55 #ià __WORDSIZE == 64 56  t__quad_t ; 57  t__u_quad_t ; 58 #–ià defšed __GLIBC_HAVE_LONG_LONG 59 __ex‹nsiÚ__  t__quad_t ; 60 __ex‹nsiÚ__  t__u_quad_t ; 64  m__v® [2]; 65 } t__quad_t ; 68 __u_lÚg m__v® [2]; 69 } t__u_quad_t ; 102  #__S16_TYPE  ) 103  #__U16_TYPE  ) 104  #__S32_TYPE  ) 105  #__U32_TYPE  ) 106  #__SLONGWORD_TYPE  ) 107  #__ULONGWORD_TYPE  ) 108 #ià __WORDSIZE == 32 109  #__SQUAD_TYPE __quad_t ) 110  #__UQUAD_TYPE __u_quad_t ) 111  #__SWORD_TYPE  ) 112  #__UWORD_TYPE  ) 113  #__SLONG32_TYPE  ) 114  #__ULONG32_TYPE  ) 115  #__S64_TYPE __quad_t ) 116  #__U64_TYPE __u_quad_t ) 117 #–ià __WORDSIZE == 64 118  #__SQUAD_TYPE  ) 119  #__UQUAD_TYPE  ) 120  #__SWORD_TYPE  ) 121  #__UWORD_TYPE  ) 122  #__SLONG32_TYPE  ) 123  #__ULONG32_TYPE  ) 124  #__S64_TYPE  ) 125  #__U64_TYPE  ) 129  ~ 133  #__STD_TYPE __ex‹nsiÚ__  ) 136 __STD_TYPE t__DEV_T_TYPE t__dev_t ; 137 __STD_TYPE __UID_T_TYPE g__uid_t ; 138 __STD_TYPE __GID_T_TYPE g__gid_t ; 139 __STD_TYPE __INO_T_TYPE g__šo_t ; 140 __STD_TYPE __INO64_T_TYPE g__šo64_t ; 141 __STD_TYPE __MODE_T_TYPE g__mode_t ; 142 __STD_TYPE __NLINK_T_TYPE g__Æšk_t ; 143 __STD_TYPE __OFF_T_TYPE g__off_t ; 144 __STD_TYPE __OFF64_T_TYPE g__off64_t ; 145 __STD_TYPE __PID_T_TYPE g__pid_t ; 146 __STD_TYPE __FSID_T_TYPE g__fsid_t ; 147 __STD_TYPE __CLOCK_T_TYPE g__þock_t ; 148 __STD_TYPE __RLIM_T_TYPE g__¾im_t ; 149 __STD_TYPE __RLIM64_T_TYPE g__¾im64_t ; 150 __STD_TYPE __ID_T_TYPE g__id_t ; 151 __STD_TYPE __TIME_T_TYPE g__time_t ; 152 __STD_TYPE __USECONDS_T_TYPE g__u£cÚds_t ; 153 __STD_TYPE __SUSECONDS_T_TYPE g__su£cÚds_t ; 155 __STD_TYPE __DADDR_T_TYPE g__daddr_t ; 156 __STD_TYPE __SWBLK_T_TYPE g__swblk_t ; 157 __STD_TYPE __KEY_T_TYPE g__key_t ; 160 __STD_TYPE __CLOCKID_T_TYPE g__þockid_t ; 163 __STD_TYPE __TIMER_T_TYPE g__tim”_t ; 166 __STD_TYPE __BLKSIZE_T_TYPE g__blksize_t ; 171 __STD_TYPE __BLKCNT_T_TYPE g__blkút_t ; 172 __STD_TYPE __BLKCNT64_T_TYPE g__blkút64_t ; 175 __STD_TYPE __FSBLKCNT_T_TYPE g__fsblkút_t ; 176 __STD_TYPE __FSBLKCNT64_T_TYPE g__fsblkút64_t ; 179 __STD_TYPE __FSFILCNT_T_TYPE g__fsfžút_t ; 180 __STD_TYPE __FSFILCNT64_T_TYPE g__fsfžút64_t ; 182 __STD_TYPE __SSIZE_T_TYPE g__ssize_t ; 186  __off64_t t__loff_t ; 187  __quad_t * t__qaddr_t ; 188 * t__ÿddr_t ; 191 __STD_TYPE __SWORD_TYPE g__šŒ_t ; 194 __STD_TYPE __U32_TYPE g__sockËn_t ; 197 #undeà __STD_TYPE @/usr/include/bits/waitflags.h 20 #ià! defšed _SYS_WAIT_H && !defšed _STDLIB_H 26  #WNOHANG 1 ) 27  #WUNTRACED 2 ) 30  #WSTOPPED 2 ) 31  #WEXITED 4 ) 32  #WCONTINUED 8 ) 33  #WNOWAIT 0x01000000 ) 35  #__WALL 0x40000000 ) 36  #__WCLONE 0x80000000 ) @/usr/include/bits/waitstatus.h 20 #ià! defšed _SYS_WAIT_H && !defšed _STDLIB_H 29  #__WEXITSTATUS ( ¡©us è(((¡©usè& 0xff00è>> 8) ) 32  #__WTERMSIG ( ¡©us è((¡©usè& 0x7f) ) 35  #__WSTOPSIG ( ¡©us è `__WEXITSTATUS (¡©us) ) 38  #__WIFEXITED ( ¡©us è( `__WTERMSIG (¡©usè=ð0) ) 41  #__WIFSIGNALED ( ¡©us ) \ 42 (((sigÃd è((( ¡©us è& 0x7fè+ 1è>> 1è> 0) ) 45  #__WIFSTOPPED ( ¡©us è(((¡©usè& 0xffè=ð0x7f) ) 49 #ifdeà WCONTINUED 50  #__WIFCONTINUED ( ¡©us è((¡©usè=ð __W_CONTINUED ) ) 54  #__WCOREDUMP ( ¡©us è((¡©usè& __WCOREFLAG ) ) 57  #__W_EXITCODE ( »t , sig è(Ô‘è<< 8 | (sig)) ) 58  #__W_STOPCODE ( sig è((sigè<< 8 | 0x7f) ) 59  #__W_CONTINUED 0xffff ) 60  #__WCOREFLAG 0x80 ) 63 #ifdef __USE_BSD 65  ~<’dŸn.h > 67  uwa™ 69  mw_¡©us ; 72 #if __BYTE_ORDER =ð __LITTLE_ENDIAN 73  m__w_‹rmsig :7; 74  m__w_cÜedump :1; 75  m__w_»tcode :8; 78 #if __BYTE_ORDER =ð __BIG_ENDIAN 80  m__w_»tcode :8; 81  m__w_cÜedump :1; 82  m__w_‹rmsig :7; 84 } m__wa™_‹rmš©ed ; 87 #if __BYTE_ORDER =ð __LITTLE_ENDIAN 88  m__w_¡Ýv® :8; 89  m__w_¡Ýsig :8; 92 #if __BYTE_ORDER =ð __BIG_ENDIAN 94  m__w_¡Ýsig :8; 95  m__w_¡Ýv® :8; 97 } m__wa™_¡Ý³d ; 100  #w_‹rmsig __wa™_‹rmš©ed . __w_‹rmsig ) 101  #w_cÜedump __wa™_‹rmš©ed . __w_cÜedump ) 102  #w_»tcode __wa™_‹rmš©ed . __w_»tcode ) 103  #w_¡Ýsig __wa™_¡Ý³d . __w_¡Ýsig ) 104  #w_¡Ýv® __wa™_¡Ý³d . __w_¡Ýv® ) @/usr/include/bits/wchar.h 20 #iâdeà _BITS_WCHAR_H 21  #_BITS_WCHAR_H 1 ) 23  #__WCHAR_MIN (-2147483647È- 1l) ) 24  #__WCHAR_MAX (2147483647l) ) @/usr/include/bits/wordsize.h 19  #__WORDSIZE 32 ) @/usr/include/endian.h 19 #iâdef _ENDIAN_H 20  #_ENDIAN_H 1 ) 22  ~<ã©u»s.h > 32  #__LITTLE_ENDIAN 1234 ) 33  #__BIG_ENDIAN 4321 ) 34  #__PDP_ENDIAN 3412 ) 37  ~ 41 #iâdeà __FLOAT_WORD_ORDER 42  #__FLOAT_WORD_ORDER __BYTE_ORDER ) 45 #ifdef __USE_BSD 46  #LITTLE_ENDIAN __LITTLE_ENDIAN ) 47  #BIG_ENDIAN __BIG_ENDIAN ) 48  #PDP_ENDIAN __PDP_ENDIAN ) 49  #BYTE_ORDER __BYTE_ORDER ) 52 #ià __BYTE_ORDER =ð __LITTLE_ENDIAN 53  #__LONG_LONG_PAIR ( HI , LO èLO, ) HI 54 #–ià __BYTE_ORDER =ð __BIG_ENDIAN 55  #__LONG_LONG_PAIR ( HI , LO èHI, ) LO @/usr/include/features.h 19 #iâdef _FEATURES_H 20  #_FEATURES_H 1 ) 90 #undeà __USE_ISOC99 91 #undeà __USE_POSIX 92 #undeà __USE_POSIX2 93 #undeà __USE_POSIX199309 94 #undeà __USE_POSIX199506 95 #undeà __USE_XOPEN 96 #undeà __USE_XOPEN_EXTENDED 97 #undeà __USE_UNIX98 98 #undeà __USE_XOPEN2K 99 #undeà __USE_LARGEFILE 100 #undeà __USE_LARGEFILE64 101 #undeà __USE_FILE_OFFSET64 102 #undeà __USE_BSD 103 #undeà __USE_SVID 104 #undeà __USE_MISC 105 #undeà __USE_GNU 106 #undeà __USE_REENTRANT 107 #undeà __USE_FORTIFY_LEVEL 108 #undeà __FAVOR_BSD 109 #undeà __KERNEL_STRICT_NAMES 113 #iâdeà _LOOSE_KERNEL_NAMES 114  #__KERNEL_STRICT_NAMES ) 118  #__USE_ANSI 1 ) 127 #ià defšed __GNUC__ && defšed __GNUC_MINOR__ 128  #__GNUC_PREREQ ( maj , mš ) \ 129 (( __GNUC__ << 16è+ __GNUC_MINOR__ >ð(( maj è<< 16è+ ( mš )) ) 131  #__GNUC_PREREQ ( maj , mš è0 ) 136 #ià defšed _BSD_SOURCE && \ 137 !( defšed g_POSIX_SOURCE || defšed g_POSIX_C_SOURCE || \ 138 defšed g_XOPEN_SOURCE || defšed g_XOPEN_SOURCE_EXTENDED || \ 139 defšed g_GNU_SOURCE || defšed g_SVID_SOURCE ) 140  #__FAVOR_BSD 1 ) 144 #ifdeà _GNU_SOURCE 145 #undeà _ISOC99_SOURCE 146  #_ISOC99_SOURCE 1 ) 147 #undeà _POSIX_SOURCE 148  #_POSIX_SOURCE 1 ) 149 #undeà _POSIX_C_SOURCE 150  #_POSIX_C_SOURCE 199506L ) 151 #undeà _XOPEN_SOURCE 152  #_XOPEN_SOURCE 600 ) 153 #undeà _XOPEN_SOURCE_EXTENDED 154  #_XOPEN_SOURCE_EXTENDED 1 ) 155 #undeà _LARGEFILE64_SOURCE 156  #_LARGEFILE64_SOURCE 1 ) 157 #undeà _BSD_SOURCE 158  #_BSD_SOURCE 1 ) 159 #undeà _SVID_SOURCE 160  #_SVID_SOURCE 1 ) 165 #ià(! defšed __STRICT_ANSI__ && !defšed _ISOC99_SOURCE && \ 166 ! defšed g_POSIX_SOURCE && !defšed g_POSIX_C_SOURCE && \ 167 ! defšed g_XOPEN_SOURCE && !defšed g_XOPEN_SOURCE_EXTENDED && \ 168 ! defšed g_BSD_SOURCE && !defšed g_SVID_SOURCE ) 169  #_BSD_SOURCE 1 ) 170  #_SVID_SOURCE 1 ) 177 #ià( defšed _ISOC99_SOURCE || defšed _ISOC9X_SOURCE \ 178 || ( defšed g__STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) 179  #__USE_ISOC99 1 ) 184 #ià((! defšed __STRICT_ANSI__ || ( _XOPEN_SOURCE - 0) >= 500) && \ 185 ! defšed _POSIX_SOURCE && !defšed _POSIX_C_SOURCE ) 186  #_POSIX_SOURCE 1 ) 187 #ià defšed _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500 188  #_POSIX_C_SOURCE 2 ) 190  #_POSIX_C_SOURCE 199506L ) 194 #ià defšed _POSIX_SOURCE || _POSIX_C_SOURCE >ð1 || defšed _XOPEN_SOURCE 195  #__USE_POSIX 1 ) 198 #ià defšed _POSIX_C_SOURCE && _POSIX_C_SOURCE >ð2 || defšed _XOPEN_SOURCE 199  #__USE_POSIX2 1 ) 202 #ià( _POSIX_C_SOURCE - 0) >= 199309L 203  #__USE_POSIX199309 1 ) 206 #ià( _POSIX_C_SOURCE - 0) >= 199506L 207  #__USE_POSIX199506 1 ) 210 #ià( _POSIX_C_SOURCE - 0) >= 200112L 211  #__USE_XOPEN2K 1 ) 214 #ifdef _XOPEN_SOURCE 215  #__USE_XOPEN 1 ) 216 #ià( _XOPEN_SOURCE - 0) >= 500 217  #__USE_XOPEN_EXTENDED 1 ) 218  #__USE_UNIX98 1 ) 219 #undeà _LARGEFILE_SOURCE 220  #_LARGEFILE_SOURCE 1 ) 221 #ià( _XOPEN_SOURCE - 0) >= 600 222  #__USE_XOPEN2K 1 ) 223 #undeà __USE_ISOC99 224  #__USE_ISOC99 1 ) 227 #ifdeà _XOPEN_SOURCE_EXTENDED 228  #__USE_XOPEN_EXTENDED 1 ) 233 #ifdeà _LARGEFILE_SOURCE 234  #__USE_LARGEFILE 1 ) 237 #ifdeà _LARGEFILE64_SOURCE 238  #__USE_LARGEFILE64 1 ) 241 #ià defšed _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64 242  #__USE_FILE_OFFSET64 1 ) 245 #ià defšed _BSD_SOURCE || defšed _SVID_SOURCE 246  #__USE_MISC 1 ) 249 #ifdef _BSD_SOURCE 250  #__USE_BSD 1 ) 253 #ifdef _SVID_SOURCE 254  #__USE_SVID 1 ) 257 #ifdef _GNU_SOURCE 258  #__USE_GNU 1 ) 261 #ià defšed _REENTRANT || defšed _THREAD_SAFE 262  #__USE_REENTRANT 1 ) 265 #ià _FORTIFY_SOURCE > 0 && __GNUC_PREREQ (4, 1è&& __OPTIMIZE__ > 0 266 #ià _FORTIFY_SOURCE == 1 267  #__USE_FORTIFY_LEVEL 1 ) 268 #–ià _FORTIFY_SOURCE > 1 269  #__USE_FORTIFY_LEVEL 2 ) 274  #__STDC_IEC_559__ 1 ) 275  #__STDC_IEC_559_COMPLEX__ 1 ) 278  #__STDC_ISO_10646__ 200009L ) 286 #undeà __GNU_LIBRARY__ 287  #__GNU_LIBRARY__ 6 ) 291  #__GLIBC__ 2 ) 292  #__GLIBC_MINOR__ 3 ) 294  #__GLIBC_PREREQ ( maj , mš ) \ 295 (( __GLIBC__ << 16è+ __GLIBC_MINOR__ >ð(( maj è<< 16è+ ( mš )) ) 298 #ià defšed __GNUC__ \ 299 || ( defšed g__PGI && defšed g__i386__ ) \ 300 || ( defšed g__INTEL_COMPILER && (defšed g__i386__ || defšed g__Ÿ64__ )) \ 301 || ( defšed g__STDC_VERSION__ && __STDC_VERSION__ >= 199901L) 302  #__GLIBC_HAVE_LONG_LONG 1 ) 306 #iâdeà __ASSEMBLER__ 307 #iâdeà _SYS_CDEFS_H 308  ~ 313 #ià defšed __USE_FILE_OFFSET64 && !defšed __REDIRECT 314  #__USE_LARGEFILE 1 ) 315  #__USE_LARGEFILE64 1 ) 321 #ià __GNUC_PREREQ (2, 7è&& defšed __OPTIMIZE__ \ 322 && ! defšed g__OPTIMIZE_SIZE__ && !defšed g__NO_INLINE__ 323  #__USE_EXTERN_INLINES 1 ) 331  ~ @/usr/include/libio.h 29 #iâdeà _IO_STDIO_H 30  #_IO_STDIO_H ) 32  ~<_G_cÚfig.h > 34  #_IO_pos_t _G_åos_t ) 35  #_IO_åos_t _G_åos_t ) 36  #_IO_åos64_t _G_åos64_t ) 37  #_IO_size_t _G_size_t ) 38  #_IO_ssize_t _G_ssize_t ) 39  #_IO_off_t _G_off_t ) 40  #_IO_off64_t _G_off64_t ) 41  #_IO_pid_t _G_pid_t ) 42  #_IO_uid_t _G_uid_t ) 43  #_IO_icÚv_t _G_icÚv_t ) 44  #_IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT ) 45  #_IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE ) 46  #_IO_BUFSIZ _G_BUFSIZ ) 47  #_IO_va_li¡ _G_va_li¡ ) 48  #_IO_wšt_t _G_wšt_t ) 50 #ifdeà _G_NEED_STDARG_H 52  #__Ãed___va_li¡ ) 53  ~<¡d¬g.h > 54 #ifdeà __GNUC_VA_LIST 55 #undeà _IO_va_li¡ 56  #_IO_va_li¡ __gnuc_va_li¡ ) 60 #iâdeà __P 61 #ià _G_HAVE_SYS_CDEFS 62  ~ 64 #ifdeà __STDC__ 65  #__P ( p è ) p 66  #__PMT ( p è ) p 68  #__P ( p è() ) 69  #__PMT ( p è() ) 75 #iâdeà _PARAMS 76  #_PARAMS ( ´Ùos è `__P ÕrÙos) ) 79 #iâdeà __STDC__ 81 cÚ¡ ) 84  #_IO_UNIFIED_JUMPTABLES 1 ) 85 #iâdeà _G_HAVE_PRINTF_FP 86  #_IO_USE_DTOA 1 ) 89 #iâdeà EOF 90  #EOF (-1) ) 92 #iâdeà NULL 93 #ià defšed __GNUG__ && \ 94 ( g__GNUC__ > 2 || (__GNUC__ =ð2 && __GNUC_MINOR__ >= 8)) 95  #NULL ( __nuÎ ) ) 97 #ià! defšed ( __ýlu¥lus ) 98  #NULL ((*)0) ) 100  #NULL (0) ) 105  #_IOS_INPUT 1 ) 106  #_IOS_OUTPUT 2 ) 107  #_IOS_ATEND 4 ) 108  #_IOS_APPEND 8 ) 109  #_IOS_TRUNC 16 ) 110  #_IOS_NOCREATE 32 ) 111  #_IOS_NOREPLACE 64 ) 112  #_IOS_BIN 128 ) 120  #_IO_MAGIC 0xFBAD0000 ) 121  #_OLD_STDIO_MAGIC 0xFABC0000 ) 122  #_IO_MAGIC_MASK 0xFFFF0000 ) 123  #_IO_USER_BUF 1 ) 124  #_IO_UNBUFFERED 2 ) 125  #_IO_NO_READS 4 ) 126  #_IO_NO_WRITES 8 ) 127  #_IO_EOF_SEEN 0x10 ) 128  #_IO_ERR_SEEN 0x20 ) 129  #_IO_DELETE_DONT_CLOSE 0x40 ) 130  #_IO_LINKED 0x80 ) 131  #_IO_IN_BACKUP 0x100 ) 132  #_IO_LINE_BUF 0x200 ) 133  #_IO_TIED_PUT_GET 0x400 ) 134  #_IO_CURRENTLY_PUTTING 0x800 ) 135  #_IO_IS_APPENDING 0x1000 ) 136  #_IO_IS_FILEBUF 0x2000 ) 137  #_IO_BAD_SEEN 0x4000 ) 138  #_IO_USER_LOCK 0x8000 ) 140  #_IO_FLAGS2_MMAP 1 ) 141  #_IO_FLAGS2_NOTCANCEL 2 ) 142 #ifdeà _LIBC 143  #_IO_FLAGS2_FORTIFY 4 ) 147  #_IO_SKIPWS 01 ) 148  #_IO_LEFT 02 ) 149  #_IO_RIGHT 04 ) 150  #_IO_INTERNAL 010 ) 151  #_IO_DEC 020 ) 152  #_IO_OCT 040 ) 153  #_IO_HEX 0100 ) 154  #_IO_SHOWBASE 0200 ) 155  #_IO_SHOWPOINT 0400 ) 156  #_IO_UPPERCASE 01000 ) 157  #_IO_SHOWPOS 02000 ) 158  #_IO_SCIENTIFIC 04000 ) 159  #_IO_FIXED 010000 ) 160  #_IO_UNITBUF 020000 ) 161  #_IO_STDIO 040000 ) 162  #_IO_DONT_CLOSE 0100000 ) 163  #_IO_BOOLALPHA 0200000 ) 166  _IO_jump_t ;  g_IO_FILE ; 169 #ifdeà _IO_MTSAFE_IO 170 #ià defšed __GLIBC__ && __GLIBC__ >= 2 171  ~ 176  t_IO_lock_t ; 182  s_IO_m¬k” { 183  _IO_m¬k” * m_Ãxt ; 184  _IO_FILE * m_sbuf ; 188  m_pos ; 190  £t_¡»ampos ( ¡»ampos ¥ è{ m_¥os = sp; } 191  £t_off£t ( off£t è{ m_pos = off£t; m_¥os = ( ¡»ampos )(-2); } 192 mpublic : 193 ¡»amm¬k” ( ¡»ambuf * sb ); 194 ~ ¡»amm¬k” (); 195  §všg (è{  m_¥os == -2; } 196  d– ( ¡»amm¬k” &); 197  d– (); 202 e__codecvt_»suÉ 204 m__codecvt_ok , 205 m__codecvt_·¹Ÿl , 206 m__codecvt_”rÜ , 207 m__codecvt_nocÚv 210 #ià defšed _LIBC || defšed _GLIBCPP_USE_WCHAR_T 213  s_IO_codecvt 215 (* m__codecvt_de¡r è( m_IO_codecvt *); 216 __codecvt_»suÉ (* __codecvt_do_out è( m_IO_codecvt *, 217 m__mb¡©e_t *, 218 cÚ¡ mwch¬_t *, 219 cÚ¡ mwch¬_t *, 220 cÚ¡ mwch¬_t **, *, 222 __codecvt_»suÉ (* __codecvt_do_unshiá è( m_IO_codecvt *, 223 m__mb¡©e_t *, *, 225 __codecvt_»suÉ (* __codecvt_do_š è( m_IO_codecvt *, 226 m__mb¡©e_t *, 228 cÚ¡ **, mwch¬_t *, 229 mwch¬_t *, wchar_t **); 230 (* m__codecvt_do_’codšg è( m_IO_codecvt *); 231 (* m__codecvt_do_®ways_nocÚv è( m_IO_codecvt *); 232 (* m__codecvt_do_Ëngth è( m_IO_codecvt *, m__mb¡©e_t *, 233 cÚ¡ *, cÚ¡ *, m_IO_size_t ); 234 (* m__codecvt_do_max_Ëngth è( m_IO_codecvt *); 236 _IO_icÚv_t m__cd_š ; 237 _IO_icÚv_t m__cd_out ; 241  s_IO_wide_d©a 243 wch¬_t * m_IO_»ad_±r ; 244 wch¬_t * m_IO_»ad_’d ; 245 wch¬_t * m_IO_»ad_ba£ ; 246 wch¬_t * m_IO_wr™e_ba£ ; 247 wch¬_t * m_IO_wr™e_±r ; 248 wch¬_t * m_IO_wr™e_’d ; 249 wch¬_t * m_IO_buf_ba£ ; 250 wch¬_t * m_IO_buf_’d ; 252 wch¬_t * m_IO_§ve_ba£ ; 253 wch¬_t * m_IO_backup_ba£ ; 255 wch¬_t * m_IO_§ve_’d ; 257 __mb¡©e_t m_IO_¡©e ; 258 __mb¡©e_t m_IO_Ï¡_¡©e ; 259  _IO_codecvt m_codecvt ; 261 wch¬_t m_shÜtbuf [1]; 263 cÚ¡  _IO_jump_t * m_wide_vbË ; 267  s_IO_FILE { 268  m_æags ; 269  #_IO_fže_æags _æags ) 273 * m_IO_»ad_±r ; 274 * m_IO_»ad_’d ; 275 * m_IO_»ad_ba£ ; 276 * m_IO_wr™e_ba£ ; 277 * m_IO_wr™e_±r ; 278 * m_IO_wr™e_’d ; 279 * m_IO_buf_ba£ ; 280 * m_IO_buf_’d ; 282 * m_IO_§ve_ba£ ; 283 * m_IO_backup_ba£ ; 284 * m_IO_§ve_’d ; 286  _IO_m¬k” * m_m¬k”s ; 288  _IO_FILE * m_chaš ; 290  m_fž’o ; 292  m_blksize ; 294  m_æags2 ; 296 _IO_off_t m_Þd_off£t ; 298  #__HAVE_COLUMN ) 300  m_cur_cÞumn ; 301 sigÃd  m_vbË_off£t ; 302  m_shÜtbuf [1]; 306 _IO_lock_t * m_lock ; 307 #ifdeà _IO_USE_OLD_IO_FILE 310  s_IO_FILE_com¶‘e 312  _IO_FILE m_fže ; 314 #ià defšed _G_IO_IO_FILE_VERSION && _G_IO_IO_FILE_VERSION == 0x20001 315 _IO_off64_t m_off£t ; 316 #ià defšed _LIBC || defšed _GLIBCPP_USE_WCHAR_T 318  _IO_codecvt * m_codecvt ; 319  _IO_wide_d©a * m_wide_d©a ; 321 * m__·d1 ; 322 * m__·d2 ; 324  m_mode ; 326  m_unu£d2 [15 *  () - 2 *  (*)]; 330 #iâdeà __ýlu¥lus 331  _IO_FILE t_IO_FILE ; 334  g_IO_FILE_¶us ; 336  _IO_FILE_¶us _IO_2_1_¡dš_ ; 337  _IO_FILE_¶us _IO_2_1_¡dout_ ; 338  _IO_FILE_¶us _IO_2_1_¡d”r_ ; 339 #iâdeà _LIBC 340  #_IO_¡dš (( _IO_FILE *)(& _IO_2_1_¡dš_ )) ) 341  #_IO_¡dout (( _IO_FILE *)(& _IO_2_1_¡dout_ )) ) 342  #_IO_¡d”r (( _IO_FILE *)(& _IO_2_1_¡d”r_ )) ) 344 _IO_FILE * _IO_¡dš ©Œibu‹_hidd’ ; 345 _IO_FILE * _IO_¡dout ©Œibu‹_hidd’ ; 346 _IO_FILE * _IO_¡d”r ©Œibu‹_hidd’ ; 354  __ssize_t t__io_»ad_â (* t__cook› , * t__buf , tsize_t t__nby‹s ); 362  __ssize_t t__io_wr™e_â (* t__cook› , t__cÚ¡ * t__buf , 363 tsize_t t__n ); 371  t__io_£ek_â (* t__cook› , t_IO_off64_t * t__pos ,  t__w ); 374  t__io_þo£_â (* t__cook› ); 377 #ifdeà _GNU_SOURCE 379  __io_»ad_â tcook›_»ad_funùiÚ_t ; 380  __io_wr™e_â tcook›_wr™e_funùiÚ_t ; 381  __io_£ek_â tcook›_£ek_funùiÚ_t ; 382  __io_þo£_â tcook›_þo£_funùiÚ_t ; 387 __io_»ad_â * m»ad ; 388 __io_wr™e_â * mwr™e ; 389 __io_£ek_â * m£ek ; 390 __io_þo£_â * mþo£ ; 391 } t_IO_cook›_io_funùiÚs_t ; 392  _IO_cook›_io_funùiÚs_t tcook›_io_funùiÚs_t ; 394  g_IO_cook›_fže ; 397  _IO_cook›_š™ ( _IO_cook›_fže * __cfže ,  __»ad_wr™e , 398 * __cook› , _IO_cook›_io_funùiÚs_t __âs ); 402 #ifdeà __ýlu¥lus 406  __und”æow ( _IO_FILE *è __THROW ; 407  __uæow ( _IO_FILE *è __THROW ; 408  __ov”æow ( _IO_FILE *, è __THROW ; 409 _IO_wšt_t __wund”æow ( _IO_FILE *è __THROW ; 410 _IO_wšt_t __wuæow ( _IO_FILE *è __THROW ; 411 _IO_wšt_t __wov”æow ( _IO_FILE *, _IO_wšt_tè __THROW ; 413 #ià __GNUC__ >= 3 414  #_IO_BE ( ex´ , »s è `__bužtš_ex³ù (ex´,„es) ) 416  #_IO_BE ( ex´ , »s èÓx´) ) 419  #_IO_g‘c_uÆocked ( _å ) \ 420 ( `_IO_BE (( _å )-> _IO_»ad_±r >ð(_å)-> _IO_»ad_’d , 0) \ 421 ? `__uæow ( _å è: *(*è(_å)-> _IO_»ad_±r ++) ) 422  #_IO_³ekc_uÆocked ( _å ) \ 423 ( `_IO_BE (( _å )-> _IO_»ad_±r >ð(_å)-> _IO_»ad_’d , 0) \ 424 && `__und”æow ( _å è=ð EOF ? EOF \ 425 : *(*è( _å )-> _IO_»ad_±r ) ) 426  #_IO_putc_uÆocked ( _ch , _å ) \ 427 ( `_IO_BE (( _å )-> _IO_wr™e_±r >ð(_å)-> _IO_wr™e_’d , 0) \ 428 ? `__ov”æow ( _å , (è( _ch )) \ 429 : (è(*( _å )-> _IO_wr™e_±r ++ = ( _ch ))) ) 431  #_IO_g‘wc_uÆocked ( _å ) \ 432 ( `_IO_BE (( _å )-> _wide_d©a -> _IO_»ad_±r >ð(_å)->_wide_d©a-> _IO_»ad_’d ,\ 434 ? `__wuæow ( _å è: ( _IO_wšt_t è*(_å)-> _wide_d©a -> _IO_»ad_±r ++) ) 435  #_IO_putwc_uÆocked ( _wch , _å ) \ 436 ( `_IO_BE (( _å )-> _wide_d©a -> _IO_wr™e_±r \ 437 >ð( _å )-> _wide_d©a -> _IO_wr™e_’d , 0) \ 438 ? `__wov”æow ( _å , _wch ) \ 439 : ( _IO_wšt_t è(*( _å )-> _wide_d©a -> _IO_wr™e_±r ++ = ( _wch ))) ) 441  #_IO_ãof_uÆocked ( __å è(((__å)-> _æags & _IO_EOF_SEEN è!ð0) ) 442  #_IO_ã¼Ü_uÆocked ( __å è(((__å)-> _æags & _IO_ERR_SEEN è!ð0) ) 444  _IO_g‘c ( _IO_FILE * __å è __THROW ; 445  _IO_putc ( __c , _IO_FILE * __å è __THROW ; 446  _IO_ãof ( _IO_FILE * __å è __THROW ; 447  _IO_ã¼Ü ( _IO_FILE * __å è __THROW ; 449  _IO_³ekc_locked ( _IO_FILE * __å è __THROW ; 452  #_IO_PENDING_OUTPUT_COUNT ( _å ) \ 453 (( _å )-> _IO_wr™e_±r - (_å)-> _IO_wr™e_ba£ ) ) 455  _IO_æockfže ( _IO_FILE *è __THROW ; 456  _IO_fuÆockfže ( _IO_FILE *è __THROW ; 457  _IO_árylockfže ( _IO_FILE *è __THROW ; 459 #ifdeà _IO_MTSAFE_IO 460  #_IO_³ekc ( _å è `_IO_³ekc_locked (_å) ) 461  #_IO_æockfže ( _å ) \ 462 ià((( _å )-> _æags & _IO_USER_LOCK è=ð0è `_IO_æockfže (_å) ) 463  #_IO_fuÆockfže ( _å ) \ 464 ià((( _å )-> _æags & _IO_USER_LOCK è=ð0è `_IO_fuÆockfže (_å) ) 466  #_IO_³ekc ( _å è `_IO_³ekc_uÆocked (_å) ) 467  #_IO_æockfže ( _å è ) 468  #_IO_fuÆockfže ( _å è ) 469  #_IO_árylockfže ( _å è ) 470  #_IO_þ—nup_»giÚ_¡¬t ( _fù , _å è ) 471  #_IO_þ—nup_»giÚ_’d ( _Do™ è ) 474  _IO_vfsÿnf ( _IO_FILE * __»¡riù , const * __restrict, 475 _IO_va_li¡ , * __»¡riù è __THROW ; 476  _IO_vårštf ( _IO_FILE * __»¡riù , const *__restrict, 477 _IO_va_li¡ è __THROW ; 478 _IO_ssize_t _IO_·dn ( _IO_FILE *, , _IO_ssize_tè __THROW ; 479 _IO_size_t _IO_sg‘n ( _IO_FILE *, *, _IO_size_tè __THROW ; 481 _IO_off64_t _IO_£ekoff ( _IO_FILE *, _IO_off64_t, , è __THROW ; 482 _IO_off64_t _IO_£ekpos ( _IO_FILE *, _IO_off64_t, è __THROW ; 484  _IO_ä“_backup_¬— ( _IO_FILE *è __THROW ; 486 #ià defšed _LIBC || defšed _GLIBCPP_USE_WCHAR_T 487 _IO_wšt_t _IO_g‘wc ( _IO_FILE * __å è __THROW ; 488 _IO_wšt_t _IO_putwc ( wch¬_t __wc , _IO_FILE * __å è __THROW ; 489  _IO_fwide ( _IO_FILE * __å ,  __mode è __THROW ; 490 #ià __GNUC__ >= 2 493 #ià defšed _LIBC && defšed SHARED 494  ~ 495 #ià SHLIB_COMPAT ( libc , GLIBC_2_0 , GLIBC_2_1 ) 496  #_IO_fwide_maybe_šcom·tibË \ 497 ( `__bužtš_ex³ù (& _IO_¡dš_u£d =ð NULL , 0)) ) 498 cÚ¡  _IO_¡dš_u£d ; 499 w—k_ex‹º ( _IO_¡dš_u£d ); 502 #iâdeà _IO_fwide_maybe_šcom·tibË 503  #_IO_fwide_maybe_šcom·tibË (0) ) 507  #_IO_fwide ( __å , __mode ) \ 508 ({  __»suÉ = ( __mode ); \ 509 ià( __»suÉ < 0 && ! _IO_fwide_maybe_šcom·tibË ) \ 511 ià(( __å )-> _mode == 0) \ 513 ( __å )-> _mode = -1; \ 514 __»suÉ = ( __å )-> _mode ; \ 516 ià( `__bužtš_cÚ¡ªt_p ( __mode ) && (__mode) == 0) \ 517 __»suÉ = _IO_fwide_maybe_šcom·tibË ? -1 : ( __å )-> _mode ; \ 519 __»suÉ = `_IO_fwide ( __å , __result); \ 520 __»suÉ ; }) ) 523  _IO_vfwsÿnf ( _IO_FILE * __»¡riù , cÚ¡ wch¬_t * __restrict, 524 _IO_va_li¡ , * __»¡riù è __THROW ; 525  _IO_vfw´štf ( _IO_FILE * __»¡riù , cÚ¡ wch¬_t *__restrict, 526 _IO_va_li¡ è __THROW ; 527 _IO_ssize_t _IO_w·dn ( _IO_FILE *, wšt_t , _IO_ssize_tè __THROW ; 528  _IO_ä“_wbackup_¬— ( _IO_FILE *è __THROW ; 531 #ifdeà __ýlu¥lus @/usr/include/linux/backing-dev.h 8 #iâdeà _LINUX_BACKING_DEV_H 9  #_LINUX_BACKING_DEV_H ) 15 ebdi_¡©e { 16 mBDI_pdæush , 17 mBDI_wr™e_cÚge¡ed , 18 mBDI_»ad_cÚge¡ed , 19 mBDI_unu£d , 22 ( tcÚge¡ed_â )(*, ); 24  sbackšg_dev_šfo { 25  ¿_·ges ; 26  ¡©e ; 27  memÜy_backed ; 28 cÚge¡ed_â *congested_fn; 29 * cÚge¡ed_d©a ; 30 (* uÅlug_io_â )( backšg_dev_šfo *,  ·ge *); 31 * uÅlug_io_d©a ; 34  backšg_dev_šfo deçuÉ_backšg_dev_šfo ; 35  `deçuÉ_uÅlug_io_â ( backšg_dev_šfo * bdi ,  ·ge *page); 37  `wr™eback_acquœe ( backšg_dev_šfo * bdi ); 38  `wr™eback_š_´og»ss ( backšg_dev_šfo * bdi ); 39  `wr™eback_»Ëa£ ( backšg_dev_šfo * bdi ); 41  šlše  $bdi_cÚge¡ed ( backšg_dev_šfo * bdi ,  bdi_b™s ) 43 ià( bdi -> cÚge¡ed_â ) 44  bdi -> `cÚge¡ed_â (bdi-> cÚge¡ed_d©a , bdi_b™s ); 45  ( bdi -> ¡©e & bdi_b™s ); 46 } } 48  šlše  $bdi_»ad_cÚge¡ed ( backšg_dev_šfo * bdi ) 50  `bdi_cÚge¡ed ( bdi , 1 << BDI_»ad_cÚge¡ed ); 51 } } 53  šlše  $bdi_wr™e_cÚge¡ed ( backšg_dev_šfo * bdi ) 55  `bdi_cÚge¡ed ( bdi , 1 << BDI_wr™e_cÚge¡ed ); 56 } } 58  šlše  $bdi_rw_cÚge¡ed ( backšg_dev_šfo * bdi ) 60  `bdi_cÚge¡ed ( bdi , (1 << BDI_»ad_cÚge¡ed )| 61 (1 << BDI_wr™e_cÚge¡ed )); 62 } } @/usr/include/linux/err_kernel_only.h 1 #”rÜ K”Ãl Úly h—d” šþuded š u£r¥aû @/usr/include/linux/errno.h 1 #iâdeà _LINUX_ERRNO_H 2  #_LINUX_ERRNO_H ) 4  #EPERM 1 ) 5  #ENOENT 2 ) 6  #ESRCH 3 ) 7  #EINTR 4 ) 8  #EIO 5 ) 9  #ENXIO 6 ) 10  #E2BIG 7 ) 11  #ENOEXEC 8 ) 12  #EBADF 9 ) 13  #ECHILD 10 ) 14  #EAGAIN 11 ) 15  #ENOMEM 12 ) 16  #EACCES 13 ) 17  #EFAULT 14 ) 18  #ENOTBLK 15 ) 19  #EBUSY 16 ) 20  #EEXIST 17 ) 21  #EXDEV 18 ) 22  #ENODEV 19 ) 23  #ENOTDIR 20 ) 24  #EISDIR 21 ) 25  #EINVAL 22 ) 26  #ENFILE 23 ) 27  #EMFILE 24 ) 28  #ENOTTY 25 ) 29  #ETXTBSY 26 ) 30  #EFBIG 27 ) 31  #ENOSPC 28 ) 32  #ESPIPE 29 ) 33  #EROFS 30 ) 34  #EMLINK 31 ) 35  #EPIPE 32 ) 36  #EDOM 33 ) 37  #ERANGE 34 ) 38  #EDEADLK 35 ) 40  #ENAMETOOLONG 36 ) 41  #ENOLCK 37 ) 42  #ENOSYS 38 ) 43  #ENOTEMPTY 39 ) 44  #ELOOP 40 ) 45  #EWOULDBLOCK EAGAIN ) 46  #ENOMSG 42 ) 47  #EIDRM 43 ) 48  #ECHRNG 44 ) 49  #EL2NSYNC 45 ) 50  #EL3HLT 46 ) 51  #EL3RST 47 ) 52  #ELNRNG 48 ) 53  #EUNATCH 49 ) 54  #ENOCSI 50 ) 55  #EL2HLT 51 ) 56  #EBADE 52 ) 57  #EBADR 53 ) 58  #EXFULL 54 ) 59  #ENOANO 55 ) 60  #EBADRQC 56 ) 61  #EBADSLT 57 ) 63  #EDEADLOCK EDEADLK ) 65  #EBFONT 59 ) 66  #ENOSTR 60 ) 67  #ENODATA 61 ) 68  #ETIME 62 ) 69  #ENOSR 63 ) 70  #ENONET 64 ) 71  #ENOPKG 65 ) 72  #EREMOTE 66 ) 73  #ENOLINK 67 ) 74  #EADV 68 ) 75  #ESRMNT 69 ) 76  #ECOMM 70 ) 77  #EPROTO 71 ) 78  #EMULTIHOP 72 ) 79  #EDOTDOT 73 ) 80  #EBADMSG 74 ) 81  #EOVERFLOW 75 ) 82  #ENOTUNIQ 76 ) 83  #EBADFD 77 ) 84  #EREMCHG 78 ) 85  #ELIBACC 79 ) 86  #ELIBBAD 80 ) 87  #ELIBSCN 81 ) 88  #ELIBMAX 82 ) 89  #ELIBEXEC 83 ) 90  #EILSEQ 84 ) 91  #ERESTART 85 ) 92  #ESTRPIPE 86 ) 93  #EUSERS 87 ) 94  #ENOTSOCK 88 ) 95  #EDESTADDRREQ 89 ) 96  #EMSGSIZE 90 ) 97  #EPROTOTYPE 91 ) 98  #ENOPROTOOPT 92 ) 99  #EPROTONOSUPPORT 93 ) 100  #ESOCKTNOSUPPORT 94 ) 101  #EOPNOTSUPP 95 ) 102  #EPFNOSUPPORT 96 ) 103  #EAFNOSUPPORT 97 ) 104  #EADDRINUSE 98 ) 105  #EADDRNOTAVAIL 99 ) 106  #ENETDOWN 100 ) 107  #ENETUNREACH 101 ) 108  #ENETRESET 102 ) 109  #ECONNABORTED 103 ) 110  #ECONNRESET 104 ) 111  #ENOBUFS 105 ) 112  #EISCONN 106 ) 113  #ENOTCONN 107 ) 114  #ESHUTDOWN 108 ) 115  #ETOOMANYREFS 109 ) 116  #ETIMEDOUT 110 ) 117  #ECONNREFUSED 111 ) 118  #EHOSTDOWN 112 ) 119  #EHOSTUNREACH 113 ) 120  #EALREADY 114 ) 121  #EINPROGRESS 115 ) 122  #ESTALE 116 ) 123  #EUCLEAN 117 ) 124  #ENOTNAM 118 ) 125  #ENAVAIL 119 ) 126  #EISNAM 120 ) 127  #EREMOTEIO 121 ) 128  #EDQUOT 122 ) 130  #ENOMEDIUM 123 ) 131  #EMEDIUMTYPE 124 ) 132  #ECANCELED 125 ) 133  #ENOKEY 126 ) 134  #EKEYEXPIRED 127 ) 135  #EKEYREVOKED 128 ) 136  #EKEYREJECTED 129 ) 139  ~ @/usr/include/linux/fs.h 1 #iâdeà _LINUX_FS_H 2  #_LINUX_FS_H ) 9  ~ 10  ~ 11  ~ 24 #undeà NR_OPEN 25  #NR_OPEN (1024*1024è ) 26  #INR_OPEN 1024 ) 28  #BLOCK_SIZE_BITS 10 ) 29  #BLOCK_SIZE (1<< BLOCK_SIZE_BITS ) ) 32  sfžes_¡©_¡ruù { 33  mÄ_fžes ; 34  mÄ_ä“_fžes ; 35  mmax_fžes ; 37  fžes_¡©_¡ruù fžes_¡© ; 39  sšodes_¡©_t { 40  mÄ_šodes ; 41  mÄ_unu£d ; 42  mdummy [5]; 44  šodes_¡©_t šodes_¡© ; 46  Ëa£s_’abË , Ëa£_b»ak_time ; 48 #ifdeà CONFIG_DNOTIFY 49  dœ_nÙify_’abË ; 52  #NR_FILE 8192 ) 54  #MAY_EXEC 1 ) 55  #MAY_WRITE 2 ) 56  #MAY_READ 4 ) 57  #MAY_APPEND 8 ) 59  #FMODE_READ 1 ) 60  #FMODE_WRITE 2 ) 63  #FMODE_LSEEK 4 ) 64  #FMODE_PREAD 8 ) 65  #FMODE_PWRITE FMODE_PREAD ) 67  #RW_MASK 1 ) 68  #RWA_MASK 2 ) 69  #READ 0 ) 70  #WRITE 1 ) 71  #READA 2 ) 72  #SPECIAL 4 ) 73  #READ_SYNC ( READ | (1 << BIO_RW_SYNC )) ) 74  #WRITE_SYNC ( WRITE | (1 << BIO_RW_SYNC )) ) 75  #WRITE_BARRIER ((1 << BIO_RW è| (1 << BIO_RW_BARRIER )) ) 77  #SEL_IN 1 ) 78  #SEL_OUT 2 ) 79  #SEL_EX 4 ) 82  #FS_REQUIRES_DEV 1 ) 83  #FS_BINARY_MOUNTDATA 2 ) 84  #FS_REVAL_DOT 16384 ) 85  #FS_ODD_RENAME 32768 ) 91  #MS_RDONLY 1 ) 92  #MS_NOSUID 2 ) 93  #MS_NODEV 4 ) 94  #MS_NOEXEC 8 ) 95  #MS_SYNCHRONOUS 16 ) 96  #MS_REMOUNT 32 ) 97  #MS_MANDLOCK 64 ) 98  #MS_DIRSYNC 128 ) 99  #MS_NOATIME 1024 ) 100  #MS_NODIRATIME 2048 ) 101  #MS_BIND 4096 ) 102  #MS_MOVE 8192 ) 103  #MS_REC 16384 ) 104  #MS_VERBOSE 32768 ) 105  #MS_POSIXACL (1<<16è ) 106  #MS_ACTIVE (1<<30) ) 107  #MS_NOUSER (1<<31) ) 112  #MS_RMT_MASK ( MS_RDONLY | MS_SYNCHRONOUS | MS_MANDLOCK | MS_NOATIME |\ 113 MS_NODIRATIME ) ) 118  #MS_MGC_VAL 0xC0ED0000 ) 119  #MS_MGC_MSK 0xffff0000 ) 123  #S_SYNC 1 ) 124  #S_NOATIME 2 ) 125  #S_APPEND 4 ) 126  #S_IMMUTABLE 8 ) 127  #S_DEAD 16 ) 128  #S_NOQUOTA 32 ) 129  #S_DIRSYNC 64 ) 130  #S_NOCMTIME 128 ) 131  #S_SWAPFILE 256 ) 146  #__IS_FLG ( šode , æg è((šode)-> i_sb -> s_æags & (æg)) ) 148  #IS_RDONLY ( šode è((šode)-> i_sb -> s_æags & MS_RDONLY ) ) 149  #IS_SYNC ( šode è( `__IS_FLG (šode, MS_SYNCHRONOUS ) || \ 150 (( šode )-> i_æags & S_SYNC )) ) 151  #IS_DIRSYNC ( šode è( `__IS_FLG (šode, MS_SYNCHRONOUS | MS_DIRSYNC ) || \ 152 (( šode )-> i_æags & ( S_SYNC | S_DIRSYNC ))) ) 153  #IS_MANDLOCK ( šode è `__IS_FLG (šode, MS_MANDLOCK ) ) 155  #IS_NOQUOTA ( šode è((šode)-> i_æags & S_NOQUOTA ) ) 156  #IS_APPEND ( šode è((šode)-> i_æags & S_APPEND ) ) 157  #IS_IMMUTABLE ( šode è((šode)-> i_æags & S_IMMUTABLE ) ) 158  #IS_NOATIME ( šode è( `__IS_FLG (šode, MS_NOATIME è|| ((šode)-> i_æags & S_NOATIME )) ) 159  #IS_NODIRATIME ( šode è `__IS_FLG (šode, MS_NODIRATIME ) ) 160  #IS_POSIXACL ( šode è `__IS_FLG (šode, MS_POSIXACL ) ) 162  #IS_DEADDIR ( šode è((šode)-> i_æags & S_DEAD ) ) 163  #IS_NOCMTIME ( šode è((šode)-> i_æags & S_NOCMTIME ) ) 164  #IS_SWAPFILE ( šode è((šode)-> i_æags & S_SWAPFILE ) ) 169  #BLKROSET `_IO (0x12,93è ) 170  #BLKROGET `_IO (0x12,94è ) 171  #BLKRRPART `_IO (0x12,95è ) 172  #BLKGETSIZE `_IO (0x12,96è ) 173  #BLKFLSBUF `_IO (0x12,97è ) 174  #BLKRASET `_IO (0x12,98è ) 175  #BLKRAGET `_IO (0x12,99è ) 176  #BLKFRASET `_IO (0x12,100) ) 177  #BLKFRAGET `_IO (0x12,101) ) 178  #BLKSECTSET `_IO (0x12,102) ) 179  #BLKSECTGET `_IO (0x12,103) ) 180  #BLKSSZGET `_IO (0x12,104) ) 182  #BLKPG `_IO (0x12,105) ) 186  #BLKELVGET `_IOR (0x12,106, size_t ) ) 187  #BLKELVSET `_IOW (0x12,107, size_t ) ) 192  #BLKBSZGET `_IOR (0x12,112, size_t ) ) 193  #BLKBSZSET `_IOW (0x12,113, size_t ) ) 194  #BLKGETSIZE64 `_IOR (0x12,114, size_t è ) 196  #BMAP_IOCTL 1 ) 197  #FIBMAP `_IO (0x00,1è ) 198  #FIGETBSZ `_IO (0x00,2è ) @/usr/include/linux/kernel.h 1 #iâdeà _LINUX_KERNEL_H 2  #_LINUX_KERNEL_H ) 8  #SI_LOAD_SHIFT 16 ) 9  ssysšfo { 10  mu±ime ; 11  mlßds [3]; 12  mtÙ®¿m ; 13  mä“¿m ; 14  msh¬ed¿m ; 15  mbufã¼am ; 16  mtÙ®sw­ ; 17  mä“sw­ ; 18  m´ocs ; 19  m·d ; 20  mtÙ®high ; 21  mä“high ; 22  mmem_un™ ; 23  m_f [20-2*()-()]; 26  BUILD_BUG (); 27  #BUILD_BUG_ON ( cÚd™iÚ èdØ{ ià(cÚd™iÚè `BUILD_BUG (); } 0) ) 30 #ià __GNUC__ > 2 || __GNUC_MINOR__ >= 95 31  #__FUNCTION__ ( __func__ ) ) @/usr/include/linux/nfs.h 7 #iâdeà _LINUX_NFS_H 8  #_LINUX_NFS_H ) 10  #NFS_PROGRAM 100003 ) 11  #NFS_PORT 2049 ) 12  #NFS_MAXDATA 8192 ) 13  #NFS_MAXPATHLEN 1024 ) 14  #NFS_MAXNAMLEN 255 ) 15  #NFS_MAXGROUPS 16 ) 16  #NFS_FHSIZE 32 ) 17  #NFS_COOKIESIZE 4 ) 18  #NFS_FIFO_DEV (-1) ) 19  #NFSMODE_FMT 0170000 ) 20  #NFSMODE_DIR 0040000 ) 21  #NFSMODE_CHR 0020000 ) 22  #NFSMODE_BLK 0060000 ) 23  #NFSMODE_REG 0100000 ) 24  #NFSMODE_LNK 0120000 ) 25  #NFSMODE_SOCK 0140000 ) 26  #NFSMODE_FIFO 0010000 ) 28  #NFS_MNT_PROGRAM 100005 ) 29  #NFS_MNT_PORT 627 ) 39 enfs_¡© { 40 mNFS_OK = 0, 41 mNFSERR_PERM = 1, 42 mNFSERR_NOENT = 2, 43 mNFSERR_IO = 5, 44 mNFSERR_NXIO = 6, 45 mNFSERR_EAGAIN = 11, 46 mNFSERR_ACCES = 13, 47 mNFSERR_EXIST = 17, 48 mNFSERR_XDEV = 18, 49 mNFSERR_NODEV = 19, 50 mNFSERR_NOTDIR = 20, 51 mNFSERR_ISDIR = 21, 52 mNFSERR_INVAL = 22, 53 mNFSERR_FBIG = 27, 54 mNFSERR_NOSPC = 28, 55 mNFSERR_ROFS = 30, 56 mNFSERR_MLINK = 31, 57 mNFSERR_OPNOTSUPP = 45, 58 mNFSERR_NAMETOOLONG = 63, 59 mNFSERR_NOTEMPTY = 66, 60 mNFSERR_DQUOT = 69, 61 mNFSERR_STALE = 70, 62 mNFSERR_REMOTE = 71, 63 mNFSERR_WFLUSH = 99, 64 mNFSERR_BADHANDLE = 10001, 65 mNFSERR_NOT_SYNC = 10002, 66 mNFSERR_BAD_COOKIE = 10003, 67 mNFSERR_NOTSUPP = 10004, 68 mNFSERR_TOOSMALL = 10005, 69 mNFSERR_SERVERFAULT = 10006, 70 mNFSERR_BADTYPE = 10007, 71 mNFSERR_JUKEBOX = 10008, 72 mNFSERR_SAME = 10009, 73 mNFSERR_DENIED = 10010, 74 mNFSERR_EXPIRED = 10011, 75 mNFSERR_LOCKED = 10012, 76 mNFSERR_GRACE = 10013, 77 mNFSERR_FHEXPIRED = 10014, 78 mNFSERR_SHARE_DENIED = 10015, 79 mNFSERR_WRONGSEC = 10016, 80 mNFSERR_CLID_INUSE = 10017, 81 mNFSERR_RESOURCE = 10018, 82 mNFSERR_MOVED = 10019, 83 mNFSERR_NOFILEHANDLE = 10020, 84 mNFSERR_MINOR_VERS_MISMATCH = 10021, 85 mNFSERR_STALE_CLIENTID = 10022, 86 mNFSERR_STALE_STATEID = 10023, 87 mNFSERR_OLD_STATEID = 10024, 88 mNFSERR_BAD_STATEID = 10025, 89 mNFSERR_BAD_SEQID = 10026, 90 mNFSERR_NOT_SAME = 10027, 91 mNFSERR_LOCK_RANGE = 10028, 92 mNFSERR_SYMLINK = 10029, 93 mNFSERR_RESTOREFH = 10030, 94 mNFSERR_LEASE_MOVED = 10031, 95 mNFSERR_ATTRNOTSUPP = 10032, 96 mNFSERR_NO_GRACE = 10033, 97 mNFSERR_RECLAIM_BAD = 10034, 98 mNFSERR_RECLAIM_CONFLICT = 10035, 99 mNFSERR_BAD_XDR = 10036, 100 mNFSERR_LOCKS_HELD = 10037, 101 mNFSERR_OPENMODE = 10038, 102 mNFSERR_BADOWNER = 10039, 103 mNFSERR_BADCHAR = 10040, 104 mNFSERR_BADNAME = 10041, 105 mNFSERR_BAD_RANGE = 10042, 106 mNFSERR_LOCK_NOTSUPP = 10043, 107 mNFSERR_OP_ILLEGAL = 10044, 108 mNFSERR_DEADLOCK = 10045, 109 mNFSERR_FILE_OPEN = 10046, 110 mNFSERR_ADMIN_REVOKED = 10047, 111 mNFSERR_CB_PATH_DOWN = 10048, 112 mNFSERR_REPLAY_ME = 10049 117 enfs_áy³ { 118 mNFNON = 0, 119 mNFREG = 1, 120 mNFDIR = 2, 121 mNFBLK = 3, 122 mNFCHR = 4, 123 mNFLNK = 5, 124 mNFSOCK = 6, 125 mNFBAD = 7, 126 mNFFIFO = 8 @/usr/include/linux/posix_types.h 1 #iâdeà _LINUX_POSIX_TYPES_H 2  #_LINUX_POSIX_TYPES_H ) 4  ~ 21 #undeà __NFDBITS 22  #__NFDBITS (8 * ()) ) 24 #undeà __FD_SETSIZE 25  #__FD_SETSIZE 1024 ) 27 #undeà __FDSET_LONGS 28  #__FDSET_LONGS ( __FD_SETSIZE / __NFDBITS ) ) 30 #undeà __FDELT 31  #__FDELT ( d è((dè/ __NFDBITS ) ) 33 #undeà __FDMASK 34  #__FDMASK ( d è(1UL << ((dè% __NFDBITS )) ) 37  mfds_b™s [ __FDSET_LONGS ]; 38 } t__k”Ãl_fd_£t ; 41 (* t__k”Ãl_sighªdËr_t )(); 44  t__k”Ãl_key_t ; 45  t__k”Ãl_mqd_t ; 47  ~ @/usr/include/sys/select.h 22 #iâdeà _SYS_SELECT_H 23  #_SYS_SELECT_H 1 ) 25  ~<ã©u»s.h > 28  ~ 31  ~ 34  ~ 36 #iâdeà __sig£t_t_defšed 37  #__sig£t_t_defšed ) 38  __sig£t_t tsig£t_t ; 42  #__Ãed_time_t ) 43  #__Ãed_time¥ec ) 44  ~ 45  #__Ãed_timev® ) 46  ~ 48 #iâdeà __su£cÚds_t_defšed 49  __su£cÚds_t tsu£cÚds_t ; 50  #__su£cÚds_t_defšed ) 55  t__fd_mask ; 58 #undeà __NFDBITS 59 #undeà __FDELT 60 #undeà __FDMASK 62  #__NFDBITS (8 *  ( __fd_mask )) ) 63  #__FDELT ( d è((dè/ __NFDBITS ) ) 64  #__FDMASK ( d è(( __fd_mask è1 << ((dè% __NFDBITS )) ) 71 #ifdeà __USE_XOPEN 72 __fd_mask mfds_b™s [ __FD_SETSIZE / __NFDBITS ]; 73  #__FDS_BITS ( £t è((£t)-> fds_b™s ) ) 75 __fd_mask m__fds_b™s [ __FD_SETSIZE / __NFDBITS ]; 76  #__FDS_BITS ( £t è((£t)-> __fds_b™s ) ) 78 } tfd_£t ; 81  #FD_SETSIZE __FD_SETSIZE ) 83 #ifdeà __USE_MISC 85  __fd_mask tfd_mask ; 88  #NFDBITS __NFDBITS ) 93  #FD_SET ( fd , fd£ è `__FD_SET (fd, fd£) ) 94  #FD_CLR ( fd , fd£ è `__FD_CLR (fd, fd£) ) 95  #FD_ISSET ( fd , fd£ è `__FD_ISSET (fd, fd£) ) 96  #FD_ZERO ( fd£ è `__FD_ZERO (fd£) ) 99 __BEGIN_DECLS 109  £Ëù ( __nfds , fd_£t * __»¡riù __»adfds , 110 fd_£t * __»¡riù __wr™efds , 111 fd_£t * __»¡riù __exû±fds , 112  timev® * __»¡riù __timeout ); 114 #ifdeà __USE_XOPEN2K 121  p£Ëù ( __nfds , fd_£t * __»¡riù __»adfds , 122 fd_£t * __»¡riù __wr™efds , 123 fd_£t * __»¡riù __exû±fds , 124 cÚ¡  time¥ec * __»¡riù __timeout , 125 cÚ¡ __sig£t_t * __»¡riù __sigmask ); 128 g__END_DECLS @/usr/include/sys/stat.h 23 #iâdef _SYS_STAT_H 24  #_SYS_STAT_H 1 ) 26  ~<ã©u»s.h > 28  ~ 30 #ià defšed __USE_XOPEN || defšed __USE_MISC 31 #ià defšed __USE_XOPEN || defšed __USE_XOPEN2K 32  #__Ãed_time_t ) 34 #ifdeà __USE_MISC 35  #__Ãed_time¥ec ) 37  ~ 40 #ià defšed __USE_XOPEN || defšed __USE_XOPEN2K 43 #iâdeà __dev_t_defšed 44  __dev_t tdev_t ; 45  #__dev_t_defšed ) 48 #iâdeà __gid_t_defšed 49  __gid_t tgid_t ; 50  #__gid_t_defšed ) 53 #iâdeà __šo_t_defšed 54 #iâdeà __USE_FILE_OFFSET64 55  __šo_t tšo_t ; 57  __šo64_t tšo_t ; 59  #__šo_t_defšed ) 62 #iâdeà __mode_t_defšed 63  __mode_t tmode_t ; 64  #__mode_t_defšed ) 67 #iâdeà __Æšk_t_defšed 68  __Æšk_t tÆšk_t ; 69  #__Æšk_t_defšed ) 72 #iâdeà __off_t_defšed 73 #iâdeà __USE_FILE_OFFSET64 74  __off_t toff_t ; 76  __off64_t toff_t ; 78  #__off_t_defšed ) 81 #iâdeà __uid_t_defšed 82  __uid_t tuid_t ; 83  #__uid_t_defšed ) 87 #ifdeà __USE_UNIX98 88 #iâdeà __blkút_t_defšed 89 #iâdeà __USE_FILE_OFFSET64 90  __blkút_t tblkút_t ; 92  __blkút64_t tblkút_t ; 94  #__blkút_t_defšed ) 97 #iâdeà __blksize_t_defšed 98  __blksize_t tblksize_t ; 99  #__blksize_t_defšed ) 103 g__BEGIN_DECLS 105  ~ 107 #ià defšed __USE_BSD || defšed __USE_MISC || defšed __USE_XOPEN 108  #S_IFMT __S_IFMT ) 109  #S_IFDIR __S_IFDIR ) 110  #S_IFCHR __S_IFCHR ) 111  #S_IFBLK __S_IFBLK ) 112  #S_IFREG __S_IFREG ) 113 #ifdeà __S_IFIFO 114  #S_IFIFO __S_IFIFO ) 116 #ifdeà __S_IFLNK 117  #S_IFLNK __S_IFLNK ) 119 #ià( defšed __USE_BSD || defšed __USE_MISC || defšed __USE_UNIX98 ) \ 120 && defšed g__S_IFSOCK 121  #S_IFSOCK __S_IFSOCK ) 127  #__S_ISTYPE ( mode , mask è(((modeè& __S_IFMT è=ð(mask)) ) 129  #S_ISDIR ( mode è `__S_ISTYPE ((mode), __S_IFDIR ) ) 130  #S_ISCHR ( mode è `__S_ISTYPE ((mode), __S_IFCHR ) ) 131  #S_ISBLK ( mode è `__S_ISTYPE ((mode), __S_IFBLK ) ) 132  #S_ISREG ( mode è `__S_ISTYPE ((mode), __S_IFREG ) ) 133 #ifdeà __S_IFIFO 134  #S_ISFIFO ( mode è `__S_ISTYPE ((mode), __S_IFIFO ) ) 136 #ifdeà __S_IFLNK 137  #S_ISLNK ( mode è `__S_ISTYPE ((mode), __S_IFLNK ) ) 140 #ià defšed __USE_BSD && !defšed __S_IFLNK 141  #S_ISLNK ( mode è0 ) 144 #ià( defšed __USE_BSD || defšed __USE_UNIX98 ) \ 145 && defšed g__S_IFSOCK 146  #S_ISSOCK ( mode è `__S_ISTYPE ((mode), __S_IFSOCK ) ) 153 #ifdef __USE_POSIX199309 154  #S_TYPEISMQ ( buf è `__S_TYPEISMQ (buf) ) 155  #S_TYPEISSEM ( buf è `__S_TYPEISSEM (buf) ) 156  #S_TYPEISSHM ( buf è `__S_TYPEISSHM (buf) ) 162  #S_ISUID __S_ISUID ) 163  #S_ISGID __S_ISGID ) 165 #ià defšed __USE_BSD || defšed __USE_MISC || defšed __USE_XOPEN 167  #S_ISVTX __S_ISVTX ) 170  #S_IRUSR __S_IREAD ) 171  #S_IWUSR __S_IWRITE ) 172  #S_IXUSR __S_IEXEC ) 174  #S_IRWXU ( __S_IREAD | __S_IWRITE | __S_IEXEC ) ) 176 #ià defšed __USE_MISC && defšed __USE_BSD 177  #S_IREAD S_IRUSR ) 178  #S_IWRITE S_IWUSR ) 179  #S_IEXEC S_IXUSR ) 182  #S_IRGRP ( S_IRUSR >> 3è ) 183  #S_IWGRP ( S_IWUSR >> 3è ) 184  #S_IXGRP ( S_IXUSR >> 3è ) 186  #S_IRWXG ( S_IRWXU >> 3) ) 188  #S_IROTH ( S_IRGRP >> 3è ) 189  #S_IWOTH ( S_IWGRP >> 3è ) 190  #S_IXOTH ( S_IXGRP >> 3è ) 192  #S_IRWXO ( S_IRWXG >> 3) ) 195 #ifdef __USE_BSD 197  #ACCESSPERMS ( S_IRWXU | S_IRWXG | S_IRWXO è ) 198  #ALLPERMS ( S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO ) ) 199  #DEFFILEMODE ( S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH ) ) 201  #S_BLKSIZE 512 ) 205 #iâdeà __USE_FILE_OFFSET64 207  $¡© ( __cÚ¡ * __»¡riù __fže , 208  ¡© * __»¡riù __buf è __THROW `__nÚnuÎ ((1, 2)); 212  $f¡© ( __fd ,  ¡© * __buf è __THROW `__nÚnuÎ ((2)); 214 #ifdeà __REDIRECT_NTH 215  `__REDIRECT_NTH ( ¡© , ( __cÚ¡ * __»¡riù __fže , 216  ¡© * __»¡riù __buf ), ¡©64 ) 217 `__nÚnuÎ ((1, 2)); 218  `__REDIRECT_NTH ( f¡© , ( __fd ,  ¡© * __buf ), f¡©64 ) 219 `__nÚnuÎ ((2)); 221  #¡© ¡©64 ) 222  #f¡© f¡©64 ) 225 #ifdeà __USE_LARGEFILE64 226  $¡©64 ( __cÚ¡ * __»¡riù __fže , 227  ¡©64 * __»¡riù __buf è __THROW `__nÚnuÎ ((1, 2)); 228  $f¡©64 ( __fd ,  ¡©64 * __buf è __THROW `__nÚnuÎ ((2)); 231 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 232 #iâdeà __USE_FILE_OFFSET64 235  $l¡© ( __cÚ¡ * __»¡riù __fže , 236  ¡© * __»¡riù __buf è __THROW `__nÚnuÎ ((1, 2)); 238 #ifdeà __REDIRECT_NTH 239  `__REDIRECT_NTH ( l¡© , 240 ( __cÚ¡ * __»¡riù __fže , 241  ¡© * __»¡riù __buf ), l¡©64 ) 242 `__nÚnuÎ ((1, 2)); 244  #l¡© l¡©64 ) 247 #ifdeà __USE_LARGEFILE64 248  $l¡©64 ( __cÚ¡ * __»¡riù __fže , 249  ¡©64 * __»¡riù __buf ) 250 __THROW `__nÚnuÎ ((1, 2)); 256  $chmod ( __cÚ¡ * __fže , __mode_t __mode ) 257 __THROW `__nÚnuÎ ((1)); 259 #ifdeà __USE_BSD 263  $lchmod ( __cÚ¡ * __fže , __mode_t __mode ) 264 __THROW `__nÚnuÎ ((1)); 268 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 269  $fchmod ( __fd , __mode_t __mode è __THROW ; 275 __mode_t $umask ( __mode_t __mask è __THROW ; 277 #ifdef __USE_GNU 280 __mode_t $g‘umask (è __THROW ; 284  $mkdœ ( __cÚ¡ * __·th , __mode_t __mode ) 285 __THROW `__nÚnuÎ ((1)); 290 #ià defšed __USE_MISC || defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 291  $mknod ( __cÚ¡ * __·th , __mode_t __mode , __dev_t __dev ) 292 __THROW `__nÚnuÎ ((1)); 297  $mkfifo ( __cÚ¡ * __·th , __mode_t __mode ) 298 __THROW `__nÚnuÎ ((1)); 315 #iâdeà _STAT_VER 316  #_STAT_VER 0 ) 318 #iâdeà _MKNOD_VER 319  #_MKNOD_VER 0 ) 323 #iâdeà __USE_FILE_OFFSET64 324  $__fx¡© ( __v” ,  __fždes ,  ¡© * __¡©_buf ) 325 __THROW `__nÚnuÎ ((3)); 326  $__x¡© ( __v” , __cÚ¡ * __fž’ame , 327  ¡© * __¡©_buf è __THROW `__nÚnuÎ ((2, 3)); 328  $__lx¡© ( __v” , __cÚ¡ * __fž’ame , 329  ¡© * __¡©_buf è __THROW `__nÚnuÎ ((2, 3)); 331 #ifdeà __REDIRECT_NTH 332  `__REDIRECT_NTH ( __fx¡© , ( __v” ,  __fždes , 333  ¡© * __¡©_buf ), __fx¡©64 ) 334 `__nÚnuÎ ((3)); 335  `__REDIRECT_NTH ( __x¡© , ( __v” , __cÚ¡ * __fž’ame , 336  ¡© * __¡©_buf ), __x¡©64 ) 337 `__nÚnuÎ ((2, 3)); 338  `__REDIRECT_NTH ( __lx¡© , ( __v” , __cÚ¡ * __fž’ame , 339  ¡© * __¡©_buf ), __lx¡©64 ) 340 `__nÚnuÎ ((2, 3)); 343  #__fx¡© __fx¡©64 ) 344  #__x¡© __x¡©64 ) 345  #__lx¡© __lx¡©64 ) 349 #ifdeà __USE_LARGEFILE64 350  $__fx¡©64 ( __v” ,  __fždes ,  ¡©64 * __¡©_buf ) 351 __THROW `__nÚnuÎ ((3)); 352  $__x¡©64 ( __v” , __cÚ¡ * __fž’ame , 353  ¡©64 * __¡©_buf è __THROW `__nÚnuÎ ((2, 3)); 354  $__lx¡©64 ( __v” , __cÚ¡ * __fž’ame , 355  ¡©64 * __¡©_buf è __THROW `__nÚnuÎ ((2, 3)); 357  $__xmknod ( __v” , __cÚ¡ * __·th , __mode_t __mode , 358 __dev_t * __dev è __THROW `__nÚnuÎ ((2, 4)); 360 #ià defšed __GNUC__ && __GNUC__ >= 2 363 __šlše__  364 `__NTH ( $¡© ( __cÚ¡ * __·th ,  ¡© * __¡©buf )) 366  `__x¡© ( _STAT_VER , __·th , __¡©buf ); 367 } } 369 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 370 __šlše__  371 __NTH ( $l¡© ( __cÚ¡ * __·th ,  ¡© * __¡©buf )) 373  `__lx¡© ( _STAT_VER , __·th , __¡©buf ); 374 } } 377 __šlše__  378 __NTH ( $f¡© ( __fd ,  ¡© * __¡©buf )) 380  `__fx¡© ( _STAT_VER , __fd , __¡©buf ); 381 } } 383 #ià defšed __USE_MISC || defšed __USE_BSD 384 __šlše__  385 __NTH ( $mknod ( __cÚ¡ * __·th , __mode_t __mode , __dev_t __dev )) 387  `__xmknod ( _MKNOD_VER , __·th , __mode , & __dev ); 388 } } 391 #ià defšed __USE_LARGEFILE64 \ 392 && (! defšed __USE_FILE_OFFSET64 \ 393 || ( defšed __REDIRECT_NTH && defšed __OPTIMIZE__ )) 394 __šlše__  395 __NTH ( $¡©64 ( __cÚ¡ * __·th ,  ¡©64 * __¡©buf )) 397  `__x¡©64 ( _STAT_VER , __·th , __¡©buf ); 398 } } 400 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 401 __šlše__  402 __NTH ( $l¡©64 ( __cÚ¡ * __·th ,  ¡©64 * __¡©buf )) 404  `__lx¡©64 ( _STAT_VER , __·th , __¡©buf ); 405 } } 408 __šlše__  409 __NTH ( $f¡©64 ( __fd ,  ¡©64 * __¡©buf )) 411  `__fx¡©64 ( _STAT_VER , __fd , __¡©buf ); 412 } } 417 __END_DECLS @/usr/include/sys/sysmacros.h 20 #iâdeà _SYS_SYSMACROS_H 21  #_SYS_SYSMACROS_H 1 ) 23  ~<ã©u»s.h > 28 #ifdeà __GLIBC_HAVE_LONG_LONG 29 __ex‹nsiÚ__ 30 __šlše  $gnu_dev_majÜ ( __dev ) 31 __THROW ; 32 __ex‹nsiÚ__ 33 __šlše  $gnu_dev_mšÜ ( __dev ) 34 __THROW ; 35 __ex‹nsiÚ__ 36 __šlše  $gnu_dev_makedev ( __majÜ , 37  __mšÜ ) 38 __THROW ; 40 #ià defšed __GNUC__ && __GNUC__ >= 2 41 __ex‹nsiÚ__ __šlše  42 `__NTH ( $gnu_dev_majÜ ( __dev )) 44  (( __dev >> 8) & 0xfff) | (() (__dev >> 32) & ~0xfff); 45 } } 47 __ex‹nsiÚ__ __šlše  48 __NTH ( $gnu_dev_mšÜ ( __dev )) 50  ( __dev & 0xff) | (() (__dev >> 12) & ~0xff); 51 } } 53 __ex‹nsiÚ__ __šlše  54 __NTH ( $gnu_dev_makedev ( __majÜ ,  __mšÜ )) 56  (( __mšÜ & 0xffè| (( __majÜ & 0xfff) << 8) 57 | (((è( __mšÜ & ~0xff)) << 12) 58 | (((è( __majÜ & ~0xfff)) << 32)); 59 } } 64  #majÜ ( dev è `gnu_dev_majÜ (dev) ) 65  #mšÜ ( dev è `gnu_dev_mšÜ (dev) ) 66  #makedev ( maj , mš è `gnu_dev_makedev (maj, mš) ) @/usr/include/sys/wait.h 23 #iâdef _SYS_WAIT_H 24  #_SYS_WAIT_H 1 ) 26  ~<ã©u»s.h > 28 g__BEGIN_DECLS 30  ~ 31  ~ 34 #ià! defšed _STDLIB_H || !defšed __USE_XOPEN 37  ~ 39 #ifdef __USE_BSD 44 #ià defšed __GNUC__ && !defšed __ýlu¥lus 45  #__WAIT_INT ( ¡©us ) \ 46 ( `__ex‹nsiÚ__ ({ uniÚ { `__ty³of ( ¡©us è __š ;  __i ; } __u ; \ 47 __u . __š = ( ¡©us ); __u. __i ; })) ) 49  #__WAIT_INT ( ¡©us è(*(*è&(¡©us)) ) 57 #ià! defšed __GNUC__ || __GNUC__ < 2 || defšed __ýlu¥lus 58  #__WAIT_STATUS * ) 59  #__WAIT_STATUS_DEFN * ) 64  wa™ * m__u±r ; 65 * m__Œ ; 66 } t__WAIT_STATUS t__©Œibu‹__ (( t__Œª¥¬’t_uniÚ__ )); 67  #__WAIT_STATUS_DEFN * ) 72  #__WAIT_INT ( ¡©us è(¡©us) ) 73  #__WAIT_STATUS * ) 74  #__WAIT_STATUS_DEFN * ) 79  ~ 81  #WEXITSTATUS ( ¡©us è `__WEXITSTATUS ( `__WAIT_INT (¡©us)) ) 82  #WTERMSIG ( ¡©us è `__WTERMSIG ( `__WAIT_INT (¡©us)) ) 83  #WSTOPSIG ( ¡©us è `__WSTOPSIG ( `__WAIT_INT (¡©us)) ) 84  #WIFEXITED ( ¡©us è `__WIFEXITED ( `__WAIT_INT (¡©us)) ) 85  #WIFSIGNALED ( ¡©us è `__WIFSIGNALED ( `__WAIT_INT (¡©us)) ) 86  #WIFSTOPPED ( ¡©us è `__WIFSTOPPED ( `__WAIT_INT (¡©us)) ) 87 #ifdeà __WIFCONTINUED 88  #WIFCONTINUED ( ¡©us è `__WIFCONTINUED ( `__WAIT_INT (¡©us)) ) 92 #ifdef __USE_BSD 93  #WCOREFLAG __WCOREFLAG ) 94  #WCOREDUMP ( ¡©us è `__WCOREDUMP ( `__WAIT_INT (¡©us)) ) 95  #W_EXITCODE ( »t , sig è `__W_EXITCODE Ô‘, sig) ) 96  #W_STOPCODE ( sig è `__W_STOPCODE (sig) ) 100 #ià defšed __USE_SVID || defšed __USE_XOPEN 103 mP_ALL , 104 mP_PID , 105 mP_PGID 106 } tidty³_t ; 115 __pid_t wa™ ( __WAIT_STATUS __¡©_loc ); 117 #ifdef __USE_BSD 119  #WAIT_ANY (-1è ) 120  #WAIT_MYPGRP 0 ) 138 __pid_t wa™pid (__pid_ˆ __pid , * __¡©_loc ,  __ÝtiÚs ); 140 #ià defšed __USE_SVID || defšed __USE_XOPEN 141  #__Ãed_sigšfo_t ) 142  ~ 154  wa™id ( idty³_t __idty³ , __id_t __id , sigšfo_t * __šfÝ , 155  __ÝtiÚs ); 158 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 161  gru§ge ; 168 __pid_t $wa™3 ( __WAIT_STATUS __¡©_loc ,  __ÝtiÚs , 169  ru§ge * __u§ge è __THROW ; 172 #ifdeà __USE_BSD 175  ru§ge ; 178 __pid_t $wa™4 ( __pid_t __pid , __WAIT_STATUS __¡©_loc ,  __ÝtiÚs , 179  ru§ge * __u§ge è __THROW ; 183 __END_DECLS @/usr/include/time.h 23 #iâdef _TIME_H 25 #ià(! defšed __Ãed_time_t && !defšed __Ãed_þock_t && \ 26 ! defšed g__Ãed_time¥ec ) 27  #_TIME_H 1 ) 28  ~<ã©u»s.h > 30 g__BEGIN_DECLS 34 #ifdef _TIME_H 36  #__Ãed_size_t ) 37  #__Ãed_NULL ) 38  ~<¡ddef.h > 42  ~ 45 #ià! defšed __STRICT_ANSI__ && !defšed __USE_XOPEN2K 46 #iâdeà CLK_TCK 47  #CLK_TCK CLOCKS_PER_SEC ) 53 #ià! defšed __þock_t_defšed && (defšed _TIME_H || defšed __Ãed_þock_t ) 54  #__þock_t_defšed 1 ) 56  ~ 58 __BEGIN_NAMESPACE_STD 60  __þock_t tþock_t ; 61 g__END_NAMESPACE_STD 62 #ià defšed __USE_XOPEN || defšed __USE_POSIX || defšed __USE_MISC 63 $__USING_NAMESPACE_STD ( þock_t ) 67 #undeà __Ãed_þock_t 69 #ià! defšed __time_t_defšed && (defšed _TIME_H || defšed __Ãed_time_t ) 70  #__time_t_defšed 1 ) 72  ~ 74 __BEGIN_NAMESPACE_STD 76  __time_t ttime_t ; 77 __END_NAMESPACE_STD 78 #ià defšed __USE_POSIX || defšed __USE_MISC || defšed __USE_SVID 79 $__USING_NAMESPACE_STD ( time_t ) 83 #undeà __Ãed_time_t 85 #ià! defšed __þockid_t_defšed && \ 86 (( defšed _TIME_H && defšed __USE_POSIX199309 è|| defšed __Ãed_þockid_t ) 87  #__þockid_t_defšed 1 ) 89  ~ 92  __þockid_t tþockid_t ; 95 #undeà __þockid_time_t 97 #ià! defšed __tim”_t_defšed && \ 98 (( defšed _TIME_H && defšed __USE_POSIX199309 è|| defšed __Ãed_tim”_t ) 99  #__tim”_t_defšed 1 ) 101  ~ 104  __tim”_t ttim”_t ; 107 #undeà __Ãed_tim”_t 110 #ià! defšed __time¥ec_defšed && \ 111 (( defšed _TIME_H && \ 112 ( defšed __USE_POSIX199309 || defšed __USE_MISC )) || \ 113 defšed __Ãed_time¥ec ) 114  #__time¥ec_defšed 1 ) 118  stime¥ec 120 __time_t tv_£c ; 121  tv_n£c ; 125 #undeà __Ãed_time¥ec 128 #ifdef _TIME_H 129 __BEGIN_NAMESPACE_STD 131  stm 133  tm_£c ; 134  tm_mš ; 135  tm_hour ; 136  tm_mday ; 137  tm_mÚ ; 138  tm_y—r ; 139  tm_wday ; 140  tm_yday ; 141  tm_isd¡ ; 143 #ifdef __USE_BSD 144  tm_gmtoff ; 145 __cÚ¡ * tm_zÚe ; 147  __tm_gmtoff ; 148 __cÚ¡ * __tm_zÚe ; 151 __END_NAMESPACE_STD 152 #ià defšed __USE_XOPEN || defšed __USE_POSIX || defšed __USE_MISC 153 $__USING_NAMESPACE_STD ( tm ) 157 #ifdeà __USE_POSIX199309 159  s™im”¥ec 161  time¥ec ™_š‹rv® ; 162  time¥ec ™_v®ue ; 166  sigev’t ; 170 #ifdeà __USE_XOPEN2K 171 #iâdeà __pid_t_defšed 172  __pid_t tpid_t ; 173  #__pid_t_defšed ) 178 __BEGIN_NAMESPACE_STD 181 þock_t $þock (è __THROW ; 184 time_t $time ( time_t * __tim” è __THROW ; 187  $difáime ( time_t __time1 ,ime_ˆ __time0 ) 188 __THROW `__©Œibu‹__ (( __cÚ¡__ )); 191 time_t $mktime ( tm * __ è __THROW ; 197 size_t $¡ráime (* __»¡riù __s , size_t __maxsize , 198 __cÚ¡ * __»¡riù __fÜm© , 199 __cÚ¡  tm * __»¡riù __ è __THROW ; 200 __END_NAMESPACE_STD 202 #ifdeà __USE_XOPEN 205 * $¡½time ( __cÚ¡ * __»¡riù __s , 206 __cÚ¡ * __»¡riù __fmt ,  tm * __ ) 207 __THROW ; 210 #ifdeà __USE_GNU 213  ~ 215 size_t $¡ráime_l (* __»¡riù __s , size_t __maxsize , 216 __cÚ¡ * __»¡riù __fÜm© , 217 __cÚ¡  tm * __»¡riù __ , 218 __loÿË_t __loc è __THROW ; 220 * $¡½time_l ( __cÚ¡ * __»¡riù __s , 221 __cÚ¡ * __»¡riù __fmt ,  tm * __ , 222 __loÿË_t __loc è __THROW ; 226 __BEGIN_NAMESPACE_STD 229  tm * $gmtime ( __cÚ¡ time_t * __tim” è __THROW ; 233  tm * $loÿÉime ( __cÚ¡ time_t * __tim” è __THROW ; 234 __END_NAMESPACE_STD 236 #ià defšed __USE_POSIX || defšed __USE_MISC 239  tm * $gmtime_r ( __cÚ¡ time_t * __»¡riù __tim” , 240  tm * __»¡riù __ è __THROW ; 244  tm * $loÿÉime_r ( __cÚ¡ time_t * __»¡riù __tim” , 245  tm * __»¡riù __ è __THROW ; 248 __BEGIN_NAMESPACE_STD 251 * $asùime ( __cÚ¡  tm * __ è __THROW ; 254 * $ùime ( __cÚ¡ time_t * __tim” è __THROW ; 255 __END_NAMESPACE_STD 257 #ià defšed __USE_POSIX || defšed __USE_MISC 262 * $asùime_r ( __cÚ¡  tm * __»¡riù __ , 263 * __»¡riù __buf è __THROW ; 266 * $ùime_r ( __cÚ¡ time_t * __»¡riù __tim” , 267 * __»¡riù __buf è __THROW ; 272 * __tzÇme [2]; 273  __daylight ; 274  __timezÚe ; 277 #ifdef __USE_POSIX 279 * tzÇme [2]; 283  $tz£t (è __THROW ; 286 #ià defšed __USE_SVID || defšed __USE_XOPEN 287  daylight ; 288  timezÚe ; 291 #ifdeà __USE_SVID 294  $¡ime ( __cÚ¡ time_t * __wh’ è __THROW ; 300  #__i¦—p ( y—r ) \ 301 (( y—r è% 4 =ð0 && ((y—rè% 100 !ð0 || (y—rè% 400 =ð0)) ) 304 #ifdeà __USE_MISC 309 time_t $timegm ( tm * __ è __THROW ; 312 time_t $tim–oÿl ( tm * __ è __THROW ; 315  $dysize ( __y—r è __THROW `__©Œibu‹__ (( __cÚ¡__ )); 319 #ifdeà __USE_POSIX199309 324  `Çno¦“p ( __cÚ¡  time¥ec * __»que¡ed_time , 325  time¥ec * __»maššg ); 329  $þock_g‘»s ( þockid_t __þock_id ,  time¥ec * __»s è __THROW ; 332  $þock_g‘time ( þockid_t __þock_id ,  time¥ec * __ è __THROW ; 335  $þock_£‰ime ( þockid_t __þock_id , __cÚ¡  time¥ec * __ ) 336 __THROW ; 338 #ifdeà __USE_XOPEN2K 343  `þock_Çno¦“p ( þockid_t __þock_id ,  __æags , 344 __cÚ¡  time¥ec * __»q , 345  time¥ec * __»m ); 348  $þock_g‘ýuþockid ( pid_t __pid , þockid_t * __þock_id è __THROW ; 353  $tim”_ü—‹ ( þockid_t __þock_id , 354  sigev’t * __»¡riù __evp , 355 tim”_t * __»¡riù __tim”id è __THROW ; 358  $tim”_d–‘e ( tim”_t __tim”id è __THROW ; 361  $tim”_£‰ime ( tim”_t __tim”id ,  __æags , 362 __cÚ¡  ™im”¥ec * __»¡riù __v®ue , 363  ™im”¥ec * __»¡riù __ov®ue è __THROW ; 366  $tim”_g‘time ( tim”_t __tim”id ,  ™im”¥ec * __v®ue ) 367 __THROW ; 370  $tim”_g‘ov”run ( tim”_t __tim”id è __THROW ; 374 #ifdeà __USE_XOPEN_EXTENDED 386  g‘d©e_”r ; 395  tm * `g‘d©e ( __cÚ¡ * __¡ršg ); 398 #ifdeà __USE_GNU 409  `g‘d©e_r ( __cÚ¡ * __»¡riù __¡ršg , 410  tm * __»¡riù __»sbuå ); 413 __END_DECLS @/usr/include/xlocale.h 21 #iâdeà _XLOCALE_H 22  #_XLOCALE_H 1 ) 28  s__loÿË_¡ruù 31  loÿË_d©a * m__loÿËs [13]; 34 cÚ¡ * m__ùy³_b ; 35 cÚ¡ * m__ùy³_tÞow” ; 36 cÚ¡ * m__ùy³_touµ” ; 39 cÚ¡ * m__Çmes [13]; 40 } * t__loÿË_t ; @/usr/include/_G_config.h 4 #iâdeà _G_cÚfig_h 5  #_G_cÚfig_h 1 ) 9  ~ 10  #__Ãed_size_t ) 11  #__Ãed_wch¬_t ) 12  #__Ãed_wšt_t ) 13  #__Ãed_NULL ) 14  ~<¡ddef.h > 15 #iâdeà _WINT_T 20  #_WINT_T ) 21  twšt_t ; 23  #__Ãed_mb¡©e_t ) 24  ~ 25  #_G_size_t size_t ) 28 __off_t m__pos ; 29 __mb¡©e_t m__¡©e ; 30 } t_G_åos_t ; 33 __off64_t m__pos ; 34 __mb¡©e_t m__¡©e ; 35 } t_G_åos64_t ; 36  #_G_ssize_t __ssize_t ) 37  #_G_off_t __off_t ) 38  #_G_off64_t __off64_t ) 39  #_G_pid_t __pid_t ) 40  #_G_uid_t __uid_t ) 41  #_G_wch¬_t wch¬_t ) 42  #_G_wšt_t wšt_t ) 43  #_G_¡©64 ¡©64 ) 44  ~ 47  __gcÚv_šfo m__cd ; 50  __gcÚv_šfo m__cd ; 51  __gcÚv_¡•_d©a m__d©a ; 52 } m__combšed ; 53 } t_G_icÚv_t ; 55  t_G_št16_t t__©Œibu‹__ (( t__mode__ ( t__HI__ ))); 56  t_G_št32_t t__©Œibu‹__ (( t__mode__ ( t__SI__ ))); 57  t_G_ušt16_t t__©Œibu‹__ (( t__mode__ ( t__HI__ ))); 58  t_G_ušt32_t t__©Œibu‹__ (( t__mode__ ( t__SI__ ))); 60  #_G_HAVE_BOOL 1 ) 64  #_G_HAVE_ATEXIT 1 ) 65  #_G_HAVE_SYS_CDEFS 1 ) 66  #_G_HAVE_SYS_WAIT 1 ) 67  #_G_NEED_STDARG_H 1 ) 68  #_G_va_li¡ __gnuc_va_li¡ ) 70  #_G_HAVE_PRINTF_FP 1 ) 71  #_G_HAVE_MMAP 1 ) 72  #_G_HAVE_MREMAP 1 ) 73  #_G_HAVE_LONG_DOUBLE_IO 1 ) 74  #_G_HAVE_IO_FILE_OPEN 1 ) 75  #_G_HAVE_IO_GETLINE_INFO 1 ) 77  #_G_IO_IO_FILE_VERSION 0x20001 ) 79  #_G_OPEN64 __Ý’64 ) 80  #_G_LSEEK64 __l£ek64 ) 81  #_G_MMAP64 __mm­64 ) 82  #_G_FSTAT64 ( fd , buf è `__fx¡©64 ( _STAT_VER , fd, buf) ) 85  #_G_HAVE_ST_BLKSIZE `defšed ( _STATBUF_ST_BLKSIZE ) ) 87  #_G_BUFSIZ 8192 ) 90  #_G_NAMES_HAVE_UNDERSCORE 0 ) 91  #_G_VTABLE_LABEL_HAS_LENGTH 1 ) 92  #_G_USING_THUNKS 1 ) 93  #_G_VTABLE_LABEL_PREFIX "__vt_" ) 94  #_G_VTABLE_LABEL_PREFIX_ID __vt_ ) 97 #ià defšed __ýlu¥lus || defšed __STDC__ 98  #_G_ARGS ( ARGLIST è ) ARGLIST 100  #_G_ARGS ( ARGLIST è() ) @/usr/include/asm-i386/cache.h 4 #iâdeà __ARCH_I386_CACHE_H 5  #__ARCH_I386_CACHE_H ) 9  #L1_CACHE_SHIFT ( CONFIG_X86_L1_CACHE_SHIFT ) ) 10  #L1_CACHE_BYTES (1 << L1_CACHE_SHIFT ) ) 12  #L1_CACHE_SHIFT_MAX 7 ) @/usr/include/asm-i386/fcntl.h 1 #iâdeà _I386_FCNTL_H 2  #_I386_FCNTL_H ) 6  #O_ACCMODE 0003 ) 7  #O_RDONLY 00 ) 8  #O_WRONLY 01 ) 9  #O_RDWR 02 ) 10  #O_CREAT 0100 ) 11  #O_EXCL 0200 ) 12  #O_NOCTTY 0400 ) 13  #O_TRUNC 01000 ) 14  #O_APPEND 02000 ) 15  #O_NONBLOCK 04000 ) 16  #O_NDELAY O_NONBLOCK ) 17  #O_SYNC 010000 ) 18  #FASYNC 020000 ) 19  #O_DIRECT 040000 ) 20  #O_LARGEFILE 0100000 ) 21  #O_DIRECTORY 0200000 ) 22  #O_NOFOLLOW 0400000 ) 23  #O_NOATIME 01000000 ) 25  #F_DUPFD 0 ) 26  #F_GETFD 1 ) 27  #F_SETFD 2 ) 28  #F_GETFL 3 ) 29  #F_SETFL 4 ) 30  #F_GETLK 5 ) 31  #F_SETLK 6 ) 32  #F_SETLKW 7 ) 34  #F_SETOWN 8 ) 35  #F_GETOWN 9 ) 36  #F_SETSIG 10 ) 37  #F_GETSIG 11 ) 39  #F_GETLK64 12 ) 40  #F_SETLK64 13 ) 41  #F_SETLKW64 14 ) 44  #FD_CLOEXEC 1 ) 47  #F_RDLCK 0 ) 48  #F_WRLCK 1 ) 49  #F_UNLCK 2 ) 52  #F_EXLCK 4 ) 53  #F_SHLCK 8 ) 56  #F_INPROGRESS 16 ) 59  #LOCK_SH 1 ) 60  #LOCK_EX 2 ) 61  #LOCK_NB 4 ) 63  #LOCK_UN 8 ) 65  #LOCK_MAND 32 ) 66  #LOCK_READ 64 ) 67  #LOCK_WRITE 128 ) 68  #LOCK_RW 192 ) 70  sæock { 71  ml_ty³ ; 72  ml_wh’û ; 73 off_t ml_¡¬t ; 74 off_t ml_Ën ; 75 pid_t ml_pid ; 78  sæock64 { 79  ml_ty³ ; 80  ml_wh’û ; 81 loff_t ml_¡¬t ; 82 loff_t ml_Ën ; 83 pid_t ml_pid ; 86  #F_LINUX_SPECIFIC_BASE 1024 ) @/usr/include/asm-i386/ioctl.h 6 #iâdeà _ASMI386_IOCTL_H 7  #_ASMI386_IOCTL_H ) 27  #_IOC_NRBITS 8 ) 28  #_IOC_TYPEBITS 8 ) 29  #_IOC_SIZEBITS 14 ) 30  #_IOC_DIRBITS 2 ) 32  #_IOC_NRMASK ((1 << _IOC_NRBITS )-1) ) 33  #_IOC_TYPEMASK ((1 << _IOC_TYPEBITS )-1) ) 34  #_IOC_SIZEMASK ((1 << _IOC_SIZEBITS )-1) ) 35  #_IOC_DIRMASK ((1 << _IOC_DIRBITS )-1) ) 37  #_IOC_NRSHIFT 0 ) 38  #_IOC_TYPESHIFT ( _IOC_NRSHIFT + _IOC_NRBITS ) ) 39  #_IOC_SIZESHIFT ( _IOC_TYPESHIFT + _IOC_TYPEBITS ) ) 40  #_IOC_DIRSHIFT ( _IOC_SIZESHIFT + _IOC_SIZEBITS ) ) 45  #_IOC_NONE 0U ) 46  #_IOC_WRITE 1U ) 47  #_IOC_READ 2U ) 49  #_IOC ( dœ , ty³ , Ä , size ) \ 50 ((( dœ è<< _IOC_DIRSHIFT ) | \ 51 (( ty³ è<< _IOC_TYPESHIFT ) | \ 52 (( Ä è<< _IOC_NRSHIFT ) | \ 53 (( size è<< _IOC_SIZESHIFT )) ) 57  #_IOC_TYPECHECK ( t èÑ) ) 60  #_IO ( ty³ , Ä è `_IOC ( _IOC_NONE ,Ñy³),Òr),0) ) 61  #_IOR ( ty³ , Ä , size è `_IOC ( _IOC_READ ,Ñy³),Òr),( `_IOC_TYPECHECK (size))) ) 62  #_IOW ( ty³ , Ä , size è `_IOC ( _IOC_WRITE ,Ñy³),Òr),( `_IOC_TYPECHECK (size))) ) 63  #_IOWR ( ty³ , Ä , size è `_IOC ( _IOC_READ | _IOC_WRITE ,Ñy³),Òr),( `_IOC_TYPECHECK (size))) ) 64  #_IOR_BAD ( ty³ , Ä , size è `_IOC ( _IOC_READ ,Ñy³),Òr),(size)) ) 65  #_IOW_BAD ( ty³ , Ä , size è `_IOC ( _IOC_WRITE ,Ñy³),Òr),(size)) ) 66  #_IOWR_BAD ( ty³ , Ä , size è `_IOC ( _IOC_READ | _IOC_WRITE ,Ñy³),Òr),(size)) ) 69  #_IOC_DIR ( Ä è((Òrè>> _IOC_DIRSHIFT è& _IOC_DIRMASK ) ) 70  #_IOC_TYPE ( Ä è((Òrè>> _IOC_TYPESHIFT è& _IOC_TYPEMASK ) ) 71  #_IOC_NR ( Ä è((Òrè>> _IOC_NRSHIFT è& _IOC_NRMASK ) ) 72  #_IOC_SIZE ( Ä è((Òrè>> _IOC_SIZESHIFT è& _IOC_SIZEMASK ) ) 76  #IOC_IN ( _IOC_WRITE << _IOC_DIRSHIFT ) ) 77  #IOC_OUT ( _IOC_READ << _IOC_DIRSHIFT ) ) 78  #IOC_INOUT (( _IOC_WRITE | _IOC_READ è<< _IOC_DIRSHIFT ) ) 79  #IOCSIZE_MASK ( _IOC_SIZEMASK << _IOC_SIZESHIFT ) ) 80  #IOCSIZE_SHIFT ( _IOC_SIZESHIFT ) ) @/usr/include/asm-i386/linkage.h 1 #iâdeà __ASM_LINKAGE_H 2  #__ASM_LINKAGE_H ) 4  #asmlškage CPP_ASMLINKAGE `__©Œibu‹__ (( `»g·rm (0))) ) 5  #FASTCALL ( x èx `__©Œibu‹__ (( `»g·rm (3))) ) 6  #ç¡ÿÎ `__©Œibu‹__ (( `»g·rm (3))) ) 8 #ifdeà CONFIG_REGPARM 9  #´ev’t_ž_ÿÎ ( »t è `__asm__ ("" : "ô" (»tè: "0" (»t)) ) 12 #ifdeà CONFIG_X86_ALIGNMENT_16 13  #__ALIGN . ®ign 16,0x90 ) 14  #__ALIGN_STR ".®igÀ16,0x90" ) @/usr/include/asm-i386/types.h 1 #iâdeà _I386_TYPES_H 2  #_I386_TYPES_H ) 4 #iâdeà __ASSEMBLY__ 6  tumode_t ; 13  __sigÃd__  t__s8 ; 14  t__u8 ; 16  __sigÃd__  t__s16 ; 17  t__u16 ; 19  __sigÃd__  t__s32 ; 20  t__u32 ; 22 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 23  __sigÃd__  t__s64 ; 24  t__u64 ; @/usr/include/asm-x86_64/cache.h 4 #iâdeà __ARCH_X8664_CACHE_H 5  #__ARCH_X8664_CACHE_H ) 9  #L1_CACHE_SHIFT ( CONFIG_X86_L1_CACHE_SHIFT ) ) 10  #L1_CACHE_BYTES (1 << L1_CACHE_SHIFT ) ) 11  #L1_CACHE_SHIFT_MAX 6 ) @/usr/include/asm-x86_64/fcntl.h 1 #iâdeà _X86_64_FCNTL_H 2  #_X86_64_FCNTL_H ) 6  #O_ACCMODE 0003 ) 7  #O_RDONLY 00 ) 8  #O_WRONLY 01 ) 9  #O_RDWR 02 ) 10  #O_CREAT 0100 ) 11  #O_EXCL 0200 ) 12  #O_NOCTTY 0400 ) 13  #O_TRUNC 01000 ) 14  #O_APPEND 02000 ) 15  #O_NONBLOCK 04000 ) 16  #O_NDELAY O_NONBLOCK ) 17  #O_SYNC 010000 ) 18  #FASYNC 020000 ) 19  #O_DIRECT 040000 ) 20  #O_LARGEFILE 0100000 ) 21  #O_DIRECTORY 0200000 ) 22  #O_NOFOLLOW 0400000 ) 23  #O_NOATIME 01000000 ) 25  #F_DUPFD 0 ) 26  #F_GETFD 1 ) 27  #F_SETFD 2 ) 28  #F_GETFL 3 ) 29  #F_SETFL 4 ) 30  #F_GETLK 5 ) 31  #F_SETLK 6 ) 32  #F_SETLKW 7 ) 34  #F_SETOWN 8 ) 35  #F_GETOWN 9 ) 36  #F_SETSIG 10 ) 37  #F_GETSIG 11 ) 40  #FD_CLOEXEC 1 ) 43  #F_RDLCK 0 ) 44  #F_WRLCK 1 ) 45  #F_UNLCK 2 ) 48  #F_EXLCK 4 ) 49  #F_SHLCK 8 ) 52  #F_INPROGRESS 16 ) 55  #LOCK_SH 1 ) 56  #LOCK_EX 2 ) 57  #LOCK_NB 4 ) 59  #LOCK_UN 8 ) 61  #LOCK_MAND 32 ) 62  #LOCK_READ 64 ) 63  #LOCK_WRITE 128 ) 64  #LOCK_RW 192 ) 66  sæock { 67  ml_ty³ ; 68  ml_wh’û ; 69 off_t ml_¡¬t ; 70 off_t ml_Ën ; 71 pid_t ml_pid ; 74  #F_LINUX_SPECIFIC_BASE 1024 ) @/usr/include/asm-x86_64/ioctl.h 6 #iâdeà _ASMX8664_IOCTL_H 7  #_ASMX8664_IOCTL_H ) 27  #_IOC_NRBITS 8 ) 28  #_IOC_TYPEBITS 8 ) 29  #_IOC_SIZEBITS 14 ) 30  #_IOC_DIRBITS 2 ) 32  #_IOC_NRMASK ((1 << _IOC_NRBITS )-1) ) 33  #_IOC_TYPEMASK ((1 << _IOC_TYPEBITS )-1) ) 34  #_IOC_SIZEMASK ((1 << _IOC_SIZEBITS )-1) ) 35  #_IOC_DIRMASK ((1 << _IOC_DIRBITS )-1) ) 37  #_IOC_NRSHIFT 0 ) 38  #_IOC_TYPESHIFT ( _IOC_NRSHIFT + _IOC_NRBITS ) ) 39  #_IOC_SIZESHIFT ( _IOC_TYPESHIFT + _IOC_TYPEBITS ) ) 40  #_IOC_DIRSHIFT ( _IOC_SIZESHIFT + _IOC_SIZEBITS ) ) 45  #_IOC_NONE 0U ) 46  #_IOC_WRITE 1U ) 47  #_IOC_READ 2U ) 49  #_IOC ( dœ , ty³ , Ä , size ) \ 50 ((( dœ è<< _IOC_DIRSHIFT ) | \ 51 (( ty³ è<< _IOC_TYPESHIFT ) | \ 52 (( Ä è<< _IOC_NRSHIFT ) | \ 53 (( size è<< _IOC_SIZESHIFT )) ) 56  #_IO ( ty³ , Ä è `_IOC ( _IOC_NONE ,Ñy³),Òr),0) ) 57  #_IOR ( ty³ , Ä , size è `_IOC ( _IOC_READ ,Ñy³),Òr),(size)) ) 58  #_IOW ( ty³ , Ä , size è `_IOC ( _IOC_WRITE ,Ñy³),Òr),(size)) ) 59  #_IOWR ( ty³ , Ä , size è `_IOC ( _IOC_READ | _IOC_WRITE ,Ñy³),Òr),(size)) ) 62  #_IOC_DIR ( Ä è((Òrè>> _IOC_DIRSHIFT è& _IOC_DIRMASK ) ) 63  #_IOC_TYPE ( Ä è((Òrè>> _IOC_TYPESHIFT è& _IOC_TYPEMASK ) ) 64  #_IOC_NR ( Ä è((Òrè>> _IOC_NRSHIFT è& _IOC_NRMASK ) ) 65  #_IOC_SIZE ( Ä è((Òrè>> _IOC_SIZESHIFT è& _IOC_SIZEMASK ) ) 69  #IOC_IN ( _IOC_WRITE << _IOC_DIRSHIFT ) ) 70  #IOC_OUT ( _IOC_READ << _IOC_DIRSHIFT ) ) 71  #IOC_INOUT (( _IOC_WRITE | _IOC_READ è<< _IOC_DIRSHIFT ) ) 72  #IOCSIZE_MASK ( _IOC_SIZEMASK << _IOC_SIZESHIFT ) ) 73  #IOCSIZE_SHIFT ( _IOC_SIZESHIFT ) ) @/usr/include/asm-x86_64/linkage.h 1 #iâdeà __ASM_LINKAGE_H 2  #__ASM_LINKAGE_H ) @/usr/include/asm-x86_64/types.h 1 #iâdeà _X86_64_TYPES_H 2  #_X86_64_TYPES_H ) 4 #iâdeà __ASSEMBLY__ 6  tumode_t ; 13  __sigÃd__  t__s8 ; 14  t__u8 ; 16  __sigÃd__  t__s16 ; 17  t__u16 ; 19  __sigÃd__  t__s32 ; 20  t__u32 ; 22 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 23  __sigÃd__  t__s64 ; 24  t__u64 ; @/usr/include/asm/errno.h 5 #iâdeà __i386STUB__ERRNO_H__ 6  #__i386STUB__ERRNO_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/asm/posix_types.h 5 #iâdeà __i386STUB__POSIX_TYPES_H__ 6  #__i386STUB__POSIX_TYPES_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/bits/endian.h 3 #iâdeà _ENDIAN_H 7  #__BYTE_ORDER __LITTLE_ENDIAN ) @/usr/include/bits/local_lim.h 25 #iâdeà NR_OPEN 26  #__undef_NR_OPEN ) 28 #iâdeà LINK_MAX 29  #__undef_LINK_MAX ) 31 #iâdeà OPEN_MAX 32  #__undef_OPEN_MAX ) 36  ~ 39 #ifdeà __undef_NR_OPEN 40 #undeà NR_OPEN 41 #undeà __undef_NR_OPEN 44 #ifdeà __undef_LINK_MAX 45 #undeà LINK_MAX 46 #undeà __undef_LINK_MAX 49 #ifdeà __undef_OPEN_MAX 50 #undeà OPEN_MAX 51 #undeà __undef_OPEN_MAX 55  #_POSIX_THREAD_KEYS_MAX 128 ) 57  #PTHREAD_KEYS_MAX 1024 ) 60  #_POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 ) 62  #PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS ) 65  #_POSIX_THREAD_THREADS_MAX 64 ) 67  #PTHREAD_THREADS_MAX 16384 ) 71  #AIO_PRIO_DELTA_MAX 20 ) 74  #PTHREAD_STACK_MIN 16384 ) 77  #TIMER_MAX 256 ) 80  #DELAYTIMER_MAX 2147483647 ) 83  #TTY_NAME_MAX 32 ) 86  #LOGIN_NAME_MAX 256 ) 89  #HOST_NAME_MAX 64 ) 92  #MQ_PRIO_MAX 32768 ) @/usr/include/bits/sched.h 21 #iâdeà __Ãed_sched·¿m 23 #iâdeà _SCHED_H 29  #SCHED_OTHER 0 ) 30  #SCHED_FIFO 1 ) 31  #SCHED_RR 2 ) 33 #ifdeà __USE_MISC 35  #CSIGNAL 0x000000fà ) 36  #CLONE_VM 0x00000100 ) 37  #CLONE_FS 0x00000200 ) 38  #CLONE_FILES 0x00000400 ) 39  #CLONE_SIGHAND 0x00000800 ) 40  #CLONE_PTRACE 0x00002000 ) 41  #CLONE_VFORK 0x00004000 ) 43  #CLONE_PARENT 0x00008000 ) 45  #CLONE_THREAD 0x00010000 ) 46  #CLONE_NEWNS 0x00020000 ) 47  #CLONE_SYSVSEM 0x00040000 ) 48  #CLONE_SETTLS 0x00080000 ) 49  #CLONE_PARENT_SETTID 0x00100000 ) 51  #CLONE_CHILD_CLEARTID 0x00200000 ) 53  #CLONE_DETACHED 0x00400000 ) 54  #CLONE_UNTRACED 0x00800000 ) 56  #CLONE_CHILD_SETTID 0x01000000 ) 58  #CLONE_STOPPED 0x02000000 ) 62  ssched_·¿m 64  m__sched_´iÜ™y ; 67 g__BEGIN_DECLS 70 #ifdeà __USE_MISC 71  þÚe ((* __â è(* __¬g ), * __chžd_¡ack , 72  __æags , * __¬g è __THROW ; 75 __END_DECLS 79 #ià! defšed __defšed_sched·¿m \ 80 && ( defšed __Ãed_sched·¿m || defšed _SCHED_H ) 81  #__defšed_sched·¿m 1 ) 83  s__sched_·¿m 85  __sched_´iÜ™y ; 87 #undeà __Ãed_sched·¿m 91 #ià defšed _SCHED_H && !defšed __ýu_£t_t_defšed 92  #__ýu_£t_t_defšed ) 94  #__CPU_SETSIZE 1024 ) 95  #__NCPUBITS (8 *  ( __ýu_mask )) ) 98  t__ýu_mask ; 101  #__CPUELT ( ýu è((ýuè/ __NCPUBITS ) ) 102  #__CPUMASK ( ýu è(( __ýu_mask è1 << ((ýuè% __NCPUBITS )) ) 107 __ýu_mask __b™s [ __CPU_SETSIZE / __NCPUBITS ]; 108 } týu_£t_t ; 111  #__CPU_ZERO ( ýu£ ) \ 113  __i ; \ 114 ýu_£t_t * __¬r = ( ýu£ ); \ 115  __i = 0; __˜<  ( ýu_£t_t è/  ( __ýu_mask ); ++__i) \ 116 __¬r -> __b™s [ __i ] = 0; \ 117 } } 0) ) 118  #__CPU_SET ( ýu , ýu£ ) \ 119 (( ýu£ )-> __b™s [ `__CPUELT ( ýu )] |ð `__CPUMASK (ýu)) ) 120  #__CPU_CLR ( ýu , ýu£ ) \ 121 (( ýu£ )-> __b™s [ `__CPUELT ( ýu )] &ð~ `__CPUMASK (ýu)) ) 122  #__CPU_ISSET ( ýu , ýu£ ) \ 123 ((( ýu£ )-> __b™s [ `__CPUELT ( ýu )] & `__CPUMASK (ýu)è!ð0) ) @/usr/include/bits/select.h 19 #iâdeà _SYS_SELECT_H 24 #ià defšed __GNUC__ && __GNUC__ >= 2 26  #__FD_ZERO ( fd¥ ) \ 28  __d0 , __d1 ; \ 29 __asm__ `__vÞ©že__ ("cld;„ep; stosl" \ 30 : "=c" ( __d0 ), "=D" ( __d1 ) \ 31 : "a" (0), "0" ( ( fd_£t ) \ 32 /  ( __fd_mask )), \ 33 "1" (& `__FDS_BITS ( fd¥ )[0]) \ 35 } 0) ) 37  #__FD_SET ( fd , fd¥ ) \ 38 __asm__ `__vÞ©že__ ("btsl %1,%0" \ 39 : "=m" ( `__FDS_BITS ( fd¥ )[ `__FDELT ( fd )]) \ 40 : "r" (((è( fd )è% __NFDBITS ) \ 41 : "cc","memÜy") ) 42  #__FD_CLR ( fd , fd¥ ) \ 43 __asm__ `__vÞ©že__ ("btrl %1,%0" \ 44 : "=m" ( `__FDS_BITS ( fd¥ )[ `__FDELT ( fd )]) \ 45 : "r" (((è( fd )è% __NFDBITS ) \ 46 : "cc","memÜy") ) 47  #__FD_ISSET ( fd , fd¥ ) \ 48 ( __ex‹nsiÚ__ \ 49 ({ __»suÉ ; \ 50 __asm__ `__vÞ©že__ ("btl %1,%2 ; setcb %b0" \ 51 : "=q" ( __»suÉ ) \ 52 : "r" (((è( fd )è% __NFDBITS ), \ 53 "m" ( `__FDS_BITS ( fd¥ )[ `__FDELT ( fd )]) \ 55 __»suÉ ; })) ) 61  #__FD_ZERO ( £t ) \ 63  __i ; \ 64 fd_£t * __¬r = ( £t ); \ 65  __i = 0; __˜<  ( fd_£t è/  ( __fd_mask ); ++__i) \ 66 `__FDS_BITS ( __¬r )[ __i ] = 0; \ 67 } 0) ) 68  #__FD_SET ( d , £t è( `__FDS_BITS (£t)[ `__FDELT (d)] |ð `__FDMASK (d)) ) 69  #__FD_CLR ( d , £t è( `__FDS_BITS (£t)[ `__FDELT (d)] &ð~ `__FDMASK (d)) ) 70  #__FD_ISSET ( d , £t è( `__FDS_BITS (£t)[ `__FDELT (d)] & `__FDMASK (d)) ) @/usr/include/bits/siginfo.h 20 #ià! defšed _SIGNAL_H && !defšed __Ãed_sigšfo_t \ 21 && ! defšed g__Ãed_sigev’t_t 25  ~ 27 #ià(! defšed __have_sigv®_t \ 28 && ( defšed g_SIGNAL_H || defšed g__Ãed_sigšfo_t \ 29 || defšed g__Ãed_sigev’t_t )) 30  #__have_sigv®_t 1 ) 33  usigv® 35  msiv®_št ; 36 * msiv®_±r ; 37 } tsigv®_t ; 40 #ià(! defšed __have_sigšfo_t \ 41 && ( defšed g_SIGNAL_H || defšed g__Ãed_sigšfo_t )) 42  #__have_sigšfo_t 1 ) 44  #__SI_MAX_SIZE 128 ) 45 #ià __WORDSIZE == 64 46  #__SI_PAD_SIZE (( __SI_MAX_SIZE /  ()è- 4) ) 48  #__SI_PAD_SIZE (( __SI_MAX_SIZE /  ()è- 3) ) 51  ssigšfo 53  msi_signo ; 54  msi_”ºo ; 56  msi_code ; 60  m_·d [ __SI_PAD_SIZE ]; 65 __pid_t msi_pid ; 66 __uid_t msi_uid ; 67 } m_kžl ; 72  msi_tid ; 73  msi_ov”run ; 74 sigv®_t msi_sigv® ; 75 } m_tim” ; 80 __pid_t msi_pid ; 81 __uid_t msi_uid ; 82 sigv®_t msi_sigv® ; 83 } m_¹ ; 88 __pid_t msi_pid ; 89 __uid_t msi_uid ; 90  msi_¡©us ; 91 __þock_t msi_utime ; 92 __þock_t msi_¡ime ; 93 } m_sigchld ; 98 * msi_addr ; 99 } m_sigçuÉ ; 104  msi_bªd ; 105  msi_fd ; 106 } m_sigpÞl ; 107 } m_sif›lds ; 108 } tsigšfo_t ; 112  #si_pid _sif›lds . _kžl . si_pid ) 113  #si_uid _sif›lds . _kžl . si_uid ) 114  #si_tim”id _sif›lds . _tim” . si_tid ) 115  #si_ov”run _sif›lds . _tim” . si_ov”run ) 116  #si_¡©us _sif›lds . _sigchld . si_¡©us ) 117  #si_utime _sif›lds . _sigchld . si_utime ) 118  #si_¡ime _sif›lds . _sigchld . si_¡ime ) 119  #si_v®ue _sif›lds . _¹ . si_sigv® ) 120  #si_št _sif›lds . _¹ . si_sigv® . siv®_št ) 121  #si_±r _sif›lds . _¹ . si_sigv® . siv®_±r ) 122  #si_addr _sif›lds . _sigçuÉ . si_addr ) 123  #si_bªd _sif›lds . _sigpÞl . si_bªd ) 124  #si_fd _sif›lds . _sigpÞl . si_fd ) 131 mSI_ASYNCNL = -60, 132  #SI_ASYNCNL SI_ASYNCNL ) 133 mSI_TKILL = -6, 134  #SI_TKILL SI_TKILL ) 135 mSI_SIGIO , 136  #SI_SIGIO SI_SIGIO ) 137 mSI_ASYNCIO , 138  #SI_ASYNCIO SI_ASYNCIO ) 139 mSI_MESGQ , 140  #SI_MESGQ SI_MESGQ ) 141 mSI_TIMER , 142  #SI_TIMER SI_TIMER ) 143 mSI_QUEUE , 144  #SI_QUEUE SI_QUEUE ) 145 mSI_USER , 146  #SI_USER SI_USER ) 147 mSI_KERNEL = 0x80 148  #SI_KERNEL SI_KERNEL ) 155 mILL_ILLOPC = 1, 156  #ILL_ILLOPC ILL_ILLOPC ) 157 mILL_ILLOPN , 158  #ILL_ILLOPN ILL_ILLOPN ) 159 mILL_ILLADR , 160  #ILL_ILLADR ILL_ILLADR ) 161 mILL_ILLTRP , 162  #ILL_ILLTRP ILL_ILLTRP ) 163 mILL_PRVOPC , 164  #ILL_PRVOPC ILL_PRVOPC ) 165 mILL_PRVREG , 166  #ILL_PRVREG ILL_PRVREG ) 167 mILL_COPROC , 168  #ILL_COPROC ILL_COPROC ) 169 mILL_BADSTK 170  #ILL_BADSTK ILL_BADSTK ) 176 mFPE_INTDIV = 1, 177  #FPE_INTDIV FPE_INTDIV ) 178 mFPE_INTOVF , 179  #FPE_INTOVF FPE_INTOVF ) 180 mFPE_FLTDIV , 181  #FPE_FLTDIV FPE_FLTDIV ) 182 mFPE_FLTOVF , 183  #FPE_FLTOVF FPE_FLTOVF ) 184 mFPE_FLTUND , 185  #FPE_FLTUND FPE_FLTUND ) 186 mFPE_FLTRES , 187  #FPE_FLTRES FPE_FLTRES ) 188 mFPE_FLTINV , 189  #FPE_FLTINV FPE_FLTINV ) 190 mFPE_FLTSUB 191  #FPE_FLTSUB FPE_FLTSUB ) 197 mSEGV_MAPERR = 1, 198  #SEGV_MAPERR SEGV_MAPERR ) 199 mSEGV_ACCERR 200  #SEGV_ACCERR SEGV_ACCERR ) 206 mBUS_ADRALN = 1, 207  #BUS_ADRALN BUS_ADRALN ) 208 mBUS_ADRERR , 209  #BUS_ADRERR BUS_ADRERR ) 210 mBUS_OBJERR 211  #BUS_OBJERR BUS_OBJERR ) 217 mTRAP_BRKPT = 1, 218  #TRAP_BRKPT TRAP_BRKPT ) 219 mTRAP_TRACE 220  #TRAP_TRACE TRAP_TRACE ) 226 mCLD_EXITED = 1, 227  #CLD_EXITED CLD_EXITED ) 228 mCLD_KILLED , 229  #CLD_KILLED CLD_KILLED ) 230 mCLD_DUMPED , 231  #CLD_DUMPED CLD_DUMPED ) 232 mCLD_TRAPPED , 233  #CLD_TRAPPED CLD_TRAPPED ) 234 mCLD_STOPPED , 235  #CLD_STOPPED CLD_STOPPED ) 236 mCLD_CONTINUED 237  #CLD_CONTINUED CLD_CONTINUED ) 243 mPOLL_IN = 1, 244  #POLL_IN POLL_IN ) 245 mPOLL_OUT , 246  #POLL_OUT POLL_OUT ) 247 mPOLL_MSG , 248  #POLL_MSG POLL_MSG ) 249 mPOLL_ERR , 250  #POLL_ERR POLL_ERR ) 251 mPOLL_PRI , 252  #POLL_PRI POLL_PRI ) 253 mPOLL_HUP 254  #POLL_HUP POLL_HUP ) 257 #undeà __Ãed_sigšfo_t 261 #ià( defšed _SIGNAL_H || defšed __Ãed_sigev’t_t ) \ 262 && ! defšed g__have_sigev’t_t 263  #__have_sigev’t_t 1 ) 266  #__SIGEV_MAX_SIZE 64 ) 267 #ià __WORDSIZE == 64 268  #__SIGEV_PAD_SIZE (( __SIGEV_MAX_SIZE /  ()è- 4) ) 270  #__SIGEV_PAD_SIZE (( __SIGEV_MAX_SIZE /  ()è- 3) ) 273  ssigev’t 275 sigv®_t msigev_v®ue ; 276  msigev_signo ; 277  msigev_nÙify ; 281  m_·d [ __SIGEV_PAD_SIZE ]; 285 __pid_t m_tid ; 289 (* m_funùiÚ è( msigv®_t ); 290 * m_©Œibu‹ ; 291 } m_sigev_th»ad ; 292 } m_sigev_un ; 293 } tsigev’t_t ; 296  #sigev_nÙify_funùiÚ _sigev_un . _sigev_th»ad . _funùiÚ ) 297  #sigev_nÙify_©Œibu‹s _sigev_un . _sigev_th»ad . _©Œibu‹ ) 302 mSIGEV_SIGNAL = 0, 303  #SIGEV_SIGNAL SIGEV_SIGNAL ) 304 mSIGEV_NONE , 305  #SIGEV_NONE SIGEV_NONE ) 306 mSIGEV_THREAD , 307  #SIGEV_THREAD SIGEV_THREAD ) 309 mSIGEV_THREAD_ID = 4 310  #SIGEV_THREAD_ID SIGEV_THREAD_ID ) @/usr/include/bits/stat.h 19 #iâdeà _SYS_STAT_H 24  #_STAT_VER_LINUX_OLD 1 ) 25  #_STAT_VER_KERNEL 1 ) 26  #_STAT_VER_SVR4 2 ) 27  #_STAT_VER_LINUX 3 ) 28  #_STAT_VER _STAT_VER_LINUX ) 31  #_MKNOD_VER_LINUX 1 ) 32  #_MKNOD_VER_SVR4 2 ) 33  #_MKNOD_VER _MKNOD_VER_LINUX ) 36  s¡© 38 __dev_t m¡_dev ; 39  m__·d1 ; 40 #iâdeà __USE_FILE_OFFSET64 41 __šo_t m¡_šo ; 43 __šo_t m__¡_šo ; 45 __mode_t m¡_mode ; 46 __Æšk_t m¡_Æšk ; 47 __uid_t m¡_uid ; 48 __gid_t m¡_gid ; 49 __dev_t m¡_rdev ; 50  m__·d2 ; 51 #iâdeà __USE_FILE_OFFSET64 52 __off_t m¡_size ; 54 __off64_t m¡_size ; 56 __blksize_t m¡_blksize ; 58 #iâdeà __USE_FILE_OFFSET64 59 __blkút_t m¡_blocks ; 61 __blkút64_t m¡_blocks ; 63 #ifdeà __USE_MISC 70  time¥ec m¡_©im ; 71  time¥ec m¡_mtim ; 72  time¥ec m¡_ùim ; 73  #¡_©ime ¡_©im . tv_£c ) 74  #¡_mtime ¡_mtim . tv_£c ) 75  #¡_ùime ¡_ùim . tv_£c ) 77 __time_t m¡_©ime ; 78  m¡_©im’£c ; 79 __time_t m¡_mtime ; 80  m¡_mtim’£c ; 81 __time_t m¡_ùime ; 82  m¡_ùim’£c ; 84 #iâdeà __USE_FILE_OFFSET64 85  m__unu£d4 ; 86  m__unu£d5 ; 88 __šo64_t m¡_šo ; 92 #ifdeà __USE_LARGEFILE64 93  s¡©64 95 __dev_t m¡_dev ; 96  m__·d1 ; 98 __šo_t m__¡_šo ; 99 __mode_t m¡_mode ; 100 __Æšk_t m¡_Æšk ; 101 __uid_t m¡_uid ; 102 __gid_t m¡_gid ; 103 __dev_t m¡_rdev ; 104  m__·d2 ; 105 __off64_t m¡_size ; 106 __blksize_t m¡_blksize ; 108 __blkút64_t m¡_blocks ; 109 #ifdeà __USE_MISC 116  time¥ec m¡_©im ; 117  time¥ec m¡_mtim ; 118  time¥ec m¡_ùim ; 120 __time_t m¡_©ime ; 121  m¡_©im’£c ; 122 __time_t m¡_mtime ; 123  m¡_mtim’£c ; 124 __time_t m¡_ùime ; 125  m¡_ùim’£c ; 127 __šo64_t m¡_šo ; 132  #_STATBUF_ST_BLKSIZE ) 133  #_STATBUF_ST_RDEV ) 135  #_STATBUF_ST_NSEC ) 139  #__S_IFMT 0170000 ) 142  #__S_IFDIR 0040000 ) 143  #__S_IFCHR 0020000 ) 144  #__S_IFBLK 0060000 ) 145  #__S_IFREG 0100000 ) 146  #__S_IFIFO 0010000 ) 147  #__S_IFLNK 0120000 ) 148  #__S_IFSOCK 0140000 ) 152  #__S_TYPEISMQ ( buf è((buf)-> ¡_mode - (buf)->¡_mode) ) 153  #__S_TYPEISSEM ( buf è((buf)-> ¡_mode - (buf)->¡_mode) ) 154  #__S_TYPEISSHM ( buf è((buf)-> ¡_mode - (buf)->¡_mode) ) 158  #__S_ISUID 04000 ) 159  #__S_ISGID 02000 ) 160  #__S_ISVTX 01000 ) 161  #__S_IREAD 0400 ) 162  #__S_IWRITE 0200 ) 163  #__S_IEXEC 0100 ) @/usr/include/bits/stdio-lock.h 20 #iâdeà _BITS_STDIO_LOCK_H 21  #_BITS_STDIO_LOCK_H 1 ) 23  ~ 25 $__libc_lock_defše_»cursive (, _IO_lock_t ) 28 #ifdeà t_LIBC_LOCK_RECURSIVE_INITIALIZER 29  t_IO_lock_š™Ÿliz” t_LIBC_LOCK_RECURSIVE_INITIALIZER ) 30 #–ià t_IO_MTSAFE_IO 31 #”rÜ tlibio tÃeds t»cursive tmu‹xes  t_IO_MTSAFE_IO 34  t_IO_lock_š™ ( t_Çme è t__libc_lock_š™_»cursive (_Çme) ) 35  t_IO_lock_fši ( t_Çme è t__libc_lock_fši_»cursive (_Çme) ) 36  t_IO_lock_lock ( t_Çme è t__libc_lock_lock_»cursive (_Çme) ) 37  t_IO_lock_Œylock ( t_Çme è t__libc_lock_Œylock_»cursive (_Çme) ) 38  t_IO_lock_uÆock ( t_Çme è t__libc_lock_uÆock_»cursive (_Çme) ) 41  t_IO_þ—nup_»giÚ_¡¬t ( t_fù , t_å ) \ 42 t__libc_þ—nup_»giÚ_¡¬t ((( t_å )-> t_æags & t_IO_USER_LOCK è=ð0, t_fù , _å) ) 43  t_IO_þ—nup_»giÚ_¡¬t_nßrg ( t_fù ) \ 44 t__libc_þ—nup_»giÚ_¡¬t (1, t_fù , tNULL ) ) 45  t_IO_þ—nup_»giÚ_’d ( t_do™ ) \ 46 t__libc_þ—nup_»giÚ_’d ( t_do™ ) ) 48 #ià tdefšed t_LIBC && !defšed tNOT_IN_libc 49  t_IO_acquœe_lock ( t_å ) \ 50 t_IO_þ—nup_»giÚ_¡¬t (((*è(*)è t_IO_fuÆockfže , ( t_å )); \ 51 `_IO_æockfže ( _å ) ) 53  #_IO_»Ëa£_lock ( _å ) \ 54 `_IO_fuÆockfže ( _å ); \ 55 `_IO_þ—nup_»giÚ_’d (0) ) @/usr/include/bits/time.h 24 #iâdeà __Ãed_timev® 25 #iâdeà _BITS_TIME_H 26  #_BITS_TIME_H 1 ) 34  #CLOCKS_PER_SEC 1000000l ) 36 #ià! defšed __STRICT_ANSI__ && !defšed __USE_XOPEN2K 39  ~ 40  __syscÚf (); 41  #CLK_TCK (( __þock_t è `__syscÚf (2)è ) 44 #ifdeà __USE_POSIX199309 46  #CLOCK_REALTIME 0 ) 48  #CLOCK_MONOTONIC 1 ) 50  #CLOCK_PROCESS_CPUTIME_ID 2 ) 52  #CLOCK_THREAD_CPUTIME_ID 3 ) 55  #TIMER_ABSTIME 1 ) 61 #ifdeà __Ãed_timev® 62 #undeà __Ãed_timev® 63 #iâdeà _STRUCT_TIMEVAL 64  #_STRUCT_TIMEVAL 1 ) 65  ~ 69  stimev® 71 __time_t mtv_£c ; 72 __su£cÚds_t mtv_u£c ; @/usr/include/bits/typesizes.h 20 #iâdeà _BITS_TYPES_H 24 #iâdef _BITS_TYPESIZES_H 25  #_BITS_TYPESIZES_H 1 ) 30  #__DEV_T_TYPE __UQUAD_TYPE ) 31  #__UID_T_TYPE __U32_TYPE ) 32  #__GID_T_TYPE __U32_TYPE ) 33  #__INO_T_TYPE __ULONGWORD_TYPE ) 34  #__INO64_T_TYPE __UQUAD_TYPE ) 35  #__MODE_T_TYPE __U32_TYPE ) 36  #__NLINK_T_TYPE __UWORD_TYPE ) 37  #__OFF_T_TYPE __SLONGWORD_TYPE ) 38  #__OFF64_T_TYPE __SQUAD_TYPE ) 39  #__PID_T_TYPE __S32_TYPE ) 40  #__RLIM_T_TYPE __ULONGWORD_TYPE ) 41  #__RLIM64_T_TYPE __UQUAD_TYPE ) 42  #__BLKCNT_T_TYPE __SLONGWORD_TYPE ) 43  #__BLKCNT64_T_TYPE __SQUAD_TYPE ) 44  #__FSBLKCNT_T_TYPE __ULONGWORD_TYPE ) 45  #__FSBLKCNT64_T_TYPE __UQUAD_TYPE ) 46  #__FSFILCNT_T_TYPE __ULONGWORD_TYPE ) 47  #__FSFILCNT64_T_TYPE __UQUAD_TYPE ) 48  #__ID_T_TYPE __U32_TYPE ) 49  #__CLOCK_T_TYPE __SLONGWORD_TYPE ) 50  #__TIME_T_TYPE __SLONGWORD_TYPE ) 51  #__USECONDS_T_TYPE __U32_TYPE ) 52  #__SUSECONDS_T_TYPE __SLONGWORD_TYPE ) 53  #__DADDR_T_TYPE __S32_TYPE ) 54  #__SWBLK_T_TYPE __SLONGWORD_TYPE ) 55  #__KEY_T_TYPE __S32_TYPE ) 56  #__CLOCKID_T_TYPE __S32_TYPE ) 57  #__TIMER_T_TYPE __S32_TYPE ) 58  #__BLKSIZE_T_TYPE __SLONGWORD_TYPE ) 59  #__FSID_T_TYPE sŒuù {  __v® [2]; } ) 60  #__SSIZE_T_TYPE __SWORD_TYPE ) 63  #__FD_SETSIZE 1024 ) @/usr/include/gnu/stubs.h 6 #ifdeà _LIBC 7 #”rÜ AµliÿtiÚs may nÙ defše the maüo _LIBC 10  #__¡ub___k”Ãl_co¦ ) 11  #__¡ub___k”Ãl_sšl ) 12  #__¡ub___k”Ãl_Æ ) 13  #__¡ub_chæags ) 14  #__¡ub_ç‰ach ) 15  #__¡ub_fchæags ) 16  #__¡ub_fd‘ach ) 17  #__¡ub_g‰y ) 18  #__¡ub_lchmod ) 19  #__¡ub_lutimes ) 20  #__¡ub_»voke ) 21  #__¡ub_£Žogš ) 22  #__¡ub_s¡k ) 23  #__¡ub_¡ty ) @/usr/include/linux/byteorder/little_endian.h 1 #iâdeà _LINUX_BYTEORDER_LITTLE_ENDIAN_H 2  #_LINUX_BYTEORDER_LITTLE_ENDIAN_H ) 4 #iâdeà __LITTLE_ENDIAN 5  #__LITTLE_ENDIAN 1234 ) 7 #iâdeà __LITTLE_ENDIAN_BITFIELD 8  #__LITTLE_ENDIAN_BITFIELD ) 11  ~ 12  ~ 14  #__cÚ¡ªt_htÚl ( x è `___cÚ¡ªt_swab32 ((x)) ) 15  #__cÚ¡ªt_Áohl ( x è `___cÚ¡ªt_swab32 ((x)) ) 16  #__cÚ¡ªt_htÚs ( x è `___cÚ¡ªt_swab16 ((x)) ) 17  #__cÚ¡ªt_Áohs ( x è `___cÚ¡ªt_swab16 ((x)) ) 18  #__cÚ¡ªt_ýu_to_Ë64 ( x è(( __u64 )(x)) ) 19  #__cÚ¡ªt_Ë64_to_ýu ( x è(( __u64 )(x)) ) 20  #__cÚ¡ªt_ýu_to_Ë32 ( x è(( __u32 )(x)) ) 21  #__cÚ¡ªt_Ë32_to_ýu ( x è(( __u32 )(x)) ) 22  #__cÚ¡ªt_ýu_to_Ë16 ( x è(( __u16 )(x)) ) 23  #__cÚ¡ªt_Ë16_to_ýu ( x è(( __u16 )(x)) ) 24  #__cÚ¡ªt_ýu_to_be64 ( x è `___cÚ¡ªt_swab64 ((x)) ) 25  #__cÚ¡ªt_be64_to_ýu ( x è `___cÚ¡ªt_swab64 ((x)) ) 26  #__cÚ¡ªt_ýu_to_be32 ( x è `___cÚ¡ªt_swab32 ((x)) ) 27  #__cÚ¡ªt_be32_to_ýu ( x è `___cÚ¡ªt_swab32 ((x)) ) 28  #__cÚ¡ªt_ýu_to_be16 ( x è `___cÚ¡ªt_swab16 ((x)) ) 29  #__cÚ¡ªt_be16_to_ýu ( x è `___cÚ¡ªt_swab16 ((x)) ) 30  #__ýu_to_Ë64 ( x è(( __u64 )(x)) ) 31  #__Ë64_to_ýu ( x è(( __u64 )(x)) ) 32  #__ýu_to_Ë32 ( x è(( __u32 )(x)) ) 33  #__Ë32_to_ýu ( x è(( __u32 )(x)) ) 34  #__ýu_to_Ë16 ( x è(( __u16 )(x)) ) 35  #__Ë16_to_ýu ( x è(( __u16 )(x)) ) 36  #__ýu_to_be64 ( x è `__swab64 ((x)) ) 37  #__be64_to_ýu ( x è `__swab64 ((x)) ) 38  #__ýu_to_be32 ( x è `__swab32 ((x)) ) 39  #__be32_to_ýu ( x è `__swab32 ((x)) ) 40  #__ýu_to_be16 ( x è `__swab16 ((x)) ) 41  #__be16_to_ýu ( x è `__swab16 ((x)) ) 42  #__ýu_to_Ë64p ( x è(*( __u64 *)(x)) ) 43  #__Ë64_to_ýup ( x è(*( __u64 *)(x)) ) 44  #__ýu_to_Ë32p ( x è(*( __u32 *)(x)) ) 45  #__Ë32_to_ýup ( x è(*( __u32 *)(x)) ) 46  #__ýu_to_Ë16p ( x è(*( __u16 *)(x)) ) 47  #__Ë16_to_ýup ( x è(*( __u16 *)(x)) ) 48  #__ýu_to_be64p ( x è `__swab64p ((x)) ) 49  #__be64_to_ýup ( x è `__swab64p ((x)) ) 50  #__ýu_to_be32p ( x è `__swab32p ((x)) ) 51  #__be32_to_ýup ( x è `__swab32p ((x)) ) 52  #__ýu_to_be16p ( x è `__swab16p ((x)) ) 53  #__be16_to_ýup ( x è `__swab16p ((x)) ) 54  #__ýu_to_Ë64s ( x èdØ{} 0) ) 55  #__Ë64_to_ýus ( x èdØ{} 0) ) 56  #__ýu_to_Ë32s ( x èdØ{} 0) ) 57  #__Ë32_to_ýus ( x èdØ{} 0) ) 58  #__ýu_to_Ë16s ( x èdØ{} 0) ) 59  #__Ë16_to_ýus ( x èdØ{} 0) ) 60  #__ýu_to_be64s ( x è `__swab64s ((x)) ) 61  #__be64_to_ýus ( x è `__swab64s ((x)) ) 62  #__ýu_to_be32s ( x è `__swab32s ((x)) ) 63  #__be32_to_ýus ( x è `__swab32s ((x)) ) 64  #__ýu_to_be16s ( x è `__swab16s ((x)) ) 65  #__be16_to_ýus ( x è `__swab16s ((x)) ) 67  ~ @/usr/include/signal.h 23 #iâdef _SIGNAL_H 25 #ià! defšed __Ãed_sig_©omic_t && !defšed __Ãed_sig£t_t 26  #_SIGNAL_H ) 29  ~<ã©u»s.h > 31 g__BEGIN_DECLS 33  ~ 37 #ià defšed __Ãed_sig_©omic_t || defšed _SIGNAL_H 38 #iâdeà __sig_©omic_t_defšed 39  #__sig_©omic_t_defšed ) 40 __BEGIN_NAMESPACE_STD 41  __sig_©omic_t tsig_©omic_t ; 42 g__END_NAMESPACE_STD 44 #undeà __Ãed_sig_©omic_t 47 #ià defšed __Ãed_sig£t_t || (defšed _SIGNAL_H && defšed __USE_POSIX ) 48 #iâdeà __sig£t_t_defšed 49  #__sig£t_t_defšed ) 50  __sig£t_t tsig£t_t ; 52 #undeà __Ãed_sig£t_t 55 #ifdeà _SIGNAL_H 57  ~ 58  ~ 60 #ià defšed __USE_XOPEN || defšed __USE_XOPEN2K 61 #iâdeà __pid_t_defšed 62  __pid_t tpid_t ; 63  #__pid_t_defšed ) 65 #ifdeà __USE_XOPEN 67 #iâdeà __uid_t_defšed 68  __uid_t tuid_t ; 69  #__uid_t_defšed ) 75 (* t__sighªdËr_t ) (); 80 __sighªdËr_t $__sysv_sigÇl ( __sig , __sighªdËr_t __hªdËr ) 81 __THROW ; 82 #ifdeà __USE_GNU 83 __sighªdËr_t $sysv_sigÇl ( __sig , __sighªdËr_t __hªdËr ) 84 __THROW ; 90 __BEGIN_NAMESPACE_STD 91 #ifdeà __USE_BSD 92 __sighªdËr_t $sigÇl ( __sig , __sighªdËr_t __hªdËr ) 93 __THROW ; 96 #ifdeà __REDIRECT_NTH 97 __sighªdËr_t `__REDIRECT_NTH ( sigÇl , 98 ( __sig , __sighªdËr_t __hªdËr ), 99 __sysv_sigÇl ); 101  #sigÇl __sysv_sigÇl ) 104 __END_NAMESPACE_STD 106 #ifdeà __USE_XOPEN 109 __sighªdËr_t $bsd_sigÇl ( __sig , __sighªdËr_t __hªdËr ) 110 __THROW ; 116 #ifdeà __USE_POSIX 117  $kžl ( __pid_t __pid ,  __sig è __THROW ; 120 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 124  $kžÍg ( __pid_t __pg½ ,  __sig è __THROW ; 127 __BEGIN_NAMESPACE_STD 129  $¿i£ ( __sig è __THROW ; 130 __END_NAMESPACE_STD 132 #ifdeà __USE_SVID 134 __sighªdËr_t $ssigÇl ( __sig , __sighªdËr_t __hªdËr ) 135 __THROW ; 136  $gsigÇl ( __sig è __THROW ; 139 #ifdeà __USE_MISC 141  `psigÇl ( __sig , __cÚ¡ * __s ); 153  `__sig·u£ ( __sig_Ü_mask ,  __is_sig ); 155 #ifdeà __FAVOR_BSD 158  $sig·u£ ( __mask è __THROW __©Œibu‹_d•»ÿ‹d__ ; 160 #ifdeà __USE_XOPEN 161 #ifdeà __GNUC__ 162  $sig·u£ ( __sig è `__asm__ ("__xpg_sigpause"); 165  #sig·u£ ( sig è `__sig·u£ ((sig), 1) ) 171 #ifdeà __USE_BSD 178  #sigmask ( sig è `__sigmask (sig) ) 181  $sigblock ( __mask è __THROW __©Œibu‹_d•»ÿ‹d__ ; 184  $sig£tmask ( __mask è __THROW __©Œibu‹_d•»ÿ‹d__ ; 187  $sigg‘mask (è __THROW __©Œibu‹_d•»ÿ‹d__ ; 191 #ifdeà __USE_MISC 192  #NSIG _NSIG ) 195 #ifdeà __USE_GNU 196  __sighªdËr_t tsighªdËr_t ; 200 #ifdeà __USE_BSD 201  __sighªdËr_t tsig_t ; 204 #ifdeà __USE_POSIX 206 #ifdeà __USE_POSIX199309 208  #__Ãed_time¥ec ) 209  ~ 212  ~ 216  $sigem±y£t ( sig£t_t * __£t è __THROW `__nÚnuÎ ((1)); 219  $sigfžl£t ( sig£t_t * __£t è __THROW `__nÚnuÎ ((1)); 222  $sigadd£t ( sig£t_t * __£t ,  __signo è __THROW `__nÚnuÎ ((1)); 225  $sigd–£t ( sig£t_t * __£t ,  __signo è __THROW `__nÚnuÎ ((1)); 228  $sigismemb” ( __cÚ¡ sig£t_t * __£t ,  __signo ) 229 __THROW `__nÚnuÎ ((1)); 231 #ifdeà __USE_GNU 233  $sigi£m±y£t ( __cÚ¡ sig£t_t * __£t è __THROW `__nÚnuÎ ((1)); 236  $sigªd£t ( sig£t_t * __£t , __cÚ¡ sig£t_ˆ* __Ëá , 237 __cÚ¡ sig£t_t * __right è __THROW `__nÚnuÎ ((1, 2, 3)); 240  $sigÜ£t ( sig£t_t * __£t , __cÚ¡ sig£t_ˆ* __Ëá , 241 __cÚ¡ sig£t_t * __right è __THROW `__nÚnuÎ ((1, 2, 3)); 246  ~ 249  $sig´ocmask ( __how , __cÚ¡ sig£t_t * __»¡riù __£t , 250 sig£t_t * __»¡riù __o£t è __THROW ; 257  $sigsu¥’d ( __cÚ¡ sig£t_t * __£t è `__nÚnuÎ ((1)); 260  $sigaùiÚ ( __sig , __cÚ¡  sigaùiÚ * __»¡riù __aù , 261  sigaùiÚ * __»¡riù __ßù è __THROW ; 264  $sig³ndšg ( sig£t_t * __£t è __THROW `__nÚnuÎ ((1)); 271  $sigwa™ ( __cÚ¡ sig£t_t * __»¡riù __£t , *__»¡riù __sig ) 272 `__nÚnuÎ ((1, 2)); 274 #ifdeà __USE_POSIX199309 279  $sigwa™šfo ( __cÚ¡ sig£t_t * __»¡riù __£t , 280 sigšfo_t * __»¡riù __šfo è `__nÚnuÎ ((1)); 287  $sigtimedwa™ ( __cÚ¡ sig£t_t * __»¡riù __£t , 288 sigšfo_t * __»¡riù __šfo , 289 __cÚ¡  time¥ec * __»¡riù __timeout ) 290 `__nÚnuÎ ((1)); 294  $sigqueue ( __pid_t __pid ,  __sig , __cÚ¡  sigv® __v® ) 295 __THROW ; 300 #ifdeà __USE_BSD 304 __cÚ¡ *__cÚ¡ _sys_sigli¡ [ _NSIG ]; 305 __cÚ¡ *__cÚ¡ sys_sigli¡ [ _NSIG ]; 308  ssigvec 310 __sighªdËr_t sv_hªdËr ; 311  sv_mask ; 313  sv_æags ; 314  #sv_Ú¡ack sv_æags ) 318  #SV_ONSTACK (1 << 0) ) 319  #SV_INTERRUPT (1 << 1) ) 320  #SV_RESETHAND (1 << 2) ) 328  $sigvec ( __sig , __cÚ¡  sigvec * __vec , 329  sigvec * __ovec è __THROW ; 333  ~ 336  $sig»tuº ( sigcÚ‹xt * __sý è __THROW ; 341 #ià defšed __USE_BSD || defšed __USE_XOPEN_EXTENDED 346  $sigš‹¼u± ( __sig ,  __š‹¼u± è __THROW ; 348  ~ 349 #ifdeà __USE_XOPEN 351  ~ 357  $sig¡ack ( sig¡ack * __ss , sig¡ack * __oss ) 358 __THROW __©Œibu‹_d•»ÿ‹d__ ; 362  $sig®t¡ack ( __cÚ¡  sig®t¡ack * __»¡riù __ss , 363  sig®t¡ack * __»¡riù __oss è __THROW ; 367 #ifdeà __USE_XOPEN_EXTENDED 371  $sighÞd ( __sig è __THROW ; 374  $sig»l£ ( __sig è __THROW ; 377  $sigignÜe ( __sig è __THROW ; 380 __sighªdËr_t $sig£t ( __sig , __sighªdËr_t __di¥ è __THROW ; 383 #ià defšed __USE_POSIX199506 || defšed __USE_UNIX98 386  ~ 387  ~ 394  $__libc_cu¼’t_sig¹mš (è __THROW ; 396  $__libc_cu¼’t_sig¹max (è __THROW ; 400 __END_DECLS @/usr/include/sys/cdefs.h 19 #iâdef _SYS_CDEFS_H 20  #_SYS_CDEFS_H 1 ) 23 #iâdeà _FEATURES_H 24  ~<ã©u»s.h > 30 #ià defšed __GNUC__ && !defšed __STDC__ 35 #undeà __P 36 #undeà __PMT 38 #ifdeà __GNUC__ 45 #ià! defšed __ýlu¥lus && __GNUC_PREREQ (3, 3) 46  #__THROW `__©Œibu‹__ (( __nÙhrow__ )) ) 47  #__NTH ( fù è `__©Œibu‹__ (( __nÙhrow__ )è ) fct 49 #ià defšed __ýlu¥lus && __GNUC_PREREQ (2,8) 50  #__THROW `throw () ) 51  #__NTH ( fù èfù `throw () ) 53  #__THROW ) 54  #__NTH ( fù è ) fct 60  #__šlše ) 62  #__THROW ) 63  #__NTH ( fù è ) fct 65  #__cÚ¡ cÚ¡ ) 66  #__sigÃd sigÃd ) 67  #__vÞ©že vÞ©že ) 73  #__P ( ¬gs è ) args 74  #__PMT ( ¬gs è ) args 79  #__CONCAT ( x , y èx ## ) y 80  #__STRING ( x è#x ) 83  #__±r_t * ) 84  #__lÚg_doubË_t  ) 88 #ifdef __ýlu¥lus 89  #__BEGIN_DECLS "C" { ) 90  #__END_DECLS } ) 92  #__BEGIN_DECLS ) 93  #__END_DECLS ) 102 #ià defšed __ýlu¥lus && defšed _GLIBCPP_USE_NAMESPACES 103  #__BEGIN_NAMESPACE_STD Çme¥aû ¡d { ) 104  #__END_NAMESPACE_STD } ) 105  #__USING_NAMESPACE_STD ( Çme è usšg ¡d ::Çme; ) 106  #__BEGIN_NAMESPACE_C99 Çme¥aû __c99 { ) 107  #__END_NAMESPACE_C99 } ) 108  #__USING_NAMESPACE_C99 ( Çme è usšg __c99 ::Çme; ) 113  #__BEGIN_NAMESPACE_STD ) 114  #__END_NAMESPACE_STD ) 115  #__USING_NAMESPACE_STD ( Çme ) ) 116  #__BEGIN_NAMESPACE_C99 ) 117  #__END_NAMESPACE_C99 ) 118  #__USING_NAMESPACE_C99 ( Çme ) ) 123 #iâdeà __BOUNDED_POINTERS__ 124  #__bounded ) 125  #__unbounded ) 126  #__±rv®ue ) 131  #__bos ( ±r è `__bužtš_objeù_size (±r, __USE_FORTIFY_LEVEL > 1) ) 132  #__bos0 ( ±r è `__bužtš_objeù_size (±r, 0) ) 136 #ià __GNUC_PREREQ (2,97) 138  #__æex¬r [] ) 140 #ifdeà __GNUC__ 141  #__æex¬r [0] ) 143 #ià defšed __STDC_VERSION__ && __STDC_VERSION__ >= 199901L 144  #__æex¬r [] ) 147  #__æex¬r [1] ) 163 #ià defšed __GNUC__ && __GNUC__ >= 2 165  #__REDIRECT ( Çme , ´Ùo , ®Ÿs èÇm´ÙØ `__asm__ ( `__ASMNAME (#®Ÿs)) ) 166 #ifdeà __ýlu¥lus 167  #__REDIRECT_NTH ( Çme , ´Ùo , ®Ÿs ) \ 168 Çme ´Ùo __THROW `__asm__ ( `__ASMNAME (#®Ÿs)) ) 170  #__REDIRECT_NTH ( Çme , ´Ùo , ®Ÿs ) \ 171 Çme ´Ùo `__asm__ ( `__ASMNAME (#®Ÿs)è __THROW ) 173  #__ASMNAME ( úame è `__ASMNAME2 ( __USER_LABEL_PREFIX__ , cÇme) ) 174  #__ASMNAME2 ( ´efix , úame è `__STRING (´efixè ) cname 187 #ià! defšed __GNUC__ || __GNUC__ < 2 188  #__©Œibu‹__ ( xyz è ) 194 #ià __GNUC_PREREQ (2,96) 195  #__©Œibu‹_m®loc__ `__©Œibu‹__ (( __m®loc__ )) ) 197  #__©Œibu‹_m®loc__ ) 203 #ià __GNUC_PREREQ (2,96) 204  #__©Œibu‹_pu»__ `__©Œibu‹__ (( __pu»__ )) ) 206  #__©Œibu‹_pu»__ ) 212 #ià __GNUC_PREREQ (3,1) 213  #__©Œibu‹_u£d__ `__©Œibu‹__ (( __u£d__ )) ) 214  #__©Œibu‹_nošlše__ `__©Œibu‹__ (( __nošlše__ )) ) 216  #__©Œibu‹_u£d__ `__©Œibu‹__ (( __unu£d__ )) ) 217  #__©Œibu‹_nošlše__ ) 221 #ià __GNUC_PREREQ (3,2) 222  #__©Œibu‹_d•»ÿ‹d__ `__©Œibu‹__ (( __d•»ÿ‹d__ )) ) 224  #__©Œibu‹_d•»ÿ‹d__ ) 233 #ià __GNUC_PREREQ (2,8) 234  #__©Œibu‹_fÜm©_¬g__ ( x è `__©Œibu‹__ (( `__fÜm©_¬g__ (x))) ) 236  #__©Œibu‹_fÜm©_¬g__ ( x è ) 243 #ià __GNUC_PREREQ (2,97) 244  #__©Œibu‹_fÜm©_¡rfmÚ__ ( a , b ) \ 245 `__©Œibu‹__ (( `__fÜm©__ ( __¡rfmÚ__ , a , b ))) ) 247  #__©Œibu‹_fÜm©_¡rfmÚ__ ( a , b è ) 252 #ià __GNUC_PREREQ (3,3) 253  #__nÚnuÎ ( ·¿ms è `__©Œibu‹__ (( __nÚnuÎ__ …¬ams)) ) 255  #__nÚnuÎ ( ·¿ms ) ) 262 #ià! __GNUC_PREREQ (2,8) 263  #__ex‹nsiÚ__ ) 267 #ià! __GNUC_PREREQ (2,92) 268  #__»¡riù ) 274 #ià __GNUC_PREREQ (3,1è&& ! defšed __GNUG__ 275  #__»¡riù_¬r __»¡riù ) 277 #ifdeà __GNUC__ 278  #__»¡riù_¬r ) 280 #ià defšed __STDC_VERSION__ && __STDC_VERSION__ >= 199901L 281  #__»¡riù_¬r »¡riù ) 284  #__»¡riù_¬r ) @/usr/include/sys/resource.h 19 #iâdef _SYS_RESOURCE_H 20  #_SYS_RESOURCE_H 1 ) 22  ~<ã©u»s.h > 25  ~ 27 #iâdeà __id_t_defšed 28  __id_t tid_t ; 29  #__id_t_defšed ) 32 g__BEGIN_DECLS 38 #ià defšed __USE_GNU && !defšed __ýlu¥lus 39  __¾im™_»sourû t__¾im™_»sourû_t ; 40  __ru§ge_who t__ru§ge_who_t ; 41  __´iÜ™y_which t__´iÜ™y_which_t ; 43  t__¾im™_»sourû_t ; 44  t__ru§ge_who_t ; 45  t__´iÜ™y_which_t ; 50 #iâdeà __USE_FILE_OFFSET64 51  $g‘¾im™ ( __¾im™_»sourû_t __»sourû , 52  ¾im™ * __¾im™s è __THROW ; 54 #ifdeà __REDIRECT_NTH 55  `__REDIRECT_NTH ( g‘¾im™ , ( __¾im™_»sourû_t __»sourû , 56  ¾im™ * __¾im™s ), g‘¾im™64 ); 58  #g‘¾im™ g‘¾im™64 ) 61 #ifdeà __USE_LARGEFILE64 62  $g‘¾im™64 ( __¾im™_»sourû_t __»sourû , 63  ¾im™64 * __¾im™s è __THROW ; 69 #iâdeà __USE_FILE_OFFSET64 70  $£Œlim™ ( __¾im™_»sourû_t __»sourû , 71 __cÚ¡  ¾im™ * __¾im™s è __THROW ; 73 #ifdeà __REDIRECT_NTH 74  `__REDIRECT_NTH ( £Œlim™ , ( __¾im™_»sourû_t __»sourû , 75 __cÚ¡  ¾im™ * __¾im™s ), 76 £Œlim™64 ); 78  #£Œlim™ £Œlim™64 ) 81 #ifdeà __USE_LARGEFILE64 82  $£Œlim™64 ( __¾im™_»sourû_t __»sourû , 83 __cÚ¡  ¾im™64 * __¾im™s è __THROW ; 88  $g‘ru§ge ( __ru§ge_who_t __who ,  ru§ge * __u§ge è __THROW ; 94  $g‘´iÜ™y ( __´iÜ™y_which_t __which , id_t __who è __THROW ; 98  $£riÜ™y ( __´iÜ™y_which_t __which , id_t __who ,  __´io ) 99 __THROW ; 101 __END_DECLS @/usr/include/asm-i386/errno.h 1 #iâdeà _I386_ERRNO_H 2  #_I386_ERRNO_H ) 4 #iâdeà _LINUX_ERRNO_H 5  ~ @/usr/include/asm-i386/posix_types.h 1 #iâdeà __ARCH_I386_POSIX_TYPES_H 2  #__ARCH_I386_POSIX_TYPES_H ) 10  t__k”Ãl_šo_t ; 11  t__k”Ãl_mode_t ; 12  t__k”Ãl_Æšk_t ; 13  t__k”Ãl_off_t ; 14  t__k”Ãl_pid_t ; 15  t__k”Ãl_c_pid_t ; 16  t__k”Ãl_uid_t ; 17  t__k”Ãl_gid_t ; 18  t__k”Ãl_size_t ; 19  t__k”Ãl_ssize_t ; 20  t__k”Ãl_±rdiff_t ; 21  t__k”Ãl_time_t ; 22  t__k”Ãl_su£cÚds_t ; 23  t__k”Ãl_þock_t ; 24  t__k”Ãl_tim”_t ; 25  t__k”Ãl_þockid_t ; 26  t__k”Ãl_daddr_t ; 27 * t__k”Ãl_ÿddr_t ; 28  t__k”Ãl_uid16_t ; 29  t__k”Ãl_gid16_t ; 30  t__k”Ãl_uid32_t ; 31  t__k”Ãl_gid32_t ; 33  t__k”Ãl_Þd_uid_t ; 34  t__k”Ãl_Þd_gid_t ; 35  t__k”Ãl_Þd_dev_t ; 37 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 38  t__k”Ãl_loff_t ; 42 #ià defšed ( __KERNEL__ è|| defšed( __USE_ALL ) 43  mv® [2]; 45  m__v® [2]; 47 } t__k”Ãl_fsid_t ; 49 #ià defšed ( __KERNEL__ è|| !defšed( __GLIBC__ ) || (__GLIBC__ < 2) 51 #undeà __FD_SET 52  #__FD_SET ( fd , fd£ ) \ 53 __asm__ `__vÞ©že__ ("btsl %1,%0": \ 54 "=m" (*( __k”Ãl_fd_£t *è( fd£ )):"r" ((è( fd ))) ) 56 #undeà __FD_CLR 57  #__FD_CLR ( fd , fd£ ) \ 58 __asm__ `__vÞ©že__ ("btrl %1,%0": \ 59 "=m" (*( __k”Ãl_fd_£t *è( fd£ )):"r" ((è( fd ))) ) 61 #undeà __FD_ISSET 62  #__FD_ISSET ( fd , fd£ è( `__ex‹nsiÚ__ ({ \ 63  __»suÉ ; \ 64 __asm__ `__vÞ©že__ ("btl %1,%2 ; setb %0" \ 65 :"=q" ( __»suÉ è:"r" ((è( fd )), \ 66 "m" (*( __k”Ãl_fd_£t *è( fd£ ))); \ 67 __»suÉ ; })) ) 69 #undeà __FD_ZERO 70  #__FD_ZERO ( fd£ ) \ 72  __d0 , __d1 ; \ 73 __asm__ `__vÞ©že__ ("cld ;„ep ; stosl" \ 74 :"=m" (*( __k”Ãl_fd_£t *è( fd£ )), \ 75 "=&c" ( __d0 ), "=&D" ( __d1 ) \ 76 :"a" (0), "1" ( __FDSET_LONGS ), \ 77 "2" (( __k”Ãl_fd_£t *è( fd£ )) : "memory"); \ 78 } 0) ) @/usr/include/asm-x86_64/errno.h 1 #iâdeà _X8664_ERRNO_H 2  #_X8664_ERRNO_H ) 4 #iâdeà _LINUX_ERRNO_H 5  ~ @/usr/include/asm-x86_64/posix_types.h 1 #iâdeà _ASM_X86_64_POSIX_TYPES_H 2  #_ASM_X86_64_POSIX_TYPES_H ) 10  t__k”Ãl_šo_t ; 11  t__k”Ãl_mode_t ; 12  t__k”Ãl_Æšk_t ; 13  t__k”Ãl_off_t ; 14  t__k”Ãl_pid_t ; 15  t__k”Ãl_c_pid_t ; 16  t__k”Ãl_uid_t ; 17  t__k”Ãl_gid_t ; 18  t__k”Ãl_size_t ; 19  t__k”Ãl_ssize_t ; 20  t__k”Ãl_±rdiff_t ; 21  t__k”Ãl_time_t ; 22  t__k”Ãl_su£cÚds_t ; 23  t__k”Ãl_þock_t ; 24  t__k”Ãl_tim”_t ; 25  t__k”Ãl_þockid_t ; 26  t__k”Ãl_daddr_t ; 27 * t__k”Ãl_ÿddr_t ; 28  t__k”Ãl_uid16_t ; 29  t__k”Ãl_gid16_t ; 31 #ià( defšed ( __GNUC__ è&& !defšed( __STRICT_ANSI__ )è|| ( __STDC_VERSION__ >= 199901L) 32  t__k”Ãl_loff_t ; 36  mv® [2]; 37 } t__k”Ãl_fsid_t ; 39  t__k”Ãl_Þd_uid_t ; 40  t__k”Ãl_Þd_gid_t ; 41  __k”Ãl_uid_t t__k”Ãl_uid32_t ; 42  __k”Ãl_gid_t t__k”Ãl_gid32_t ; 44  t__k”Ãl_Þd_dev_t ; @/usr/include/bits/libc-lock.h 21 #iâdeà _BITS_LIBC_LOCK_H 22  #_BITS_LIBC_LOCK_H 1 ) 24  ~<±h»ad.h > 26 #ià defšed _LIBC && !defšed NOT_IN_libc 27  ~ 31 #ià defšed ( _LIBC è|| defšed( _IO_MTSAFE_IO ) 32  ±h»ad_mu‹x_t t__libc_lock_t ; 33 ¡ruù { ±h»ad_mu‹x_t mmu‹x ; } t__libc_lock_»cursive_t ; 34 #ifdeà __USE_UNIX98 35  ±h»ad_rwlock_t t__libc_rwlock_t ; 37  __libc_rwlock_Ýaque__ t__libc_rwlock_t ; 39  __libc_lock_»cursive_t t__¹ld_lock_»cursive_t ; 41  __libc_lock_Ýaque__ t__libc_lock_t ; 42  __libc_lock_»cursive_Ýaque__ t__libc_lock_»cursive_t ; 43  __libc_rwlock_Ýaque__ t__libc_rwlock_t ; 47  ±h»ad_key_t t__libc_key_t ; 56  #__libc_lock_defše ( CLASS , NAME ) \ 57 CLASS __libc_lock_t NAME ; ) 58  #__libc_rwlock_defše ( CLASS , NAME ) \ 59 CLASS __libc_rwlock_t NAME ; ) 60  #__libc_lock_defše_»cursive ( CLASS , NAME ) \ 61 CLASS __libc_lock_»cursive_t NAME ; ) 62  #__¹ld_lock_defše_»cursive ( CLASS , NAME ) \ 63 CLASS __¹ld_lock_»cursive_t NAME ; ) 74 #ifdeà __LT_INITIALIZER_NOT_ZERO 75  #__libc_lock_defše_š™Ÿlized ( CLASS , NAME ) \ 76 CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER ; ) 78  #__libc_lock_defše_š™Ÿlized ( CLASS , NAME ) \ 79 CLASS __libc_lock_t NAME ; ) 82  #__libc_rwlock_defše_š™Ÿlized ( CLASS , NAME ) \ 83 CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER ; ) 87  #__libc_lock_defše_š™Ÿlized_»cursive ( CLASS , NAME ) \ 88 CLASS __libc_lock_»cursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER ; ) 89  #_LIBC_LOCK_RECURSIVE_INITIALIZER \ 90 { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP } ) 92  #__¹ld_lock_defše_š™Ÿlized_»cursive ( CLASS , NAME ) \ 93 CLASS __¹ld_lock_»cursive_t NAME = _RTLD_LOCK_RECURSIVE_INITIALIZER ; ) 94  #_RTLD_LOCK_RECURSIVE_INITIALIZER \ 95 { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP } ) 97 #ià defšed _LIBC && defšed IS_IN_lib±h»ad 98  #__libc_maybe_ÿÎ ( FUNC , ARGS , ELSE èFUNC ) ARGS 100 #ià defšed __PIC__ || (defšed _LIBC && defšed SHARED ) 101  #__libc_maybe_ÿÎ ( FUNC , ARGS , ELSE ) \ 102 ( `__ex‹nsiÚ__ ({ `__ty³of ( FUNC è* _â = (FUNC); \ 103 _â !ð NULL ? (*_âè ARGS : ELSE ; })) ) 105  #__libc_maybe_ÿÎ ( FUNC , ARGS , ELSE ) \ 106 ( FUNC !ð NULL ? FUNC ARGS : ELSE ) ) 109 #ià defšed _LIBC && !defšed NOT_IN_libc && defšed SHARED 110  #__libc_maybe_ÿÎ2 ( FUNC , ARGS , ELSE ) \ 111 ({ `__bužtš_ex³ù ( __libc_±h»ad_funùiÚs . ±r_ ## FUNC !ð NULL , 0) \ 112 ? __libc_±h»ad_funùiÚs . ±r_ ## FUNC ARGS : ELSE ; }) ) 114  #__libc_maybe_ÿÎ2 ( FUNC , ARGS , ELSE è `__libc_maybe_ÿÎ ( __ ##FUNC, ARGS, ELSE) ) 119 #ià defšed _LIBC && !defšed NOT_IN_libc && defšed SHARED 120  #__libc_lock_š™ ( NAME ) \ 122 ( NAME ). __m_couÁ = 0; \ 123 ( NAME ). __m_owÃr = NULL ; \ 124 ( NAME ). __m_kšd = PTHREAD_MUTEX_TIMED_NP ; \ 125 ( NAME ). __m_lock . __¡©us = 0; \ 126 ( NAME ). __m_lock . __¥šlock = __LT_SPINLOCK_INIT ; \ 127 0; }) ) 129  #__libc_lock_š™ ( NAME ) \ 130 ( `__libc_maybe_ÿÎ2 ( ±h»ad_mu‹x_š™ , (&( NAME ), NULL ), 0)) ) 132  #__libc_rwlock_š™ ( NAME ) \ 133 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_š™ , (&( NAME ), NULL ), 0)); ) 136 #ià defšed _LIBC && !defšed NOT_IN_libc && defšed SHARED 137  #__libc_lock_š™_»cursive ( NAME ) \ 139 ( NAME ). mu‹x . __m_couÁ = 0; \ 140 ( NAME ). mu‹x . __m_owÃr = NULL ; \ 141 ( NAME ). mu‹x . __m_kšd = PTHREAD_MUTEX_RECURSIVE_NP ; \ 142 ( NAME ). mu‹x . __m_lock . __¡©us = 0; \ 143 ( NAME ). mu‹x . __m_lock . __¥šlock = __LT_SPINLOCK_INIT ; \ 144 0; }) ) 146  #__libc_lock_š™_»cursive ( NAME ) \ 148 ià( __±h»ad_mu‹x_š™ !ð NULL ) \ 150 ±h»ad_mu‹x©Œ_t __©Œ ; \ 151 `__±h»ad_mu‹x©Œ_š™ (& __©Œ ); \ 152 `__±h»ad_mu‹x©Œ_£‰y³ (& __©Œ , PTHREAD_MUTEX_RECURSIVE_NP ); \ 153 `__±h»ad_mu‹x_š™ (&( NAME ). mu‹x , & __©Œ ); \ 154 `__±h»ad_mu‹x©Œ_de¡roy (& __©Œ ); \ 156 } 0); ) 158  #__¹ld_lock_š™_»cursive ( NAME ) \ 159 `__libc_lock_š™_»cursive ( NAME ) ) 164  #__libc_lock_fši ( NAME ) \ 165 ( `__libc_maybe_ÿÎ2 ( ±h»ad_mu‹x_de¡roy , (&( NAME )), 0)); ) 166  #__libc_rwlock_fši ( NAME ) \ 167 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_de¡roy , (&( NAME )), 0)); ) 170  #__libc_lock_fši_»cursive ( NAME è `__libc_lock_fši ((NAME). mu‹x ) ) 171  #__¹ld_lock_fši_»cursive ( NAME è `__libc_lock_fši_»cursive (NAME) ) 174  #__libc_lock_lock ( NAME ) \ 175 ( `__libc_maybe_ÿÎ2 ( ±h»ad_mu‹x_lock , (&( NAME )), 0)); ) 176  #__libc_rwlock_rdlock ( NAME ) \ 177 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_rdlock , (&( NAME )), 0)); ) 178  #__libc_rwlock_w¾ock ( NAME ) \ 179 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_w¾ock , (&( NAME )), 0)); ) 182  #__libc_lock_lock_»cursive ( NAME è `__libc_lock_lock ((NAME). mu‹x ) ) 185  #__libc_lock_Œylock ( NAME ) \ 186 ( `__libc_maybe_ÿÎ2 ( ±h»ad_mu‹x_Œylock , (&( NAME )), 0)) ) 187  #__libc_rwlock_Œyrdlock ( NAME ) \ 188 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_Œyrdlock , (&( NAME )), 0)) ) 189  #__libc_rwlock_Œyw¾ock ( NAME ) \ 190 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_Œyw¾ock , (&( NAME )), 0)) ) 193  #__libc_lock_Œylock_»cursive ( NAME è `__libc_lock_Œylock ((NAME). mu‹x ) ) 194  #__¹ld_lock_Œylock_»cursive ( NAME ) \ 195 `__libc_lock_Œylock_»cursive ( NAME ) ) 198  #__libc_lock_uÆock ( NAME ) \ 199 ( `__libc_maybe_ÿÎ2 ( ±h»ad_mu‹x_uÆock , (&( NAME )), 0)); ) 200  #__libc_rwlock_uÆock ( NAME ) \ 201 ( `__libc_maybe_ÿÎ ( __±h»ad_rwlock_uÆock , (&( NAME )), 0)); ) 204  #__libc_lock_uÆock_»cursive ( NAME è `__libc_lock_uÆock ((NAME). mu‹x ) ) 206 #ià defšed _LIBC && defšed SHARED 207  #__¹ld_lock_deçuÉ_lock_»cursive ( lock ) \ 208 ++(( ±h»ad_mu‹x_t *)( lock ))-> __m_couÁ ; ) 210  #__¹ld_lock_deçuÉ_uÆock_»cursive ( lock ) \ 211 --(( ±h»ad_mu‹x_t *)( lock ))-> __m_couÁ ; ) 213  #__¹ld_lock_lock_»cursive ( NAME ) \ 214 `GL ( dl_¹ld_lock_»cursive è(&( NAME ). mu‹x ) ) 216  #__¹ld_lock_uÆock_»cursive ( NAME ) \ 217 `GL ( dl_¹ld_uÆock_»cursive è(&( NAME ). mu‹x ) ) 219  #__¹ld_lock_lock_»cursive ( NAME è `__libc_lock_lock_»cursive (NAME) ) 220  #__¹ld_lock_uÆock_»cursive ( NAME è `__libc_lock_uÆock_»cursive (NAME) ) 224 #ià PTHREAD_ONCE_INIT == 0 227  #__libc_Úû_defše ( CLASS , NAME ) \ 228 CLASS ±h»ad_Úû_t NAME ) 230  #__libc_Úû_defše ( CLASS , NAME ) \ 231 CLASS ±h»ad_Úû_t NAME = PTHREAD_ONCE_INIT ) 235  #__libc_Úû ( ONCE_CONTROL , INIT_FUNCTION ) \ 237 ià( __±h»ad_Úû !ð NULL ) \ 238 `__±h»ad_Úû (&( ONCE_CONTROL ), ( INIT_FUNCTION )); \ 239 ià(( ONCE_CONTROL è=ð PTHREAD_ONCE_INIT ) { \ 240 `INIT_FUNCTION (); \ 241 ( ONCE_CONTROL ) = 2; \ 243 } 0) ) 247  #__libc_þ—nup_»giÚ_¡¬t ( DOIT , FCT , ARG ) \ 248 {  _±h»ad_þ—nup_bufãr _bufãr ; \ 249  _avaž = ( DOIT è&& _±h»ad_þ—nup_push_deãr !ð NULL ; \ 250 ià( _avaž ) { \ 251 `_±h»ad_þ—nup_push_deãr (& _bufãr , ( FCT ), ( ARG )); \ 252 } ) 255  #__libc_þ—nup_»giÚ_’d ( DOIT ) \ 256 ià( _avaž ) { \ 257 `_±h»ad_þ—nup_pÝ_»¡Üe (& _bufãr , ( DOIT )); \ 259 } ) 262  #__libc_þ—nup_’d ( DOIT ) \ 263 ià( _avaž ) { \ 264 `_±h»ad_þ—nup_pÝ_»¡Üe (& _bufãr , ( DOIT )); \ 265 } ) 267  #__libc_þ—nup_push ( fù , ¬g ) \ 268 {  _±h»ad_þ—nup_bufãr _bufãr ; \ 269 `__libc_maybe_ÿÎ ( _±h»ad_þ—nup_push , (& _bufãr , ( fù ), ( ¬g )), 0) ) 271  #__libc_þ—nup_pÝ ( execu‹ ) \ 272 `__libc_maybe_ÿÎ ( _±h»ad_þ—nup_pÝ , (& _bufãr , execu‹ ), 0); \ 273 } ) 276  #__libc_key_ü—‹ ( KEY , DESTRUCTOR ) \ 277 ( `__libc_maybe_ÿÎ ( __±h»ad_key_ü—‹ , ( KEY , DESTRUCTOR ), 1)) ) 280  #__libc_g‘¥ecific ( KEY ) \ 281 ( `__libc_maybe_ÿÎ ( __±h»ad_g‘¥ecific , ( KEY ), NULL )) ) 284  #__libc_£t¥ecific ( KEY , VALUE ) \ 285 ( `__libc_maybe_ÿÎ ( __±h»ad_£t¥ecific , ( KEY , VALUE ), 0)) ) 289  #__libc_©fÜk ( PREPARE , PARENT , CHILD ) \ 290 ( `__libc_maybe_ÿÎ ( __±h»ad_©fÜk , ( PREPARE , PARENT , CHILD ), 0)) ) 295  __±h»ad_mu‹x_š™ ( ±h»ad_mu‹x_t * __mu‹x , 296 __cÚ¡ ±h»ad_mu‹x©Œ_t * __mu‹x_©Œ ); 298  __±h»ad_mu‹x_de¡roy ( ±h»ad_mu‹x_t * __mu‹x ); 300  __±h»ad_mu‹x_Œylock ( ±h»ad_mu‹x_t * __mu‹x ); 302  __±h»ad_mu‹x_lock ( ±h»ad_mu‹x_t * __mu‹x ); 304  __±h»ad_mu‹x_uÆock ( ±h»ad_mu‹x_t * __mu‹x ); 306  __±h»ad_mu‹x©Œ_š™ ( ±h»ad_mu‹x©Œ_t * __©Œ ); 308  __±h»ad_mu‹x©Œ_de¡roy ( ±h»ad_mu‹x©Œ_t * __©Œ ); 310  __±h»ad_mu‹x©Œ_£‰y³ ( ±h»ad_mu‹x©Œ_t * __©Œ , 311  __kšd ); 313 #ifdeà __USE_UNIX98 314  __±h»ad_rwlock_š™ ( ±h»ad_rwlock_t * __rwlock , 315 __cÚ¡ ±h»ad_rwlock©Œ_t * __©Œ ); 317  __±h»ad_rwlock_de¡roy ( ±h»ad_rwlock_t * __rwlock ); 319  __±h»ad_rwlock_rdlock ( ±h»ad_rwlock_t * __rwlock ); 321  __±h»ad_rwlock_Œyrdlock ( ±h»ad_rwlock_t * __rwlock ); 323  __±h»ad_rwlock_w¾ock ( ±h»ad_rwlock_t * __rwlock ); 325  __±h»ad_rwlock_Œyw¾ock ( ±h»ad_rwlock_t * __rwlock ); 327  __±h»ad_rwlock_uÆock ( ±h»ad_rwlock_t * __rwlock ); 330  __±h»ad_key_ü—‹ ( ±h»ad_key_t * __key , 331 (* __de¡r_funùiÚ ) (*)); 333  `__±h»ad_£t¥ecific ( ±h»ad_key_t __key , 334 __cÚ¡ * __poš‹r ); 336 * `__±h»ad_g‘¥ecific ( ±h»ad_key_t __key ); 338  `__±h»ad_Úû ( ±h»ad_Úû_t * __Úû_cÚŒÞ , 339 (* __š™_routše ) ()); 341  `__±h»ad_©fÜk ((* __´•¬e ) (), 342 (* __·»Á ) (), 343 (* __chžd ) ()); 349 #iâdeà __NO_WEAK_PTHREAD_ALIASES 350 #ifdeà w—k_ex‹º 351 #ià _LIBC 352  ~ 354  #BP_SYM ( sym è ) sym 356 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x_š™ )) 357 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x_de¡roy )) 358 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x_lock )) 359 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x_Œylock )) 360 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x_uÆock )) 361 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x©Œ_š™ )) 362 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x©Œ_de¡roy )) 363 `w—k_ex‹º ( $BP_SYM ( __±h»ad_mu‹x©Œ_£‰y³ )) 364 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_š™ )) 365 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_de¡roy )) 366 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_rdlock )) 367 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_Œyrdlock )) 368 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_w¾ock )) 369 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_Œyw¾ock )) 370 `w—k_ex‹º ( $BP_SYM ( __±h»ad_rwlock_uÆock )) 371 `w—k_ex‹º ( $BP_SYM ( __±h»ad_key_ü—‹ )) 372 `w—k_ex‹º ( $BP_SYM ( __±h»ad_£t¥ecific )) 373 `w—k_ex‹º ( $BP_SYM ( __±h»ad_g‘¥ecific )) 374 `w—k_ex‹º ( $BP_SYM ( __±h»ad_Úû )) 375 $w—k_ex‹º ( __±h»ad_š™Ÿlize ) 376 $w—k_ex‹º ( __±h»ad_©fÜk ) 377 `w—k_ex‹º ( $BP_SYM ( _±h»ad_þ—nup_push )) 378 `w—k_ex‹º ( $BP_SYM ( _±h»ad_þ—nup_pÝ )) 379 `w—k_ex‹º ( $BP_SYM ( _±h»ad_þ—nup_push_deãr )) 380 `w—k_ex‹º ( $BP_SYM ( _±h»ad_þ—nup_pÝ_»¡Üe )) 382 #´agm¨ w—k __±h»ad_mu‹x_š™ 383 #´agm¨ w—k __±h»ad_mu‹x_de¡roy 384 #´agm¨ w—k __±h»ad_mu‹x_lock 385 #´agm¨ w—k __±h»ad_mu‹x_Œylock 386 #´agm¨ w—k __±h»ad_mu‹x_uÆock 387 #´agm¨ w—k __±h»ad_mu‹x©Œ_š™ 388 #´agm¨ w—k __±h»ad_mu‹x©Œ_de¡roy 389 #´agm¨ w—k __±h»ad_mu‹x©Œ_£‰y³ 390 #´agm¨ w—k __±h»ad_rwlock_de¡roy 391 #´agm¨ w—k __±h»ad_rwlock_rdlock 392 #´agm¨ w—k __±h»ad_rwlock_Œyrdlock 393 #´agm¨ w—k __±h»ad_rwlock_w¾ock 394 #´agm¨ w—k __±h»ad_rwlock_Œyw¾ock 395 #´agm¨ w—k __±h»ad_rwlock_uÆock 396 #´agm¨ w—k __±h»ad_key_ü—‹ 397 #´agm¨ w—k __±h»ad_£t¥ecific 398 #´agm¨ w—k __±h»ad_g‘¥ecific 399 #´agm¨ w—k __±h»ad_Úû 400 #´agm¨ w—k __±h»ad_š™Ÿlize 401 #´agm¨ w—k __±h»ad_©fÜk 402 #´agm¨ w—k _±h»ad_þ—nup_push_deãr 403 #´agm¨ w—k _±h»ad_þ—nup_pÝ_»¡Üe 404 #´agm¨ w—k _±h»ad_þ—nup_push 405 #´agm¨ w—k _±h»ad_þ—nup_pÝ 411  #__libc_mu‹x_uÆock __±h»ad_mu‹x_uÆock ) @/usr/include/bits/resource.h 21 #iâdeà _SYS_RESOURCE_H 25  ~ 33 e__¾im™_»sourû 36 mRLIMIT_CPU = 0, 37  #RLIMIT_CPU RLIMIT_CPU ) 40 mRLIMIT_FSIZE = 1, 41  #RLIMIT_FSIZE RLIMIT_FSIZE ) 44 mRLIMIT_DATA = 2, 45  #RLIMIT_DATA RLIMIT_DATA ) 48 mRLIMIT_STACK = 3, 49  #RLIMIT_STACK RLIMIT_STACK ) 52 mRLIMIT_CORE = 4, 53  #RLIMIT_CORE RLIMIT_CORE ) 59 m__RLIMIT_RSS = 5, 60  #RLIMIT_RSS __RLIMIT_RSS ) 63 mRLIMIT_NOFILE = 7, 64 m__RLIMIT_OFILE = RLIMIT_NOFILE , 65  #RLIMIT_NOFILE RLIMIT_NOFILE ) 66  #RLIMIT_OFILE __RLIMIT_OFILE ) 69 mRLIMIT_AS = 9, 70  #RLIMIT_AS RLIMIT_AS ) 73 m__RLIMIT_NPROC = 6, 74  #RLIMIT_NPROC __RLIMIT_NPROC ) 77 m__RLIMIT_MEMLOCK = 8, 78  #RLIMIT_MEMLOCK __RLIMIT_MEMLOCK ) 81 m__RLIMIT_LOCKS = 10, 82  #RLIMIT_LOCKS __RLIMIT_LOCKS ) 85 m__RLIMIT_SIGPENDING = 11, 86  #RLIMIT_SIGPENDING __RLIMIT_SIGPENDING ) 89 m__RLIMIT_MSGQUEUE = 12, 90  #RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE ) 95 m__RLIMIT_NICE = 13, 96  #RLIMIT_NICE __RLIMIT_NICE ) 100 m__RLIMIT_RTPRIO = 14, 101  #RLIMIT_RTPRIO __RLIMIT_RTPRIO ) 103 m__RLIMIT_NLIMITS = 15, 104 m__RLIM_NLIMITS = __RLIMIT_NLIMITS 105  #RLIMIT_NLIMITS __RLIMIT_NLIMITS ) 106  #RLIM_NLIMITS __RLIM_NLIMITS ) 110 #iâdeà __USE_FILE_OFFSET64 111  #RLIM_INFINITY (()(~0UL)) ) 113  #RLIM_INFINITY 0xffffffffffffffffuLL ) 116 #ifdeà __USE_LARGEFILE64 117  #RLIM64_INFINITY 0xffffffffffffffffuLL ) 121  #RLIM_SAVED_MAX RLIM_INFINITY ) 122  #RLIM_SAVED_CUR RLIM_INFINITY ) 126 #iâdeà __USE_FILE_OFFSET64 127  __¾im_t t¾im_t ; 129  __¾im64_t t¾im_t ; 131 #ifdeà __USE_LARGEFILE64 132  __¾im64_t t¾im64_t ; 135  s¾im™ 138 ¾im_t m¾im_cur ; 140 ¾im_t m¾im_max ; 143 #ifdeà __USE_LARGEFILE64 144  s¾im™64 147 ¾im64_t m¾im_cur ; 149 ¾im64_t m¾im_max ; 154 e__ru§ge_who 157 mRUSAGE_SELF = 0, 158  #RUSAGE_SELF RUSAGE_SELF ) 161 mRUSAGE_CHILDREN = -1 162  #RUSAGE_CHILDREN RUSAGE_CHILDREN ) 165  #__Ãed_timev® ) 166  ~ 169  sru§ge 172  timev® mru_utime ; 174  timev® mru_¡ime ; 176  mru_maxrss ; 179  mru_ixrss ; 181  mru_idrss ; 183  mru_i¤ss ; 186  mru_mšæt ; 188  mru_majæt ; 190  mru_nsw­ ; 193  mru_šblock ; 195  mru_oublock ; 197  mru_msg¢d ; 199  mru_msgrcv ; 201  mru_nsigÇls ; 205  mru_nvcsw ; 208  mru_nivcsw ; 212  #PRIO_MIN -20 ) 213  #PRIO_MAX 20 ) 217 e__´iÜ™y_which 219 mPRIO_PROCESS = 0, 220  #PRIO_PROCESS PRIO_PROCESS ) 221 mPRIO_PGRP = 1, 222  #PRIO_PGRP PRIO_PGRP ) 223 mPRIO_USER = 2 224  #PRIO_USER PRIO_USER ) @/usr/include/bits/sigaction.h 20 #iâdeà _SIGNAL_H 25  ssigaùiÚ 28 #ifdeà __USE_POSIX199309 32 __sighªdËr_t m§_hªdËr ; 34 (* m§_sigaùiÚ è(, msigšfo_t *, *); 36 m__sigaùiÚ_hªdËr ; 37  #§_hªdËr __sigaùiÚ_hªdËr . §_hªdËr ) 38  #§_sigaùiÚ __sigaùiÚ_hªdËr . §_sigaùiÚ ) 40 __sighªdËr_t m§_hªdËr ; 44 __sig£t_t m§_mask ; 47  m§_æags ; 50 (* m§_»¡Ü” ) (); 54  #SA_NOCLDSTOP 1 ) 55  #SA_NOCLDWAIT 2 ) 56  #SA_SIGINFO 4 ) 58 #ià defšed __USE_UNIX98 || defšed __USE_MISC 59  #SA_ONSTACK 0x08000000 ) 60  #SA_RESTART 0x10000000 ) 61  #SA_NODEFER 0x40000000 ) 63  #SA_RESETHAND 0x80000000 ) 65 #ifdeà __USE_MISC 66  #SA_INTERRUPT 0x20000000 ) 69  #SA_NOMASK SA_NODEFER ) 70  #SA_ONESHOT SA_RESETHAND ) 71  #SA_STACK SA_ONSTACK ) 75  #SIG_BLOCK 0 ) 76  #SIG_UNBLOCK 1 ) 77  #SIG_SETMASK 2 ) @/usr/include/bits/sigcontext.h 19 #ià! defšed _SIGNAL_H && !defšed _SYS_UCONTEXT_H 23 #iâdeà sigcÚ‹xt_¡ruù 26  #sigcÚ‹xt_¡ruù sigcÚ‹xt ) 28  ~ @/usr/include/bits/signum.h 20 #ifdef _SIGNAL_H 23  #SIG_ERR (( __sighªdËr_t è-1è ) 24  #SIG_DFL (( __sighªdËr_t è0è ) 25  #SIG_IGN (( __sighªdËr_t è1è ) 27 #ifdeà __USE_UNIX98 28  #SIG_HOLD (( __sighªdËr_t è2è ) 33  #SIGHUP 1 ) 34  #SIGINT 2 ) 35  #SIGQUIT 3 ) 36  #SIGILL 4 ) 37  #SIGTRAP 5 ) 38  #SIGABRT 6 ) 39  #SIGIOT 6 ) 40  #SIGBUS 7 ) 41  #SIGFPE 8 ) 42  #SIGKILL 9 ) 43  #SIGUSR1 10 ) 44  #SIGSEGV 11 ) 45  #SIGUSR2 12 ) 46  #SIGPIPE 13 ) 47  #SIGALRM 14 ) 48  #SIGTERM 15 ) 49  #SIGSTKFLT 16 ) 50  #SIGCLD SIGCHLD ) 51  #SIGCHLD 17 ) 52  #SIGCONT 18 ) 53  #SIGSTOP 19 ) 54  #SIGTSTP 20 ) 55  #SIGTTIN 21 ) 56  #SIGTTOU 22 ) 57  #SIGURG 23 ) 58  #SIGXCPU 24 ) 59  #SIGXFSZ 25 ) 60  #SIGVTALRM 26 ) 61  #SIGPROF 27 ) 62  #SIGWINCH 28 ) 63  #SIGPOLL SIGIO ) 64  #SIGIO 29 ) 65  #SIGPWR 30 ) 66  #SIGSYS 31 ) 67  #SIGUNUSED 31 ) 69  #_NSIG 65 ) 72  #SIGRTMIN ( `__libc_cu¼’t_sig¹mš ()) ) 73  #SIGRTMAX ( `__libc_cu¼’t_sig¹max ()) ) 77  #__SIGRTMIN 32 ) 78  #__SIGRTMAX ( _NSIG - 1) ) @/usr/include/bits/sigstack.h 20 #iâdeà _SIGNAL_H 26  ssig¡ack 28 * mss_¥ ; 29  mss_Ú¡ack ; 36 mSS_ONSTACK = 1, 37  #SS_ONSTACK SS_ONSTACK ) 38 mSS_DISABLE 39  #SS_DISABLE SS_DISABLE ) 43  #MINSIGSTKSZ 2048 ) 46  #SIGSTKSZ 8192 ) 50  ssig®t¡ack 52 * mss_¥ ; 53  mss_æags ; 54 size_t mss_size ; 55 } t¡ack_t ; @/usr/include/bits/sigthread.h 20 #iâdeà _BITS_SIGTHREAD_H 21  #_BITS_SIGTHREAD_H 1 ) 23 #ià! defšed _SIGNAL_H && !defšed _PTHREAD_H 31  $±h»ad_sigmask ( __how , 32 __cÚ¡ __sig£t_t * __»¡riù __Ãwmask , 33 __sig£t_t * __»¡riù __Þdmask ) __THROW ; 36  $±h»ad_kžl ( ±h»ad_t __th»adid ,  __signo è __THROW ; @/usr/include/gconv.h 23 #iâdeà _GCONV_H 24  #_GCONV_H 1 ) 26  ~<ã©u»s.h > 27  #__Ãed_mb¡©e_t ) 28  ~ 29  #__Ãed_size_t ) 30  #__Ãed_wch¬_t ) 31  ~<¡ddef.h > 34  #__UNKNOWN_10646_CHAR (( wch¬_t è0xfffd) ) 39 m__GCONV_OK = 0, 40 m__GCONV_NOCONV , 41 m__GCONV_NODB , 42 m__GCONV_NOMEM , 44 m__GCONV_EMPTY_INPUT , 45 m__GCONV_FULL_OUTPUT , 46 m__GCONV_ILLEGAL_INPUT , 47 m__GCONV_INCOMPLETE_INPUT , 49 m__GCONV_ILLEGAL_DESCRIPTOR , 50 m__GCONV_INTERNAL_ERROR 57 m__GCONV_IS_LAST = 0x0001, 58 m__GCONV_IGNORE_ERRORS = 0x0002 63  g__gcÚv_¡• ; 64  g__gcÚv_¡•_d©a ; 65  g__gcÚv_lßded_objeù ; 66  g__gcÚv_Œªs_d©a ; 70 (* t__gcÚv_fù è( t__gcÚv_¡• *,  t__gcÚv_¡•_d©a *, 71 t__cÚ¡ **, __const *, 72 **, tsize_t *, , ); 75  $wšt_t (* t__gcÚv_btowc_fù è( t__gcÚv_¡• *, ); 78 (* t__gcÚv_š™_fù è( t__gcÚv_¡• *); 79 (* t__gcÚv_’d_fù è( t__gcÚv_¡• *); 83 (* t__gcÚv_Œªs_fù è( t__gcÚv_¡• *, 84  t__gcÚv_¡•_d©a *, *, 85 t__cÚ¡ *, 86 t__cÚ¡ **, 87 t__cÚ¡ *, **, 88 tsize_t *); 91 (* t__gcÚv_Œªs_cÚ‹xt_fù è(*, t__cÚ¡ *, 92 t__cÚ¡ *, 96 (* t__gcÚv_Œªs_qu”y_fù è( t__cÚ¡ *, __const ***, 97 tsize_t *); 100 (* t__gcÚv_Œªs_š™_fù ) (**, const *); 101 (* t__gcÚv_Œªs_’d_fù ) (*); 103  s__gcÚv_Œªs_d©a 106 __gcÚv_Œªs_fù __Œªs_fù ; 107 __gcÚv_Œªs_cÚ‹xt_fù __Œªs_cÚ‹xt_fù ; 108 __gcÚv_Œªs_’d_fù __Œªs_’d_fù ; 109 * __d©a ; 110  __gcÚv_Œªs_d©a * __Ãxt ; 115  s__gcÚv_¡• 117  __gcÚv_lßded_objeù * __shlib_hªdË ; 118 __cÚ¡ * __modÇme ; 120  __couÁ” ; 122 * __äom_Çme ; 123 * __to_Çme ; 125 __gcÚv_fù __fù ; 126 __gcÚv_btowc_fù __btowc_fù ; 127 __gcÚv_š™_fù __š™_fù ; 128 __gcÚv_’d_fù __’d_fù ; 132  __mš_Ãeded_äom ; 133  __max_Ãeded_äom ; 134  __mš_Ãeded_to ; 135  __max_Ãeded_to ; 138  __¡©eful ; 140 * __d©a ; 145  s__gcÚv_¡•_d©a 147 * __outbuf ; 148 * __outbuãnd ; 152  __æags ; 156  __švoÿtiÚ_couÁ” ; 160  __š‹º®_u£ ; 162 __mb¡©e_t * __¡©• ; 163 __mb¡©e_t __¡©e ; 167  __gcÚv_Œªs_d©a * __Œªs ; 172  s__gcÚv_šfo 174 size_t __n¡•s ; 175  __gcÚv_¡• * __¡•s ; 176 __ex‹nsiÚ__  __gcÚv_¡•_d©a __d©a __æex¬r ; 177 } * t__gcÚv_t ; @/usr/include/linux/byteorder/generic.h 1 #iâdeà _LINUX_BYTEORDER_GENERIC_H 2  #_LINUX_BYTEORDER_GENERIC_H ) @/usr/include/linux/byteorder/swab.h 1 #iâdeà _LINUX_BYTEORDER_SWAB_H 2  #_LINUX_BYTEORDER_SWAB_H ) 18 #ià defšed ( __GLIBC__ ) 22  ~ 26 #iâdeà __bsw­_cÚ¡ªt_16 27  #__bsw­_cÚ¡ªt_16 ( x ) \ 28 (((( x è>> 8è& 0xffè| (((xè& 0xffè<< 8)) ) 30 #iâdeà __bsw­_cÚ¡ªt_32 31  #__bsw­_cÚ¡ªt_32 ( x ) \ 32 (((( x ) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ 33 ((( x è& 0x0000ff00è<< 8è| (((xè& 0x000000ffè<< 24)) ) 35 #ià(! defšed ( __bsw­_cÚ¡ªt_64 )è&& defšed __GNUC__ && __GNUC__ >= 2 37  #__bsw­_cÚ¡ªt_64 ( x ) \ 38 (((( x ) & 0xff00000000000000ull) >> 56) \ 39 | ((( x ) & 0x00ff000000000000ull) >> 40) \ 40 | ((( x ) & 0x0000ff0000000000ull) >> 24) \ 41 | ((( x ) & 0x000000ff00000000ull) >> 8) \ 42 | ((( x ) & 0x00000000ff000000ull) << 8) \ 43 | ((( x ) & 0x0000000000ff0000ull) << 24) \ 44 | ((( x ) & 0x000000000000ff00ull) << 40) \ 45 | ((( x è& 0x00000000000000ffuÎè<< 56)) ) 48  #___cÚ¡ªt_swab16 ( x è `__bsw­_cÚ¡ªt_16 (x) ) 49  #___cÚ¡ªt_swab32 ( x è `__bsw­_cÚ¡ªt_32 (x) ) 50  #___cÚ¡ªt_swab64 ( x è `__bsw­_cÚ¡ªt_64 (x) ) 52  #__swab16 ( x è `bsw­_16 (x) ) 53  #__swab32 ( x è `bsw­_32 (x) ) 54  #__swab64 ( x è `bsw­_64 (x) ) 56  #__swab16p ( x è `__swab16 (*(x)) ) 57  #__swab32p ( x è `__swab32 (*(x)) ) 58  #__swab64p ( x è `__swab64 (*(x)) ) 60  #__swab16s ( x èdØ{ *(xèð `__swab16p ((x)); } 0) ) 61  #__swab32s ( x èdØ{ *(xèð `__swab32p ((x)); } 0) ) 62  #__swab64s ( x èdØ{ *(xèð `__swab64p ((x)); } 0) ) @/usr/include/sys/ucontext.h 19 #iâdeà _SYS_UCONTEXT_H 20  #_SYS_UCONTEXT_H 1 ) 22  ~<ã©u»s.h > 23  ~ 27  ~ 31  tg»g_t ; 34  #NGREG 19 ) 37  g»g_t tg»g£t_t [ NGREG ]; 39 #ifdeà __USE_GNU 43 mREG_GS = 0, 44  #REG_GS REG_GS ) 45 mREG_FS , 46  #REG_FS REG_FS ) 47 mREG_ES , 48  #REG_ES REG_ES ) 49 mREG_DS , 50  #REG_DS REG_DS ) 51 mREG_EDI , 52  #REG_EDI REG_EDI ) 53 mREG_ESI , 54  #REG_ESI REG_ESI ) 55 mREG_EBP , 56  #REG_EBP REG_EBP ) 57 mREG_ESP , 58  #REG_ESP REG_ESP ) 59 mREG_EBX , 60  #REG_EBX REG_EBX ) 61 mREG_EDX , 62  #REG_EDX REG_EDX ) 63 mREG_ECX , 64  #REG_ECX REG_ECX ) 65 mREG_EAX , 66  #REG_EAX REG_EAX ) 67 mREG_TRAPNO , 68  #REG_TRAPNO REG_TRAPNO ) 69 mREG_ERR , 70  #REG_ERR REG_ERR ) 71 mREG_EIP , 72  #REG_EIP REG_EIP ) 73 mREG_CS , 74  #REG_CS REG_CS ) 75 mREG_EFL , 76  #REG_EFL REG_EFL ) 77 mREG_UESP , 78  #REG_UESP REG_UESP ) 79 mREG_SS 80  #REG_SS REG_SS ) 85  s_libc_å»g 87  msignifiÿnd [4]; 88  mexpÚ’t ; 91  s_libc_å¡©e 93  mcw ; 94  msw ; 95  mg ; 96  moff ; 97  mcs£l ; 98  md©aoff ; 99  md©a£l ; 100  _libc_å»g m_¡ [8]; 101  m¡©us ; 105  _libc_å¡©e * tå»g£t_t ; 110 g»g£t_t mg»gs ; 113 å»g£t_t må»gs ; 114  mÞdmask ; 115  mü2 ; 116 } tmcÚ‹xt_t ; 119  sucÚ‹xt 121  muc_æags ; 122  ucÚ‹xt * muc_lšk ; 123 ¡ack_t muc_¡ack ; 124 mcÚ‹xt_t muc_mcÚ‹xt ; 125 __sig£t_t muc_sigmask ; 126  _libc_å¡©e m__å»gs_mem ; 127 } tucÚ‹xt_t ; @/usr/include/wchar.h 24 #iâdeà _WCHAR_H 26 #iâdeà __Ãed_mb¡©e_t 27  #_WCHAR_H 1 ) 28  ~<ã©u»s.h > 31 #ifdeà _WCHAR_H 33  #__Ãed___FILE ) 34 #ifdeà __USE_UNIX98 35  #__Ãed_FILE ) 37  ~<¡dio.h > 39  #__Ãed___va_li¡ ) 40  ~<¡d¬g.h > 43  #__Ãed_size_t ) 44  #__Ãed_wch¬_t ) 45  #__Ãed_NULL ) 47  #__Ãed_wšt_t ) 48  ~<¡ddef.h > 50  ~ 54 #iâdeà _WINT_T 59  #_WINT_T ) 60  twšt_t ; 64 #ià defšed __ýlu¥lus && defšed _GLIBCPP_USE_NAMESPACES \ 65 && defšed __WINT_TYPE__ 66 __BEGIN_NAMESPACE_STD 67  __WINT_TYPE__ twšt_t ; 68 g__END_NAMESPACE_STD 73 #iâdeà __mb¡©e_t_defšed 74  #__mb¡©e_t_defšed 1 ) 78  m__couÁ ; 81 wšt_t m__wch ; 82  m__wchb [4]; 83 } m__v®ue ; 84 } t__mb¡©e_t ; 86 #undeà __Ãed_mb¡©e_t 91 #ifdeà _WCHAR_H 93 __BEGIN_NAMESPACE_C99 95  __mb¡©e_t tmb¡©e_t ; 96 g__END_NAMESPACE_C99 97 #ifdeà __USE_GNU 98 $__USING_NAMESPACE_C99 ( mb¡©e_t ) 101 #iâdeà WCHAR_MIN 103  #WCHAR_MIN __WCHAR_MIN ) 104  #WCHAR_MAX __WCHAR_MAX ) 107 #iâdeà WEOF 108  #WEOF (0xffffffffu) ) 113 #ià defšed __USE_XOPEN && !defšed __USE_UNIX98 114  ~ 118 __BEGIN_DECLS 120 __BEGIN_NAMESPACE_STD 123  tm ; 127 $__USING_NAMESPACE_STD ( tm ) 128 __END_NAMESPACE_STD 131 __BEGIN_NAMESPACE_C99 133 wch¬_t * $wcsýy ( wch¬_t * __»¡riù __de¡ , 134 __cÚ¡ wch¬_t * __»¡riù __¤c è __THROW ; 136 wch¬_t * $wc¢ýy ( wch¬_t * __»¡riù __de¡ , 137 __cÚ¡ wch¬_t * __»¡riù __¤c , size_t __n ) 138 __THROW ; 141 wch¬_t * $wcsÿt ( wch¬_t * __»¡riù __de¡ , 142 __cÚ¡ wch¬_t * __»¡riù __¤c è __THROW ; 144 wch¬_t * $wc¢ÿt ( wch¬_t * __»¡riù __de¡ , 145 __cÚ¡ wch¬_t * __»¡riù __¤c , size_t __n ) 146 __THROW ; 149  $wcscmp ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 ) 150 __THROW __©Œibu‹_pu»__ ; 152  $wc¢cmp ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , size_t __n ) 153 __THROW __©Œibu‹_pu»__ ; 154 __END_NAMESPACE_C99 156 #ifdeà __USE_GNU 158  $wcsÿ£cmp ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 è __THROW ; 161  $wc¢ÿ£cmp ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , 162 size_t __n è __THROW ; 166  ~ 168  $wcsÿ£cmp_l ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , 169 __loÿË_t __loc è __THROW ; 171  $wc¢ÿ£cmp_l ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , 172 size_t __n , __loÿË_t __loc è __THROW ; 175 __BEGIN_NAMESPACE_C99 178  $wcscÞl ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 è __THROW ; 182 size_t $wcsxäm ( wch¬_t * __»¡riù __s1 , 183 __cÚ¡ wch¬_t * __»¡riù __s2 , size_t __n è __THROW ; 184 __END_NAMESPACE_C99 186 #ifdeà __USE_GNU 192  $wcscÞl_l ( __cÚ¡ wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , 193 __loÿË_t __loc è __THROW ; 198 size_t $wcsxäm_l ( wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , 199 size_t __n , __loÿË_t __loc è __THROW ; 202 wch¬_t * $wcsdup ( __cÚ¡ wch¬_t * __s è __THROW __©Œibu‹_m®loc__ ; 205 __BEGIN_NAMESPACE_C99 207 wch¬_t * $wcschr ( __cÚ¡ wch¬_t * __wcs , wch¬_ˆ __wc ) 208 __THROW __©Œibu‹_pu»__ ; 210 wch¬_t * $wc¤chr ( __cÚ¡ wch¬_t * __wcs , wch¬_ˆ __wc ) 211 __THROW __©Œibu‹_pu»__ ; 212 __END_NAMESPACE_C99 214 #ifdeà __USE_GNU 217 wch¬_t * $wcschºul ( __cÚ¡ wch¬_t * __s , wch¬_ˆ __wc ) 218 __THROW __©Œibu‹_pu»__ ; 221 __BEGIN_NAMESPACE_C99 224 size_t $wcsc¥n ( __cÚ¡ wch¬_t * __wcs , __cÚ¡ wch¬_ˆ* __»jeù ) 225 __THROW __©Œibu‹_pu»__ ; 228 size_t $wcs¥n ( __cÚ¡ wch¬_t * __wcs , __cÚ¡ wch¬_ˆ* __acû± ) 229 __THROW __©Œibu‹_pu»__ ; 231 wch¬_t * $wc¥brk ( __cÚ¡ wch¬_t * __wcs , __cÚ¡ wch¬_ˆ* __acû± ) 232 __THROW __©Œibu‹_pu»__ ; 234 wch¬_t * $wcs¡r ( __cÚ¡ wch¬_t * __hay¡ack , __cÚ¡ wch¬_ˆ* __ÃedË ) 235 __THROW __©Œibu‹_pu»__ ; 238 wch¬_t * $wc¡ok ( wch¬_t * __»¡riù __s , 239 __cÚ¡ wch¬_t * __»¡riù __d–im , 240 wch¬_t ** __»¡riù __±r è __THROW ; 243 size_t $wc¦’ ( __cÚ¡ wch¬_t * __s è __THROW __©Œibu‹_pu»__ ; 244 __END_NAMESPACE_C99 246 #ifdeà __USE_XOPEN 248 wch¬_t * $wcswcs ( __cÚ¡ wch¬_t * __hay¡ack , __cÚ¡ wch¬_ˆ* __ÃedË ) 249 __THROW __©Œibu‹_pu»__ ; 252 #ifdeà __USE_GNU 254 size_t $wc¢Ën ( __cÚ¡ wch¬_t * __s , size_t __maxËn ) 255 __THROW __©Œibu‹_pu»__ ; 259 __BEGIN_NAMESPACE_C99 261 wch¬_t * $wmemchr ( __cÚ¡ wch¬_t * __s , wch¬_ˆ __c , size_t __n ) 262 __THROW __©Œibu‹_pu»__ ; 265  $wmemcmp ( __cÚ¡ wch¬_t * __»¡riù __s1 , 266 __cÚ¡ wch¬_t * __»¡riù __s2 , size_t __n ) 267 __THROW __©Œibu‹_pu»__ ; 270 wch¬_t * $wmemýy ( wch¬_t * __»¡riù __s1 , 271 __cÚ¡ wch¬_t * __»¡riù __s2 , size_t __n è __THROW ; 275 wch¬_t * $wmemmove ( wch¬_t * __s1 , __cÚ¡ wch¬_ˆ* __s2 , size_t __n ) 276 __THROW ; 279 wch¬_t * $wmem£t ( wch¬_t * __s , wch¬_ˆ __c , size_t __n è __THROW ; 280 __END_NAMESPACE_C99 282 #ifdeà __USE_GNU 285 wch¬_t * $wmempýy ( wch¬_t * __»¡riù __s1 , 286 __cÚ¡ wch¬_t * __»¡riù __s2 , size_t __n ) 287 __THROW ; 291 __BEGIN_NAMESPACE_C99 294 wšt_t $btowc ( __c è __THROW ; 298  $wùob ( wšt_t __c è __THROW ; 302  $mbsš™ ( __cÚ¡ mb¡©e_t * __ps è __THROW __©Œibu‹_pu»__ ; 306 size_t $mb¹owc ( wch¬_t * __»¡riù __pwc , 307 __cÚ¡ * __»¡riù __s , size_t __n , 308 mb¡©e_t * __p è __THROW ; 311 size_t $wütomb (* __»¡riù __s , wch¬_t __wc , 312 mb¡©e_t * __»¡riù __ps è __THROW ; 315 size_t $__mb¾’ ( __cÚ¡ * __»¡riù __s , size_t __n , 316 mb¡©e_t * __»¡riù __ps è __THROW ; 317 size_t $mb¾’ ( __cÚ¡ * __»¡riù __s , size_t __n , 318 mb¡©e_t * __»¡riù __ps è __THROW ; 319 __END_NAMESPACE_C99 321 #ifdeà __USE_EXTERN_INLINES 323 __šlše size_t 324 `__NTH ( $mb¾’ ( __cÚ¡ * __»¡riù __s , size_t __n , 325 mb¡©e_t * __»¡riù __ps )) 326 {  ( __ps !ð NULL 327 ? `mb¹owc ( NULL , __s , __n , __ps è: `__mb¾’ (__s, __n, NULL)); } } 330 __BEGIN_NAMESPACE_C99 333 size_t $mb¤towcs ( wch¬_t * __»¡riù __d¡ , 334 __cÚ¡ ** __»¡riù __¤c , size_t __Ën , 335 mb¡©e_t * __»¡riù __ps è __THROW ; 339 size_t $wc¤tombs (* __»¡riù __d¡ , 340 __cÚ¡ wch¬_t ** __»¡riù __¤c , size_t __Ën , 341 mb¡©e_t * __»¡riù __ps è __THROW ; 342 __END_NAMESPACE_C99 345 #ifdef __USE_GNU 348 size_t $mb¢¹owcs ( wch¬_t * __»¡riù __d¡ , 349 __cÚ¡ ** __»¡riù __¤c , size_t __nmc , 350 size_t __Ën , mb¡©e_t * __»¡riù __ps è __THROW ; 354 size_t $wc¢¹ombs (* __»¡riù __d¡ , 355 __cÚ¡ wch¬_t ** __»¡riù __¤c , 356 size_t __nwc , size_ˆ __Ën , 357 mb¡©e_t * __»¡riù __ps è __THROW ; 362 #ifdeà __USE_XOPEN 364  $wcwidth ( wch¬_t __c è __THROW ; 368  $wcswidth ( __cÚ¡ wch¬_t * __s , size_t __n è __THROW ; 372 __BEGIN_NAMESPACE_C99 375  $wc¡od ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 376 wch¬_t ** __»¡riù __’d±r è __THROW ; 378 #ifdeà __USE_ISOC99 380  $wc¡of ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 381 wch¬_t ** __»¡riù __’d±r è __THROW ; 382  $wc¡Þd ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 383 wch¬_t ** __»¡riù __’d±r è __THROW ; 389  $wc¡Þ ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 390 wch¬_t ** __»¡riù __’d±r ,  __ba£ è __THROW ; 394  $wc¡oul ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 395 wch¬_t ** __»¡riù __’d±r ,  __ba£ ) 396 __THROW ; 398 #ià defšed __USE_ISOC99 || (defšed __GNUC__ && defšed __USE_GNU ) 401 __ex‹nsiÚ__ 402  $wc¡Þl ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 403 wch¬_t ** __»¡riù __’d±r ,  __ba£ ) 404 __THROW ; 408 __ex‹nsiÚ__ 409  $wc¡ouÎ ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 410 wch¬_t ** __»¡riù __’d±r , 411  __ba£ è __THROW ; 413 __END_NAMESPACE_C99 415 #ià defšed __GNUC__ && defšed __USE_GNU 418 __ex‹nsiÚ__ 419  $wc¡oq ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 420 wch¬_t ** __»¡riù __’d±r ,  __ba£ ) 421 __THROW ; 425 __ex‹nsiÚ__ 426  $wc¡ouq ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 427 wch¬_t ** __»¡riù __’d±r , 428  __ba£ è __THROW ; 431 #ifdeà __USE_GNU 445  ~ 449  $wc¡Þ_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 450 wch¬_t ** __»¡riù __’d±r ,  __ba£ , 451 __loÿË_t __loc è __THROW ; 453  $wc¡oul_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 454 wch¬_t ** __»¡riù __’d±r , 455  __ba£ , __loÿË_t __loc è __THROW ; 457 __ex‹nsiÚ__ 458  $wc¡Þl_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 459 wch¬_t ** __»¡riù __’d±r , 460  __ba£ , __loÿË_t __loc è __THROW ; 462 __ex‹nsiÚ__ 463  $wc¡ouÎ_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 464 wch¬_t ** __»¡riù __’d±r , 465  __ba£ , __loÿË_t __loc ) 466 __THROW ; 468  $wc¡od_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 469 wch¬_t ** __»¡riù __’d±r , __loÿË_t __loc ) 470 __THROW ; 472  $wc¡of_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 473 wch¬_t ** __»¡riù __’d±r , __loÿË_t __loc ) 474 __THROW ; 476  $wc¡Þd_l ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 477 wch¬_t ** __»¡riù __’d±r , 478 __loÿË_t __loc è __THROW ; 484  $__wc¡od_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 485 wch¬_t ** __»¡riù __’d±r ,  __group ) 486 __THROW ; 487  $__wc¡of_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 488 wch¬_t ** __»¡riù __’d±r ,  __group ) 489 __THROW ; 490  $__wc¡Þd_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 491 wch¬_t ** __»¡riù __’d±r , 492  __group è __THROW ; 494 #iâdeà __wc¡Þ_š‹º®_defšed 495  $__wc¡Þ_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 496 wch¬_t ** __»¡riù __’d±r , 497  __ba£ ,  __group è __THROW ; 498  #__wc¡Þ_š‹º®_defšed 1 ) 500 #iâdeà __wc¡oul_š‹º®_defšed 501  $__wc¡oul_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __Åt , 502 wch¬_t ** __»¡riù __’d±r , 503  __ba£ ,  __group è __THROW ; 504  #__wc¡oul_š‹º®_defšed 1 ) 506 #iâdeà __wc¡Þl_š‹º®_defšed 507 __ex‹nsiÚ__ 508  $__wc¡Þl_š‹º® ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 509 wch¬_t ** __»¡riù __’d±r , 510  __ba£ ,  __group è __THROW ; 511  #__wc¡Þl_š‹º®_defšed 1 ) 513 #iâdeà __wc¡ouÎ_š‹º®_defšed 514 __ex‹nsiÚ__ 515  $__wc¡ouÎ_š‹º® ( __cÚ¡ wch¬_t * 516 __»¡riù __ÅŒ , 517 wch¬_t ** 518 __»¡riù __’d±r , 519  __ba£ , 520  __group è __THROW ; 521  #__wc¡ouÎ_š‹º®_defšed 1 ) 525 #ià defšed __OPTIMIZE__ && __GNUC__ >= 2 527 __BEGIN_NAMESPACE_C99 529 __šlše  530 `__NTH ( $wc¡od ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 531 wch¬_t ** __»¡riù __’d±r )) 532 {  `__wc¡od_š‹º® ( __ÅŒ , __’d±r , 0); } } 533 __šlše  534 __NTH ( $wc¡Þ ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 535 wch¬_t ** __»¡riù __’d±r ,  __ba£ )) 536 {  `__wc¡Þ_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); } } 537 __šlše  538 __NTH ( $wc¡oul ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 539 wch¬_t ** __»¡riù __’d±r ,  __ba£ )) 540 {  `__wc¡oul_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); } } 541 __END_NAMESPACE_C99 543 #ifdeà __USE_GNU 544 __šlše  545 __NTH ( $wc¡of ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 546 wch¬_t ** __»¡riù __’d±r )) 547 {  `__wc¡of_š‹º® ( __ÅŒ , __’d±r , 0); } } 548 __šlše  549 __NTH ( $wc¡Þd ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 550 wch¬_t ** __»¡riù __’d±r )) 551 {  `__wc¡Þd_š‹º® ( __ÅŒ , __’d±r , 0); } } 554 __ex‹nsiÚ__ 555 __šlše  556 __NTH ( $wc¡oq ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 557 wch¬_t ** __»¡riù __’d±r ,  __ba£ )) 558 {  `__wc¡Þl_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); } } 559 __ex‹nsiÚ__ 560 __šlše  561 __NTH ( $wc¡ouq ( __cÚ¡ wch¬_t * __»¡riù __ÅŒ , 562 wch¬_t ** __»¡riù __’d±r ,  __ba£ )) 563 {  `__wc¡ouÎ_š‹º® ( __ÅŒ , __’d±r , __ba£ , 0); } } 568 #ifdef __USE_GNU 571 wch¬_t * $wýýy ( wch¬_t * __de¡ , __cÚ¡ wch¬_ˆ* __¤c è __THROW ; 575 wch¬_t * $wýnýy ( wch¬_t * __de¡ , __cÚ¡ wch¬_ˆ* __¤c , size_t __n ) 576 __THROW ; 581 #ià defšed __USE_ISOC99 || defšed __USE_UNIX98 582 __BEGIN_NAMESPACE_C99 585  $fwide ( __FILE * __å ,  __mode è __THROW ; 592  `fw´štf ( __FILE * __»¡riù __¡»am , 593 __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 599  `w´štf ( __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 602  $sw´štf ( wch¬_t * __»¡riù __s , size_t __n , 603 __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 604 __THROW ; 610  `vfw´štf ( __FILE * __»¡riù __s , 611 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 612 __gnuc_va_li¡ __¬g ) 618  `vw´štf ( __cÚ¡ wch¬_t * __»¡riù __fÜm© , 619 __gnuc_va_li¡ __¬g ) 623  $vsw´štf ( wch¬_t * __»¡riù __s , size_t __n , 624 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 625 __gnuc_va_li¡ __¬g ) 626 __THROW ; 633  `fwsÿnf ( __FILE * __»¡riù __¡»am , 634 __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 640  `wsÿnf ( __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 643  $swsÿnf ( __cÚ¡ wch¬_t * __»¡riù __s , 644 __cÚ¡ wch¬_t * __»¡riù __fÜm© , ...) 645 __THROW ; 647 __END_NAMESPACE_C99 650 #ifdeà __USE_ISOC99 651 __BEGIN_NAMESPACE_C99 657  `vfwsÿnf ( __FILE * __»¡riù __s , 658 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 659 __gnuc_va_li¡ __¬g ) 665  `vwsÿnf ( __cÚ¡ wch¬_t * __»¡riù __fÜm© , 666 __gnuc_va_li¡ __¬g ) 669  $vswsÿnf ( __cÚ¡ wch¬_t * __»¡riù __s , 670 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 671 __gnuc_va_li¡ __¬g ) 672 __THROW ; 674 __END_NAMESPACE_C99 678 __BEGIN_NAMESPACE_C99 683 wšt_t `fg‘wc ( __FILE * __¡»am ); 684 wšt_t `g‘wc ( __FILE * __¡»am ); 690 wšt_t `g‘wch¬ (); 697 wšt_t `åutwc ( wch¬_t __wc , __FILE * __¡»am ); 698 wšt_t `putwc ( wch¬_t __wc , __FILE * __¡»am ); 704 wšt_t `putwch¬ ( wch¬_t __wc ); 712 wch¬_t * `fg‘ws (wch¬_ˆ* __»¡riù __ws ,  __n , 713 __FILE * __»¡riù __¡»am ); 719  `åutws ( __cÚ¡ wch¬_t * __»¡riù __ws , 720 __FILE * __»¡riù __¡»am ); 727 wšt_t `ung‘wc (wšt_ˆ __wc , __FILE * __¡»am ); 728 __END_NAMESPACE_C99 731 #ifdeà __USE_GNU 739 wšt_t `g‘wc_uÆocked ( __FILE * __¡»am ); 740 wšt_t `g‘wch¬_uÆocked (); 748 wšt_t `fg‘wc_uÆocked ( __FILE * __¡»am ); 756 wšt_t `åutwc_uÆocked ( wch¬_t __wc , __FILE * __¡»am ); 765 wšt_t `putwc_uÆocked ( wch¬_t __wc , __FILE * __¡»am ); 766 wšt_t `putwch¬_uÆocked ( wch¬_t __wc ); 775 wch¬_t * `fg‘ws_uÆocked (wch¬_ˆ* __»¡riù __ws ,  __n , 776 __FILE * __»¡riù __¡»am ); 784  `åutws_uÆocked ( __cÚ¡ wch¬_t * __»¡riù __ws , 785 __FILE * __»¡riù __¡»am ); 789 __BEGIN_NAMESPACE_C99 793 size_t $wcsáime ( wch¬_t * __»¡riù __s , size_t __maxsize , 794 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 795 __cÚ¡  tm * __»¡riù __ è __THROW ; 796 __END_NAMESPACE_C99 798 #ifdeà __USE_GNU 799  ~ 803 size_t $wcsáime_l ( wch¬_t * __»¡riù __s , size_t __maxsize , 804 __cÚ¡ wch¬_t * __»¡riù __fÜm© , 805 __cÚ¡  tm * __»¡riù __ , 806 __loÿË_t __loc è __THROW ; 815 #ià defšed __USE_UNIX98 && !defšed __USE_GNU 816  #__Ãed_iswxxx ) 817  ~ 820 __END_DECLS @/usr/include/asm/sigcontext.h 5 #iâdeà __i386STUB__SIGCONTEXT_H__ 6  #__i386STUB__SIGCONTEXT_H__ ) 8 #ifdeà __x86_64__ 9  ~ 11  ~ @/usr/include/byteswap.h 19 #iâdeà _BYTESWAP_H 20  #_BYTESWAP_H 1 ) 23  ~ 30  #bsw­_16 ( x è `__bsw­_16 (x) ) 33  #bsw­_32 ( x è `__bsw­_32 (x) ) 35 #ià defšed __GNUC__ && __GNUC__ >= 2 37  #bsw­_64 ( x è `__bsw­_64 (x) ) @/usr/include/pthread.h 15 #iâdeà _PTHREAD_H 16  #_PTHREAD_H 1 ) 18  ~<ã©u»s.h > 20  ~ 21  ~ 23  #__Ãed_sig£t_t ) 24  ~ 25  ~ 26  ~ 29 g__BEGIN_DECLS 33  #PTHREAD_MUTEX_INITIALIZER \ 34 {0, 0, 0, PTHREAD_MUTEX_TIMED_NP , __LOCK_ALT_INITIALIZER } ) 35 #ifdeà __USE_GNU 36  #PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \ 37 {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP , __LOCK_ALT_INITIALIZER } ) 38  #PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \ 39 {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP , __LOCK_ALT_INITIALIZER } ) 40  #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \ 41 {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP , __LOCK_ALT_INITIALIZER } ) 44  #PTHREAD_COND_INITIALIZER { __LOCK_ALT_INITIALIZER , 0, "", 0} ) 46 #ià defšed __USE_UNIX98 || defšed __USE_XOPEN2K 47  #PTHREAD_RWLOCK_INITIALIZER \ 48 { __LOCK_ALT_INITIALIZER , 0, NULL , NULL, NULL, \ 49 PTHREAD_RWLOCK_DEFAULT_NP , PTHREAD_PROCESS_PRIVATE } ) 51 #ifdeà __USE_GNU 52  #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \ 53 { __LOCK_ALT_INITIALIZER , 0, NULL , NULL, NULL, \ 54 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP , PTHREAD_PROCESS_PRIVATE } ) 61 mPTHREAD_CREATE_JOINABLE , 62  #PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE ) 63 mPTHREAD_CREATE_DETACHED 64  #PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED ) 69 mPTHREAD_INHERIT_SCHED , 70  #PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED ) 71 mPTHREAD_EXPLICIT_SCHED 72  #PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED ) 77 mPTHREAD_SCOPE_SYSTEM , 78  #PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM ) 79 mPTHREAD_SCOPE_PROCESS 80  #PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS ) 85 mPTHREAD_MUTEX_TIMED_NP , 86 mPTHREAD_MUTEX_RECURSIVE_NP , 87 mPTHREAD_MUTEX_ERRORCHECK_NP , 88 mPTHREAD_MUTEX_ADAPTIVE_NP 89 #ifdeà __USE_UNIX98 91 mPTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP , 92 mPTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP , 93 mPTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP , 94 mPTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL 96 #ifdeà __USE_GNU 98 , mPTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP 104 mPTHREAD_PROCESS_PRIVATE , 105  #PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE ) 106 mPTHREAD_PROCESS_SHARED 107  #PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED ) 110 #ià defšed __USE_UNIX98 || defšed __USE_XOPEN2K 113 mPTHREAD_RWLOCK_PREFER_READER_NP , 114 mPTHREAD_RWLOCK_PREFER_WRITER_NP , 115 mPTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP , 116 mPTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP 120  #PTHREAD_ONCE_INIT 0 ) 124 #ifdeà __USE_XOPEN2K 126  #PTHREAD_BARRIER_SERIAL_THREAD -1 ) 131  s_±h»ad_þ—nup_bufãr 133 (* m__routše ) (*); 134 * m__¬g ; 135  m__ÿnûÉy³ ; 136  _±h»ad_þ—nup_bufãr * m__´ev ; 143 mPTHREAD_CANCEL_ENABLE , 144  #PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE ) 145 mPTHREAD_CANCEL_DISABLE 146  #PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE ) 150 mPTHREAD_CANCEL_DEFERRED , 151  #PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED ) 152 mPTHREAD_CANCEL_ASYNCHRONOUS 153  #PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS ) 155  #PTHREAD_CANCELED ((*è-1) ) 163  ±h»ad_ü—‹ ( ±h»ad_t * __»¡riù __th»adp , 164 __cÚ¡ ±h»ad_©Œ_t * __»¡riù __©Œ , 165 *(* __¡¬t_routše ) (*), 166 * __»¡riù __¬g è __THROW ; 169 ±h»ad_t $±h»ad_£lf (è __THROW ; 172  $±h»ad_equ® ( ±h»ad_t __th»ad1 ,…th»ad_ˆ __th»ad2 è __THROW ; 175  $±h»ad_ex™ (* __»tv® è `__©Œibu‹__ (( __nÜ‘uº__ )); 180  `±h»ad_još ( ±h»ad_t __th , ** __th»ad_»tuº ); 186  $±h»ad_d‘ach ( ±h»ad_t __th è __THROW ; 194  $±h»ad_©Œ_š™ ( ±h»ad_©Œ_t * __©Œ è __THROW ; 197  $±h»ad_©Œ_de¡roy ( ±h»ad_©Œ_t * __©Œ è __THROW ; 200  $±h»ad_©Œ_£td‘ach¡©e ( ±h»ad_©Œ_t * __©Œ , 201  __d‘ach¡©e è __THROW ; 204  $±h»ad_©Œ_g‘d‘ach¡©e ( __cÚ¡ ±h»ad_©Œ_t * __©Œ , 205 * __d‘ach¡©e è __THROW ; 208  $±h»ad_©Œ_£tsched·¿m ( ±h»ad_©Œ_t * __»¡riù __©Œ , 209 __cÚ¡  sched_·¿m * __»¡riù 210 __·¿m è __THROW ; 213  $±h»ad_©Œ_g‘sched·¿m ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 214 __©Œ , 215  sched_·¿m * __»¡riù __·¿m ) 216 __THROW ; 219  $±h»ad_©Œ_£tschedpÞicy ( ±h»ad_©Œ_t * __©Œ ,  __pÞicy ) 220 __THROW ; 223  $±h»ad_©Œ_g‘schedpÞicy ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 224 __©Œ , * __»¡riù __pÞicy ) 225 __THROW ; 228  $±h»ad_©Œ_£tšh”™sched ( ±h»ad_©Œ_t * __©Œ , 229  __šh”™ è __THROW ; 232  $±h»ad_©Œ_g‘šh”™sched ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 233 __©Œ , * __»¡riù __šh”™ ) 234 __THROW ; 237  $±h»ad_©Œ_£tscÝe ( ±h»ad_©Œ_t * __©Œ ,  __scÝe ) 238 __THROW ; 241  $±h»ad_©Œ_g‘scÝe ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù __©Œ , 242 * __»¡riù __scÝe è __THROW ; 244 #ifdeà __USE_UNIX98 246  $±h»ad_©Œ_£tgu¬dsize ( ±h»ad_©Œ_t * __©Œ , 247 size_t __gu¬dsize è __THROW ; 250  $±h»ad_©Œ_g‘gu¬dsize ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 251 __©Œ , size_t * __»¡riù __gu¬dsize ) 252 __THROW ; 259  $±h»ad_©Œ_£t¡ackaddr ( ±h»ad_©Œ_t * __©Œ , 260 * __¡ackaddr è __THROW ; 263  $±h»ad_©Œ_g‘¡ackaddr ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 264 __©Œ , ** __»¡riù __¡ackaddr ) 265 __THROW ; 267 #ifdeà __USE_XOPEN2K 271  $±h»ad_©Œ_£t¡ack ( ±h»ad_©Œ_t * __©Œ , * __¡ackaddr , 272 size_t __¡acksize è __THROW ; 275  $±h»ad_©Œ_g‘¡ack ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù __©Œ , 276 ** __»¡riù __¡ackaddr , 277 size_t * __»¡riù __¡acksize è __THROW ; 283  $±h»ad_©Œ_£t¡acksize ( ±h»ad_©Œ_t * __©Œ , 284 size_t __¡acksize è __THROW ; 287  $±h»ad_©Œ_g‘¡acksize ( __cÚ¡ ±h»ad_©Œ_t * __»¡riù 288 __©Œ , size_t * __»¡riù __¡acksize ) 289 __THROW ; 291 #ifdeà __USE_GNU 295  $±h»ad_g‘©Œ_Å ( ±h»ad_t __th , ±h»ad_©Œ_t * __©Œ è __THROW ; 302  $±h»ad_£tsched·¿m ( ±h»ad_t __rg‘_th»ad ,  __pÞicy , 303 __cÚ¡  sched_·¿m * __·¿m ) 304 __THROW ; 307  $±h»ad_g‘sched·¿m ( ±h»ad_t __rg‘_th»ad , 308 * __»¡riù __pÞicy , 309  sched_·¿m * __»¡riù __·¿m ) 310 __THROW ; 312 #ifdeà __USE_UNIX98 314  $±h»ad_g‘cÚcu¼’cy (è __THROW ; 317  $±h»ad_£tcÚcu¼’cy ( __Ëv– è __THROW ; 320 #ifdeà __USE_GNU 325  $±h»ad_y›ld (è __THROW ; 332  $±h»ad_mu‹x_š™ ( ±h»ad_mu‹x_t * __»¡riù __mu‹x , 333 __cÚ¡ ±h»ad_mu‹x©Œ_t * __»¡riù 334 __mu‹x_©Œ è __THROW ; 337  $±h»ad_mu‹x_de¡roy ( ±h»ad_mu‹x_t * __mu‹x è __THROW ; 340  $±h»ad_mu‹x_Œylock ( ±h»ad_mu‹x_t * __mu‹x è __THROW ; 343  $±h»ad_mu‹x_lock ( ±h»ad_mu‹x_t * __mu‹x è __THROW ; 345 #ifdeà __USE_XOPEN2K 347  $±h»ad_mu‹x_timedlock ( ±h»ad_mu‹x_t * __»¡riù __mu‹x , 348 __cÚ¡  time¥ec * __»¡riù 349 __ab¡ime è __THROW ; 353  $±h»ad_mu‹x_uÆock ( ±h»ad_mu‹x_t * __mu‹x è __THROW ; 360  $±h»ad_mu‹x©Œ_š™ ( ±h»ad_mu‹x©Œ_t * __©Œ è __THROW ; 363  $±h»ad_mu‹x©Œ_de¡roy ( ±h»ad_mu‹x©Œ_t * __©Œ è __THROW ; 366  $±h»ad_mu‹x©Œ_g‘psh¬ed ( __cÚ¡ ±h»ad_mu‹x©Œ_t * 367 __»¡riù __©Œ , 368 * __»¡riù __psh¬ed è __THROW ; 371  $±h»ad_mu‹x©Œ_£sh¬ed ( ±h»ad_mu‹x©Œ_t * __©Œ , 372  __psh¬ed è __THROW ; 374 #ifdeà __USE_UNIX98 378  $±h»ad_mu‹x©Œ_£‰y³ ( ±h»ad_mu‹x©Œ_t * __©Œ ,  __kšd ) 379 __THROW ; 382  $±h»ad_mu‹x©Œ_g‘ty³ ( __cÚ¡ ±h»ad_mu‹x©Œ_t * __»¡riù 383 __©Œ , * __»¡riù __kšd è __THROW ; 391  $±h»ad_cÚd_š™ ( ±h»ad_cÚd_t * __»¡riù __cÚd , 392 __cÚ¡ ±h»ad_cÚd©Œ_t * __»¡riù 393 __cÚd_©Œ è __THROW ; 396  $±h»ad_cÚd_de¡roy ( ±h»ad_cÚd_t * __cÚd è __THROW ; 399  $±h»ad_cÚd_sigÇl ( ±h»ad_cÚd_t * __cÚd è __THROW ; 402  $±h»ad_cÚd_brßdÿ¡ ( ±h»ad_cÚd_t * __cÚd è __THROW ; 406  `±h»ad_cÚd_wa™ ( ±h»ad_cÚd_t * __»¡riù __cÚd , 407 ±h»ad_mu‹x_t * __»¡riù __mu‹x ); 413  `±h»ad_cÚd_timedwa™ ( ±h»ad_cÚd_t * __»¡riù __cÚd , 414 ±h»ad_mu‹x_t * __»¡riù __mu‹x , 415 __cÚ¡  time¥ec * __»¡riù 416 __ab¡ime ); 421  $±h»ad_cÚd©Œ_š™ ( ±h»ad_cÚd©Œ_t * __©Œ è __THROW ; 424  $±h»ad_cÚd©Œ_de¡roy ( ±h»ad_cÚd©Œ_t * __©Œ è __THROW ; 427  $±h»ad_cÚd©Œ_g‘psh¬ed ( __cÚ¡ ±h»ad_cÚd©Œ_t * 428 __»¡riù __©Œ , 429 * __»¡riù __psh¬ed è __THROW ; 432  $±h»ad_cÚd©Œ_£sh¬ed ( ±h»ad_cÚd©Œ_t * __©Œ , 433  __psh¬ed è __THROW ; 436 #ià defšed __USE_UNIX98 || defšed __USE_XOPEN2K 441  $±h»ad_rwlock_š™ ( ±h»ad_rwlock_t * __»¡riù __rwlock , 442 __cÚ¡ ±h»ad_rwlock©Œ_t * __»¡riù 443 __©Œ è __THROW ; 446  $±h»ad_rwlock_de¡roy ( ±h»ad_rwlock_t * __rwlock è __THROW ; 449  $±h»ad_rwlock_rdlock ( ±h»ad_rwlock_t * __rwlock è __THROW ; 452  $±h»ad_rwlock_Œyrdlock ( ±h»ad_rwlock_t * __rwlock è __THROW ; 454 #ifdeà __USE_XOPEN2K 456  $±h»ad_rwlock_timedrdlock ( ±h»ad_rwlock_t * __»¡riù __rwlock , 457 __cÚ¡  time¥ec * __»¡riù 458 __ab¡ime è __THROW ; 462  $±h»ad_rwlock_w¾ock ( ±h»ad_rwlock_t * __rwlock è __THROW ; 465  $±h»ad_rwlock_Œyw¾ock ( ±h»ad_rwlock_t * __rwlock è __THROW ; 467 #ifdeà __USE_XOPEN2K 469  $±h»ad_rwlock_timedw¾ock ( ±h»ad_rwlock_t * __»¡riù __rwlock , 470 __cÚ¡  time¥ec * __»¡riù 471 __ab¡ime è __THROW ; 475  $±h»ad_rwlock_uÆock ( ±h»ad_rwlock_t * __rwlock è __THROW ; 481  $±h»ad_rwlock©Œ_š™ ( ±h»ad_rwlock©Œ_t * __©Œ è __THROW ; 484  $±h»ad_rwlock©Œ_de¡roy ( ±h»ad_rwlock©Œ_t * __©Œ è __THROW ; 487  $±h»ad_rwlock©Œ_g‘psh¬ed ( __cÚ¡ ±h»ad_rwlock©Œ_t * 488 __»¡riù __©Œ , 489 * __»¡riù __psh¬ed è __THROW ; 492  $±h»ad_rwlock©Œ_£sh¬ed ( ±h»ad_rwlock©Œ_t * __©Œ , 493  __psh¬ed è __THROW ; 496  $±h»ad_rwlock©Œ_g‘kšd_Å ( __cÚ¡ ±h»ad_rwlock©Œ_t * __©Œ , 497 * __´ef è __THROW ; 500  $±h»ad_rwlock©Œ_£tkšd_Å ( ±h»ad_rwlock©Œ_t * __©Œ , 501  __´ef è __THROW ; 504 #ifdeà __USE_XOPEN2K 510  $±h»ad_¥š_š™ ( ±h»ad_¥šlock_t * __lock ,  __psh¬ed ) 511 __THROW ; 514  $±h»ad_¥š_de¡roy ( ±h»ad_¥šlock_t * __lock è __THROW ; 517  $±h»ad_¥š_lock ( ±h»ad_¥šlock_t * __lock è __THROW ; 520  $±h»ad_¥š_Œylock ( ±h»ad_¥šlock_t * __lock è __THROW ; 523  $±h»ad_¥š_uÆock ( ±h»ad_¥šlock_t * __lock è __THROW ; 528  $±h»ad_b¬r›r_š™ ( ±h»ad_b¬r›r_t * __»¡riù __b¬r›r , 529 __cÚ¡ ±h»ad_b¬r›¿‰r_t * __»¡riù 530 __©Œ ,  __couÁ è __THROW ; 532  $±h»ad_b¬r›r_de¡roy ( ±h»ad_b¬r›r_t * __b¬r›r è __THROW ; 534  $±h»ad_b¬r›¿‰r_š™ ( ±h»ad_b¬r›¿‰r_t * __©Œ è __THROW ; 536  $±h»ad_b¬r›¿‰r_de¡roy ( ±h»ad_b¬r›¿‰r_t * __©Œ è __THROW ; 538  $±h»ad_b¬r›¿‰r_g‘psh¬ed ( __cÚ¡ ±h»ad_b¬r›¿‰r_t * 539 __»¡riù __©Œ , 540 * __»¡riù __psh¬ed è __THROW ; 542  $±h»ad_b¬r›¿‰r_£sh¬ed ( ±h»ad_b¬r›¿‰r_t * __©Œ , 543  __psh¬ed è __THROW ; 545  $±h»ad_b¬r›r_wa™ ( ±h»ad_b¬r›r_t * __b¬r›r è __THROW ; 557  `±h»ad_key_ü—‹ ( ±h»ad_key_t * __key , 558 (* __de¡r_funùiÚ è(*)è __THROW ; 561  $±h»ad_key_d–‘e ( ±h»ad_key_t __key è __THROW ; 564  $±h»ad_£t¥ecific ( ±h»ad_key_t __key , 565 __cÚ¡ * __poš‹r è __THROW ; 568 * $±h»ad_g‘¥ecific ( ±h»ad_key_t __key è __THROW ; 580  `±h»ad_Úû ( ±h»ad_Úû_t * __Úû_cÚŒÞ , 581 (* __š™_routše ) ()); 588  `±h»ad_£tÿnûl¡©e ( __¡©e , * __Þd¡©e ); 592  `±h»ad_£tÿnûÉy³ ( __ty³ , * __Þdty³ ); 595  `±h»ad_ÿnûl ( ±h»ad_t __ÿnûÉh»ad ); 600  `±h»ad_‹¡ÿnûl (); 610  #±h»ad_þ—nup_push ( routše , ¬g ) \ 611 {  _±h»ad_þ—nup_bufãr _bufãr ; \ 612 `_±h»ad_þ—nup_push (& _bufãr , ( routše ), ( ¬g )); ) 614  `_±h»ad_þ—nup_push ( _±h»ad_þ—nup_bufãr * __bufãr , 615 (* __routše ) (*), 616 * __¬g è __THROW ; 621  #±h»ad_þ—nup_pÝ ( execu‹ ) \ 622 `_±h»ad_þ—nup_pÝ (& _bufãr , ( execu‹ )); } ) } 624  $_±h»ad_þ—nup_pÝ ( _±h»ad_þ—nup_bufãr * __bufãr , 625  __execu‹ è __THROW ; 630 #ifdeà __USE_GNU 631  #±h»ad_þ—nup_push_deãr_Å ( routše , ¬g ) \ 632 {  _±h»ad_þ—nup_bufãr _bufãr ; \ 633 `_±h»ad_þ—nup_push_deãr (& _bufãr , ( routše ), ( ¬g )); ) 635  `_±h»ad_þ—nup_push_deãr ( _±h»ad_þ—nup_bufãr * __bufãr , 636 (* __routše ) (*), 637 * __¬g è __THROW ; 643  #±h»ad_þ—nup_pÝ_»¡Üe_Å ( execu‹ ) \ 644 `_±h»ad_þ—nup_pÝ_»¡Üe (& _bufãr , ( execu‹ )); } ) } 646  $_±h»ad_þ—nup_pÝ_»¡Üe ( _±h»ad_þ—nup_bufãr * __bufãr , 647  __execu‹ è __THROW ; 651 #ifdeà __USE_XOPEN2K 653  $±h»ad_g‘ýuþockid ( ±h»ad_t __th»ad_id , 654 __þockid_t * __þock_id è __THROW ; 659  ~ 675  `±h»ad_©fÜk ((* __´•¬e ) (), 676 (* __·»Á ) (), 677 (* __chžd è()è __THROW ; 682  $±h»ad_kžl_Ùh”_th»ads_Å (è __THROW ; 684 __END_DECLS @/usr/include/wctype.h 24 #iâdeà _WCTYPE_H 26  ~<ã©u»s.h > 27  ~ 29 #iâdeà __Ãed_iswxxx 30  #_WCTYPE_H 1 ) 34  #__Ãed_wšt_t ) 35  ~<¡ddef.h > 36 #iâdeà _WINT_T 41  #_WINT_T ) 42  twšt_t ; 44 #ifdeà __USE_ISOC99 45 $__USING_NAMESPACE_C99 ( wšt_t ) 47 __END_NAMESPACE_C99 52 #iâdeà WEOF 53  #WEOF (0xffffffffu) ) 56 #undeà __Ãed_iswxxx 61 #iâdeà __iswxxx_defšed 62  #__iswxxx_defšed 1 ) 64 __BEGIN_NAMESPACE_C99 67  twùy³_t ; 68 __END_NAMESPACE_C99 70 #iâdeà _ISwb™ 75  ~<’dŸn.h > 76 #ià __BYTE_ORDER =ð __BIG_ENDIAN 77  #_ISwb™ ( b™ è(1 << (b™)) ) 79  #_ISwb™ ( b™ ) \ 80 (( b™ ) < 8 ? () ((1UL << (bit)) << 24) \ 81 : (( b™ ) < 16 ? () ((1UL << (bit)) << 8) \ 82 : (( b™ ) < 24 ? () ((1UL << (bit)) >> 8) \ 83 : (è((1UL << ( b™ )è>> 24)))) ) 88 __ISwuµ” = 0, 89 __ISwlow” = 1, 90 __ISw®pha = 2, 91 __ISwdig™ = 3, 92 __ISwxdig™ = 4, 93 __ISw¥aû = 5, 94 __ISw´št = 6, 95 __ISwg¿ph = 7, 96 __ISwbÏnk = 8, 97 __ISwúŒl = 9, 98 __ISwpunù = 10, 99 __ISw®num = 11, 101 _ISwuµ” = `_ISwb™ ( __ISwuµ” ), 102 _ISwlow” = `_ISwb™ ( __ISwlow” ), 103 _ISw®pha = `_ISwb™ ( __ISw®pha ), 104 _ISwdig™ = `_ISwb™ ( __ISwdig™ ), 105 _ISwxdig™ = `_ISwb™ ( __ISwxdig™ ), 106 _ISw¥aû = `_ISwb™ ( __ISw¥aû ), 107 _ISw´št = `_ISwb™ ( __ISw´št ), 108 _ISwg¿ph = `_ISwb™ ( __ISwg¿ph ), 109 _ISwbÏnk = `_ISwb™ ( __ISwbÏnk ), 110 _ISwúŒl = `_ISwb™ ( __ISwúŒl ), 111 _ISwpunù = `_ISwb™ ( __ISwpunù ), 112 _ISw®num = `_ISwb™ ( __ISw®num ) 117 __BEGIN_DECLS 119 __BEGIN_NAMESPACE_C99 126  $isw®num ( wšt_t __wc è __THROW ; 132  $isw®pha ( wšt_t __wc è __THROW ; 135  $iswúŒl ( wšt_t __wc è __THROW ; 139  $iswdig™ ( wšt_t __wc è __THROW ; 143  $iswg¿ph ( wšt_t __wc è __THROW ; 148  $iswlow” ( wšt_t __wc è __THROW ; 151  $isw´št ( wšt_t __wc è __THROW ; 156  $iswpunù ( wšt_t __wc è __THROW ; 161  $isw¥aû ( wšt_t __wc è __THROW ; 166  $iswuµ” ( wšt_t __wc è __THROW ; 171  $iswxdig™ ( wšt_t __wc è __THROW ; 176 #ifdeà __USE_ISOC99 177  $iswbÏnk ( wšt_t __wc è __THROW ; 186 wùy³_t $wùy³ ( __cÚ¡ * __´Ý”ty è __THROW ; 190  $iswùy³ ( wšt_t __wc , wùy³_t __desc è __THROW ; 191 __END_NAMESPACE_C99 198 __BEGIN_NAMESPACE_C99 201  __cÚ¡ t__št32_t * twù¿ns_t ; 202 __END_NAMESPACE_C99 203 #ifdeà __USE_GNU 204 $__USING_NAMESPACE_C99 ( wù¿ns_t ) 207 __BEGIN_NAMESPACE_C99 209 wšt_t $towlow” ( wšt_t __wc è __THROW ; 212 wšt_t $towuµ” ( wšt_t __wc è __THROW ; 213 __END_NAMESPACE_C99 215 __END_DECLS 222 #ifdeà _WCTYPE_H 228 __BEGIN_DECLS 230 __BEGIN_NAMESPACE_C99 233 wù¿ns_t $wù¿ns ( __cÚ¡ * __´Ý”ty è __THROW ; 236 wšt_t $towù¿ns ( wšt_t __wc , wù¿ns_t __desc è __THROW ; 237 __END_NAMESPACE_C99 239 #ifdeà __USE_GNU 241  ~ 245  $isw®num_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 251  $isw®pha_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 254  $iswúŒl_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 258  $iswdig™_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 262  $iswg¿ph_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 267  $iswlow”_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 270  $isw´št_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 275  $iswpunù_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 280  $isw¥aû_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 285  $iswuµ”_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 290  $iswxdig™_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 295  $iswbÏnk_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 299 wùy³_t $wùy³_l ( __cÚ¡ * __´Ý”ty , __loÿË_t __loÿË ) 300 __THROW ; 304  $iswùy³_l ( wšt_t __wc , wùy³_t __desc , __loÿË_t __loÿË ) 305 __THROW ; 313 wšt_t $towlow”_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 316 wšt_t $towuµ”_l ( wšt_t __wc , __loÿË_t __loÿË è __THROW ; 320 wù¿ns_t $wù¿ns_l ( __cÚ¡ * __´Ý”ty , __loÿË_t __loÿË ) 321 __THROW ; 324 wšt_t $towù¿ns_l ( wšt_t __wc , wù¿ns_t __desc , 325 __loÿË_t __loÿË è __THROW ; 329 __END_DECLS @/usr/include/asm-i386/sigcontext.h 1 #iâdeà _ASMi386_SIGCONTEXT_H 2  #_ASMi386_SIGCONTEXT_H ) 19  s_å»g { 20  msignifiÿnd [4]; 21  mexpÚ’t ; 24  s_åx»g { 25  msignifiÿnd [4]; 26  mexpÚ’t ; 27  m·ddšg [3]; 30  s_xmm»g { 31  m–em’t [4]; 34  s_å¡©e { 36  mcw ; 37  msw ; 38  mg ; 39  moff ; 40  mcs£l ; 41  md©aoff ; 42  md©a£l ; 43  _å»g m_¡ [8]; 44  m¡©us ; 45  mmagic ; 48  m_fx¤_’v [6]; 49  mmxc¤ ; 50  m»£rved ; 51  _åx»g m_fx¤_¡ [8]; 52  _xmm»g m_xmm [8]; 53  m·ddšg [56]; 56  #X86_FXSR_MAGIC 0x0000 ) 58  ssigcÚ‹xt { 59  mgs , m__gsh ; 60  mfs , m__fsh ; 61  mes , m__esh ; 62  mds , m__dsh ; 63  medi ; 64  mesi ; 65  mebp ; 66  me¥ ; 67  mebx ; 68  medx ; 69  mecx ; 70  m—x ; 71  mŒ­no ; 72  m”r ; 73  me ; 74  mcs , m__csh ; 75  meæags ; 76  me¥_©_sigÇl ; 77  mss , m__ssh ; 78  _å¡©e * må¡©e ; 79  mÞdmask ; 80  mü2 ; @/usr/include/asm-x86_64/sigcontext.h 1 #iâdeà _ASM_X86_64_SIGCONTEXT_H 2  #_ASM_X86_64_SIGCONTEXT_H ) 4  ~ 6 #iâdeà _BITS_SIGCONTEXT_H 11  s_å¡©e { 12 __u16 mcwd ; 13 __u16 mswd ; 14 __u16 mtwd ; 15 __u16 mfÝ ; 16 __u64 mr ; 17 __u64 mrdp ; 18 __u32 mmxc¤ ; 19 __u32 mmxc¤_mask ; 20 __u32 m¡_¥aû [32]; 21 __u32 mxmm_¥aû [64]; 22 __u32 m»£rved2 [24]; 25  ssigcÚ‹xt { 26  mr8 ; 27  mr9 ; 28  mr10 ; 29  mr11 ; 30  mr12 ; 31  mr13 ; 32  mr14 ; 33  mr15 ; 34  mrdi ; 35  mrsi ; 36  mrbp ; 37  mrbx ; 38  mrdx ; 39  m¿x ; 40  mrcx ; 41  mr¥ ; 42  mr ; 43  meæags ; 44  mcs ; 45  mgs ; 46  mfs ; 47  m__·d0 ; 48  m”r ; 49  mŒ­no ; 50  mÞdmask ; 51  mü2 ; 52  _å¡©e * må¡©e ; 53  m»£rved1 [8]; @/usr/include/bits/byteswap.h 20 #ià! defšed _BYTESWAP_H && !defšed _NETINET_IN_H 24 #iâdeà _BITS_BYTESWAP_H 25  #_BITS_BYTESWAP_H 1 ) 28  #__bsw­_cÚ¡ªt_16 ( x ) \ 29 (((( x è>> 8è& 0xffè| (((xè& 0xffè<< 8)) ) 31 #ifdeà __GNUC__ 32 #ià __GNUC__ >= 2 33  #__bsw­_16 ( x ) \ 34 ( __ex‹nsiÚ__ \ 35 ({  __v , __x = ( x ); \ 36 ià( `__bužtš_cÚ¡ªt_p ( __x )) \ 37 __v = `__bsw­_cÚ¡ªt_16 ( __x ); \ 39 `__asm__ ("rorw $8, %w0" \ 40 : "ô" ( __v ) \ 41 : "0" ( __x ) \ 43 __v ; })) ) 46  #__bsw­_16 ( x ) \ 47 ( __ex‹nsiÚ__ \ 48 ({  __x = ( x ); `__bsw­_cÚ¡ªt_16 (__x); })) ) 51  __šlše  52 $__bsw­_16 ( __bsx ) 54  `__bsw­_cÚ¡ªt_16 ( __bsx ); 55 } } 59  #__bsw­_cÚ¡ªt_32 ( x ) \ 60 (((( x ) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ 61 ((( x è& 0x0000ff00è<< 8è| (((xè& 0x000000ffè<< 24)) ) 63 #ifdeà __GNUC__ 64 #ià __GNUC__ >= 2 67 #ià! defšed __i486__ && !defšed __³Áium__ && !defšed __³Áium´o__ \ 68 && ! defšed g__³Áium4__ 69  #__bsw­_32 ( x ) \ 70 ( __ex‹nsiÚ__ \ 71 ({  __v , __x = ( x ); \ 72 ià( `__bužtš_cÚ¡ªt_p ( __x )) \ 73 __v = `__bsw­_cÚ¡ªt_32 ( __x ); \ 75 `__asm__ ("rorw $8, %w0;" \ 78 : "ô" ( __v ) \ 79 : "0" ( __x ) \ 81 __v ; })) ) 83  #__bsw­_32 ( x ) \ 84 ( __ex‹nsiÚ__ \ 85 ({  __v , __x = ( x ); \ 86 ià( `__bužtš_cÚ¡ªt_p ( __x )) \ 87 __v = `__bsw­_cÚ¡ªt_32 ( __x ); \ 89 `__asm__ ("bsw­ %0" : "ô" ( __v è: "0" ( __x )); \ 90 __v ; })) ) 93  #__bsw­_32 ( x ) \ 94 ( __ex‹nsiÚ__ \ 95 ({  __x = ( x ); `__bsw­_cÚ¡ªt_32 (__x); })) ) 98  __šlše  99 $__bsw­_32 ( __bsx ) 101  `__bsw­_cÚ¡ªt_32 ( __bsx ); 102 } } 106 #ià defšed __GNUC__ && __GNUC__ >= 2 108  #__bsw­_cÚ¡ªt_64 ( x ) \ 109 (((( x ) & 0xff00000000000000ull) >> 56) \ 110 | ((( x ) & 0x00ff000000000000ull) >> 40) \ 111 | ((( x ) & 0x0000ff0000000000ull) >> 24) \ 112 | ((( x ) & 0x000000ff00000000ull) >> 8) \ 113 | ((( x ) & 0x00000000ff000000ull) << 8) \ 114 | ((( x ) & 0x0000000000ff0000ull) << 24) \ 115 | ((( x ) & 0x000000000000ff00ull) << 40) \ 116 | ((( x è& 0x00000000000000ffuÎè<< 56)) ) 118  #__bsw­_64 ( x ) \ 119 ( __ex‹nsiÚ__ \ 120 ({ uniÚ { __ex‹nsiÚ__  __Î ; \ 121  __l [2]; } __w , __r ; \ 122 ià( `__bužtš_cÚ¡ªt_p ( x )) \ 123 __r . __Î = `__bsw­_cÚ¡ªt_64 ( x ); \ 126 __w . __Î = ( x ); \ 127 __r . __l [0] = `__bsw­_32 ( __w .__l[1]); \ 128 __r . __l [1] = `__bsw­_32 ( __w .__l[0]); \ 130 __r . __Î ; })) ) @/usr/include/bits/initspin.h 23  #__LT_SPINLOCK_INIT 0 ) 26  #__LOCK_INITIALIZER (( _±h»ad_ç¡lock ){ 0, __LT_SPINLOCK_INIT }) ) 27  #__LOCK_ALT_INITIALIZER { 0, __LT_SPINLOCK_INIT } ) 28  #__ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT } ) 29  #__ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT } ) @/usr/include/sched.h 20 #iâdef _SCHED_H 21  #_SCHED_H 1 ) 23  ~<ã©u»s.h > 26  ~ 28  #__Ãed_time¥ec ) 29  ~ 32  ~ 34  #sched_´iÜ™y __sched_´iÜ™y ) 37 __BEGIN_DECLS 40  $sched_£¬am ( __pid_t __pid , __cÚ¡  sched_·¿m * __·¿m ) 41 __THROW ; 44  $sched_g‘·¿m ( __pid_t __pid ,  sched_·¿m * __·¿m è __THROW ; 47  $sched_£tscheduËr ( __pid_t __pid ,  __pÞicy , 48 __cÚ¡  sched_·¿m * __·¿m è __THROW ; 51  $sched_g‘scheduËr ( __pid_t __pid è __THROW ; 54  $sched_y›ld (è __THROW ; 57  $sched_g‘_´iÜ™y_max ( __®gÜ™hm è __THROW ; 60  $sched_g‘_´iÜ™y_mš ( __®gÜ™hm è __THROW ; 63  $sched_¼_g‘_š‹rv® ( __pid_t __pid ,  time¥ec * __t è __THROW ; 66 #ifdeà __USE_GNU 68  #CPU_SETSIZE __CPU_SETSIZE ) 69  #CPU_SET ( ýu , ýu£ è `__CPU_SET (ýu, cpu£) ) 70  #CPU_CLR ( ýu , ýu£ è `__CPU_CLR (ýu, cpu£) ) 71  #CPU_ISSET ( ýu , ýu£ è `__CPU_ISSET (ýu, cpu£) ) 72  #CPU_ZERO ( ýu£ è `__CPU_ZERO (ýu£) ) 76  $sched_£ffš™y ( __pid_t __pid , size_t __ýu£tsize , 77 __cÚ¡ ýu_£t_t * __ýu£t è __THROW ; 80  $sched_g‘affš™y ( __pid_t __pid , size_t __ýu£tsize , 81 ýu_£t_t * __ýu£t è __THROW ; 84 __END_DECLS @ 1 . 1 /usr/include 211 4897 alloc.c alternate.c bootparams.c chooser.c chooser.h choosers/simple.c choosers/simple.h choosers/textmenu.c choosers/textmenu.h config.c config.h devschemes/simple.c elf.h elilo.c elilo.h elilo_debug.h fileops.c fileops.h fs/ext2_fs.h fs/ext2_fs_i.h fs/ext2_fs_sb.h fs/ext2_private.h fs/ext2fs.c fs/ext2fs.h fs/fs.h fs/localfs.c fs/localfs.h fs/netfs.c fs/netfs.h getopt.c getopt.h glue_ext2fs.c glue_ext2fs.h glue_localfs.c glue_localfs.h glue_netfs.c glue_netfs.h gunzip.c gzip.h ia32/bin_to_h.c ia32/bzimage.c ia32/config.c ia32/gzip.c ia32/gzip_loader.c ia32/plain_loader.c ia32/private.h ia32/sysdeps.h ia32/system.c ia64/config.c ia64/fpswa.c ia64/gzip.c ia64/gzip_loader.c ia64/plain_loader.c ia64/private.h ia64/setjmp.h ia64/sysdeps.h ia64/system.c inflate.c initrd.c loader.c loader.h strops.c strops.h sysdeps.h tools/eliloalt.c util.c vars.c vars.h /usr/include/asm/atomic.h /usr/include/asm/bitops.h /usr/include/asm/byteorder.h /usr/include/asm/semaphore.h /usr/include/dirent.h /usr/include/errno.h /usr/include/fcntl.h /usr/include/linux/adfs_fs_sb.h /usr/include/linux/cache.h /usr/include/linux/config.h /usr/include/linux/efs_fs_i.h /usr/include/linux/efs_fs_sb.h /usr/include/linux/fcntl.h /usr/include/linux/ioctl.h /usr/include/linux/iso_fs_i.h /usr/include/linux/iso_fs_sb.h /usr/include/linux/kdev_t.h /usr/include/linux/limits.h /usr/include/linux/linkage.h /usr/include/linux/list.h /usr/include/linux/mount.h /usr/include/linux/net.h /usr/include/linux/nfs_fs_i.h /usr/include/linux/nfs_fs_sb.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/quota.h /usr/include/linux/stat.h /usr/include/linux/stddef.h /usr/include/linux/types.h /usr/include/linux/udf_fs_i.h /usr/include/linux/udf_fs_sb.h /usr/include/linux/wait.h /usr/include/setjmp.h /usr/include/stdint.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/string.h /usr/include/sys/types.h /usr/include/unistd.h /usr/include/alloca.h /usr/include/asm-i386/atomic.h /usr/include/asm-i386/bitops.h /usr/include/asm-i386/byteorder.h /usr/include/asm-i386/semaphore.h /usr/include/asm-x86_64/atomic.h /usr/include/asm-x86_64/bitops.h /usr/include/asm-x86_64/byteorder.h /usr/include/asm-x86_64/semaphore.h /usr/include/asm/cache.h /usr/include/asm/fcntl.h /usr/include/asm/ioctl.h /usr/include/asm/linkage.h /usr/include/asm/types.h /usr/include/bits/confname.h /usr/include/bits/dirent.h /usr/include/bits/environments.h /usr/include/bits/errno.h /usr/include/bits/fcntl.h /usr/include/bits/posix1_lim.h /usr/include/bits/posix_opt.h /usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h /usr/include/bits/sigset.h /usr/include/bits/stdio.h /usr/include/bits/stdio2.h /usr/include/bits/stdio_lim.h /usr/include/bits/string.h /usr/include/bits/string2.h /usr/include/bits/string3.h /usr/include/bits/sys_errlist.h /usr/include/bits/types.h /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h /usr/include/bits/wchar.h /usr/include/bits/wordsize.h /usr/include/endian.h /usr/include/features.h /usr/include/libio.h /usr/include/linux/backing-dev.h /usr/include/linux/err_kernel_only.h /usr/include/linux/errno.h /usr/include/linux/fs.h /usr/include/linux/kernel.h /usr/include/linux/nfs.h /usr/include/linux/posix_types.h /usr/include/sys/select.h /usr/include/sys/stat.h /usr/include/sys/sysmacros.h /usr/include/sys/wait.h /usr/include/time.h /usr/include/xlocale.h /usr/include/_G_config.h /usr/include/asm-i386/cache.h /usr/include/asm-i386/fcntl.h /usr/include/asm-i386/ioctl.h /usr/include/asm-i386/linkage.h /usr/include/asm-i386/types.h /usr/include/asm-x86_64/cache.h /usr/include/asm-x86_64/fcntl.h /usr/include/asm-x86_64/ioctl.h /usr/include/asm-x86_64/linkage.h /usr/include/asm-x86_64/types.h /usr/include/asm/errno.h /usr/include/asm/posix_types.h /usr/include/bits/endian.h /usr/include/bits/local_lim.h /usr/include/bits/sched.h /usr/include/bits/select.h /usr/include/bits/siginfo.h /usr/include/bits/stat.h /usr/include/bits/stdio-lock.h /usr/include/bits/time.h /usr/include/bits/typesizes.h /usr/include/gnu/stubs.h /usr/include/linux/byteorder/little_endian.h /usr/include/signal.h /usr/include/sys/cdefs.h /usr/include/sys/resource.h /usr/include/asm-i386/errno.h /usr/include/asm-i386/posix_types.h /usr/include/asm-x86_64/errno.h /usr/include/asm-x86_64/posix_types.h /usr/include/bits/libc-lock.h /usr/include/bits/resource.h /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h /usr/include/bits/signum.h /usr/include/bits/sigstack.h /usr/include/bits/sigthread.h /usr/include/gconv.h /usr/include/linux/byteorder/generic.h /usr/include/linux/byteorder/swab.h /usr/include/sys/ucontext.h /usr/include/wchar.h /usr/include/asm/sigcontext.h /usr/include/byteswap.h /usr/include/pthread.h /usr/include/wctype.h /usr/include/asm-i386/sigcontext.h /usr/include/asm-x86_64/sigcontext.h /usr/include/bits/byteswap.h /usr/include/bits/initspin.h /usr/include/sched.h