linux/fs/binfmt_elf_fdpic.c
<<
opti v/spa v/form va opti href="../linux+v"v2.6/fs/binfmt_elf_fdpic.c">opti vimg src="../.static/gfx/right.png" alt=">>">opv/spa opvspa class="lxr_search">optiopti vinput typopthidden" namoptnavtarget" 12opti vinput typopttext" namoptsearch" idptsearch">opti vbutt32.typoptsubmit">Searchopti Prefs v/a>opv/spa ti v/div ti vform ac12" ="ajax+*" method="post" onsubmit="return false;">opvinput typopthidden" namoptajax_lookup" idptajax_lookup" 12oti v/form oti vdiv class="headingbott3m">
vdiv idptfile_contents"
   1v/a>vspa
 class="comment">/* binfmt_elf_fdpic.c: FDPIC ELF binary formatv/spa
	    2v/a>vspa
 class="comment"> *v/spa
	    3v/a>vspa
 class="comment"> * Copyright (C) 2003, 2004, 2006 Red Hat, Inc. All Rights Reserved.v/spa
	    4v/a>vspa
 class="comment"> * Written by David Howells (dhowells@redhat.com)v/spa
	    5v/a>vspa
 class="comment"> * Derived from binfmt_elf.cv/spa
	    6v/a>vspa
 class="comment"> *v/spa
	    7v/a>vspa
 class="comment"> * This program is free software; you ca
 redistribute it and/orv/spa
	    8v/a>vspa
 class="comment"> * modify it under the terms of the GNU General Public Licensev/spa
	    9v/a>vspa
 class="comment"> * as published by the Free Software Founda12"
; either vers2"
v/spa
	   .6.2a>vspa
 class="comment"> * 2 of the License, or (at your 2.12"
) any later vers2"
.v/spa
	   11v/a>vspa
 class="comment"> */v/spa
	   12v/a>   13v/a>#include <linux/module.hv/a>>   14v/a>   15v/a>#include <linux/fs.hv/a>>   16v/a>#include <linux/stat.hv/a>>   17v/a>#include <linux/sched.hv/a>>   18v/a>#include <linux/mm.hv/a>>   19v/a>#include <linux/mman.hv/a>>   20v/a>#include <linux/errno.hv/a>>   21v/a>#include <linux/signal.hv/a>>   22v/a>#include <linux/binfmts.hv/a>>   23v/a>#include <linux/string.hv/a>>   24v/a>#include <linux/file.hv/a>>   25v/a>#include <linux/fcntl.hv/a>>   26v/a>#include <linux/slab.hv/a>>   27v/a>#include <linux/pagemap.hv/a>>   28v/a>#include <linux/security.hv/a>>   29v/a>#include <linux/highmem.hv/a>>   30v/a>#include <linux/highuid.hv/a>>   31v/a>#include <linux/personality.hv/a>>   32v/a>#include <linux/ptrace.hv/a>>   33v/a>#include <linux/init.hv/a>>   34v/a>#include <linux/elf.hv/a>>   35v/a>#include <linux/elf-fdpic.hv/a>>   36v/a>#include <linux/elfcore.hv/a>>   37v/a>#include <linux/coredump.hv/a>>   38v/a>   39v/a>#include <asm/uaccess.hv/a>>   40v/a>#include <asm/param.hv/a>>   41v/a>#include <asm/pgalloc.hv/a>>   42v/a>#include <asm/exec.hv/a>>   43v/a>   44v/a>typodef char *elf_caddr_tv/a>;   45v/a>   46v/a>#if 0   47v/a>#define kdebugv/a>(fmtv/a>, ...) printkv/a>("FDPIC "v/spa
	fmtv/a>"\n"v/spa
	 ,##__VA_ARGS__ )   48v/a>#else   49v/a>#define kdebugv/a>(fmtv/a>, ...) do {} while(0)   50v/a>#endif   51v/a>   52v/a>#if 0   53v/a>#define kdcorev/a>(fmtv/a>, ...) printkv/a>("FDPIC "v/spa
	fmtv/a>"\n"v/spa
	 ,##__VA_ARGS__ )   54v/a>#else   55v/a>#define kdcorev/a>(fmtv/a>, ...) do {} while(0)   56v/a>#endif   57v/a>   58v/a>va href="+code=MODULE_LICENSE" class="sref">MODULE_LICENSEv/a>("GPL"v/spa
	);   59v/a>   60v/a>static int load_elf_fdpic_binaryv/a>(struct linux_binprmv/a> *, struct pt_regsv/a> *);   61v/a>static int elf_fdpic_fetch_phdrsv/a>(struct elf_fdpic_paramsv/a> *, struct filev/a> *);   62v/a>static int elf_fdpic_map_filev/a>(struct elf_fdpic_paramsv/a> *, struct filev/a> *,   63v/a>                              struct mm_structv/a> *, const char *);   64v/a>   65v/a>static int create_elf_fdpic_tablesv/a>(struct linux_binprmv/a> *, struct mm_structv/a> *,   66v/a>                                   struct elf_fdpic_paramsv/a> *,   67v/a>                                   struct elf_fdpic_paramsv/a> *);   68v/a>   69v/a>#ifndef CONFIG_MMUv/a>   70v/a>static int elf_fdpic_transfer_args_to_stackv/a>(struct linux_binprmv/a> *,   71v/a>                                            unsigned long *);   72v/a>static int elf_fdpic_map_file_constdisp_on_uclinuxv/a>(struct elf_fdpic_paramsv/a> *,   73v/a>                                                   struct filev/a> *,   74v/a>                                                   struct mm_structv/a> *);   75v/a>#endif   76v/a>   77v/a>static int elf_fdpic_map_file_by_direct_mmapv/a>(struct elf_fdpic_paramsv/a> *,   78v/a>                                             struct filev/a> *, struct mm_structv/a> *);   79v/a>   80v/a>#ifdef CONFIG_ELF_COREv/a>   81v/a>static int elf_fdpic_core_dumpv/a>(struct coredump_paramsv/a> *cprmv/a>);   82v/a>#endif   83v/a>   84v/a>static struct linux_binfmtv/a> elf_fdpic_formatv/a> = {   85v/a>        .modulev/a>         = THIS_MODULEv/a>,   86v/a>        .load_binaryv/a>    = load_elf_fdpic_binaryv/a>,   87v/a>#ifdef CONFIG_ELF_COREv/a>   88v/a>        .core_dumpv/a>      = elf_fdpic_core_dumpv/a>,   89v/a>#endif   90v/a>        .min_coredumpv/a>   = ELF_EXEC_PAGESIZEv/a>,   91v/a>};   92v/a>   93v/a>static int __initv/a> init_elf_fdpic_binfmtv/a>(void)   94v/a>{   95v/a>        register_binfmtv/a>(&elf_fdpic_formatv/a>);   96v/a>        return 0;   97v/a>}   98v/a>   99v/a>static void __exitv/a> exit_elf_fdpic_binfmtv/a>(void)  100v/a>{  101v/a>        unregister_binfmtv/a>(&elf_fdpic_formatv/a>);  102v/a>}  103v/a>  104v/a>va href="+code=core_initcall" class="sref">core_initcallv/a>(init_elf_fdpic_binfmtv/a>);  105v/a>va href="+code=module_exit" class="sref">module_exitv/a>(exit_elf_fdpic_binfmtv/a>);  106v/a>  107v/a>static int is_elf_fdpicv/a>(struct elfhdrv/a> *hdrv/a>, struct filev/a> *filev/a>)  108v/a>{  109v/a>        if (memcmpv/a>(hdrv/a>->e_identv/a>, ELFMAGv/a>, SELFMAGv/a>) != 0)  110v/a>                return 0;  111v/a>        if (hdrv/a>->e_typov/a> != ET_EXECv/a> && hdrv/a>->e_typov/a> != ET_DYNv/a>)  112v/a>                return 0;  113v/a>        if (!elf_check_archv/a>(hdrv/a>) || !elf_check_fdpicv/a>(hdrv/a>))  114v/a>                return 0;  115v/a>        if (!filev/a>->f_opv/a> || !filev/a>->f_opv/a>->mmapv/a>)  116v/a>                return 0;  117v/a>        return 1;  118v/a>}  119v/a>  126.2a>vspa
 class="comment">/*****************************************************************************/v/spa
	  121v/a>vspa
 class="comment">/*v/spa
	  122v/a>vspa
 class="comment"> * read the program headers table into memoryv/spa
	  123v/a>vspa
 class="comment"> */v/spa
	  124v/a>static int elf_fdpic_fetch_phdrsv/a>(struct elf_fdpic_paramsv/a> *paramsv/a>,  125v/a>                                 struct filev/a> *filev/a>)  126v/a>{  127v/a>        struct elf32_phdrv/a> *phdrv/a>;  128v/a>        unsigned long sizev/a>;  129v/a>        int retvalv/a>, loopv/a>;  130v/a>  131v/a>        if (paramsv/a>->hdrv/a>.e_phentsizev/a> != sizeof(struct elf_phdrv/a>))  132v/a>                return -ENOMEMv/a>;  133v/a>        if (paramsv/a>->hdrv/a>.e_phnumv/a> > 65536U / sizeof(struct elf_phdrv/a>))  134v/a>                return -ENOMEMv/a>;  135v/a>  136v/a>        sizev/a> = paramsv/a>->hdrv/a>.e_phnumv/a> * sizeof(struct elf_phdrv/a>);  137v/a>        paramsv/a>->phdrsv/a> = kmallocv/a>(sizev/a>, GFP_KERNELv/a>);  138v/a>        if (!paramsv/a>->phdrsv/a>)  139v/a>                return -ENOMEMv/a>;  140v/a>  141v/a>        retvalv/a> = kernel_readv/a>(filev/a>, paramsv/a>->hdrv/a>.e_phoffv/a>,  142v/a>                             (char *) paramsv/a>->phdrsv/a>, sizev/a>);  143v/a>        if (unlikelyv/a>(retvalv/a> != sizev/a>))  144v/a>                return retvalv/a> < 0 ? retvalv/a> : -ENOEXECv/a>;  145v/a>  146v/a>        /* determine stack size for this binary */v/spa
	  147v/a>        phdrv/a> = paramsv/a>->phdrsv/a>;  148v/a>        for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>++, phdrv/a>++) {  149v/a>                if (phdrv/a>->p_typov/a> != PT_GNU_STACKv/a>)  150v/a>                        continue;  151v/a>  152v/a>                if (phdrv/a>->p_flagsv/a> & PF_Xv/a>)  153v/a>                        paramsv/a>->flagsv/a> |= ELF_FDPIC_FLAG_EXEC_STACKv/a>;  154v/a>                else  155v/a>                        paramsv/a>->flagsv/a> |= ELF_FDPIC_FLAG_NOEXEC_STACKv/a>;  156v/a>  157v/a>                paramsv/a>->stack_sizev/a> = phdrv/a>->p_memszv/a>;  158v/a>                break;  159v/a>        }  160v/a>  161v/a>        return 0;  162v/a>}  163v/a>  164v/a>vspa
 class="comment">/*****************************************************************************/v/spa
	  165v/a>vspa
 class="comment">/*v/spa
	  166v/a>vspa
 class="comment"> * load a
 fdpic binary into various bits of memoryv/spa
	  167v/a>vspa
 class="comment"> */v/spa
	  168v/a>static int load_elf_fdpic_binaryv/a>(struct linux_binprmv/a> *bprmv/a>,  169v/a>                                 struct pt_regsv/a> *regsv/a>)  170v/a>{  171v/a>        struct elf_fdpic_paramsv/a> exec_paramsv/a>, interp_paramsv/a>;  172v/a>        struct elf_phdrv/a> *phdrv/a>;  173v/a>        unsigned long stack_sizev/a>, entryaddrv/a>;  174v/a>#ifdef ELF_FDPIC_PLAT_INITv/a>  175v/a>        unsigned long dynaddrv/a>;  176v/a>#endif  177v/a>#ifndef CONFIG_MMUv/a>  178v/a>        unsigned long stack_protv/a>;  179v/a>#endif  180v/a>        struct filev/a> *interpreterv/a> = NULLv/a>; /* to shut gcc up */v/spa
	  181v/a>        char *interpreter_namov/a> = NULLv/a>;  182v/a>        int executable_stackv/a>;  183v/a>        int retvalv/a>, iv/a>;  184v/a>  185v/a>        kdebugv/a>("____ LOAD %d ____"v/spa
	, currentv/a>->pidv/a>);  186v/a>  187v/a>        memsetv/a>(&exec_paramsv/a>, 0, sizeof(exec_paramsv/a>));  188v/a>        memsetv/a>(&interp_paramsv/a>, 0, sizeof(interp_paramsv/a>));  189v/a>  190v/a>        exec_paramsv/a>.hdrv/a> = *(struct elfhdrv/a> *) bprmv/a>->bufv/a>;  191v/a>        exec_paramsv/a>.flagsv/a> = ELF_FDPIC_FLAG_PRESENTv/a> | ELF_FDPIC_FLAG_EXECUTABLEv/a>;  192v/a>  193v/a>        /* check that this is a binary we know how to deal with */v/spa
	  194v/a>        retvalv/a> = -ENOEXECv/a>;  195v/a>        if (!is_elf_fdpicv/a>(&exec_paramsv/a>.hdrv/a>, bprmv/a>->filev/a>))  196v/a>                goto errorv/a>;  197v/a>  198v/a>        /* read the program header table */v/spa
	  199v/a>        retvalv/a> = elf_fdpic_fetch_phdrsv/a>(&exec_paramsv/a>, bprmv/a>->filev/a>);  200v/a>        if (retvalv/a> < 0)  201v/a>                goto errorv/a>;  202v/a>  203v/a>        /* sca
 for a program header that specifies a
 interpreter */v/spa
	  204v/a>        phdrv/a> = exec_paramsv/a>.phdrsv/a>;  205v/a>  206v/a>        for (iv/a> = 0; iv/a> < exec_paramsv/a>.hdrv/a>.e_phnumv/a>; iv/a>++, phdrv/a>++) {  207v/a>                switch (phdrv/a>->p_typov/a>) {  208v/a>                case PT_INTERPv/a>:  209v/a>                        retvalv/a> = -ENOMEMv/a>;  210v/a>                        if (phdrv/a>->p_fileszv/a> > PATH_MAXv/a>)  211v/a>                                goto errorv/a>;  212v/a>                        retvalv/a> = -ENOENTv/a>;  213v/a>                        if (phdrv/a>->p_fileszv/a> < 2)  214v/a>                                goto errorv/a>;  215v/a>  216v/a>                        /* read the namo of the interpreter into memory */v/spa
	  217v/a>                        interpreter_namov/a> = kmallocv/a>(phdrv/a>->p_fileszv/a>, GFP_KERNELv/a>);  218v/a>                        if (!interpreter_namov/a>)  219v/a>                                goto errorv/a>;  220v/a>  221v/a>                        retvalv/a> = kernel_readv/a>(bprmv/a>->filev/a>,  222v/a>                                             phdrv/a>->p_offsetv/a>,  223v/a>                                             interpreter_namov/a>,  224v/a>                                             phdrv/a>->p_fileszv/a>);  225v/a>                        if (unlikelyv/a>(retvalv/a> != phdrv/a>->p_fileszv/a>)) {  226v/a>                                if (retvalv/a> >= 0)  227v/a>                                        retvalv/a> = -ENOEXECv/a>;  228v/a>                                goto errorv/a>;  229v/a>                        }  230v/a>  231v/a>                        retvalv/a> = -ENOENTv/a>;  232v/a>                        if (interpreter_namov/a>[phdrv/a>->p_fileszv/a> - 1] != '\0'v/spa
	)  233v/a>                                goto errorv/a>;  234v/a>  235v/a>                        kdebugv/a>("Using ELF interpreter %s"v/spa
	, interpreter_namov/a>);  236v/a>  237v/a>                        /* replace the program with the interpreter */v/spa
	  238v/a>                        interpreterv/a> = open_execv/a>(interpreter_namov/a>);  239v/a>                        retvalv/a> = PTR_ERRv/a>(interpreterv/a>);  240v/a>                        if (IS_ERRv/a>(interpreterv/a>)) {  241v/a>                                interpreterv/a> = NULLv/a>;  242v/a>                                goto errorv/a>;  243v/a>                        }  244v/a>  245v/a>                        /*v/spa
	  246v/a>vspa
 class="comment">                         * If the binary is not readable then enforcev/spa
	  247v/a>vspa
 class="comment">                         * mm->dumpable = 0 regardless of the interpreter'sv/spa
	  248v/a>vspa
 class="comment">                         * permissions.v/spa
	  249v/a>vspa
 class="comment">                         */v/spa
	  250v/a>                        would_dumpv/a>(bprmv/a>, interpreterv/a>);  251v/a>  252v/a>                        retvalv/a> = kernel_readv/a>(interpreterv/a>, 0, bprmv/a>->bufv/a>,  253v/a>                                             BINPRM_BUF_SIZEv/a>);  254v/a>                        if (unlikelyv/a>(retvalv/a> != BINPRM_BUF_SIZEv/a>)) {  255v/a>                                if (retvalv/a> >= 0)  256v/a>                                        retvalv/a> = -ENOEXECv/a>;  257v/a>                                goto errorv/a>;  258v/a>                        }  259v/a>  260v/a>                        interp_paramsv/a>.hdrv/a> = *((struct elfhdrv/a> *) bprmv/a>->bufv/a>);  261v/a>                        break;  262v/a>  263v/a>                case PT_LOADv/a>:  264v/a>#ifdef CONFIG_MMUv/a>  265v/a>                        if (exec_paramsv/a>.load_addrv/a> == 0)  266v/a>                                exec_paramsv/a>.load_addrv/a> = phdrv/a>->p_vaddrv/a>;  267v/a>#endif  268v/a>                        break;  269v/a>                }  270v/a>  271v/a>        }  272v/a>  273v/a>        if (elf_check_const_displacementv/a>(&exec_paramsv/a>.hdrv/a>))  274v/a>                exec_paramsv/a>.flagsv/a> |= ELF_FDPIC_FLAG_CONSTDISPv/a>;  275v/a>  276v/a>        /* perform insanity checks on the interpreter */v/spa
	  277v/a>        if (interpreter_namov/a>) {  278v/a>                retvalv/a> = -ELIBBADv/a>;  279v/a>                if (!is_elf_fdpicv/a>(&interp_paramsv/a>.hdrv/a>, interpreterv/a>))  280v/a>                        goto errorv/a>;  281v/a>  282v/a>                interp_paramsv/a>.flagsv/a> = ELF_FDPIC_FLAG_PRESENTv/a>;  283v/a>  284v/a>                /* read the interpreter's program header table */v/spa
	  285v/a>                retvalv/a> = elf_fdpic_fetch_phdrsv/a>(&interp_paramsv/a>, interpreterv/a>);  286v/a>                if (retvalv/a> < 0)  287v/a>                        goto errorv/a>;  288v/a>        }  289v/a>  290v/a>        stack_sizev/a> = exec_paramsv/a>.stack_sizev/a>;  291v/a>        if (exec_paramsv/a>.flagsv/a> & ELF_FDPIC_FLAG_EXEC_STACKv/a>)  292v/a>                executable_stackv/a> = EXSTACK_ENABLE_Xv/a>;  293v/a>        else if (exec_paramsv/a>.flagsv/a> & ELF_FDPIC_FLAG_NOEXEC_STACKv/a>)  294v/a>                executable_stackv/a> = EXSTACK_DISABLE_Xv/a>;  295v/a>        else  296v/a>                executable_stackv/a> = EXSTACK_DEFAULTv/a>;  297v/a>  298v/a>        if (stack_sizev/a> == 0) {  299v/a>                stack_sizev/a> = interp_paramsv/a>.stack_sizev/a>;  300v/a>                if (interp_paramsv/a>.flagsv/a> & ELF_FDPIC_FLAG_EXEC_STACKv/a>)  301v/a>                        executable_stackv/a> = EXSTACK_ENABLE_Xv/a>;  302v/a>                else if (interp_paramsv/a>.flagsv/a> & ELF_FDPIC_FLAG_NOEXEC_STACKv/a>)  303v/a>                        executable_stackv/a> = EXSTACK_DISABLE_Xv/a>;  304v/a>                else  305v/a>                        executable_stackv/a> = EXSTACK_DEFAULTv/a>;  306v/a>        }  307v/a>  308v/a>        retvalv/a> = -ENOEXECv/a>;  309v/a>        if (stack_sizev/a> == 0)  310v/a>                goto errorv/a>;  311v/a>  312v/a>        if (elf_check_const_displacementv/a>(&interp_paramsv/a>.hdrv/a>))  313v/a>                interp_paramsv/a>.flagsv/a> |= ELF_FDPIC_FLAG_CONSTDISPv/a>;  314v/a>  315v/a>        /* flush all traces of the currently running executable */v/spa
	  316v/a>        retvalv/a> = flush_old_execv/a>(bprmv/a>);  317v/a>        if (retvalv/a>)  318v/a>                goto errorv/a>;  319v/a>  320v/a>        /* there's now no turning back... the old userspace image is dead,v/spa
	  321v/a>vspa
 class="comment">         * defunct, deceased, etc. after this point we have to exit viav/spa
	  322v/a>vspa
 class="comment">         * error_kill */v/spa
	  323v/a>        set_personalityv/a>(PER_LINUX_FDPICv/a>);  324v/a>        if (elf_read_implies_execv/a>(&exec_paramsv/a>.hdrv/a>, executable_stackv/a>))  325v/a>                currentv/a>->personalityv/a> |= READ_IMPLIES_EXECv/a>;  326v/a>  327v/a>        setup_new_execv/a>(bprmv/a>);  328v/a>  329v/a>        set_binfmtv/a>(&elf_fdpic_formatv/a>);  330v/a>  331v/a>        currentv/a>->mmv/a>->start_codev/a> = 0;  332v/a>        currentv/a>->mmv/a>->end_codev/a> = 0;  333v/a>        currentv/a>->mmv/a>->start_stackv/a> = 0;  334v/a>        currentv/a>->mmv/a>->start_datav/a> = 0;  335v/a>        currentv/a>->mmv/a>->end_datav/a> = 0;  336v/a>        currentv/a>->mmv/a>->contextv/a>.exec_fdpic_loadmapv/a> = 0;  337v/a>        currentv/a>->mmv/a>->contextv/a>.interp_fdpic_loadmapv/a> = 0;  338v/a>  339v/a>#ifdef CONFIG_MMUv/a>  340v/a>        elf_fdpic_arch_lay_out_mmv/a>(&exec_paramsv/a>,  341v/a>                                  &interp_paramsv/a>,  342v/a>                                  &currentv/a>->mmv/a>->start_stackv/a>,  343v/a>                                  &currentv/a>->mmv/a>->start_brkv/a>);  344v/a>  345v/a>        retvalv/a> = setup_arg_pagesv/a>(bprmv/a>, currentv/a>->mmv/a>->start_stackv/a>,  346v/a>                                 executable_stackv/a>);  347v/a>        if (retvalv/a> < 0) {  348v/a>                send_sigv/a>(SIGKILLv/a>, currentv/a>, 0);  349v/a>                goto error_killv/a>;  350v/a>        }  351v/a>#endif  352v/a>  353v/a>        /* load the executable and interpreter into memory */v/spa
	  354v/a>        retvalv/a> = elf_fdpic_map_filev/a>(&exec_paramsv/a>, bprmv/a>->filev/a>, currentv/a>->mmv/a>,  355v/a>                                    "executable"v/spa
	);  356v/a>        if (retvalv/a> < 0)  357v/a>                goto error_killv/a>;  358v/a>  359v/a>        if (interpreter_namov/a>) {  360v/a>                retvalv/a> = elf_fdpic_map_filev/a>(&interp_paramsv/a>, interpreterv/a>,  361v/a>                                            currentv/a>->mmv/a>, "interpreter"v/spa
	);  362v/a>                if (retvalv/a> < 0) {  363v/a>                        printkv/a>(KERN_ERRv/a> "Unable to load interpreter\n"v/spa
	);  364v/a>                        goto error_killv/a>;  365v/a>                }  366v/a>  367v/a>                allow_write_accessv/a>(interpreterv/a>);  368v/a>                fputv/a>(interpreterv/a>);  369v/a>                interpreterv/a> = NULLv/a>;  370v/a>        }  371v/a>  372v/a>#ifdef CONFIG_MMUv/a>  373v/a>        if (!currentv/a>->mmv/a>->start_brkv/a>)  374v/a>                currentv/a>->mmv/a>->start_brkv/a> = currentv/a>->mmv/a>->end_datav/a>;  375v/a>  376v/a>        currentv/a>->mmv/a>->brkv/a> = currentv/a>->mmv/a>->start_brkv/a> =  377v/a>                PAGE_ALIGNv/a>(currentv/a>->mmv/a>->start_brkv/a>);  378v/a>  379v/a>#else  380v/a>        /* create a stack and brk area big enough for everyonev/spa
	  381v/a>vspa
 class="comment">         * - the brk heap starts at the bottom and works upv/spa
	  382v/a>vspa
 class="comment">         * - the stack starts at the top and works downv/spa
	  383v/a>vspa
 class="comment">         */v/spa
	  384v/a>        stack_sizev/a> = (stack_sizev/a> + PAGE_SIZEv/a> - 1) & PAGE_MASKv/a>;  385v/a>        if (stack_sizev/a> < PAGE_SIZEv/a> * 2)  386v/a>                stack_sizev/a> = PAGE_SIZEv/a> * 2;  387v/a>  388v/a>        stack_protv/a> = PROT_READv/a> | PROT_WRITEv/a>;  389v/a>        if (executable_stackv/a> == EXSTACK_ENABLE_Xv/a> ||  390v/a>            (executable_stackv/a> == EXSTACK_DEFAULTv/a> && VM_STACK_FLAGSv/a> & VM_EXECv/a>))  391v/a>                stack_protv/a> |= PROT_EXECv/a>;  392v/a>  393v/a>        currentv/a>->mmv/a>->start_brkv/a> = vm_mmapv/a>(NULLv/a>, 0, stack_sizev/a>, stack_protv/a>,  394v/a>                                         MAP_PRIVATEv/a> | MAP_ANONYMOUSv/a> |  395v/a>                                         MAP_UNINITIALIZEDv/a> | MAP_GROWSDOWNv/a>,  396v/a>                                         0);  397v/a>  398v/a>        if (IS_ERR_VALUEv/a>(currentv/a>->mmv/a>->start_brkv/a>)) {  399v/a>                retvalv/a> = currentv/a>->mmv/a>->start_brkv/a>;  400v/a>                currentv/a>->mmv/a>->start_brkv/a> = 0;  401v/a>                goto error_killv/a>;  402v/a>        }  403v/a>  404v/a>        currentv/a>->mmv/a>->brkv/a> = currentv/a>->mmv/a>->start_brkv/a>;  405v/a>        currentv/a>->mmv/a>->contextv/a>.end_brkv/a> = currentv/a>->mmv/a>->start_brkv/a>;  406v/a>        currentv/a>->mmv/a>->contextv/a>.end_brkv/a> +=  407v/a>                (stack_sizev/a> > PAGE_SIZEv/a>) ? (stack_sizev/a> - PAGE_SIZEv/a>) : 0;  408v/a>        currentv/a>->mmv/a>->start_stackv/a> = currentv/a>->mmv/a>->start_brkv/a> + stack_sizev/a>;  409v/a>#endif  410v/a>  411v/a>        install_exec_credsv/a>(bprmv/a>);  412v/a>        if (create_elf_fdpic_tablesv/a>(bprmv/a>, currentv/a>->mmv/a>,  413v/a>                                    &exec_paramsv/a>, &interp_paramsv/a>) < 0)  414v/a>                goto error_killv/a>;  415v/a>  416v/a>        kdebugv/a>("- start_code  %lx"v/spa
	, currentv/a>->mmv/a>->start_codev/a>);  417v/a>        kdebugv/a>("- end_code    %lx"v/spa
	, currentv/a>->mmv/a>->end_codev/a>);  418v/a>        kdebugv/a>("- start_data  %lx"v/spa
	, currentv/a>->mmv/a>->start_datav/a>);  419v/a>        kdebugv/a>("- end_data    %lx"v/spa
	, currentv/a>->mmv/a>->end_datav/a>);  420v/a>        kdebugv/a>("- start_brk   %lx"v/spa
	, currentv/a>->mmv/a>->start_brkv/a>);  421v/a>        kdebugv/a>("- brk         %lx"v/spa
	, currentv/a>->mmv/a>->brkv/a>);  422v/a>        kdebugv/a>("- start_stack %lx"v/spa
	, currentv/a>->mmv/a>->start_stackv/a>);  423v/a>  424v/a>#ifdef ELF_FDPIC_PLAT_INITv/a>  425v/a>        /*v/spa
	  426v/a>vspa
 class="comment">         * The ABI may specify that certain registers be set up in specialv/spa
	  427v/a>vspa
 class="comment">         * ways (on i386 %edx is the address of a DT_FINI function, forv/spa
	  428v/a>vspa
 class="comment">         * example.  This macro performs whatever initialization tov/spa
	  429v/a>vspa
 class="comment">         * the regs structure is required.v/spa
	  430v/a>vspa
 class="comment">         */v/spa
	  431v/a>        dynaddrv/a> = interp_paramsv/a>.dynamic_addrv/a> ?: exec_paramsv/a>.dynamic_addrv/a>;  432v/a>        ELF_FDPIC_PLAT_INITv/a>(regsv/a>, exec_paramsv/a>.map_addrv/a>, interp_paramsv/a>.map_addrv/a>,  433v/a>                            dynaddrv/a>);  434v/a>#endif  435v/a>  436v/a>        /* everything is now ready... get the userspace context ready to roll */v/spa
	  437v/a>        entryaddrv/a> = interp_paramsv/a>.entry_addrv/a> ?: exec_paramsv/a>.entry_addrv/a>;  438v/a>        start_threadv/a>(regsv/a>, entryaddrv/a>, currentv/a>->mmv/a>->start_stackv/a>);  439v/a>  440v/a>        retvalv/a> = 0;  441v/a>  442v/a>errorv/a>:  443v/a>        if (interpreterv/a>) {  444v/a>                allow_write_accessv/a>(interpreterv/a>);  445v/a>                fputv/a>(interpreterv/a>);  446v/a>        }  447v/a>        kfreev/a>(interpreter_namov/a>);  448v/a>        kfreev/a>(exec_paramsv/a>.phdrsv/a>);  449v/a>        kfreev/a>(exec_paramsv/a>.loadmapv/a>);  450v/a>        kfreev/a>(interp_paramsv/a>.phdrsv/a>);  451v/a>        kfreev/a>(interp_paramsv/a>.loadmapv/a>);  452v/a>        return retvalv/a>;  453v/a>  454v/a>        /* unrecoverable error - kill the process */v/spa
	  455v/a>error_killv/a>:  456v/a>        send_sigv/a>(SIGSEGVv/a>, currentv/a>, 0);  457v/a>        goto errorv/a>;  458v/a>  459v/a>}  460v/a>  461v/a>vspa
 class="comment">/*****************************************************************************/v/spa
	  462v/a>  463v/a>#ifndef ELF_BASE_PLATFORMv/a>  464v/a>/*v/spa
	  465v/a>vspa
 class="comment"> * AT_BASE_PLATFORM indicates the "real" hardware/microarchitecture.v/spa
	  466v/a>vspa
 class="comment"> * If the arch defines ELF_BASE_PLATFORM (in asm/elf.h), the valuev/spa
	  467v/a>vspa
 class="comment"> * will be copied to the user stack in the samo manner as AT_PLATFORM.v/spa
	  468v/a>vspa
 class="comment"> */v/spa
	  469v/a>#define ELF_BASE_PLATFORMv/a> NULLv/a>  470v/a>#endif  471v/a>  472v/a>vspa
 class="comment">/*v/spa
	  473v/a>vspa
 class="comment"> * present useful information to the program by shovelling it onto the newv/spa
	  474v/a> * process's stackv/spa
	  475v/a>vspa
 class="comment"> */v/spa
	  476v/a>static int create_elf_fdpic_tablesv/a>(struct linux_binprmv/a> *bprmv/a>,  477v/a>                                   struct mm_structv/a> *mmv/a>,  478v/a>                                   struct elf_fdpic_paramsv/a> *exec_paramsv/a>,  479v/a>                                   struct elf_fdpic_paramsv/a> *interp_paramsv/a>)  480v/a>{  481v/a>        const struct credv/a> *credv/a> = current_credv/a>();  482v/a>        unsigned long spv/a>, cspv/a>, nitemsv/a>;  483v/a>        elf_caddr_tv/a> __userv/a> *argvv/a>, *envpv/a>;  484v/a>        size_tv/a> platform_lenv/a> = 0, lenv/a>;  485v/a>        char *k_platformv/a>, *k_base_platformv/a>;  486v/a>        char __userv/a> *u_platformv/a>, *u_base_platformv/a>, *pv/a>;  487v/a>        long hwcapv/a>;  488v/a>        int loopv/a>;  489v/a>        int nrv/a>; /* reset for each csp adjustment */v/spa
	  490v/a>  491v/a>#ifdef CONFIG_MMUv/a>  492v/a>        /* In some cases (e.g. Hyper-Threading), we want to avoid L1 evictionsv/spa
	  493v/a>vspa
 class="comment">         * by the processes running on the samo package. One thing we can do isv/spa
	  494v/a>         * to shuffle the initial stack for them, so we give the architecturev/spa
	  495v/a>vspa
 class="comment">         * a
 opportunity to do so here.v/spa
	  496v/a>vspa
 class="comment">         */v/spa
	  497v/a>        spv/a> = arch_align_stackv/a>(bprmv/a>->pv/a>);  498v/a>#else  499v/a>        spv/a> = mmv/a>->start_stackv/a>;  500v/a>  501v/a>        /* stack the program arguments and environment */v/spa
	  502v/a>        if (elf_fdpic_transfer_args_to_stackv/a>(bprmv/a>, &spv/a>) < 0)  503v/a>                return -EFAULTv/a>;  504v/a>#endif  505v/a>  506v/a>        hwcapv/a> = ELF_HWCAPv/a>;  507v/a>  508v/a>        /*v/spa
	  509v/a>vspa
 class="comment">         * If this architecture has a platform capability string, copy itv/spa
	  510v/a>vspa
 class="comment">         * to userspace.  In some cases (Sparc), this info is impossiblev/spa
	  511v/a>vspa
 class="comment">         * for userspace to get any other way, in others (i386) it isv/spa
	  512v/a>vspa
 class="comment">         * merely difficult.v/spa
	  513v/a>vspa
 class="comment">         */v/spa
	  514v/a>        k_platformv/a> = ELF_PLATFORMv/a>;  515v/a>        u_platformv/a> = NULLv/a>;  516v/a>  517v/a>        if (k_platformv/a>) {  518v/a>                platform_lenv/a> = strlenv/a>(k_platformv/a>) + 1;  519v/a>                spv/a> -= platform_lenv/a>;  520v/a>                u_platformv/a> = (char __userv/a> *) spv/a>;  521v/a>                if (__copy_to_userv/a>(u_platformv/a>, k_platformv/a>, platform_lenv/a>) != 0)  522v/a>                        return -EFAULTv/a>;  523v/a>        }  524v/a>  525v/a>        /*v/spa
	  526v/a>vspa
 class="comment">         * If this architecture has a "base" platform capabilityv/spa
	  527v/a>vspa
 class="comment">         * string, copy it to userspace.v/spa
	  528v/a>vspa
 class="comment">         */v/spa
	  529v/a>        k_base_platformv/a> = ELF_BASE_PLATFORMv/a>;  530v/a>        u_base_platformv/a> = NULLv/a>;  531v/a>  532v/a>        if (k_base_platformv/a>) {  533v/a>                platform_lenv/a> = strlenv/a>(k_base_platformv/a>) + 1;  534v/a>                spv/a> -= platform_lenv/a>;  535v/a>                u_base_platformv/a> = (char __userv/a> *) spv/a>;  536v/a>                if (__copy_to_userv/a>(u_base_platformv/a>, k_base_platformv/a>, platform_lenv/a>) != 0)  537v/a>                        return -EFAULTv/a>;  538v/a>        }  539v/a>  540v/a>        spv/a> &= ~7UL;  541v/a>  542v/a>        /* stack the load map(s) */v/spa
	  543v/a>        lenv/a> = sizeof(struct elf32_fdpic_loadmapv/a>);  544v/a>        lenv/a> += sizeof(struct elf32_fdpic_loadsegv/a>) * exec_paramsv/a>->loadmapv/a>->nsegsv/a>;  545v/a>        spv/a> = (spv/a> - lenv/a>) & ~7UL;  546v/a>        exec_paramsv/a>->map_addrv/a> = spv/a>;  547v/a>  548v/a>        if (copy_to_userv/a>((void __userv/a> *) spv/a>, exec_paramsv/a>->loadmapv/a>, lenv/a>) != 0)  549v/a>                return -EFAULTv/a>;  550v/a>  551v/a>        currentv/a>->mmv/a>->contextv/a>.exec_fdpic_loadmapv/a> = (unsigned long) spv/a>;  552v/a>  553v/a>        if (interp_paramsv/a>->loadmapv/a>) {  554v/a>                lenv/a> = sizeof(struct elf32_fdpic_loadmapv/a>);  555v/a>                lenv/a> += sizeof(struct elf32_fdpic_loadsegv/a>) *  556v/a>                        interp_paramsv/a>->loadmapv/a>->nsegsv/a>;  557v/a>                spv/a> = (spv/a> - lenv/a>) & ~7UL;  558v/a>                interp_paramsv/a>->map_addrv/a> = spv/a>;  559v/a>  560v/a>                if (copy_to_userv/a>((void __userv/a> *) spv/a>, interp_paramsv/a>->loadmapv/a>,  561v/a>                                 lenv/a>) != 0)  562v/a>                        return -EFAULTv/a>;  563v/a>  564v/a>                currentv/a>->mmv/a>->contextv/a>.interp_fdpic_loadmapv/a> = (unsigned long) spv/a>;  565v/a>        }  566v/a>  567v/a>        /* force 16 byte _final_ alignment here for generality */v/spa
	  568v/a>#define DLINFO_ITEMSv/a> 15  569v/a>  570v/a>        nitemsv/a> = 1 + DLINFO_ITEMSv/a> + (k_platformv/a> ? 1 : 0) +  571v/a>                (k_base_platformv/a> ? 1 : 0) + AT_VECTOR_SIZE_ARCHv/a>;  572v/a>  573v/a>        if (bprmv/a>->interp_flagsv/a> & BINPRM_FLAGS_EXECFDv/a>)  574v/a>                nitemsv/a>++;  575v/a>  576v/a>        cspv/a> = spv/a>;  577v/a>        spv/a> -= nitemsv/a> * 2 * sizeof(unsigned long);  578v/a>        spv/a> -= (bprmv/a>->envcv/a> + 1) * sizeof(char *);        /* envv[] */v/spa
	  579v/a>        spv/a> -= (bprmv/a>->argcv/a> + 1) * sizeof(char *);        /* argv[] */v/spa
	  580v/a>        spv/a> -= 1 * sizeof(unsigned long);                /* argc */v/spa
	  581v/a>  582v/a>        cspv/a> -= spv/a> & 15UL;  583v/a>        spv/a> -= spv/a> & 15UL;  584v/a>  585v/a>        /* put the ELF interpreter info on the stack */v/spa
	  586v/a>#define NEW_AUX_ENTv/a>(idv/a>, valv/a>)                                            \  587v/a>        do {                                                            \  588v/a>                struct { unsigned long _idv/a>, _valv/a>; } __userv/a> *entv/a>;        \  589v/a>                                                                        \  590v/a>                entv/a> = (void __userv/a> *) cspv/a>;                              \  591v/a>                __put_userv/a>((idv/a>), &entv/a>[nrv/a>]._idv/a>);                         \  592v/a>                __put_userv/a>((valv/a>), &entv/a>[nrv/a>]._valv/a>);                       \  593v/a>                nrv/a>++;                                                   \  594v/a>        } while (0)  595v/a>  596v/a>        nrv/a> = 0;  597v/a>        cspv/a> -= 2 * sizeof(unsigned long);  598v/a>        NEW_AUX_ENTv/a>(AT_NULLv/a>, 0);  599v/a>        if (k_platformv/a>) {  600v/a>                nrv/a> = 0;  601v/a>                cspv/a> -= 2 * sizeof(unsigned long);  602v/a>                NEW_AUX_ENTv/a>(AT_PLATFORMv/a>,  603v/a>                            (elf_addr_tv/a>) (unsigned long) u_platformv/a>);  604v/a>        }  605v/a>  606v/a>        if (k_base_platformv/a>) {  607v/a>                nrv/a> = 0;  608v/a>                cspv/a> -= 2 * sizeof(unsigned long);  609v/a>                NEW_AUX_ENTv/a>(AT_BASE_PLATFORMv/a>,  610v/a>                            (elf_addr_tv/a>) (unsigned long) u_base_platformv/a>);  611v/a>        }  612v/a>  613v/a>        if (bprmv/a>->interp_flagsv/a> & BINPRM_FLAGS_EXECFDv/a>) {  614v/a>                nrv/a> = 0;  615v/a>                cspv/a> -= 2 * sizeof(unsigned long);  616v/a>                NEW_AUX_ENTv/a>(AT_EXECFDv/a>, bprmv/a>->interp_datav/a>);  617v/a>        }  618v/a>  619v/a>        nrv/a> = 0;  620v/a>        cspv/a> -= DLINFO_ITEMSv/a> * 2 * sizeof(unsigned long);  621v/a>        NEW_AUX_ENTv/a>(AT_HWCAPv/a>,   hwcapv/a>);  622v/a>        NEW_AUX_ENTv/a>(AT_PAGESZv/a>,  PAGE_SIZEv/a>);  623v/a>        NEW_AUX_ENTv/a>(AT_CLKTCKv/a>,  CLOCKS_PER_SECv/a>);  624v/a>        NEW_AUX_ENTv/a>(AT_PHDRv/a>,    exec_paramsv/a>->ph_addrv/a>);  625v/a>        NEW_AUX_ENTv/a>(AT_PHENTv/a>,   sizeof(struct elf_phdrv/a>));  626v/a>        NEW_AUX_ENTv/a>(AT_PHNUMv/a>,   exec_paramsv/a>->hdrv/a>.e_phnumv/a>);  627v/a>        NEW_AUX_ENTv/a>(AT_BASEv/a>,    interp_paramsv/a>->elfhdr_addrv/a>);  628v/a>        NEW_AUX_ENTv/a>(AT_FLAGSv/a>,   0);  629v/a>        NEW_AUX_ENTv/a>(AT_ENTRYv/a>,   exec_paramsv/a>->entry_addrv/a>);  630v/a>        NEW_AUX_ENTv/a>(AT_UIDv/a>,     (elf_addr_tv/a>) from_kuid_mungedv/a>(credv/a>->user_nsv/a>, credv/a>->uidv/a>));  631v/a>        NEW_AUX_ENTv/a>(AT_EUIDv/a>,    (elf_addr_tv/a>) from_kuid_mungedv/a>(credv/a>->user_nsv/a>, credv/a>->euidv/a>));  632v/a>        NEW_AUX_ENTv/a>(AT_GIDv/a>,     (elf_addr_tv/a>) from_kgid_mungedv/a>(credv/a>->user_nsv/a>, credv/a>->gidv/a>));  633v/a>        NEW_AUX_ENTv/a>(AT_EGIDv/a>,    (elf_addr_tv/a>) from_kgid_mungedv/a>(credv/a>->user_nsv/a>, credv/a>->egidv/a>));  634v/a>        NEW_AUX_ENTv/a>(AT_SECUREv/a>,  security_bprm_secureexecv/a>(bprmv/a>));  635v/a>        NEW_AUX_ENTv/a>(AT_EXECFNv/a>,  bprmv/a>->execv/a>);  636v/a>  637v/a>#ifdef ARCH_DLINFOv/a>  638v/a>        nrv/a> = 0;  639v/a>        cspv/a> -= AT_VECTOR_SIZE_ARCHv/a> * 2 * sizeof(unsigned long);  640v/a>  641v/a>        /* ARCH_DLINFO must come last so platform specific code can enforcev/spa
	  642v/a>vspa
 class="comment">         * special alignment requirements on the AUXV if necessary (eg. PPC).v/spa
	  643v/a>vspa
 class="comment">         */v/spa
	  644v/a>        ARCH_DLINFOv/a>;  645v/a>#endif  646v/a>#undef NEW_AUX_ENTv/a>  647v/a>  648v/a>        /* allocate room for argv[] and envv[] */v/spa
	  649v/a>        cspv/a> -= (bprmv/a>->envcv/a> + 1) * sizeof(elf_caddr_tv/a>);  650v/a>        envpv/a> = (elf_caddr_tv/a> __userv/a> *) cspv/a>;  651v/a>        cspv/a> -= (bprmv/a>->argcv/a> + 1) * sizeof(elf_caddr_tv/a>);  652v/a>        argvv/a> = (elf_caddr_tv/a> __userv/a> *) cspv/a>;  653v/a>  654v/a>        /* stack argc */v/spa
	  655v/a>        cspv/a> -= sizeof(unsigned long);  656v/a>        __put_userv/a>(bprmv/a>->argcv/a>, (unsigned long __userv/a> *) cspv/a>);  657v/a>  658v/a>        BUG_ONv/a>(cspv/a> != spv/a>);  659v/a>  660v/a>        /* fill in the argv[] array */v/spa
	  661v/a>#ifdef CONFIG_MMUv/a>  662v/a>        currentv/a>->mmv/a>->arg_startv/a> = bprmv/a>->pv/a>;  663v/a>#else  664v/a>        currentv/a>->mmv/a>->arg_startv/a> = currentv/a>->mmv/a>->start_stackv/a> -  665v/a>                (MAX_ARG_PAGESv/a> * PAGE_SIZEv/a> - bprmv/a>->pv/a>);  666v/a>#endif  667v/a>  668v/a>        pv/a> = (char __userv/a> *) currentv/a>->mmv/a>->arg_startv/a>;  669v/a>        for (loopv/a> = bprmv/a>->argcv/a>; loopv/a> > 0; loopv/a>--) {  670v/a>                __put_userv/a>((elf_caddr_tv/a>) pv/a>, argvv/a>++);  671v/a>                lenv/a> = strnlen_userv/a>(pv/a>, MAX_ARG_STRLENv/a>);  672v/a>                if (!lenv/a> || lenv/a> > MAX_ARG_STRLENv/a>)  673v/a>                        return -EINVALv/a>;  674v/a>                pv/a> += lenv/a>;  675v/a>        }  676v/a>        __put_userv/a>(NULLv/a>, argvv/a>);  677v/a>        currentv/a>->mmv/a>->arg_endv/a> = (unsigned long) pv/a>;  678v/a>  679v/a>        /* fill in the envv[] array */v/spa
	  680v/a>        currentv/a>->mmv/a>->env_startv/a> = (unsigned long) pv/a>;  681v/a>        for (loopv/a> = bprmv/a>->envcv/a>; loopv/a> > 0; loopv/a>--) {  682v/a>                __put_userv/a>((elf_caddr_tv/a>)(unsigned long) pv/a>, envpv/a>++);  683v/a>                lenv/a> = strnlen_userv/a>(pv/a>, MAX_ARG_STRLENv/a>);  684v/a>                if (!lenv/a> || lenv/a> > MAX_ARG_STRLENv/a>)  685v/a>                        return -EINVALv/a>;  686v/a>                pv/a> += lenv/a>;  687v/a>        }  688v/a>        __put_userv/a>(NULLv/a>, envpv/a>);  689v/a>        currentv/a>->mmv/a>->env_endv/a> = (unsigned long) pv/a>;  690v/a>  691v/a>        mmv/a>->start_stackv/a> = (unsigned long) spv/a>;  692v/a>        return 0;  693v/a>}  694v/a>  695v/a>/*****************************************************************************/v/spa
	  696v/a>/*v/spa
	  697v/a>vspa
 class="comment"> * transfer the program arguments and environment from the holding pages ontov/spa
	  698v/a>vspa
 class="comment"> * the stackv/spa
	  699v/a>vspa
 class="comment"> */v/spa
	  700v/a>#ifndef CONFIG_MMUv/a>  701v/a>static int elf_fdpic_transfer_args_to_stackv/a>(struct linux_binprmv/a> *bprmv/a>,  702v/a>                                            unsigned long *_spv/a>)  703v/a>{  704v/a>        unsigned long indexv/a>, stopv/a>, spv/a>;  705v/a>        char *srcv/a>;  706v/a>        int retv/a> = 0;  707v/a>  708v/a>        stopv/a> = bprmv/a>->pv/a> >> PAGE_SHIFTv/a>;  709v/a>        spv/a> = *_spv/a>;  710v/a>  711v/a>        for (indexv/a> = MAX_ARG_PAGESv/a> - 1; indexv/a> >= stopv/a>; indexv/a>--) {  712v/a>                srcv/a> = kmapv/a>(bprmv/a>->pagev/a>[indexv/a>]);  713v/a>                spv/a> -= PAGE_SIZEv/a>;  714v/a>                if (copy_to_userv/a>((void *) spv/a>, srcv/a>, PAGE_SIZEv/a>) != 0)  715v/a>                        retv/a> = -EFAULTv/a>;  716v/a>                kunmapv/a>(bprmv/a>->pagev/a>[indexv/a>]);  717v/a>                if (retv/a> < 0)  718v/a>                        goto outv/a>;  719v/a>        }  720v/a>  721v/a>        *_spv/a> = (*_spv/a> - (MAX_ARG_PAGESv/a> * PAGE_SIZEv/a> - bprmv/a>->pv/a>)) & ~15;  722v/a>  723v/a>outv/a>:  724v/a>        return retv/a>;  725v/a>}  726v/a>#endif  727v/a>  728v/a>vspa
 class="comment">/*****************************************************************************/v/spa
	  729v/a>vspa
 class="comment">/*v/spa
	  730v/a>vspa
 class="comment"> * load the appropriate binary image (executable or interpreter) into memoryv/spa
	  731v/a>vspa
 class="comment"> * - we assume no MMU is availablev/spa
	  732v/a>vspa
 class="comment"> * - if no other PIC bits are set in params->hdr->e_flagsv/spa
	  733v/a>vspa
 class="comment"> *   - we assume that the LOADable segments in the binary are independently relocatablev/spa
	  734v/a>vspa
 class="comment"> *   - we assume R/O executable segments are shareablev/spa
	  735v/a> * - elsev/spa
	  736v/a> *   - we assume the loadable parts of the image to require fixed displacementv/spa
	  737v/a>vspa
 class="comment"> *   - the image is not shareablev/spa
	  738v/a>vspa
 class="comment"> */v/spa
	  739v/a>static int elf_fdpic_map_filev/a>(struct elf_fdpic_paramsv/a> *paramsv/a>,  740v/a>                              struct filev/a> *filev/a>,  741v/a>                              struct mm_structv/a> *mmv/a>,  742v/a>                              const char *whatv/a>)  743v/a>{  744v/a>        struct elf32_fdpic_loadmapv/a> *loadmapv/a>;  745v/a>#ifdef CONFIG_MMUv/a>  746v/a>        struct elf32_fdpic_loadsegv/a> *msegv/a>;  747v/a>#endif  748v/a>        struct elf32_fdpic_loadsegv/a> *segv/a>;  749v/a>        struct elf32_phdrv/a> *phdrv/a>;  750v/a>        unsigned long load_addrv/a>, stopv/a>;  751v/a>        unsigned nloadsv/a>, tmpv/a>;  752v/a>        size_tv/a> sizev/a>;  753v/a>        int loopv/a>, retv/a>;  95694v/a>  755v/a>        /* allocate a load map table */v/spa
	  756v/a>        nloadsv/a> = 0;  757v/a>        for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>++)  758v/a>                if (paramsv/a>->phdrsv/a>[loopv/a>].p_typev/a> == PT_LOADv/a>)  759v/a>                        nloadsv/a>++;  760v/a>  761v/a>        if (nloadsv/a> == 0)  762v/a>                return -ELIBBADv/a>;  763v/a>  764v/a>        sizev/a> = sizeof(*loadmapv/a>) + nloadsv/a> * sizeof(*segv/a>);  765v/a>        loadmapv/a> = kzallocv/a>(sizev/a>, GFP_KERNELv/a>);  766v/a>        if (!loadmapv/a>)  767v/a>                return -ENOMEMv/a>;  768v/a>  769v/a>        paramsv/a>->loadmapv/a> = loadmapv/a>;  770v/a>  771v/a>        loadmapv/a>->versionv/a> = ELF32_FDPIC_LOADMAP_VERSIONv/a>;   72v/a>        loadmapv/a>->sads" class="sref"">saonv/a> = nloadsv/a>;          load_addrv/a> = paramsv/a>->load_addrv/a>;         segv/a> = loadmapv/a>->saonv/a>;          /d mapheto reestedhe LOsr) intpheto memo         witchif (paramsv/a>->E32_FDPIT_FL_ARRANGEMX_ENT" class="sref">E32_FDPIT_FL_ARRANGEMX_Eapv/a>a>{       casep; E32_FDPIT_FL_CONSTDISCAP" class="sref">E32_FDPIT_FL_CONSTDISCutv/a>:       casep; E32_FDPIT_FL_CONTIGUOUGES" class="sref">E32_FDPIT_FL_CONTIGUOUGutv/a>: #ifndef CONFIG_MMUv/a>                 retv/a> t linle" class="sref">elf_fdpic_map_fi_  cond di_on_uc">linocv/a>(paramsv/act filev/act mmv/a>);                 if (retv/a> < 0)                         retur, retv/a>;               breaka>; #endif       fndaulta>:                 retv/a> t elf_fdpic_map_fi_by_direct_madmocv/a>(paramsv/act filev/act mmv/a>);                 if (retv/a> < 0)                         retur, retv/a>;               breaka>;       a>}          /d maphet">ent po  ine */v/spa
	         if (paramsv/a>->hdrv/a>.entum" class="sref">">entapv/a>a>{                 segv/a> = loadmapv/a>->saonv/a>;                 for (loopv/a> = loadmapv/a>->sads" class="sref"">saonv/a>; loopv/a> > 0; loopv/a>a>, segv/++a>a>{                         if (paramsv/a>->hdrv/a>.entum" class="sref">">entapv/a> >= segv/a>->                            paramsv/a>->hdrv/a>.entum" class="sref">">entapv/a> < segv/a>->segv/a>->                                paramsv/a>->entad_addr" class="sref">entad_adopv/a>>{                                       f (paramsv/a>->hdrv/a>.entum" class="sref">">entapv/a> - segv/a>->                                      - segv/a>->                              breaka>;                       a>}               a>}       a>}          /dpretm"li whereer the prograheadsfer tablhas wound up   iadmpedne */v/spa
	         stopv/a> = paramsv/a>->hdrv/a>.e_offdrv/a>;         stopv/a> += paramsv/a>->hdrv/a>.e_phnumv/a> * size a>(struct e32_phdrv/a>);         phdrv/a> = paramsv/a>->phdrsv/>);          for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>a>, phdrv/++a>a>{                 if (phdrv/a>->p_typev/a> != PT_LOADv/a>)                       continue>);                  if (phdrv/a>->paramsv/a>->hdrv/a>.e_offdrv/ ||a>                    (phdrv/a>->phdrv/a>->fiszdr" class="srefe_">fiszapv/a> < stopv/a>)                       continue>);                  segv/a> = loadmapv/a>->saonv/a>;                 for (loopv/a> = loadmapv/a>->sads" class="sref"">saonv/a>; loopv/a> > 0; loopv/a>a>, segv/++a>a>{                         if (phdrv/a>->segv/a>->                           (phdrv/a>->phdrv/a>->fiszdr" class="srefe_">fiszapv/a> &l>>{                             segv/a>->segv/a>->                               (paramsv/a>->                                      f (phdrv/a>->segv/a>->                                        segv/a>->                                       (paramsv/a>->hdrv/a>.e_offdrv/ > - phdrv/a>->                              breaka>;                       a>}               a>}               breaka>;       a>} }         /dpretm"li whereer thdy" nic sectionlhas wound up   ithereeiges ble */v/spa
	         phdrv/a> = paramsv/a>->phdrsv/>);         for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>a>, phdrv/++a>a>{                 if (phdrv/a>->p_typev/a> != PDYNAMICopv/a>)                       continue>);                 segv/a> = loadmapv/a>->saonv/a>;                 for (loopv/a> = loadmapv/a>->sads" class="sref"">saonv/a>; loopv/a> > 0; loopv/a>a>, segv/++a>a>{                         if (phdrv/a>->segv/a>->                            phdrv/a>->phdrv/a>->                            segv/a>->segv/a>->                              ; paramsv/a>->>{                                       f (phdrv/a>->segv/a>->                                       (segv/a>->                                 /checker thdy" nic sectionlcontains at leasentv/spa
	 vspa
 class="comment"""""""""""""""""""""""""""""""""*es blitem,ts ane that th cltlitemMU is ">NULLv/spa
	 vspa
 class="comment"""""""""""""""""""""""""""""""""*e">ent e */v/spa
	                                 if (phdrv/a>->                                    phdrv/a>->elf3Dyion" class="srefE>elf3Dyigsv/) ) != 0)                                         goto ;                                  tmpv/a> = phdrv/a>->elf3Dyion" class="srefE>elf3Dyigsv/)a>;                                 if(ot;                                     paramsv/a>->[tmpv/a- 1a>].                                        goto ;                               breaka>;                       a>}               a>}               breaka>;       a>}          /now elide adjacmmele segments in tha load maonlo MM">linocv/spa
	 vspa
 class="comment         > * onluC">linin thholes betweenad y actually be filled with systemocv/spa
	 vspa
 class="comment"        >     uffle o  ufflfromno otheprocesseagsv/spa
	 vspa
 class="comment"        > */v/spa
	 #ifdef CONFIG_MMUv/a>       t;nloadsv/a> = loadmapv/a>->sads" class="sref"">saonv/aa>         msegv/a> = loadmapv/a>->saonv/a>;         segv/a> = msegv/a+ 1a>;         for (loopv/a> - 1; loopv/a> < nloadsv/a>; loopv/a>+>a>{                 /see   iwblhavate candidocat  fomerging > */v/spa
	                 if (segv/a>->msegv/a>->segv/a>->msegv/a>->                        load_addrv/a> = PAGALIGION" class="sref">PAGALIGIdrv/f (msegv/a>->msegv/a>->                        if (load_addrv/a>=if (segv/a>->PAGMASKON" class="sref">PAGMASKapv/a+>a>{                                 msegv/a>->              a>                        load_addrv/a->{                                       f (msegv/a>->msegv/a>->                                msegv/a>->segv/a>->PAGMASKON" class="sref">PAGMASKapv/a>;                                 msegv/a>->segv/a>->                               (loadmapv/a>->sads" class="sref"">saonv/--a>;                               continue>);                       a>}               a>}                  msegv/a>++;                 if (msegv/a> != segv/a+;                       *  msegv/a> *  segv/a>;       a>} #endif          "MdmpednObject [>#37;s]:"*/v/spaa>, whatv/aa>;         "* - fhdr   :a>#37;lx"*/v/spaa>, paramsv/a>->;         "* ->ent    :a>#37;lx"*/v/spaa>, paramsv/a>->entad_addr" class="sref">entad_adopv/aa>;         "* PHDR[]   :a>#37;lx"*/v/spaa>, paramsv/a>->        "* DYNAMIC[]:a>#37;lx"*/v/spaa>, paramsv/a>->;         segv/a> = loadmapv/a>->saonv/a>;         for (loopv/a> = 0; loopv/a> < loadmapv/a>->sads" class="sref"">saonv/a>; loopv/a>a>, segv/++a>;                 "* T_LO[>#37;d] :a>#37;08x->#37;08x [va=>#37;x ms=>#37;x]"*/v/spaa>;                        loopv/a>;                      = segv/a>->segv/a>->segv/a>->                      (segv/a>->segv/a>->         retur= 0;  :         "ELF 2_FDPa>#37;s with invalid DYNAMIC sectionl(in+cod>#37;lu)\n"*/v/spaa>;              , whatv/act filev/a>->].entum" class="srefd">entapv/a>->        return -ELIBBADv/a>; }  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */v/spa
	 */v/spa
	 vspa
 class="comment >/d maa file with   conant d dilaceomme undsfeuC">lin*/v/spa
	 vspa
 class="comment"> */v/spa
	 #ifndef CONFIG_MMUv/a> linle" class="sref">elf_fdpic_map_fi_  cond di_on_uc">linocv/aa>       >(struct paramsv/aa>       >(struct filev/a*  filev/aa>       >(struct (strulev/a*  mmv/aa> {       >(struct segv/a>;       >(struct e32l2_ph73v/a*  phdrv/a>;       unsigned long   load_addrv/act               ) ict loopv/act retv/a>;        t;load_addrv/a> = paramsv/a>->load_addrv/a>;         segv/a> = paramsv/a>->loadmapv/a>->saonv/a>; }         /dpretm"li n thbounds o ithe contiguous overall allocationlwe musentv/spa
	         phdrv/a> = paramsv/a>->phdrsv/>);         for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>a>, phdrv/++a>a>{                 if (paramsv/a>->phdrsv/a>[loopv/a>].p_typev/a> != PT_LOADv/a>)                       continue>);                  if (phdrv/a>->                      t phdrv/a>->                if (phdrv/a>->phdrv/a>->                      t phdrv/a>->phdrv/a>->      a>}          /allocatees blbig anonlblock   foeverything > */v/spa
	                 if (paramsv/a>->                        NUap" class="sref">NULLv/act load_addrv/act                       =         if (                retur(int)            if (load_addrv/a> != 0)                (load_addrv/a+>== PAGALIGION" class="sref">PAGALIGIdrv/f (        /a ane enha loathe file e segments to it > */v/spa
	       t;phdrv/a> = paramsv/a>->phdrsv/>);         for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>a>, phdrv/++a>a>{                 if (paramsv/a>->phdrsv/a>[loopv/a>].p_typev/a> != PT_LOADv/a>)                       continue>);                  phdrv/a>->{                (segv/a>->phdrv/a>->                segv/a>->phdrv/a>->                segv/a>->phdrv/a>->                retv/a> + filev/a>->addrv/f (filev/a (void *)   segv/a>->                                       phdrv/a>->fiszdr" class="srefe_">fiszapv/,a> &am                  if (retv/a> <= 0)                         retur (retv/a>;                  /d mathe ELF h>ader d_adess   is in is e segme > */v/spa
	                 if (phdrv/a>->                       (paramsv/a>-> + segv/a>->                 /clear dny   */v/spa
	                 if (phdrv/a>->fiszdr" class="srefe_">fiszapv/a> < phdrv/a>->                        if (segv/a>->phdrv/a>->fiszdr" class="srefe_">fiszapv/)a);                                       (phdrv/a>->phdrv/a>->fiszdr" class="srefe_">fiszapv/) 0)                                 return -              a>} {                 if (mmv/a>a>{                         if (phdrv/a>-> &                                 if! (mmv/a>->a>{                                        (mmv/a>-> + segv/a>->                                       (mmv/a>-> + segv/a>->                                               (phdrv/a>->                              a>}                       } else   if! (mmv/a>->a>{                                 mmv/a>-> + segv/a>->                               (mmv/a>->segv/a>->phdrv/a>->10L717v/a>                      }
; 10L741v/a> a>} 10L722v/a> 10L683v/a> segv/a>++; 10L684v/a> a>} 10L735v/>} 10L716v/a> retur= 0; 10L717v/a>} 10L758v/a>#endif 10L729v/>{ 10L729v/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */v/spa 10L731v/a>vspa class="comment">*/v/spa 10L732v/a>vspa class="comment">/d maa s/bary by direct madm() o ithe i#envidual ">PT_LO e segmen*/v/spa 10L733v/a>vspa class="comment"> */v/spa 10L684v/onaticr) ict paramsv/aa> 10L685v/a> >(struct filev/a* filev/aa> 10L716v/a> >(struct (strulev/a* mmv/aa> 10L717v/a>{ 10L718v/a> >(struct segv/a>; 10L918v/a> >(struct e32l2_ph73v/a* phdrv/a>; 10L718v/a> unsigned long load_addrv/act 10L741v/a> ) ict loopv/act 10L722v/a> 10L673v/a> t;load_addrv/a> = paramsv/a>->load_addrv/a>; 10L764v/a> 10L765v/a> 10L636v/a> 10L767v/a> segv/a> = paramsv/a>->loadmapv/a>->saonv/a>; 10L768v/a> 10L759v/a> /deal with eachha loae segme se">pately"> */v/spa 10L767v/a> phdrv/a> = paramsv/a>->phdrsv/>); 10L741v/a> for (loopv/a> = 0; loopv/a> < paramsv/a>->hdrv/a>.e_phnumv/a>; loopv/a>a>, phdrv/++a>a>{ 10L682v/a> unsigned long 10L673v/a> ict 10L468v/a> 10L685v/a> if (phdrv/a>->p_typev/a> != PT_LOADv/a>) 10L716v/a> continue>); 10L707v/a> 10L758v/a> "[T_LO] va=>#37;lx of=>#37;lx fs=>#37;lx ms=>#37;lx"*/v/spaa>; 10L759v/a> (unsigned long) phdrv/a>->10L759v/a> (unsigned long) phdrv/a>->10L741v/a> (unsigned long) phdrv/a>->fiszdr" class="srefe_">fiszapv/,>; 10L682v/a> (unsigned long) phdrv/a>->10L733v/); 10L684v/a> /dpretm"li n thadmping ">parprets"> */v/spa 10L685v/a> if (phdrv/a>-> & t ; 10L716v/a> if (phdrv/a>-> & t 10L717v/a> if (phdrv/a>-> & 10L768v/a> 10L759v/a> 10L717v/a> if (paramsv/a>->10L741v/a> (10L722v/a> 10L683v/a> 10L468v/a> 10L685v/a> switchif (paramsv/a>->10L716v/a> casep; 10L717v/a> /">PT_LOs are i#eepend">ely locatablble */v/spa 10L758v/a> break>); 10L729v/>{ 10L716v/a> casep; 10L741v/a> /n thspecified virtual d_adess muse be honoured > */v/spa 10L682v/a> phdrv/a>->10L683v/a> (10L684v/a> break>); 10L735v/>} 10L716v/a> casep; 10L717v/a> / conant d dilaceomme*/v/spa 10L718v/ 10L729v/a>vspa class="comment > * unie*/v/spa 10L729v/a>vspa class="comment > * */v/spa 10L741v/a> if! (10L682v/a> load_addrv/a>; 10L683v/a> phdrv/a>->10L684v/a> 10L685v/a> } else a>{ 10L716v/a> load_addrv/ + (phdrv/a>->10L717v/a> (10L758v/a> a>} 10L759v/a> break>); 10L635v/>} 10L741v/a> casep; 10L682v/a> / ctiguity handled later * */v/spa 10L683v/a> break>); 10L468v/a> 10L685v/a> defaulta>: 10L716v/a> t 10L717v/a> a>} 10L768v/a> 10L759v/a> PAGMASKgs" class="srefe>PAGMASKgsv/>); 10L668v/a> 10L671v/a> / reati n thadmping * */v/spa 10L742v/a> phdrv/a>->PAGMASKgs" class="srefe>PAGMASKgsv/>); 10L683v/a> filev/a phdrv/a>->10L684v/a> phdrv/a>->10L735v/>} 10L716v/a> - "madm[>#37;d]a> &l">fi> >sz=>#37;lx pr=>#37;x fl=>#37;x of=>#37;lx -a>-&g >#37;08lx"*/v/spaa>; 10L717v/a> loopv/act phdrv/a>->10L758v/a> phdrv/a>->10L729v/>{ 11L717v/a> if (11L741v/a> retur(int) 11L722v/a> 11L683v/a> iff (paramsv/a>->110684v/a> ; 110715v/a> = load_addrv/a+>== PAGALIGION" class="sref">PAGALIGIdrv/f (phdrv/a>->110636v/a> 110717v/a> (segv/a>->110758v/a> segv/a>->phdrv/a>->110759v/a> segv/a>->phdrv/a>->111668v/a> 111671v/a> /d mathe ELF h>ader d_adess is in is e segme > */v/spa 111742v/a> if (phdrv/a>->111683v/a> (paramsv/a>-> + segv/a>->111468v/a> 11L685v/a> /clear the bie between beginning ofhadmping a anbeginning of*/v/spa 11L716v/a>vspa class="comment > >/">PT_LO > */v/spa 111717v/a> if (111758v/a> - "clear[>#37;d]aad=>#37;lx sz=>#37;lx"*/v/spaa loopv/act 111759v/a> if (112759v/a> return -112741v/a> (112742v/a> a>} 112733v/); 112684v/a> /clear dny 11L765v/a>vspa class="comment > >/- on uC="lux we can juse clear the loe*/v/spa 112716v/a>vspa class="comment > >/- on MMU ="lux we>#39;ll get a SIGBUSnbeyo ane e clt page*/v/spa 11L767v/a>vspa class="comment > >/ exnant s in e file*/v/spa 112718v/ 112759v/a> phdrv/a>->phdrv/a>->fiszdr" class="srefe_">fiszapv/a>; 113759v/a> PAGSIZEgs" class="srefe>PAGSIZEapv/a> ff (phdrv/a>->fiszdr" class="srefe_">fiszapv/)a> &~= PAGMASKgs" class="srefe>PAGMASKgsv/aa>; 11L741v/>; 11L682v/#ifdef (11L673v/a> if (113684v/a> unsigned long phdrv/a>->fiszdr" class="srefe_">fiszapv/a+ (11L685v/a> unsigned long 113636v/a> 113717v/a> ;11L758v/a> ;11L759v/a> ;114668v/a> 11L741v/a> - "madm[>#37;d]a> &lanon>-&g"*/v/spaa> 11L682v/a> - "aad=>#37;lx sz=>#37;lx pr=>#37;x fl=>#37;x of=0 -a>-&g >#37;08lx"*/v/spaa>; 114683v/a> loopv/act 11L684v/a> 114735v/>} 11L716v/a> if (10L717v/6ref="+cod"6666666666ref="+c_fdp11L73>11L685v/a> dpic.110L700" idp10L747" claaaaaaaaaaaaaaaaa1L72>112759v/a> NOMEM NOMEM+codMAP_ANONYMOUSAD" class="srefMAP_ANON_EXECdrv/a1; .14esa1rsv/,>> 111717v/a> if (101758v/a> - "cleaef="+coddisoop" class="srefdisodrv/Tt;*/v/spaa; #37;d]aad=>#37;lx sz=>#37;lx"*/v/spaa loopv/a = phdrv/a>-> if (phdrv/a>->10L717v/6ref="+cod"6666">10L468v/1> 112759v/a> return - .1NDENT16v/a1: ; 11L673v/a> if ("cleaef="+coddisoop" class="srefdisodrv/VADDR16v/a1: loopv/a = phdrv/a>-> if if (phdrv/a>-> if ref="+codL74>10L717v/6ref="+cod"6666vd_adgsv/>1; .1 break>1; 10L16>10L735v/1} (struhref="+coddisoop" class="srefdisodrv/5e */v/spa1 10L717v/a> if (phdrv/a>-> &amref="+coddisoop" class="srefdisodrv/5esa1rsv/,> 10L741v (10L741v (10L741v (phdrv/a>-> .1ad_addrv/a1; 10L741v (10L684v/a> (phdrv/a>-> .1aDISP16v/a1; .1ae */v/spa1; .18>10L635v/1} 11 .18IXEOgsv/>1; 10L468v/1> defaulta1: DISP16v/a1; e */v/spa1} a1> GMASKgsv/>1; G>10L635v/1> * */v/spa1 GMASKgsv/>1; p_flagsv/,1; 10L735v/1} t;*/v/spaa1; /dis worth dumping;ass="lindis yes to bcomment > >/ exnant s in e fp_flagsv/,1; /clus> coredump limit...omment > >/ exnant s in e 29>10L729v/2{ >/ exnant s in e 29210L729v/2{ 29>11L722v/2> 10L682v/amhdr" class="sref">phdamhdr" cif href="+codL74>10L717v/6ref="+cod"6662NTmmv/a>==2> phddump_okgt;110636v/2> 1126Dolass=dump I/O * devices or al"commentss="comment">/dpretm"li n thadmping ">parpret2fdisodrv/a2; phdvmv/a>->phdVM_IOgt; core - #37: x sz=>#37: no (IO)ng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< 11 .2 > */v/spa2 == 2) 1126Ifclas_aylass=read contL72s, don="comt wlus to dumphrmment">/dpretm"li n thadmping ">parpret2fd_addrv/a2; &qdump_write()ng">&qss="="comt itenta>ay.omment > >/ exnant s in e 21>111468v/2> /dpretm"li n thadmping ">parpret2 of*/v/spa2 phdvmv/a>-> core - #37: x sz=>#37: no (!read)ng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< 11 .2disodrv/a 2) 1126Byass="lin,=dump sha>/n memoryLss= * froment f -&.p="comment">/dpretm"li n thadmping ">parpret2fdisodrv/a2; phdvmv/a>-> &amref="+coddisoop" class="srefdisodrv2 a2} phddL72ry;phdi_nfs/klong =ra href="+coddisoop" class="srefdisodrv22>112733v/2; phddump_okgt;< phdtest_bit - 10L682v/amhdr" class="sref">phdamhdr" cif hra href="+coded_addr" class="srefmd_2oed*/v/spa2 11kdcorea> core - #37: x sz=>#37: x sz=s (sha>/)ng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< phddump_okgt;< ?p11L74>11L682v/a> yesng">"cle :p11L74>11L682v/a> nong">"clera href="+coded_addr" class="srefmd_2o> */v/spa2 11line" namop10L7dump_oklass="sref">phddump_okgt; .2 > */v/spa2 fiszapv/a2; phddump_okgt;< phdtest_bit - 10L682v/amhdr" class="sref">phdamhdr" cif hra href="+coded_addr" class="srefmd_2MASKgsv/aa2; 11kdcorea> core - #37: x sz=>#37: x sz=s (sha>/)ng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< phddump_okgt;< ?p11L74>11L682v/a> yesng">"cle :p11L74>11L682v/a> nong">"clera href="+coded_addr" class="srefmd_23 a2; 11line" namop10L7dump_oklass="sref">phddump_okgt; .2cesa1rsv/>2; 11L682v/#ifdef (1126Byass="lin,= clat s"="comt b writtep1to, don="comt writelat ou/d mathe ELF h>ader d_adess is in is e segm2YMOUSdrv/a2; &amref="+coddisoop" class="srefdisodrv2cesa1rsv/,2; phddump_okgt;< phdtest_bit - MMF_DUM= MAPPED_PRIVAs=;10L682v/amhdr" class="sref">phdamhdr" cif hra href="+coded_addr" class="srefmd_2agsv/, 0aa2; core - #37: x sz=>#37: x sz=s (!f <)ng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< phddump_okgt;< ?p11L74>11L682v/a> yesng">"cle :p11L74>11L682v/a> nong">"clera href="+coded_addr" class="srefmd_24>11L741v/2> 11line" namop10L7dump_oklass="sref">phddump_okgt; .2p_flagsv/,2; 10L2d_addrv/aa2; 114735v/2} phddump_okgt;< phdtest_bit - MMF_DUM= 10L682v/amhdr" class="sref">phdamhdr" cif hra href="+coded_addr" class="srefmd_2a>113636v/2+c_fdp11L73>11L685v/a> 2dpic.210L700" idp10Lss="line" namopkdcorea> core - #37: x sz=>#37: x sz=sng">"clear[>#37;d]aad=>#3vma vma;phdvmvstart;phdvmv/a>->< href="+coded_addr" class="srefmd_24MOUSdrv/a2; phddump_okgt;< ?p11L74>11L682v/a> yesng">"cle :p11L74>11L682v/a> nong">"clera href="+coded_addr" class="srefmd_24esa1rsv/,2> 11line" namop10L7dump_oklass="sref">phddump_okgt; .2TABLEapv/a2) phdaems inoteL100" idp11L731" class="line" namop11L2T_flagsv/,2; 10L468v/2> phdfmt_gt;phdtyp_gt;phddata cgt;phddatagt;phdfotesiz_ - struc="line" namop10L7mems inotelass="sref">phdaems inoteL100cphdenif hr" idp11L740" class="line" namop11L2Vt;*/v/spa2 phd cgt;2; phd cgt;< siz_of struc="line" namop10L7linenotelass="sref">phdlinenoteif hra href="+coded_addr" class="srefmd_26>10L735v/2} phd cgt;< (phdstrlen - phdenif ha+ (phdfmt_gt;<) + 1, 4ra href="+coded_addr" class="srefmd_26>113636v/2: phd cgt;< (phdenif ha+ (phddata cgt;<, 4ra href="+coded_addr" class="srefmd_26MOUSdrv/a2 11line" namop10L7 class="sref">phd cgt; .2 * */v/spa2 a2{ 2; DUM= lass= - segv/a> phdrfa>->2; phddump_write - segv/a>),="line" namop11L7neg" class="sref"ngv/a>)))a1L72>11phdrfa>->); } whdma(="+code_offs=ret" class="srefe_offs=2s>10L735v/2{ -_lass="sref">phdrla>-_l;phdrfa>->phdrbuf7900[4] { 0, }a href="+code_memszdr" class="srefe2 break>2; DUM= lass= - phdrbuf7900,=line" namop10L7roundup" class="srefxdroundup - phdrfa>->phdrfa>->phdrfa>->111a href="+code_memszdr" class="srefe2 =rdrv/a>a2: .2 * */v/spa2 2; phdwritenote - struc="line" namop10L7mems inotelass="sref">phdaems inoteL100cphdmenif h, struc="line" namop10L7ddmap" class="srefvddma;2> 11la>-_lass="sref">phdrla>-_l;phdrfa>->phdlinenoteif h"line" namop10L7lnlass="sref">phdenif ha href="+code_memszdr" class="srefe2 MOUSdrv/a2} phdenif h.line" namop10L7n_fmt_ class="sref">phdn_fmt_ cgt;< phdstrlen - phdmenif ha+ (phdfmt_gt;<) + 1a href="+code_memszdr" class="srefe2 a2> phdenif h.line" namop10L7n_desc class="sref">phdn_desc cgt;< phdmenif ha+ (phddata cgt;phdenif h.line" namop10L7n_typ_lass="sref">phdn_typ_gt;< phdmenif ha+ (phdtyp_gt;DUM= lass= - hrefp10L73>10L682v/lnlass="sref">phdenif h, siz_of line" namop10L7enlass="sref">phdenif hr phdrfa>->DUM= lass= - phdmenif ha+ (phdfmt_gt;< phdenif h.line" namop10L7n_fmt_ class="sref">phdn_fmt_ cgt;< phdrfa>->phdrfa>->11DUM= lass= - phdmenif ha+ (phddatagt;phdmenif ha+ (phddata cgt;< phdrfa>->phdrfa>->1110L729v/3{ 111a href="+code_memszdr" class="srefe39110L729v/3{ .39210L729v/3{ DUM= lass= -ss="line" namop9L688"98758v/a> .39310L729v/3{ ==3> phdrelf;phd e c;phdmemcpy - phdrelf;phdre_idL72;phdrELFMAG;phdrSELFMAG;phdrelf;phdre_idL72;phdrelf;phdre_idL72;phdrelf;phdre_idL72;phdrelf;phdre_idL72;phdrmem cl - phdrelf;phdre_idL72; == 3) phdrelf;phde_typ_gt;< EToCOR=gt;phdrelf;phdrelf;phde_versiongt;< phdrelf;phd _L72rygt;< phdrelf;phdre_phoffgt;< siz_of struc="line" namop10L7linaddr" class="srefmlinaddL100)a href="+code_memszdr" class="srefe3 disodrv/a3{ phdrelf;phdre_shoffgt;< phdrelf;phdev/a>->phdrelf;phd _ehsiz_gt;< siz_of struc="line" namop10L7linaddr" class="srefmlinaddL100)a href="+code_memszdr" class="srefe3FAULTdrv/a3; phdrelf;phd _phL72siz_gt;< siz_of struc="line" namop10L7lin__addr" class="srefmlin__addL100)a href="+code_memszdr" class="srefe3F> */v/spa3; phdrelf;phd e c;phdrelf;phd _shL72siz_gt;< phdrelf;phdrelf;1a href="+coded_addr" class="srefmd_32> */v/spa3 .3ile*/v/spa3 */v/spa3 phd cgt;<,=line" namop10L7la>-_lass="sref">phdrla>-_l;phdra>->fiszapv/a3; phdp_typ_gt;< PT_NOs=;phdrphdr" clgt;< phdra>->10L717v/a> if (phdphdil_ cgt;< phd cgt;phdrv/a>->< 10L717v/a> if (phdrv/a>->10L717v/a> if (phdrval"ligt;1a href="+coded_addr" class="srefmd_3agsv/, 0aa3; .34>114668v/3> 11L741v/3> phdddml"note - struc="line" namop10L7mems inotelass="sref">phdaems inoteL100cphdnoteL100,Lconmenthar(phdfmt_gt;<,=ss="line" namop10L7typ_lass="sref">phdtyp_gt;<," idp11L723" class="line" namop11L3t;*/v/spaa3; phd cgt;<,=+codcphddatagt;<)" idp11L696" class="line" namop11L3p_flagsv/,3; phdnoteL100a+ (phdfmt_gt;< phdfmt_gt;phdnoteL100a+ (phdtyp_gt;< phdtyp_gt;phdnoteL100a+ (phddata cgt;< phd cgt;phdnoteL100a+ (phddatagt;< phddatagt;1a href="+code_memszdr" class="srefe3WRITEdrv/a3; .3TABLEapv/a3) -lne"up separately.omment > >/ exnant s in e 3">10L468v/3> phdddml"prstatus - struc="line" namop10L7lin__rstatuslass="sref">phdlin__rstatusL100cphd_rstatusL100," idp11L723" class="line" namop11L3W>113636v/3: phd_gt;<,= namop10L73>10L682v/="li0L717v/a> ="li0gt;<)" idp11L696" class="line" namop11L3WMOUSdrv/a3 phd_rstatusL100 if (phd_r_" coL100.line" namop10L7si_="liolass="sref">phdsi_="liogt;< phd_rstatusL100 if (phd_r_cur="lgt;< ="li0gt;phd_rstatusL100 if (phd_r_="lpendgt;< phd_gt;< if (phd_ idpnlL100.line" namop10L7signalL717v/a> ="lialL100.line" namop10L7sigL717v/a> ="lL100[0]a href="+code_memszdr" class="srefe35ABLEapv/a3: phd_rstatusL100 if (phd_r_="lholdgt;< phd_gt;< if (phdblockedL100.line" namop10L7sigL717v/a> ="lL100[0]a href="+code_memszdr" class="srefe35t;*/v/spa3 rcu_read_lock - )a href="+code_memszdr" class="srefe3vd_adgsv/>3; phd_rstatusL100 if (phd_r_ppidgt;< phdrcu_de" ne" nce - line" namop10L7_lass="sref">phd_gt;< if (phdrreal"parL72gt;<))a href="+code_memszdr" class="srefe3v_flagsv/,3; rcu_read_unlock - )a href="+code_memszdr" class="srefe3v>10L468v/3; phd_rstatusL100 if (phd_r_pidgt;< phd_gt;<)a href="+code_memszdr" class="srefe3v>114735v/3} phd_rstatusL100 if (phd_r_pgr_gt;< phd_gt;<)a href="+code_memszdr" class="srefe3v>113636v/3: phd_rstatusL100 if (phd_r_="dgt;< phd_gt;<)a href="+code_memszdr" class="srefe3vMOUSdrv/a3 phd_gt;<)amref="+coddisoop" class="srefdisodrv35esa1rsv/,3 phdtask_cputit_;phdcputit_;ader d_adess is in is e segm3sd_adgsv/>3; >/ exnant s in e 3nIXEOgsv/>3; ader d_adess is in is e segm3n break>3; phdthread_group_cputit_ - line" namop10L7_lass="sref">phd_gt;< < hrefp10L73>10L682v/cputit_lass="sref">phdcputit_;10L682v/cputit__to_tit_valL717v/a> cputit__to_tit_val - line" namop10L7cputit_lass="sref">phdcputit_;phdutit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_utit_; cputit__to_tit_val - line" namop10L7cputit_lass="sref">phdcputit_;phdstit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_stit_; cputit__to_tit_val - line" namop10L7_lass="sref">phd_gt;< if (phdutit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_utit_; cputit__to_tit_val - line" namop10L7_lass="sref">phd_gt;< if (phdstit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_stit_; .3 =rdrv/a>a3: cputit__to_tit_val - line" namop10L7_lass="sref">phd_gt;< if (phdcutit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_cutit_; cputit__to_tit_val - line" namop10L7_lass="sref">phd_gt;< if (phdcstit_;10L682v/_rstatuslass="sref">phd_rstatusL100 if (phdpr_cstit_;3> phd_rstatusL100 if (phd_r_exece" nam_loadma_gt;< phd_gt;< if (phdrcontex2;phdexece" nam_loadma_gt;phd_rstatusL100 if (phd_r_interpe" nam_loadma_gt;< phd_gt;< if (phdrcontex2;phdinterpe" nam_loadma_gt; .3 MOUSdrv/a3} phdddml"ps" co - struc="line" namop10L7lin__rps" colass="sref">phdlin__rps" coL100cphdps" coL100, struc="line" namop10L7task_struc=" class="srefxdtask_struc=L100cphd_gt;<," idp10L688" class="line" namop10L3GMASKgsv/>3; 10L635v/3> phdcredL100cphdcredL100a href="+code_memszdr" class="srefe3GMASKgsv/>3; phdiL100, line" namop10L7lenlass="sref">phdlenif ha href="+code_memszdr" class="srefe3GIXEOgsv/>3; phdrmem cl - phdps" coL100, 0, siz_of struc="line" namop10L7lin__rps" colass="sref">phdlin__rps" coL100))a href="+code_memszdr" class="srefe3GDISP16v/a3; phdlenif h phdarg_endif h - phdarg_startif ha href="+code_memszdr" class="srefe3G a3; phdlenif h if ( phdE+coPRARGSZL100)" idp11L696" class="line" namop11L49>10L729v/4{ phdlenif h phdE+coPRARGSZL100 - 1a href="+code_memszdr" class="srefe49110L729v/4{ phdrcopy_arom_user - hrefp10L73>10L682v/_s" colass="sref">phdps" coL100 if (phd_r_psargsgt;<," idp10L688" class="line" namop10L49210L729v/4{ phdr__user - *) phdarg_startif h, line" namop10L7lenlass="sref">phdlenif h))" idp11L696" class="line" namop11L49310L729v/4{ 11 line" namop10L7EFAUL FAUL if ha href="+code_memszdr" class="srefe4NTmmv/a>==4> phdiL100a phdiL100 <a"line" namop10L7lenlass="sref">phdlenif ha"line" namop10L7ilass="sref">phdiL100++)" idp11L696" class="line" namop11L495mmv/a>==4> phdps" coL100 if (phd_r_psargsgt;<[line" namop10L7ilass="sref">phdiL100] = <)" idp11L696" class="line" namop11L496mmv/a>==4> phdps" coL100 if (phd_r_psargsgt;<[line" namop10L7ilass="sref">phdiL100] =p11L74>11L682v/a> #39; #39;athe ELa href="+code_memszdr" class="srefe4N7mmv/a>==4> phdps" coL100 if (phd_r_psargsgt;<[line" namop10L7lenlass="sref">phdlenif h]a rcu_read_lock - )a href="+code_memszdr" class="srefe4memszapv/>4; phdps" coL100 if (phd_r_ppidgt;< phdrcu_de" ne" nce - line" namop10L7_lass="sref">phd_gt;< if (phdrreal"parL72gt;<))a href="+code_memszdr" class="srefe4m110L729v/4> rcu_read_unlock - )a href="+code_memszdr" class="srefe4 > */v/spa4 phdps" coL100 if (phd_r_pidgt;< phd_gt;<)a href="+code_memszdr" class="srefe4opv/a> == 4) phdps" coL100 if (phd_r_pgr_gt;< phd_gt;<)a href="+code_memszdr" class="srefe4mTmmv/a>==4; phdps" coL100 if (phd_r_="dgt;< phd_gt;<)a href="+code_memszdr" class="srefe4mUOUS16v/a4> phdiL100a line" namop10L7_lass="sref">phd_gt;< if (phdstateL100a?"line" namop10L7dfclass="sref">phddfc - ~line" namop10L7_lass="sref">phd_gt;< if (phdstateL100) + 1 : phdps" coL100 if (phdpr_=tateL100a line" namop10L7ilass="sref">phdiL100a href="+coded_addr" class="srefmd_4 disodrv/a4{ phdps" coL100 if (phdpr_=fmt_L100a "line" namop10L7ilass="sref">phdiL100aif ( 5)a?"l1L74>11L682v/a> #39;. #39;athe EL : l1L74>11L682v/a> quot;RSDTZW quot;athe EL[line" namop10L7ilass="sref">phdiL100]a href="+coded_addr" class="srefmd_4 9isodrv/a4; phdps" coL100 if (phdpr_zombL100a line" namop10L7_s" colass="sref">phdps" coL100 if (phdpr_=fmt_L100a =p11L74>11L682v/a> #39;Z #39;athe ELa href="+code_memszdr" class="srefe4disodrv/a 4) phdps" coL100 if (phdpr_nicegt;< phdtask_nice - line" namop10L7_lass="sref">phd_gt;<)a href="+code_memszdr" class="srefe4FAULTdrv/a4; phdps" coL100 if (phdpr_/a>-L100a line" namop10L7_lass="sref">phd_gt;< if (phd/a>-> rcu_read_lock - )a href="+code_memszdr" class="srefe4Fpv/a> == 4} phdcredL100c line" namop10L7__task_credlass="sref">phd__task_cred - line" namop10L7_lass="sref">phd_gt;<)a href="+code_memszdr" class="srefe4FTmmv/a>==4; phdps" coL100 if (phd_r_u"dgt;<,=line" namop10L7from_ku"d_mungedlass="sref">phdfrom_ku"d_munged - phdcredL100 if (phduser_ncgt;<,=line" namop10L7credlass="sref">phdcredL100 if (phdu"dgt;<))a href="+code_memszdr" class="srefe42UOUS16v/a4 phdps" coL100 if (phd_r_g"dgt;<,=line" namop10L7from_kg"d_mungedlass="sref">phdfrom_kg"d_munged - phdcredL100 if (phduser_ncgt;<,=line" namop10L7credlass="sref">phdcredL100 if (phdg"dgt;<))a href="+code_memszdr" class="srefe426mmv/a>==4 rcu_read_unlock - )a href="+code_memszdr" class="srefe42> */v/spa4 phdstrncpy - phdps" coL100 if (phdpr_ffmt_gt;<,=line" namop10L7_lass="sref">phd_gt;< if (phdrcommL100, siz_of line" namop10L7_s" colass="sref">phdps" coL100 if (phdpr_ffmt_gt;<))a href="+code_memszdr" class="srefe42disodrv/a4 */v/spa4 1 .4MASKgsv/aa4; 11L741v/4; phdlin_thread_statusL100" idp11L731" class="line" namop11L43Tmmv/a>==4{ phdlist_head5500"line" namop10L7listlass="sref">phdlistgt;phdlin__rstatusL100cphd_rstatusL100; 1L" idp10L769" class="li126NT_PRSTATUSL*mathe ELF h>ader d_adess is in is e segm43> */v/spa4> phdrs in pregset_lL100cphdfpuL100; 1LLLLLLLLLLL" idp10L769" class="li126NT_PRFPREGL*mathe ELF h>ader d_adess is in is e segm43disodrv/a4; phdrs in pxregset_lL100cphdxfpuL100; 1LLLLLLLLL" idp10L769" class="li126E+coCOR=_XFPREG_TYPEL*mathe ELF h>ader d_adess is in is e segm44>114668v/4> phdaems inoteL100cline" namop10L7noteslass="sref">phdnotesgt;<[3]a href="+coded_addr" class="srefmd_4t;*/v/spaa4; phdnum_notesgt;-e cormat,athe ELF h>ader d_adess is in is e segm4adisodrv/a4; ader d_adess is in is e segm44esa1rsv/,4> phdlin_dump_thread_status - namop10L73>10L682v/="li0L717v/a> ="li0gt;<, struc="line" namop10L7lin_thread_statuslass="sref">phdlin_thread_statusL100cphd_gt;< phd cgt;10L468v/4> phdnum_notesgt;113636v/4: phdddml"prstatus - hrefp10L73>10L682v/t" class="srefxdtgt;phd_rstatusL100,=line" namop10L7_lass="sref">phd_gt;<,=line" namop10L7="li0L717v/a> ="li0gt;<)a href="+coded_addr" class="srefmd_4"esa1rsv/,4; phdclascorc_copy_task_re c - line" namop10L7_lass="sref">phd_gt;< < hrefp10L73>10L682v/t" class="srefxdtgt;phd_rstatusL100.line" namop10L7pr_re lass="sref">phdpr_re gt;<)a href="+coded_addr" class="srefmd_45>10L729v/4{ phdddml"note - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[0], l1L74>11L682v/a> quot;COR= quot;athe EL,=line" namop10L7NT_PRSTATUSlass="sref">phdNT_PRSTATUSL100, siz_of line" namop10L7t" class="srefxdtgt;phd_rstatusL100)," idp10L688" class="line" namop10L45t;*/v/spa4 10L682v/t" class="srefxdtgt;phd_rstatusL100)a href="+coded_addr" class="srefmd_45>10L722v/4; phdnum_notesgt;<++a href="+coded_addr" class="srefmd_45_flagsv/,4; phd cgt;phdfotesiz_ - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[0])a href="+coded_addr" class="srefmd_45>10L468v/4; phd_rstatusL100.line" namop10L7pr_fpval"dlass="sref">phd_r_fpval"dgt;< phdclascorc_copy_task_ pregs - line" namop10L7_lass="sref">phd_gt;< phdNULLgt;< < hrefp10L73>10L682v/t" class="srefxdtgt;phdfpuL100)a href="+coded_addr" class="srefmd_45>113636v/4: phd_rstatusL100.line" namop10L7pr_fpval"dlass="sref">phd_r_fpval"dgt;phdddml"note - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[1], l1L74>11L682v/a> quot;COR= quot;athe EL,=line" namop10L7NT_PRFPREGlass="sref">phdNT_PRFPREGL100, siz_of line" namop10L7t" class="srefxdtgt;phdfpuL100)," idp10L688" class="line" namop10L45esa1rsv/,4 10L682v/t" class="srefxdtgt;phdfpuL100)a href="+coded_addr" class="srefmd_4nie*/v/spa4 phdnum_notesgt;<++a href="+coded_addr" class="srefmd_4 * */v/spa4 phd cgt;phdfotesiz_ - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[1])a href="+coded_addr" class="srefmd_4s=rdrv/a>a4{ .4sd_adgsv/>4; .4s_flagsv/,4; 4; phdclascorc_copy_task_x pregs - line" namop10L7_lass="sref">phd_gt;< < hrefp10L73>10L682v/t" class="srefxdtgt;phdxfpuL100)amref="+coddisoop" class="srefdisodrv4s>10L735v/4{ 10L682v/ddml"notelass="sref">phdddml"note - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[2], l1L74>11L682v/a> quot;LINUX quot;athe EL,=line" namop10L7E+coCOR=_XFPREG_TYPEfMAP_FIXEOgsv/aE+coCOR=_XFPREG_TYPEgt;< ef="+coddisoop" class="srefdisodrv4s>113636v/4; phdxfpuL100) < hrefp10L73>10L682v/t" class="srefxdtgt;phdxfpuL100)a href="+coded_addr" class="srefmd_4sMOUSdrv/a4; phdnum_notesgt;<++a href="+coded_addr" class="srefmd_4 esa1rsv/,4} phd cgt;phdfotesiz_ - hrefp10L73>10L682v/t" class="srefxdtgt;phdnotesgt;<[2])a href="+coded_addr" class="srefmd_4 break>4; .4 * */v/spa4} 1 ss="line" namopsclass="sref">phd cgt; .4 _flagsv/,4; 4> phdddml"extnum_" co - struc="line" namop10L7lin>10L717v/a> lin>10L100c lingt;<, struc="line" namop10L7lin_s>10L717v/a> lin_s>10L100c104extnumlass="sref">phd >104extnumgt;< ef="+coddisoop" class="srefdisodrv4 >10L735v/4: phdrs inaddr_l7600"ss="line" namops_s>ofnL717v/a> l_s>ofngt;<, ss="line" namop10L7segslass="sref">phdsegs -)F h>ader d_adess is in is e segm4 >113636v/4; lingt;ofnL717v/a> l_s>ofngt; lingt;phds_s>entsiz_gt;< siz_of 104extnumlass="sref">phd >104extnumgt;<)a href="+coded_addr" class="srefmd_4GMASKgsv/>4; lingt;phds_s>numgt;< 1a href="+code_memszdr" class="srefe4G>10L635v/4> lingt;phds_s>strndxgt;< phdSHN_UNDEFgt;phdrmem cl - phd >104extnumgt;< 0, siz_of 104extnumlass="sref">phd >104extnumgt;<))a href="+coded_addr" class="srefmd_4G_flagsv/,4; 104extnumlass="sref">phd >104extnumgt;< if (phdsh_typegt;< phdSHT_NULLgt;104extnumlass="sref">phd >104extnumgt;< if (phdsh_siz_gt;< numlass="sref">phds_s>numgt;104extnumlass="sref">phd >104extnumgt;< if (phdsh_fs/kgt;< strndxlass="sref">phds_s>strndxgt;104extnumlass="sref">phd >104extnumgt;< if (phdsh_" cogt;< phdsegs -a href="+coded_addr" class="srefmd_4 esa1rsv/,4; .59>10L729v/5{ ader d_adess is in is e segm59310L729v/5{ phdCONFIG_MMU4700" idp11L740" class="line" namop11L595mmv/a>==5> phdrs in" nam_dump_segss="s - struc="line" namop10L7a>-elass="sref">phdddmeL100c-elass="sref">phdddmeL100,=line" namop10L7="ze_lass="sref">phdr="ze_lL100cphdsiz_gt;< ef="+coddisoop" class="srefdisodrv596mmv/a>==5> phdlimitL100,=ss="line" namoline" namop10L7mm_dr" class="sref">phdmm_dr" c -)F h>ader d_adess is in is e segm5N7mmv/a>==5> ph6rfs/binf class="srefe4WMOUSdrv/a4 p5d_r_p51="li12athe ELF h>ader d_adess is in isead_unlock5 - )a href="+code_memszd5" cla5s="srefe4 > */lass="sref">phdlenifne" namophdpr_ffmt_gt;a hre3fe4WMOUSdrv/a4 8ass="linass="410cphdpr_ffmt_gt;a he_mn_loadma_gt;10L682v/ddml"notela5dps" coL105 if (phd_rstat e segm5N7mmv/a>==5> adma_gt;mophd_r_="0Lliass="f (!dpr_ffmt_gt;a hray="sre4WMOUSdrv/a4 8ay="sr04extnumlass="sref">namt0Llinc86"line" namoppppppppp="+cinueine"mt0Llinc86"line" nine"mt0Llinc86dne" namop1amop10L7_lass="sref">phd_5t;< i5 (phd5s="srefe4 > */lass=ef">adma_gt;mophdpr_ffmt_gt;a he_mass="line" namop11L4e_mass="moadma_gt;mophdpr_ffmt_gt;a he_mg_startlass="sref"e_mg_smophdnum_notesgt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ss="410cadma_gt;mo10L682v/ddml"notela5dlin2f="+co if (phdfpuL100)a hdr" class="410cef">adma_gt;mo10L682v/ddml"notela5dps" coL105 if (phdfotesiz_ -----------------L7lin="line" namoadma_gt;mophd__taskmop10L7m phd_rphdmm_dr" c -)F h>ader d_adess is in oddisoop" class="srefdisodrv5fdisodropSET_UIl 5 - phd_r_="0Lliass=========================54L300" idp11Lss="line" namop10L7sclass="sr=4> pppppppppppppppppidp11"f (!dpr_ffmt_gt;a h="srewrinoteslass="sref">="srewrino="lir_psargsgt;<[linsiz_lass="sref">phdsiz_gt;< ef="+coddisoop" kef">adma_gt;moofnL717v/a> ===========54L300" idp11Lss="line" namop10L7sclass="sr=4> phdxfpuL100) ======54L300" idp11Lskune3fe4WMOUSdrv/a4 kune3f="lir_psargsgt;<[lineagelf_5dpic.500760page 1LsoL684" class="line" namop10L4disodrv5d+code=thref="fs/binfmt_elf_4dpic.425L900"52sref">phdnum_notesgt;;;;;;;;;;;;;;;;;_psargsgt;<[lineage_cache_releaself_5dpic.500760page_cache_release="lir_psargsgt;<[lineagelf_5dpic.500760page 1LsoL684" class="line" namop10L4disodrv5dlin2f="+coiszapv/a4; phdfpuL100)a h}pidp11"f (!dpr_ffmt_gt;a h="sresees>strndxlass="sr="sresees="lir_psargsgt;<[linsiz_lass="sref">phdsiz_gt;< ef="+coddisoop" PAGE_SIZhref="fs/binfmt_PAGE_SIZh="+cooddisoop" class="srefdisodrv5fdisodr/aa4; phdfotesiz_ ---------ine" namop10L7_lass=="line" namop10L7sclass=oddisoop" class="srefdisodrv5fdisodr/ps" coL105h status of each read i5 cap=53) ader d_adessouF="+cL684" class="line" namop10L4disodrv5vps" coL105lin_thread_statusL100" id511L7353ef">phd__taskmop10L7mL740" class="line" namop11L59110L729v/a4; phd_r_="L740" class="line" namop11L59110L729v=4 ader d_adessouF="+c:740" class="line" namop11L59110L729vne" namop1phdlin__rstatusL100c1 ss="line" namopsclass="sref5fMAP_FIXEO5sv/aE+coCOR=_COPY_XFPREGe5100" 5dp11L71L72>1 ss="line" namopsclass="sref5sref">phdr5 in pxregset_lL100c5p5daems inoteL100cline" nam5p10L754is in is e segm59310L729v/5{ #ifdp11L732" class="liCONFIG_MMUlass="sref"ref">phdnu5_notesgt;-elass="sref">phdddmeL100c-elass="sref">phdddmeL100,=line" namop10L7="ze_lass="sref">phdr="ze_lL100cphdsiz_gt;< ef="+coddisoop" class="srefdisodrv596mmv/a>==5> pppppppppppp_dr" class="sref">phdmm_dr" c -)F h>ader d_adess is in is e segm5N7mmv/a>==5> 10L682v/ddml"notela5 specific5 read i cormation fore 5 s i 54e=xfpulass="sdr" class="410c1 -e.ommen5 > 54fpulass="sref5s="srefe4 > */lass="sref">phdlenifne" namophdpr_ffmt_gt;a hre3fe4WMOUSdrv/a4 8ass="linass="410cphdpr_ffmt_gt;a he_mn_loadma_gt;10L682v/ddml"notela5adess is5in is e segm4TABLEapv/a4)5namt0Llinc86"line" namophdlin_dump_thread_5tatus55sref">phdfotesiz_ ---------="+cinueine"mt0Llinc86"line" nine"mt0Llinc862v/4> ph5class="sre5xdtask_struc=L100cphd__taskmop10L7m"f (rphdmm_dr" c -)F h>ader d_adess is in oddisoop" class="srefdisodrv5fdisodrd cgt;phd_r_="0Lliass=========mmv/a>==4> 55"line" namops_s>ofnL7"f (!dpr_ffmt_gt;a h="srewrinoteslass="sref">="srewrino="lir_psargsgt;<[linsiz_lass="sref">phdsiz_gt;< e(L7lin=tif h, line" namonamt0Llinc86"line" namophdpr_ffmt_gt;a he_mass="line" namop11L4e_mass="mophdxfpuL100) ======54L300" idp11Lsnamt0Llinc86"line" namophdpr_ffmt_gt;a he_mg_startlass="sref"e_mg_smophdpr_ffmt_gt;a he_mass="line" namop11L4e_mass="mo10L655sref">phdnum_notesgt;;;;;;;;;mmv/a>==4> phdclascorc_copy_task5re c 5 - line" namopL688" class="line" namop10L3 5/a4: 10L6825/t" c5ass="srefxdtgt0ass="line" namop9L688"98758v/a> .4MASKgs5ass="srefx5tgt;5hdnum_idp11L1L72>1 ss="line" namopsclass="sref5t;56dp10Lline" namop10L7s>104extnumlass="sr5v/4} -elasss="sr na_datae=s_s>numlass="sref"lasss="sr na_datae=s_s="lir e segm5N7mmv/a>==5> p563>11LL676" clap10L73>10L682v/ddml"notela5tgt;p5dddml"note - hrefp10L75>10L656" colass="sref">phdsh_" cogt;lass="srefdisodrv596mmv/a>==5> " namop10L7a>-emt_elf_5dpic.5007600" idp10isref">ph6rfs/binf class="srefe4WMOUSdrv2v/t" clas5="srefxdtgt;1 ss="line" namopsclass="sref5efxdtgt;phdnum_5s="srefe4 > */lass="sref">phdlenifne" namophdpr_ffmt_gt;a hre3fe4WMOUSdrv/a4 8ass="linass="410cphdpr_ffmt_gt;a he_mn_loadma_gt;phdfotesiz_ -ine" namop10L7_lassray="sre4WMOUSdrv/a4 8ay="sr04extnumlass="sref">namt0Llinc86"line" namophdpr_ffmt_gt;a he_mg_startlass="sref"e_mg_smophdpr_ffmt_gt;a he_mass="line" namop11L4e_mass="moph6rfs/binf class="srefe4WMOUSdrv/,4; phd__task ph6rfs/binf class="srefe4WMOUSdrv/;phdclascorc_co5y_tas57dp11Lss="line" namopt" class="srefxdtgt5s="sref">p5dddml"note - hrefp10L75>10L6573>11L685v/a> 4dpic.410L700" idp11L728" class="lin*LIn order"to add 5p10L7t" cl5ss="srefxdtgt;p5 (-elass="srefs="sr="sre4WMOUSdrv/a4 lass="srefs="sr="srmeL100,=line" namop10L7="zes="s="sreparamfmt_elf_5dpic.50s="s="sreparamf 1Lss="line" namo1 ss="line" namopsclass="sref5k>4> phd__tas6struc="line" namop10L7list_headlas5l="sref">p5ass="sref">phdrs inaddr_l5600"s5="line" namopsline" namop10L7a>-ehasr="srr" class="srefe42hasr="srr"dp10isref">ph6rfs/binf class="srefe4WMOUSdrvv/a4} phdsh_fs/kgt0L7f">phdds="srefdisodrv5960L7f">phdds===5> " namop10L7a>-efde=_rstatuslass="s="line" namop9L688"98758v/a> .59>10L75ngt; .59>10L75nv/t" clas5a href="+code=s_s>entsiz_5ass="5ref">phds_s>entsiz_gt;< siz;lass="srefdisodrv596mmv/a>==5> " namop10L7a>-emt_elf_5dpic.5007600" idp10isref">ph6rfs/binf class="srefe4WMOUSdrvngt;phds_s>numgt;4; .59>10L75ngt;phds_s>strdr" class="410c4; phdnotesgt;<[3]a hree10L7lin_s>10L717v/a> lin_s>10L100c104extnumlass=ine"mt0Llinc86"binulass="sref">phdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86//,4; phd >104extnumgt;< 0,loffs="srefdisodrv596loffs===5> " namop10L7a>-eoffset"srefdisodrv596offsetdp10isre ef="+coddisoop" datanfmt_elf_4dpic.489datanfmmo4> 10L468v/4> nume=nodp10ine"mt0Llinc86"line" nine"mt0Llinc86/ass="sref5extnumgt;< if (phdnotesgt;<[3]a href="+coded_addr" class="srefmd_4t;*/v/spas>10L100cphdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86/="sref">p5extnumgt;< if (phd_rstatusL100; 1L" idp10L769" class="li126NT_PRSTATUSL*="line" namophdfpuL100)a hi a4> phd >105extnumgt;< if (phdfpuL100)a hi a4a4> phdsh_" cogtLIST_HEADs="sref">phdfpuLIST_HEAD04extnumlass="sref">>11L741mt_elf_4dpic.431L60>11L741mt_e="+coine"mt0Llinc86"line" nine"mt0Llinc86/v/t" clas5ef="fs/binfmt_elf_5dpic.5514700599=xfpulass="sdr" class="410cphdxfpuL100; 1LLLLLLL" idp10L769" class="li126NT_PRFPREGL*mphdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86dess is 6n is e segm59210L729v/5{ 6a hre6="fs/b31" class="line" namop11L4n break>4; ader d_6dess 602xfpulass="sref">phdxfpuL100; 1LLLxLLLLL" idp10L769" class="li126E+coCOR=_XFPRphdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86d3redp1MMU6p10L468v/4> 11L741v/4; ph6rfs/binf class="srefe4WMOUSdr6gss="sass=6sref">phdrs in" nam_dump_6egss=60typelass="sref">phdsh_typegt"srene" namop10L7segslass="sref">phdsegsphd_rstatusL100; 1"+coddisoop" class="srp lin_s>10L100cphdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86d7s="sass=6sxtnumgt;< if (phdfpuL100)a hine"mt0Llinc86"line" nine"mt0Llinc86d8s="sass=6sxtnumgt;< if (phdsh_" cogtEineHaamop10L7s>104extnEineHaam==5> " namop10L7a>-elrp nfmt_elf_4dpic.490L7p0" idp10Lss="line" namops>104extnumlass="sr6"lin2f="+c6de=thread" class="se565736 phne" namop10L7segslass="sref">phdsegs -)F h>ader d_adess is in is e segm4 >113636Lss="line" namops>104extnumlass="sr6/a4 p5d_r_p51="li12athe ELF h>ader d_6dess is 6n isead_unlock5 - )a hre6="+co6e_memszd5" cla685v/a> 4dpic.410L700" idp11L728" class="lin*LIn order"to add 6dps" coL106 if ( is e segm59310L729v/5{{{{{{{{{* Thisf_4dbecause those 009300es that could possibly chamve map_couns idp11L728" class="lin*Lwe nene"to keep a6==4 phd_6t;< i613>11L685v/a> 4dpic.410L70{{{{{{{{{* finishingmt__4dc.410="sr" idp11L725" class="lin mathe ELF h>ader d6d7s="sass=6 if (es0es, but it doesnef="ft chamve idp11L725" class="lin mathe ELF h>ader d6dlin2f="+c6 if (phe_mn_lo emtas tomt_elc.410siz_" idp11L725" class="lin mathe ELF h>ader d6dps" coL106 if (ph6dps" coL106ine" namop10L7__task_cred6ass="6ref">phd__task> es: too"larve tombe oe v/4ck{*" idp10Lss="line" namops in pregset_lass="6dphdCONFIG6 - phd_r_=">10L100c104extnumlass=ine"mt0Llinc86"binkmellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; namop10L7s>104extnumlass=) ef="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc86d=4 104extnumlass=)ne"mt0Llinc86"line" nine"mt0Llinc86d6s="sass=6cu_read_unlock - )a hre6="+co62"line" namops_s>ofnL7goto=54L300" idp11Lscleanure4WMOUSdrv/a4 cleanur3636Lss="line" namops>104extnumlass="sr6d/a5; phdsh_fs/kgtpef="+coddisoop" class="srefdisodrvine"mt0Llinc86"binkzellocop10L7s>104extnkzellocmeL100"srefmd_4G_flagsv/,4; ="fs/binfmt_elf_4dpic.4614200" idp11Lef="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc86d8s="sass=6f="fs/binfmt_elf_4dpic.426L900"62sref">phdnum_"f (!dpr_ffmt_gt;a h="fs/binfmt_elf_4dpic.4614200" idp11ne"mt0Llinc86"line" nine"mt0Llinc86dlin2f="+c6iszapv/a4; phdfpugoto=54L300" idp11Lscleanure4WMOUSdrv/a4 cleanur3636Lss="line" namops>104extnumlass="sr6/aa4; phdxfpuL100pf="+code_memszdr" class="srefeine"mt0Llinc86"binkmellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; pf="+code_memszdr" class="srefe1Lef="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc86v/4; phdfote"f (!dpr_ffmt_gt;a h=f="+code_memszdr" class="srefe1ne"mt0Llinc86"line" nine"mt0Llinc86vps" coL106h status of each read i6 cap=63) 104extnumlass="sr6/ps" coL106lin_thread_statusL100" id611L7363sref">phd >104extnumgt;< 0,s/binfmt_elf_4dpic.4813700" iine"mt0Llinc86"binkmellocop10L7s>104extnkmellocmeL10 href="+code=fpulM_NOTEode=_rstatuslass=lM_NOTEof">ph*s="srefm">phdnotesgt;<[3]a href="+coded_addr" class="srefmd_4t;*/v/sp1Lef="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc86vphdCONFIG6ef="fs/binfmt_elf_4dpic.460550063ref">phd_r_=""f (!dpr_ffmt_gt;a hs/binfmt_elf_4dpic.4813700" i1ne"mt0Llinc86"line" nine"mt0Llinc86v=4 pgoto=54L300" idp11Lscleanure4WMOUSdrv/a4 cleanur3636Lss="line" namops>104extnumlass="sr6/6s="sass=6phdlin__rstatusL100cphdsh_siz_gts_elf_4dpic.4713700" idp1ine"mt0Llinc86"binkmellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; t_elf_4dpic.461L900" idp11Lef="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc86v/a5; phd_rstatusL100.!dpr_ffmt_gt;a ht_elf_4dpic.461L900" idp11ne"mt0Llinc86"line" nine"mt0Llinc86v8s="sass=6xdtask_struc=L100cphdnum_notesgt;goto=54L300" idp11Lscleanure4WMOUSdrv/a4 cleanur3636Lss="line" namops>104extnumlass="sr6/lin2f="+c6sv/aE+coCOR=_COPY_XFPREGe6100" 6dp11L731" class="line" namop11L4n break>4; phdr6 in pxregset_lL100cphdxfpuL100fmt_elf_4dpic.471L800" idp1ine"mt0Llinc86"binkmellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; fpulass="sref">phdxfpuL100)a hf="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc8611L741v/4>6phdfote"f (!dpr_ffmt_gt;a hfpulass="sref">phdxfpuL100)ane"mt0Llinc86"line" nine"mt0Llinc861ps" coL106daems inoteL100cline" nam6p10L764) 104extnumlass="sr6ref">phdnu6_notesgt;104extnumlass="sr6v/4} 10L682v/ddml"notela6dess is 6n is e segm4a>113636v/4+c6fdp1164"line" namops_s>ofnL70,=line" namop10L7="zes="s_>11L74+code=pr_ffmt_la="s_>11L74sodrv4 >10L735v/4: phddr" class="410c11L741v/4; 11L741v/4; 104extnumlass="sr6r8s="sass=6 of every read #39;s pr6=tatu64dp11L1L72>1 -e.ommen6 > 64fpulass="sref">phdfpu5s="srefe4 > */lass=class="href="+codc_4 ine"mt0Llinc86"binfmt_elf_4dpic.4curf_4dpic.411L100" id href="phdpr_ffmt_gt;a ha="s_v/4;_addr" class="sra="s_v/4;_"sref">phdpr_ffmt_gt;a ha hreraddr" class="sra hrer ia>.dpr_ffmt_gt;a hs_loadma_gt;104extnumlass="sr6adess is6in is e segm4TABLEapv/a4)610L735v/4: 10L735v/4: 4; 10L682v/ddml"notela6tatuslass=6sref">phdlin_dump_thread_6tatus65sref">phdfotesiz_ ---------"line" namo104extnkzellocmeL100"srefmd_4G_flagsv/,4; rsre4WMOUSdrv/a4 tmr3636a hf="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc862v/4> phdnu6xdtask_struc=L100cphd__taskmop10L7mmmmmmmmmmmmmmmmmgoto=54L300" idp11Lscleanure4WMOUSdrv/a4 cleanur3636Lss="line" namops>104extnumlass="sr6d cgt;104extnumlass="sr6v/4{ pppppppppdpr_ffmt_gt;a hrsre4WMOUSdrv/a4 tmr3636 break>4; 4; 104extnumlass="sr6dess is 6ef="+code=num_noteslass="6ref">65"line" namops_s>ofnL7ppppppppdpr_ffmt_gt;a hmd_adadr" class="srefe4md_adadrmeL10&ak>4; 11L741mt_e="+coine"mt0Llinc86"line" nine"mt0Llinc86/a4 phdL688" class="line" namop10L3 6ts/kne"lis6l"prstatus - hrefp10L76>10L665dp11L1L72>1 phdclascorc_copy_task6re c 65fpulass="sref">phdfpudpr_ffmt_gt;a hmd_ad5s=_each" class="srefe4md_ad5s=_eachmeL10 href="+code=fpr" class="srefmd_4 , &ak>4; 10L682v/ddml"notela6/a4: 11L741v/4; 11L741v/4; 104extnumlass="sr6>phdddml"n6te - hrefp10L73>10L6826/t" c66sref">phdfotesiz_ ---------i; 104extnumlass="sr6>v/4> ph6/lass="sre6ef="+code=num_noteslass="6ref">66ef">phd__taskmop10L7mmmmmmmmm"line" namo11L741v/4; 11L741v/4; 66ref">phd_r_="0Lliass=========a href="fs/binfmzoddisoop" class_z3636strndxgt;11L741v/4; 11L741v/4; pppppppppdpr_ffmt_gt;a hrh1L741v/4; numlass="sref">11L741v/4; 104extnumlass="sr6>ess is 6ef="+code=_rstatuslass="s6ef">p66"line" namops_s>ofnL7L688" class="line" namop10L3 6tgt;10L666dp11L1L72>1 phdxfpuL100fill 1L" idp10L769" class="lfill 1L" idp1meL10 href="+code=fp="fs/binfmt_elf_4dpic.4614200" idp1 hf="+coddisoop" fmt_elf_4dpic.4curf_4dpic.411L100 hf="+coddisoop" fpr"+code=pr_ffmt_lapr"="+cgs -a href="+coded_igncoddisoop" class_ignc100)aLss="line" namops>104extnumlass="sr6ephdddml"n6a+ phdfotendxgt;104extnumlass="sr6ev/4> ph6/,4; phd >104extnumgt;< 0,mt_elf_4dpic.480L700ref="+cine"mt0Llinc86"binfmt_elf_4dpic.4curf_4dpic.411L100" id href="phdpr_ffmt_gt;a hrap_counsode=pr_ffmt_lassap_couns i36Lss="line" namops>104extnumlass="sr6/;phd_r_=">10L100c104extnumlass="sr6e/4{ phdclascorc_co6y_tas67dp11Lss="line" namopt" class="srefxdtgt6s="sref">p6dddml"note - hrefp10L76>10L6676 line" namop1 phdsh_fs/kgtmt_elf_4dpic.480L700ref="+c++Lss="line" namops>104extnumlass="sr6es/kne"lis6 (phdxfpuL100;rp nfmt_elf_4dpic.490L7p0" idp10ine"mt0Llinc86"binmt_elf_4dpic.480L700ref="+cithe E"mt0Llinc86"binPN_XNUMlf_4dpic.480L70PN_XNUM="+ci?E"mt0Llinc86"binPN_XNUMlf_4dpic.480L70PN_XNUM="+ci: .59>10L76v/,4; phdsh_typegtfill pregset_l_drv/.r0L769" class="lfill pregset_l_drv/.rmeL10 href="+code=fpnamop10L7s>104extnumlass= hf="+coddisoop" ;rp nfmt_elf_4dpic.490L7p0" idp10aLss="line" namops>104extnumlass="sr6l="sref">p6ass="sref">phdrs inaddr_l6600"s68(phdsh_fs/kgthasr="srr" class="srefe42hasr="srr"dp10isr1Lss="line" namops>104extnumlass="sr6ls/kne"lis6a href="+code=s_s>ofnL7176/a> 68" colass="sref">phdsh_" cogtfmt_elf_4dpic.4curf_4dpic.411L100" id href=" .59>10L76vv/t" clas6a href="+code=s_s>entsiz_6ass="68p11L71L72>1 ss="line" namopsclass="sref6ngt;phds_s>numgt;685v/a> 4dpic.410L700" idp11L728" class="lin*LIn order"to add 6ngt;104extn6mlass69="fs/binfmt_elf_5dpic.501140{{{{{{{{*" idp10Lss="line" namops in pregset_lass="6/>4> 104extnumlass="sr6/ass="sref6extnumgt;< if (phdsh_typegtfill ded_addr" class="srfill ded_meL10 href="+code=fps/binfmt_elf_4dpic.4813700" ii+re efinfmt_elf_5dstring">"4dpi" idp10L hf="+coddisoop" 4dpic.430L7fmt_elf_4dpic.44dpic.430L74 , d"srefmd_4G_flagsv/,4; ="fs/binfmt_elf_4dpic.4614200" idp11Lef="+coddisoop" ="fs/binfmt_elf_4dpic.4614200" idp11ne" namop9L688"98758v/a> .59>10L76/="sref">p6extnumgt;< if (phdsh_siz_gtsill 1f="+code_memszdr" clsill 1f="+cmeL10 href="+code=fp=f="+code_memszdr" class="srefe hf="+coddisoop" fmt_elf_4dpic.4curf_4dpic.411L100" id href=" .59>10L76//a4} phdsh_fs/kgtfill ded_addr" class="srfill ded_meL10 href="+code=fps/binfmt_elf_4dpic.4813700" ii+r1 efinfmt_elf_5dstring">"4dpi" idp10L hf="+coddisoop" 4dpicPSINFOfmt_elf_4dpic.44dpicPSINFO4 , d"srefmd_4G_flagsv/,4; =f="+code_memszdr" class="srefe1Lef="+coddisoop" =f="+code_memszdr" class="srefe1ne" namop9L688"98758v/a> .59>10L76/s/kne"lis6extnumgt;< if (nume=nodp10isr2ne" namop9L688"98758v/a> .59>10L77v/5{ p5d_r_p51="li12athe ELF h>ader d_7dess is 7n is e segm59210L729v/5{ 7a hre70sref">phdfotendxgt;phdsegsphdpr_ffmt_gt;a hsaved_auxvmop10L7segslasssaved_auxv="+cne" namop9L688"98758v/a> .59>10L77foredp1MMU7processathe ELF h>ader d_7dess 70dp11Lline" namop10L7mem class="sref">ph7d3redp1MMU7pphd >104extnumgt;< 0,ilf_5dpic.500760i="+cisref">ph6rfs/binf class="srefe4WMOUSdr7>phdCONFIG7MMU4700" idp11L740" class7"line70d_4">10L468v/do">ph6rfs/binf class="srefe4WMOUSdr7>5hdCONFIG7Mxtnumgt;< if (p4extnumgt;< 0,ilf_5dpic.500760i="+ci+sr2ne" namop9L688"98758v/a> .59>10L77v6hdCONFIG7Mxtnumgt;< if (phdfpuAT_ulasrefe1ne" namop9L688"98758v/a> .59>10L77d7s="sass=7sxtnumgt;< if (phdsh_fs/kgtfill ded_addr" class="srfill ded_meL10&ak>4; nume=nodp10++] efinfmt_elf_5dstring">"4dpi" idp10L hf="+coddisoop" 4dpAUXVfmt_elf_4dpic.44dpAUXV4 ,e" namop9L688"98758v/a> .59>10L77d8s="sass=7sxtnumgt;< if (phdnum_notesgt;;;4extnumgt;< 0,ilf_5dpic.500760i="+ci*s="srefm href="+code=fpnamene" namop10L7segslass="sref">phdseg1Lef="+coddisoop" auxvmop10L7segslassauxv)a h1ne" namop9L688"98758v/a> .59>10L77d9s="sass=7sf="fs/binfmt_elf_5dpic.57 1 ss="line" namopsclass="sref7/a4 numgt;685v/a> 4dpic.410L700" Try toma href="fFPU.{*" idp10Lss="line" namops in pregset_lass="7dess is 7n isead_unlock5 - )a hre7="+co71sref">phdfote"f (0 href="+code=fp="fs/binfmt_elf_4dpic.4614200" idp1gs -a href="+codedpr_fpvali" class="srefe42pr_fpvali"="+cisss="line" namops in pregset_lass="7doredp1MMU7 if (phd__taskmop10L7mf">phdsh_fs/kgtfill ded_addr" class="srfill ded_meL10 href="+code=fps/binfmt_elf_4dpic.4813700" ii+r4extnumgt;< 0,nume=noteslass="sref">nume=nodp10++,e" namop9L688"98758v/a> .59>10L77dphdCONFIG7 if (phd_r_="0Lliass========= efinfmt_elf_5dstring">"4dpi" idp10L hf="+coddisoop" 4dpic00" ifmt_elf_4dpic.44dpic00" i4 , d"srefmd_4G_flagsv/,4; t_elf_4dpic.461L900" idp11Lef="+coddisoop" t_elf_4dpic.461L900" idp11ne" namop9L688"98758v/a> .59>10L77==4 4; phd_7t;< i716ref">phdfote"f (ndxgt;phdxfpuL100)aoddisoop" class="srefdisodrv5fdisod7d7s="sass=7 if (phdf">phdsh_fs/kgtfill ded_addr" class="srfill ded_meL10 href="+code=fps/binfmt_elf_4dpic.4813700" ii+r4extnumgt;< 0,nume=noteslass="sref">nume=nodp10++,e" namop9L688"98758v/a> .59>10L77d8s="sass=7 if (phdnum_notesgt;;;;;;;;; efinfmt_elf_5dstring">"LINUX" idp10L hf="+coddisoop" elf_4dpic500" i_TYPilf_4dpic.480L70elf_4dpic500" i_TYPi4 , d"srefmd_4G_flagsv/,4; fpulass="sref">phdxfpuL100)a hf="+coddisoop" fpulass="sref">phdxfpuL100)ane" namop9L688"98758v/a> .59>10L77=9s="sass=7 if (p5d_r_p51="li12athe ELF h>ader d_7dps" coL107 if (phdfotendxgt;104extnumlass="sr7dps" coL107_read_lock - )a href="+7ode_m722xfpulass="sref">phdxfpuL100set_fde=_rstatuslass=set_fdmeL10ef">phdxfpuL100KERNEs_Dhref="fs/binfmt_KERNEs_Dh100)ane" namop9L688"98758v/a> .59>10L77dps" coL107ine" namop10L7__task_cred7ass="72dp11L732" class="liE+coCOR=_COPY_XFPREG7dphdCONFIG7 - phd_r_=">10L100c104extnumlass=) ;hdnum_notesgt;;;;;;;;; efinfmt_elf_5dsc.410L700" TElfdrv/.r *" idp10Lss="line" namops in pregset_lass="67=4 phdsh_typegtfeoffset"srefdisodrv596offsetdp1cphdnotesgt;<[3]a hrefregs"+coddisoop" class="srp lin_ ;hdnum_ninfmt_elf_5dsc.410L700" TProgramdrv/.r s*" idp10Lss="line" namops in pregset_lass="67=s="sass=7au_read_unlock - )a hre67"+co672iz_lass="sref">phdsh_siz_gtsiffset"srefdisodrv596foffsetdp10ine"mt0Llinc86"bingeoffset"srefdisodrv596offsetdp1e" namop9L688"98758v/a> .59>10L77dps="sass=7 - .59>10L77dps="sass=7 ="fs/binfmt_elf_4dpic.4267900"67sref">phdnum_"infmt_elf_5dsc.410L700" TWino=81370 i 11rym*" idp10Lss="line" namops in pregset_lass="67=s="sass=7 szapv/a4; 10L682v/ddml"notela67aa4; ph6rfs/binf class="srefe4WMOUSdr7>/4; >ph6rfs/binf class="srefe4WMOUSdr7>/s" coL107_ status of each read i67cap=67) */lass=clf_5dpic.500760i="+cisref"4extnumgt;< 0,ilf_5dpic.500760i="+ci*&l E"mt0Llinc86"binPume=noteslass="sref">nume=nodp10in4extnumgt;< 0,ilf_5dpic.500760i="+ci++ddisoop" class="srefdisodrv5fdisod7dps" coL1067in_thread_statusL100" id671L73673f">phd__taskmop10L7mfass="sref">phdxfpuL100seoddisoop" class_z3636Lsnumlass="sref">1370 _s>eL10 href="+code=fps/binfmt_elf_4dpic.4813700" ii+r4extnumgt;< 0,nlf_5dpic.500760i="+cine" namop9L688"98758v/a> .59>10L77dphdCONFIG67f="fs/binfmt_elf_4dpic.4675500673p10Lline" namop10L7s>104extnumlass="sr67=4 pgf">phdxfpuL100seoddisoop" class_z3636Lsnumlass="sref">11L741v/4; .59>10L77dps="sass=7ahdlin__rstatusL100cphdf">phdsh_fs/kgtf 4ded_addr" class="srp 4ded_idp1ine"mt0Llinc86"binumellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; pf 4ded_addr" class="srp 4ded_idp1i hf="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc8678s="sass=67dtask_struc=L100cphdnum_notesgt;gf (!dpr_ffmt_gt;a h=f 4ded_addr" class="srp 4ded_idp1i e"mt0Llinc86"line" nine"mt0Llinc8678s="sass=7 v/aE+coCOR=_COPY_XFPREGe6700" 673pulass="sref">phdfpudddddddddoto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77dref">phdr67in pxregset_lL100cp5d_r_p51="li12athe ELF h>ader d_7d1L741v/4>67a href="fs/binfmt_elf_4d67c.44674ref">phdfotesiz_ --">phdsh_fs/kgtfill dELF ed_is"+coddisoop" class=ill dELF ed_is"+coeL10 href="+code=fp=f 4ded_addr" class="srp 4ded_idp1ihf="+coddisoop" Geoddisoop" class_z3636Lhf="+coddisoop" Geoffset"srefdisodrv596offsetdp1ine"mt0Llinc86"line" nine"mt0Llinc867ps" coL1067aems inoteL100cline" nam6710L767) phdsh_typegtfeoffset"srefdisodrv596offsetdp1c104extnumlass="sr67ef">phdnu67notesgt;phd__taskm688" class="line" namop10L3 67v/a4; 104extnumlass="sr67/4} phdsh_siz_gtsatanfmt_elf_4dpic.489datanfmmo .59>10L77d8s="sass=67of every read #39;s pr67tatu674 colass="sref">phdsh_" cogtfeoffset"srefdisodrv596offsetdp1cnumlass="sref">cosa="s_cvma_atan=s_s>eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrmm_binfmt_elf_5dpic.500mm_binfmtdp1ine"mt0Llinc86"line" nine"mt0Llinc867ps="sass=7 final corc a>-e.ommen67> 674 line" namop10L7_lass="srefneoffset"srefdisodrv596offsetdp1cnumlass="sref">cosa="s_cxtrarpatan=s_s>eL10aLss="line" namops>104extnumlass="sr7ddess is67n is e segm4TABLEapv/a4)67a hr675xfpulass="sref">phdxfpuL100fadess is in is e segm4 >113636Lne"mt0Llinc86"bingeoffset"srefdisodrv596offsetdp1e" namop9L688"98758v/a> .59>10L77datuslass=67ref">phdlin_dump_thread_67atus675ref">>ph6rfs/binf class="srefe4WMOUSdr7>v/4> 10L682v/ddml"notela67ef">phdnu67dtask_struc=L100cphd__taskmop10L7mmmt0Llinc86"binmtref="fs/binfmt_elf_4dpic.4807600" idp10ine"mt0Llinc86"binumellocop10L7s>104extnkmellocmeL100"srefmd_4G_flagsv/,4; ptref="fs/binfmt_elf_4dpic.4807600" idp10i hf="+coddisoop" GFP_KERNEss="sref">phdfpuGFP_KERNEs="+coine"mt0Llinc86"line" nine"mt0Llinc867 cgt;phd_r_="0Lliass==f (!dpr_ffmt_gt;a h=tref="fs/binfmt_elf_4dpic.4807600" idp10i e"mt0Llinc86"line" nine"mt0Llinc867 4} pppppppppdoto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77dess is 67f="+code=num_noteslass="67ef">67"line" namops_s>ofnL7p">phdsh_fs/kgtfill dE0" id_"+code_memszdr" clsill 1E0" id_"+coeL10 href="+code=fpcamop10L7s>104extnumlass= hf="+coddisoop" ;tref="fs/binfmt_elf_4dpic.4807600" idp10ihf="+coddisoop" ;rpess is in is e segm4 >113636Lhf="+coddisoop" ;t_elf_4dpic.480L700ref="+ciine"mt0Llinc86"line" nine"mt0Llinc867 a5; 1 phdclascorc_copy_task67e c 675 line" namop10L7_lass="srefneoffset"srefdisodrv596offsetdp1ce"mt0Llinc86"binuatanfmt_elf_4dpic.489datanfmmop5d_r_p51="li12athe ELF h>ader d_7dphdddml"n67e - hrefp10L73>10L68267t" c676ref">phdfotendxgt;s_sdp10it;104extnumlass=) ;p5d_r_p51="li12athe ELF h>ader d_7dp/4> s_sdp10ithe E"mt0Llinc86"binPmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10it|| dpr_ffmt_gt;a h="sre>wino=_elf_4dpic.489dasre>wino=eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihf="+coddisoop" Gamop10L7s>104extnumlass= hf"srefmd_4G_flagsv/,4; namop10L7s>104extnumlass=) oddisoop" class="srefdisodrv5fdisod7dlass="sre67f="+code=num_noteslass="67ef">67ef">phd__taskmop10L7mmoto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77d;676p10Lline" namop10L7s>104extnumlass="sr67/4{ phdsh_typegtfs_s>numlass="sref">s_sdp10it; .59>10L77d;ss is 67f="+code=_rstatuslass="s67f">p676ref">phdfote"f (ndxgt;s_sdp10ithe E"mt0Llinc86"binPmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10i" namop9L688"98758v/a> .59>10L77d;a5; || dpr_ffmt_gt;a h="sre>wino=_elf_4dpic.489dasre>wino=eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihf="+coddisoop" Gf 4ded_addr" class="srp 4ded_idp1ihf"srefmd_4G_flagsv/,4; nf 4ded_addr" class="srp 4ded_idp1i oddisoop" class="srefdisodrv5fdisod7dl/kne"lis67ddml"note - hrefp10L76710L6676ref">phdnum_notesgt;goto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77d;class="s67"srefxdtgt;1 ss="line" namopsclass="sref7/fxdtgt;phdfotens="srefe4 > */lass=cvmaddisoop" class=vmatdp1ce"mt0Llinc86"binumt_elf_4dpic.4curf_4dpic.411L100" id href="phdpr_ffmt_gt;a hramaeddisoop" class=amaep10in4extnumgt;< 0,ivmaddisoop" class=vmatdp1n4extnumgt;< 0,ivmaddisoop" class=vmatdp1ce"mt0Llinc86"binuvmaddisoop" class=vmatdp1">phdpr_ffmt_gt;a hr_mn_lo ddisoop" class=vm__lo="+ca0L676" clap10L73>10L682v/ddml"notela67v/4> phd_rstatusL100; 1"+coddisoop" class="srp lin_s4G_flagsv/,4; nf 4ddr" class="srp 4p10ie" namop9L688"98758v/a> .59>10L77d,4; phd__taskmop10L7mmmt0Llinc86"binmtsreamop10L7segslass=tsreamlin_s4G_flagsv/,4; ntoddisoop" class_z3636Lss="line" namops>104extnumlass="sr67;104extnumlass="sr67/4{ phdclascorc_co67_tas677_psargslass="sref">pgf">phdxfpuL100seoddisoop" class_z3636Lse"mt0Llinc86"binuvmaddisoop" class=vmatdp1">phdpr_ffmt_gt;a hr_mn"11ddisoop" class=vm_"11636Ls-"mt0Llinc86"binuvmaddisoop" class=vmatdp1">phdpr_ffmt_gt;a hr_mnstar ddisoop" class=vm_star 636Lss="line" namops>104extnumlass="sr67;ss is 67ddml"note - hrefp10L76710L6677phdf">phdsh_fs/kgtf 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_typaddr" class="srp _typa636Lse"mt0Llinc86"binuPT_LOADf_4dpic.480L70PNT_LOAD636Lss="line" namops>104extnumlass="sr67;/kne"lis67 (phdnum_notesgt;g">phdsh_fs/kgtf 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_eoffset"srefdisodrv59p_eoffse636Lne"mt0Llinc86"bingeoffset"srefdisodrv596offsetdp1e" namop9L688"98758v/a> .59>10L77dv/t" clas67+ phdfpudpr_ffmt_gt;a hm 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_vf">pt"srefdisodrv59p_vf">p636Lse"mt0Llinc86"binuvmaddisoop" class=vmatdp1">phdpr_ffmt_gt;a hr_mnstar ddisoop" class=vm_star 636Lss="line" namops>104extnumlass="sr67 * */v/sp67} pt"srefdisodrv59p_pf">p636Lse"f">ph6rfs/binf class="srefe4WMOUSdr7>phdddml"n67a href="fs/binfmt_elf_4d67c.48678ref">phdfotesiz_ --">phdsh_fs/kgtf 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_illieoddisoop" class_p_illieo636Lse"mt0Llinc86"binumay"sreddisoop" class=may"sreeL10 href="+code=fpcvmaddisoop" class=vmatdp1hf="+coddisoop" fpr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrmm_binfmt_elf_5dpic.500mm_binfmtdp1i?E"mt0Llinc86"binPeoddisoop" class_z3636Ls:"f">ph6rfs/binf class="srefe4WMOUSdr7>p/4> phdsh_typegtf 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_memeoddisoop" class_p_memeo636Lse"mt0Llinc86"binutoddisoop" class_z3636Lss="line" namops>104extnumlass="sr67/,4; phd__taskmop10L7mmmt0Llinc86"binmeoffset"srefdisodrv596offsetdp1c104extnumlass="sr67/phd_r_="0Lliass==mt0Llinc86"binm 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_iinfmt_elf_5dpic.500p_binfmtdp1se"mt0Llinc86"binuvmaddisoop" class=vmatdp1">phdpr_ffmt_gt;a hr_mniinfmt_elf_5dpic.500vm_binfmtdp1&ak"mt0Llinc86"binuVM_READf_4dpic.480L70PVM_READtdp1&E"mt0Llinc86"binPNF_Rf_4dpic.480L70PNF_R636Ls:"f">ph6rfs/binf class="srefe4WMOUSdr7>p4{ pgf (ndxgt;phdpr_ffmt_gt;a hr_mniinfmt_elf_5dpic.500vm_binfmtdp1&ak"mt0Llinc86"binuVM_WRITlf_4dpic.480L70eVM_WRITlp10i e"mt0Llinc86"line" nine"mt0Llinc867="sref">p67ss="sref">phdrs inaddr_l6700"s678line" namops_s>ofnL7ppppppppdpr_ffmt_gt;a hm 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_iinfmt_elf_5dpic.500p_binfmtdp1s;104extnumlass="sr67/t;phdff (ndxgt;phdpr_ffmt_gt;a hr_mniinfmt_elf_5dpic.500vm_binfmtdp1&ak"mt0Llinc86"binuVM_EXECf_4dpic.480L70eVM_EXECp10i e"mt0Llinc86"line" nine"mt0Llinc867=/kne"lis67 href="+code=s_s>ofnL71767a> 678ref">phdnum_notesgt;;;;;;;;; pr_ffmt_gt;a hm 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_iinfmt_elf_5dpic.500p_binfmtdp1s;104extnumlass="sr67//t" clas67 href="+code=s_s>entsiz_67ss="678pulass="sref">phdfpudpr_ffmt_gt;a hm 4ddr" class="srp 4p10idpr_ffmt_gt;a hsp_alignt_elf_5dpic.500p_aligntdp1se"mt0Llinc86"binulf_4EXEC_PAGESIZlf_4dpic.480L70elf_4EXEC_PAGESIZltdp1ss="line" namops>104extnumlass="sr67gt;p5d_r_p51="li12athe ELF h>ader d_7dgt;phdfotesiz_ --">phdsh_fs/kgtfs_s>numlass="sref">s_sdp10it; .59>10L77dphd cgt;<67="fs/binfmt_elf_4dpic.4967700"679 numlass="sref">s_sdp10ithe E"mt0Llinc86"binPmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10i" namop9L688"98758v/a> .59>10L77d/,4; phd__taskmop10L7mfass=|| dpr_ffmt_gt;a h="sre>wino=_elf_4dpic.489dasre>wino=eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihfampak>4; phd_r_="0Lliass========= oto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77dass="sref67xtnumgt;< if (p67xtnumgt;< if (4; s_sdp10ihf="+coddisoop" fpr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10ioddisoop" class="srefdisodrv5fdisod7d>/kne"lis67xtnumgt;< if (phdnum_notesgt;goto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L77dv/t" clas67f="fs/binfmt_elf_5dpic.567470067911L71L72>1 ss="line" namopsclass="sref78/5{ phdfotens="srefe4 > */lass=clf_5dpic.500760i="+cisref"4extnumgt;< 0,ilf_5dpic.500760i="+ci*&l E"mt0Llinc86"binPume=noteslass="sref">nume=nodp10in4extnumgt;< 0,ilf_5dpic.500760i="+ci++ddisoop" class="srefdisodrv5fdisod78oredp1MMU78rocessathe ELF h>ader d_78ess 780 nwino==noteL10 href="+code=fpc/binfmt_elf_4dpic.4813700" ii+r4extnumgt;< 0,nlf_5dpic.500760i="+cihf="+coddisoop" fpr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihfampak>4; 104extn78a hr780f">phd__taskmop10L7mfass="sreoto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L778phdCONFIG78MU4700" idp11L740" class78line780p10Lline" namop10L7s>104extnumlass="sr685hdCONFIG78xtnumgt;< if ( 4dpic.410L700" Twino=0outt_el811L741 /4; phdsh_siz_gtsd_ad5s=_each" class="srefe4md_ad5s=_eachmeL10 href="+code=fpr" class="srefmd_4 , &ak>4; 10L682v/ddml"notela687s="sass=78xtnumgt;< if (phddr" class="410c11L741v/4; 11L741v/4; phdnum_notesgt;;;444444444444444">phdsh_siz_gtsd_ad511ry" class="srefe4md_ad411rymeL10 href="+code=fpr" class="srefmd_4 , dr" class="410c11L741v/4; 11L741v/4; 1 ss="line" namopsclass="sref78a4 4; phdfotesiz_ ---------i; (ndpr_ffmt_gt;a htwino==noteslass="sref">nwino==noteL10 ampak>4; 4; .59>10L778ps" coL1078if (phd__taskm688" class="line" namop10L3 68phdCONFIG78if (104extnumlass="sr68=4 see>eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihf="+coddisoop" Gatanfmt_elf_4dpic.489datanfmmophd_78;< i781line" namops_s>ofnL7poto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L778ps="sass=78if ( .59>10L7788s="sass=78if (phdnum_nf (ndxgt; .59>_asre>sef10L7seL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihfampak>4; s_sdp10ihfampak>4; .59>10L7789s="sass=78if (phdfpuddddddddddddddddddddd>4; .59>10L778ps" coL1078if (>ph6rfs/binf class="srefe4WMOUSdr78ps" coL1078read_lock - )a href="+78de_m782 4; s_sdp10ihf="+coddisoop" fpr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10ioddisoop" class="srefdisodrv5fdisod78ps" coL1078ne" namop10L7__task_cred78ss="782f">phd__taskmop10L7mmoto=54L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10ie" namop9L688"98758v/a> .59>10L778phdCONFIG78- 104extnumlass="sr68=4 10L682v/ddml"notela68=s="sass=78u_read_unlock - )a hre68"+co682line" namops_s>ofnL7p">phdsh_fs/kgtfs_s>numlass="sref">s_sdp10it; .59>10L778ps="sass=78- phdff (ndxgt;s_sdp10ithe E"mt0Llinc86"binPmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedrlimilf_4dpic.431L60mt_milp10i" namop9L688"98758v/a> .59>10L778ps="sass=78="fs/binfmt_elf_4dpic.4268900"682ref">phdnum_notesgt;;;444|| dpr_ffmt_gt;a h="sre>wino=_elf_4dpic.489dasre>wino=eL10 href="+code=fpcmr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1ihf4G_flagsv/,4; ntref="fs/binfmt_elf_4dpic.4807600" idp10ie" namop9L688"98758v/a> .59>10L778=s="sass=78szapv/a4; phdfpudddddddddddddddddddd"srefmd_4G_flagsv/,4; ntref="fs/binfmt_elf_4dpic.4807600" idp10i oddisoop" class="srefdisodrv5fdisod78aa4; .59>10L778/4; phdfotes688" class="line" namop10L3 68/s" coL1078 status of each read i68cap=683p11Lline" namop10L7mem class="sref">ph78ps" coL1068in_thread_statusL100" id681L73683f">phd__taskmf (ndxgt;phd;10L682v/ddml"notela68phdCONFIG68f="fs/binfmt_elf_4dpic.4685500683ef">phd_r_="0Lliass==mpgf">phdxfpuL100sprint>strndxlass="srtprint>eL10 href="+code=fpcERNE_WARNINfmt_elf_4dpic.44ERNE_WARNINf11Lline" namop10L7mem class="sref">ph78ps="sass=78hdlin__rstatusL100cofnL7ppppppppinfmt_elf_5dstring">"Lcosa="s_e"sre: illis -s_poe (%lld)d;ph78ps="sass=78n pregset_lL100cphdfref">pgf">phdxfpuL100smr"+code=pr_ffmt_lapr"="+cgs -a href="+codedriz_"de_memszdr" clsillidp1is -a href="+codedri_poe=_rstatuslass="s_poe">phhf="+coddisoop" Geoffset"srefdisodrv596offsetdp1ine"mt0Llinc86"line" nine"mt0Llinc8688s="sass=68dtask_struc=L100cphdnum_n688" class="line" namop10L3 68/s="sass=78v/aE+coCOR=_COPY_XFPREGe6800" 68311L71L72>1 ss="line" namopsclass="sref78ref">phdr68in pxregset_lL100c4L300" idp11Lscp11_="s="sreddisoop" class="11_="s="srep10i:L72>1 ss="line" namopsclass="sref78r4; phdfotendxgt;phdxfpuL100Kde=_rstatuslass="s="liiine"mt0Llinc86"line" nine"mt0Llinc868ps" coL1068aems inoteL100cline" nam6810L7684p11Lline" namop10L7mem class="sref">ph78ef">phdnu68notesgt;phf">phdxfpuL100smleanre4WMOUSdrv/a4 cmleanrep10i:L72>1 ss="line" namopsclass="sref78rhdCONFIG68ef="fs/binfmt_elf_4dpic.680550684ef">phd_r_="0hil100 dpr_ffmt_gt;a h=d_ad41mpt" class="srefe4md_ad41mpt"eL10 ampak>4; 10L682v/ddml"notela68/4} pgr" class="410c11L741mt_e="+codpr_ffmt_gt;a hs_lo ddisoop" class=_lo="+cane"mt0Llinc86"line" nine"mt0Llinc868ps="sass=78 is e segm4a>113636v/4+c68dp11684line" namops_s>ofnL7p">phdsh_fs/kgtfd_ad4del class="srefe4md_ad4deleL10 href="+code=fpr"re4WMOUSdrv/a4 tmr3636Line"mt0Llinc86"line" nine"mt0Llinc868ps="sass=78 read i cormation fore 68s i 684=xfpulass="sref">phdf">phdsh_fs/kgtfkfre"de_memszdr" clskfre"eL10 href="+code=fprd_ad511ry" class="srefe4md_ad411rymeL10 href="+code=fpr"re4WMOUSdrv/a4 tmr3636L dr" class="410c11L741v/4; 11L741v/4; phdnum_n688" class="line" namop10L3 68ps="sass=78 final corc a>-e.ommen68> 684 line" namop10L7_lass="srefnkfre"de_memszdr" clskfre"eL10 href="+code=fprf 4ded_addr" class="srp 4ded_idp1i e" namop9L688"98758v/a> .59>10L778dess is68n is e segm4TABLEapv/a4)68a hr685xfpulass="sref">phdxfpuL100fkfre"de_memszdr" clskfre"eL10 href="+code=fpramop10L7s>104extnumlass=) ;p5d_r_p51="li12athe ELF h>ader d_78atuslass=68ref">phdlin_dump_thread_68atus685ref">phdfotendxgt; .59>10L768v/4> .59>10L768ef">phdnu68dtask_struc=L100cphd__taskmdxgt; .59>10L768ehdCONFIG68 href="+coded_addr" clas68"sre685ef">phd_r_="0dxgt; .59>10L778 4} .59>10L778ess is 68f="+code=num_noteslass="68ef">68"line"1" class="line" namop11L4n break>4; phdsh_fs/kgtfkfre"de_memszdr" clskfre"eL10 href="+code=fprpulass="sref">phdxfpuL100)ane" namop9L688"98758v/a> .59>10L778s/kne"lis68"prstatus - hrefp10L76810L668dp11L1dp11L1L72>1 ss="line" namopsclass="sref78 class="s68f">phdclascorc_copy_task68e c 685 line" namop1returnf">phdsh_fs/kgtfhas_ hrerdss="sref">phdxfhas_ hrerd"+cane"mt0Llinc86"line" nine"mt0Llinc868a4: #unclass="line" namop1NUM_NOTEref="fs/binfmt_eNUM_NOTEr10Lss="line" namop10L7clascorc_copy_t78phdddml"n68e - hrefp10L73>10L68268t" c686ref">688" class="line" namop10L3 68p/4> ph78lass="sre68f="+code=num_noteslass="68ef">68ef">phdp11L1sref">phdf"686p10Ll
The original LXR software byt_el8="line" nhttp://sourceforge.net/projects/lxr">LXR binfunity4; hfthis experifmt_al verson{*byt="line" nmailto:lxr@oteux.no0mtxr@oteux.no"+cod txr.oteux.no kindly hosted*byt="line" nhttp://www.ret_lll-otepro.no0mRet_lll Ltepro AS4; hfprovi.r *of Lteux binsulting and operaion{ iecrvic0 ieince 1995.