Port-ia64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: loadelf_32.c: code review request: was=>Re: ia64 unwind section: Loader implementation




On Apr 1, 2006, at 11:13 AM, Cherry G. Mathew wrote:

cvs diff -uN loadfile_elf32.c
Index: loadfile_elf32.c
===================================================================
RCS file: /cvsroot/src/sys/lib/libsa/loadfile_elf32.c,v
retrieving revision 1.13
diff -u -r1.13 loadfile_elf32.c
--- loadfile_elf32.c    25 Jan 2006 18:27:23 -0000      1.13
+++ loadfile_elf32.c    1 Apr 2006 19:02:52 -0000
@@ -296,6 +296,13 @@

        for (first = 1, i = 0; i < elf->e_phnum; i++) {
                internalize_phdr(elf->e_ident[EI_DATA], &phdr[i]);
+
+#ifdef MD_LOADSEG /* Allow processor ABI specific segment loads */
+               if ( (phdr[i].p_type & PT_LOPROC) &&
+                    MD_LOADSEG(phdr[i]))
+                       goto loadseg;
+#endif /*MD_LOADSEG*/

Does't it make sense to do >= LOPROC && <= HIPROC instead of testing a bit?


+
                if (phdr[i].p_type != PT_LOAD ||
                    (phdr[i].p_flags & (PF_W|PF_X)) == 0)
                        continue;
@@ -309,6 +316,7 @@
                if ((IS_TEXT(phdr[i]) && (flags & LOAD_TEXT)) ||
                    (IS_DATA(phdr[i]) && (flags & LOAD_DATA))) {

+               loadseg:
                        /* Read in segment. */
                        PROGRESS(("%s%lu", first ? "" : "+",
                            (u_long)phdr[i].p_filesz));


--
~Cherry

-- thorpej




Home | Main Index | Thread Index | Old Index