1868 setup_note_header(&v[1], p);
1869 v[1].p_offset = doffset = roundup(doffset, sizeof (Word));
1870 doffset += v[1].p_filesz;
1871
1872 mutex_enter(&p->p_lock);
1873
1874 brkbase = p->p_brkbase;
1875 brksize = p->p_brksize;
1876
1877 stkbase = p->p_usrstack - p->p_stksize;
1878 stksize = p->p_stksize;
1879
1880 mutex_exit(&p->p_lock);
1881
1882 AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
1883 i = 2;
1884 for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg)) {
1885 caddr_t eaddr = seg->s_base + pr_getsegsize(seg, 0);
1886 caddr_t saddr, naddr;
1887 void *tmp = NULL;
1888 extern struct seg_ops segspt_shmops;
1889
1890 for (saddr = seg->s_base; saddr < eaddr; saddr = naddr) {
1891 uint_t prot;
1892 size_t size;
1893 int type;
1894 vnode_t *mvp;
1895
1896 prot = pr_getprot(seg, 0, &tmp, &saddr, &naddr, eaddr);
1897 prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
1898 if ((size = (size_t)(naddr - saddr)) == 0)
1899 continue;
1900 if (i == nphdrs) {
1901 overflow++;
1902 continue;
1903 }
1904 v[i].p_type = PT_LOAD;
1905 v[i].p_vaddr = (Addr)(uintptr_t)saddr;
1906 v[i].p_memsz = size;
1907 if (prot & PROT_READ)
1908 v[i].p_flags |= PF_R;
|
1868 setup_note_header(&v[1], p);
1869 v[1].p_offset = doffset = roundup(doffset, sizeof (Word));
1870 doffset += v[1].p_filesz;
1871
1872 mutex_enter(&p->p_lock);
1873
1874 brkbase = p->p_brkbase;
1875 brksize = p->p_brksize;
1876
1877 stkbase = p->p_usrstack - p->p_stksize;
1878 stksize = p->p_stksize;
1879
1880 mutex_exit(&p->p_lock);
1881
1882 AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
1883 i = 2;
1884 for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg)) {
1885 caddr_t eaddr = seg->s_base + pr_getsegsize(seg, 0);
1886 caddr_t saddr, naddr;
1887 void *tmp = NULL;
1888 extern const struct seg_ops segspt_shmops;
1889
1890 for (saddr = seg->s_base; saddr < eaddr; saddr = naddr) {
1891 uint_t prot;
1892 size_t size;
1893 int type;
1894 vnode_t *mvp;
1895
1896 prot = pr_getprot(seg, 0, &tmp, &saddr, &naddr, eaddr);
1897 prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
1898 if ((size = (size_t)(naddr - saddr)) == 0)
1899 continue;
1900 if (i == nphdrs) {
1901 overflow++;
1902 continue;
1903 }
1904 v[i].p_type = PT_LOAD;
1905 v[i].p_vaddr = (Addr)(uintptr_t)saddr;
1906 v[i].p_memsz = size;
1907 if (prot & PROT_READ)
1908 v[i].p_flags |= PF_R;
|