From owner-p4-projects@FreeBSD.ORG Fri Apr 25 12:12:56 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 40EDF37B405; Fri, 25 Apr 2003 12:12:56 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E1F2B37B404 for ; Fri, 25 Apr 2003 12:12:55 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4439F43FB1 for ; Fri, 25 Apr 2003 12:12:55 -0700 (PDT) (envelope-from tzukanov@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h3PJCt0U036892 for ; Fri, 25 Apr 2003 12:12:55 -0700 (PDT) (envelope-from tzukanov@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h3PJCsuI036882 for perforce@freebsd.org; Fri, 25 Apr 2003 12:12:54 -0700 (PDT) Date: Fri, 25 Apr 2003 12:12:54 -0700 (PDT) Message-Id: <200304251912.h3PJCsuI036882@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tzukanov@freebsd.org using -f From: Serguei Tzukanov To: Perforce Change Reviews Subject: PERFORCE change 29709 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Apr 2003 19:12:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=29709 Change 29709 by tzukanov@tzukanov_antares on 2003/04/25 12:12:54 Blind update to -current. Affected files ... .. //depot/projects/s390/lib/libc/s390/_fpmath.h#2 edit .. //depot/projects/s390/lib/libc/s390x/_fpmath.h#2 edit .. //depot/projects/s390/sys/s390/conf/GENERIC#9 edit .. //depot/projects/s390/sys/s390/include/_types.h#3 edit .. //depot/projects/s390/sys/s390/include/cpufunc.h#2 edit .. //depot/projects/s390/sys/s390/include/pmap.h#3 edit .. //depot/projects/s390/sys/s390/s390/genassym.c#3 edit .. //depot/projects/s390/sys/s390/s390/machdep.c#8 edit .. //depot/projects/s390/sys/s390/s390/mem.c#6 edit .. //depot/projects/s390/sys/s390/s390/pmap.c#12 edit .. //depot/projects/s390/sys/s390/s390/support.S#2 edit .. //depot/projects/s390/sys/s390/s390/swtch.S#3 edit .. //depot/projects/s390/sys/s390/s390/trap.c#7 edit Differences ... ==== //depot/projects/s390/lib/libc/s390/_fpmath.h#2 (text+ko) ==== @@ -38,3 +38,12 @@ }; #define mask_nbit_l(u) ((void)0) +#define LDBL_IMPLICIT_NBIT + +#define LDBL_TO_ARRAY32(u, a) do { \ + (a)[0] = (uint32_t)(u).bits.manl; \ + (a)[1] = (uint32_t)((u).bits.manl >> 32); \ + (a)[2] = (uint32_t)(u).bits.manh; \ + (a)[3] = (uint32_t)((u).bits.manh >> 32); \ +} while (0) + ==== //depot/projects/s390/lib/libc/s390x/_fpmath.h#2 (text+ko) ==== @@ -38,3 +38,12 @@ }; #define mask_nbit_l(u) ((void)0) +#define LDBL_IMPLICIT_NBIT + +#defineLDBL_TO_ARRAY32(u, a) do { \ + (a)[0] = (uint32_t)(u).bits.manl; \ + (a)[1] = (uint32_t)((u).bits.manl >> 32); \ + (a)[2] = (uint32_t)(u).bits.manh; \ + (a)[3] = (uint32_t)((u).bits.manh >> 32); \ +} while (0) + ==== //depot/projects/s390/sys/s390/conf/GENERIC#9 (text+ko) ==== @@ -21,7 +21,6 @@ machine s390 cpu G5_CPU # No-op ident GENERIC -maxusers 0 #To statically compile in device wiring instead of /boot/device.hints hints "GENERIC.hints" ==== //depot/projects/s390/sys/s390/include/_types.h#3 (text+ko) ==== @@ -97,6 +97,7 @@ typedef __uint32_t __u_register_t; typedef __uint32_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint32_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint32_t __vm_size_t; ==== //depot/projects/s390/sys/s390/include/cpufunc.h#2 (text+ko) ==== @@ -53,7 +53,7 @@ /* Load using real address. */ static __inline u_long -lura(vm_offset_t pa) +lura(vm_paddr_t pa) { u_long x; @@ -66,7 +66,7 @@ /* Store using real address. */ static __inline void -stura(vm_offset_t pa, u_long x) +stura(vm_paddr_t pa, u_long x) { __asm volatile ( " stura %[x], %[pa]" @@ -109,10 +109,10 @@ cr_write(cid, cr_read(cid) & ~mask); } -static __inline vm_offset_t +static __inline vm_paddr_t lra(vm_offset_t va) { - vm_offset_t pa; + vm_paddr_t pa; __asm __volatile ( " lra %[pa], 0(%[va])\n" ==== //depot/projects/s390/sys/s390/include/pmap.h#3 (text+ko) ==== @@ -90,11 +90,11 @@ vm_page_t pv_mpte; /* VM page for pte */ } *pv_entry_t; -extern vm_offset_t avail_start; -extern vm_offset_t avail_end; +extern vm_paddr_t avail_start; +extern vm_paddr_t avail_end; extern vm_offset_t clean_eva; extern vm_offset_t clean_sva; -extern vm_offset_t phys_avail[]; +extern vm_paddr_t phys_avail[]; extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; ==== //depot/projects/s390/sys/s390/s390/genassym.c#3 (text+ko) ==== @@ -85,7 +85,6 @@ ASSYM(TD_FLAGS, offsetof(struct thread, td_flags)); ASSYM(TD_FRAME, offsetof(struct thread, td_frame)); -ASSYM(TD_KSE, offsetof(struct thread, td_kse)); ASSYM(TD_PCB, offsetof(struct thread, td_pcb)); ASSYM(TD_PROC, offsetof(struct thread, td_proc)); ASSYM(TD_STATE, offsetof(struct thread, td_state)); ==== //depot/projects/s390/sys/s390/s390/machdep.c#8 (text+ko) ==== @@ -135,7 +135,7 @@ } } - return status; + return (status); } static void @@ -337,22 +337,24 @@ error = copyin(uap->sigcntxp, &uc, sizeof(uc)); if (error) - return error; + return (error); - if (psw_insecure(&uc.uc_mcontext.mc_psw)) - return EINVAL; + if (psw_insecure(&uc.uc_mcontext.mc_psw)) { + trapsignal(td, SIGBUS, 0); + return (EINVAL); + } tf = td->td_frame; bcopy(&uc.uc_mcontext.mc_context, &tf->tf_context, ESA_CONTEXT_SIZE); p = td->td_proc; PROC_LOCK(p); - p->p_sigmask = uc.uc_sigmask; - SIG_CANTMASK(p->p_sigmask); - signotify(p); + td->td_sigmask = uc.uc_sigmask; + SIG_CANTMASK(td->td_sigmask); + signotify(td); PROC_UNLOCK(p); - return EJUSTRETURN; + return (EJUSTRETURN); } #ifdef COMPAT_FREEBSD4 @@ -364,15 +366,15 @@ #endif int -get_mcontext(struct thread *td, mcontext_t *mcp) +get_mcontext(struct thread *td, mcontext_t *mcp, int clear_ret) { - return ENOSYS; + return (ENOSYS); } int set_mcontext(struct thread *td, const mcontext_t *mcp) { - return ENOSYS; + return (ENOSYS); } void @@ -444,7 +446,7 @@ { psw_define_addr(&td->td_frame->tf_psw, addr); - return 0; + return (0); } int @@ -453,7 +455,7 @@ /* XXX - wrong */ td->td_frame->tf_psw.mask |= PSW_W; - return 0; + return (0); } int @@ -461,18 +463,18 @@ { bcopy(&td->td_frame->tf_psw, ®s->r_psw, sizeof(*regs)); - return 0; + return (0); } int set_regs(struct thread *td, struct reg *regs) { if (psw_insecure(®s->r_psw)) - return EINVAL; + return (EINVAL); bcopy(&td->td_frame->tf_psw, ®s->r_psw, sizeof(*regs)); - return 0; + return (0); } int @@ -480,7 +482,7 @@ { bcopy(&td->td_frame->tf_fpr, &fpregs->fr_fpr, sizeof(*fpregs)); - return 0; + return (0); } int @@ -488,19 +490,19 @@ { bcopy(&td->td_frame->tf_fpr, &fpregs->fr_fpr, sizeof(*fpregs)); - return 0; + return (0); } int fill_dbregs(struct thread *td, struct dbreg *dbregs) { - return 0; + return (0); } int set_dbregs(struct thread *td, struct dbreg *dbregs) { - return 0; + return (0); } #ifndef DDB ==== //depot/projects/s390/sys/s390/s390/mem.c#6 (text+ko) ==== @@ -156,7 +156,7 @@ } static int -memmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { switch (minor(dev)) { case 1: ==== //depot/projects/s390/sys/s390/s390/pmap.c#12 (text+ko) ==== @@ -96,12 +96,12 @@ static ste_t *proc0sto; -vm_offset_t avail_start; /* pa of first available physical page */ -vm_offset_t avail_end; /* pa of first non-available physical page */ +vm_paddr_t avail_start; /* pa of first available physical page */ +vm_paddr_t avail_end; /* pa of first non-available physical page */ vm_offset_t virtual_avail; /* va of first page after kernel end */ vm_offset_t virtual_end; /* va of first page after kernel space */ -vm_offset_t phys_avail[128]; +vm_paddr_t phys_avail[128]; long Maxmem; /* highest page */ static boolean_t pmap_initialized = FALSE; @@ -141,7 +141,7 @@ DAT_INIT_MAP(crashdumpmap, crashdumpmap, MAXDUMPPGS); static void -ipte(vm_offset_t ptepa) +ipte(vm_paddr_t ptepa) { pte_t pte; @@ -161,10 +161,10 @@ } -static vm_offset_t +static vm_paddr_t dat_init_map(int n) { - vm_offset_t pa = avail_start; + vm_paddr_t pa = avail_start; avail_start += n * PAGE_SIZE; @@ -304,7 +304,7 @@ pmap_assert_pt_free(ste_t ste) { int i; - vm_offset_t ptepa = STE_PTO(ste); + vm_paddr_t ptepa = STE_PTO(ste); pte_t pte; for (i = 0; i < 256; i++, ptepa += sizeof(pte_t)) { @@ -329,7 +329,7 @@ } static __inline void -pmap_set_ste_quad(ste_t *ste, vm_offset_t ptepa) +pmap_set_ste_quad(ste_t *ste, vm_paddr_t ptepa) { *ste++ = ptepa + STE_PTL; *ste++ = ptepa + PTSIZE + STE_PTL; @@ -494,7 +494,7 @@ void pmap_remove_all(vm_page_t m) { - vm_offset_t ptepa; + vm_ptepa_t ptepa; pv_entry_t pv; pmap_t pmap; pte_t pte; @@ -592,7 +592,7 @@ } static int -pmap_remove_pte(pmap_t pmap, vm_offset_t ptepa, vm_offset_t va) +pmap_remove_pte(pmap_t pmap, vm_paddr_t ptepa, vm_offset_t va) { vm_page_t m; pte_t pte; @@ -624,7 +624,7 @@ } static void * -pmap_allocf(uma_zone_t zone, int size, uint8_t *pflag, int wait) +pmap_pv_allocf(uma_zone_t zone, int size, uint8_t *pflag, int wait) { *pflag = UMA_SLAB_PRIV; @@ -681,7 +681,7 @@ void pmap_clear_modify(vm_page_t m) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); CTR1(KTR_PMAP, "pmap_clear_modify: pa = %x", pa); @@ -691,7 +691,7 @@ void pmap_clear_reference(vm_page_t m) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); CTR1(KTR_PMAP, "pmap_clear_reference: pa = %x", pa); @@ -713,8 +713,8 @@ void pmap_copy_page(vm_page_t src, vm_page_t dst) { - vm_offset_t srcpa = VM_PAGE_TO_PHYS(src); - vm_offset_t dstpa = VM_PAGE_TO_PHYS(dst); + vm_paddr_t srcpa = VM_PAGE_TO_PHYS(src); + vm_paddr_t dstpa = VM_PAGE_TO_PHYS(dst); CTR2(KTR_PMAP, "pmap_copy_page: srcpa = %x, dstpa = %x", srcpa, dstpa); @@ -783,7 +783,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, boolean_t wired) { - vm_offset_t ptepa, opa; + vm_paddr_t ptepa, opa; pte_t opte, pte; vm_page_t mpte; @@ -881,16 +881,16 @@ stura(ptepa, pte); } -vm_offset_t +vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va) { - vm_offset_t ptepa = pmap_ptepa(pmap, va); + vm_paddr_t ptepa = pmap_ptepa(pmap, va); pte_t pte = lura(ptepa); if (pte_valid(pte)) - return PTE_PFRA(pte) + VA_BX(va); + return (PTE_PFRA(pte) + VA_BX(va)); else - return 0; + return (0); } void @@ -901,7 +901,7 @@ } void -pmap_init(vm_offset_t spa, vm_offset_t epa) +pmap_init(vm_paddr_t spa, vm_paddr_t epa) { int i; @@ -919,7 +919,7 @@ /* Init the pv free list. */ pvzone = uma_zcreate("PV ENTRY", sizeof(struct pv_entry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM); - uma_zone_set_allocf(pvzone, pmap_allocf); + uma_zone_set_allocf(pvzone, pmap_pv_allocf); uma_prealloc(pvzone, vm_page_array_size); pmap_initialized = TRUE; @@ -942,7 +942,7 @@ boolean_t pmap_is_modified(vm_page_t m) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); CTR1(KTR_PMAP, "pmap_is_modified: pa = %x", pa); @@ -953,9 +953,9 @@ } void -pmap_kenter(vm_offset_t va, vm_offset_t pa) +pmap_kenter(vm_offset_t va, vm_paddr_t pa) { - vm_offset_t ptepa; + vm_paddr_t ptepa; CTR2(KTR_PMAP, "pmap_kenter: va = %x, pa = %x", va, pa); @@ -984,7 +984,7 @@ } vm_offset_t -pmap_map(vm_offset_t *vap, vm_offset_t spa, vm_offset_t epa, int prot) +pmap_map(vm_offset_t *vap, vm_paddr_t spa, vm_paddr_t epa, int prot) { vm_offset_t va, sva; @@ -1194,7 +1194,7 @@ void pmap_protect(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot) { - vm_offset_t ptepa; + vm_paddr_t ptepa; int anychanged; pte_t pte; @@ -1237,8 +1237,8 @@ void pmap_qenter(vm_offset_t va, vm_page_t *mp, int count) { + vm_paddr_t ptepa; vm_offset_t eva; - vm_offset_t ptepa; CTR3(KTR_PMAP, "pmap_qenter: va = %x, mp = %p, count = %d", va, mp, count); @@ -1295,7 +1295,7 @@ void pmap_remove(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { - vm_offset_t ptepa; + vm_paddr_t ptepa; int anyvalid; pte_t pte; @@ -1321,11 +1321,11 @@ void pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) { - vm_offset_t ptepa; + pv_entry_t pv, npv; + vm_paddr_t ptepa; vm_page_t m; pmap_t pm; pte_t pte; - pv_entry_t pv, npv; CTR3(KTR_PMAP, "pmap_remove_pages: pmap = %p, sva = %x, eva = %x", pmap, sva, eva); @@ -1436,7 +1436,7 @@ boolean_t pmap_ts_referenced(vm_page_t m) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); boolean_t rv = 0; CTR1(KTR_PMAP, "pmap_ts_referenced: pa = %x", pa); @@ -1457,7 +1457,7 @@ void pmap_zero_page(vm_page_t m) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); CTR1(KTR_PMAP, "pmap_zero_page: pa = %x", pa); @@ -1475,7 +1475,7 @@ void pmap_zero_page_area(vm_page_t m, int off, int size) { - vm_offset_t pa = VM_PAGE_TO_PHYS(m); + vm_paddr_t pa = VM_PAGE_TO_PHYS(m); CTR3(KTR_PMAP, "pmap_zero_page_area: pa = %x, off = %d, size = %d", pa, off, size); ==== //depot/projects/s390/sys/s390/s390/support.S#2 (text+ko) ==== @@ -170,6 +170,10 @@ lm %r6, %r8, SF_GPR6(%r15) br %r14 +/* intptr_t casuptr(intptr_t *p, intptr_t old, intptr_t new) */ +ENTRY(casuptr) + xr %r2, %r2 + br %r14 /* int fubyte(const void *base) */ ENTRY(fubyte) ==== //depot/projects/s390/sys/s390/s390/swtch.S#3 (text+ko) ==== @@ -1,8 +1,6 @@ /*- * S/390 context switch routines. * - * WHO AND WHY DID ABBREVIATE WORD 'switch' TO 'swtch'?! - * * Copyright (c) 2002 Serguei Tzukanov. * * All rights reserved. Terms for use and redistribution ==== //depot/projects/s390/sys/s390/s390/trap.c#7 (text+ko) ==== @@ -472,7 +472,7 @@ #endif /* Dispose signal for process. */ - trapsignal(p, signo, sigcode); + trapsignal(tf, signo, sigcode); user: userret(td, tf, sticks);