Print this page
XXX AVX procfs

*** 57,68 **** #include <fs/proc/prdata.h> #include <sys/contract/process_impl.h> static void pr_settrace(proc_t *, sigset_t *); static int pr_setfpregs(prnode_t *, prfpregset_t *); - #if defined(__sparc) static int pr_setxregs(prnode_t *, prxregset_t *); static int pr_setasrs(prnode_t *, asrset_t); #endif static int pr_setvaddr(prnode_t *, caddr_t); static int pr_clearsig(prnode_t *); static int pr_clearflt(prnode_t *); --- 57,68 ---- #include <fs/proc/prdata.h> #include <sys/contract/process_impl.h> static void pr_settrace(proc_t *, sigset_t *); static int pr_setfpregs(prnode_t *, prfpregset_t *); static int pr_setxregs(prnode_t *, prxregset_t *); + #if defined(__sparc) static int pr_setasrs(prnode_t *, asrset_t); #endif static int pr_setvaddr(prnode_t *, caddr_t); static int pr_clearsig(prnode_t *); static int pr_clearflt(prnode_t *);
*** 85,96 **** sigset_t sigset; /* PCSTRACE, PCSHOLD */ fltset_t fltset; /* PCSFAULT */ sysset_t sysset; /* PCSENTRY, PCSEXIT */ prgregset_t prgregset; /* PCSREG, PCAGENT */ prfpregset_t prfpregset; /* PCSFPREG */ - #if defined(__sparc) prxregset_t prxregset; /* PCSXREG */ asrset_t asrset; /* PCSASRS */ #endif prwatch_t prwatch; /* PCWATCH */ priovec_t priovec; /* PCREAD, PCWRITE */ prcred_t prcred; /* PCSCRED */ --- 85,96 ---- sigset_t sigset; /* PCSTRACE, PCSHOLD */ fltset_t fltset; /* PCSFAULT */ sysset_t sysset; /* PCSENTRY, PCSEXIT */ prgregset_t prgregset; /* PCSREG, PCAGENT */ prfpregset_t prfpregset; /* PCSFPREG */ prxregset_t prxregset; /* PCSXREG */ + #if defined(__sparc) asrset_t asrset; /* PCSASRS */ #endif prwatch_t prwatch; /* PCWATCH */ priovec_t priovec; /* PCREAD, PCWRITE */ prcred_t prcred; /* PCSCRED */
*** 150,163 **** size += sizeof (prgregset_t); break; case PCSFPREG: size += sizeof (prfpregset_t); break; - #if defined(__sparc) case PCSXREG: size += sizeof (prxregset_t); break; case PCSASRS: size += sizeof (asrset_t); break; #endif case PCWATCH: --- 150,163 ---- size += sizeof (prgregset_t); break; case PCSFPREG: size += sizeof (prfpregset_t); break; case PCSXREG: size += sizeof (prxregset_t); break; + #if defined(__sparc) case PCSASRS: size += sizeof (asrset_t); break; #endif case PCWATCH:
*** 416,430 **** case PCSFPREG: /* set floating-point registers */ error = pr_setfpregs(pnp, &argp->prfpregset); break; case PCSXREG: /* set extra registers */ - #if defined(__sparc) error = pr_setxregs(pnp, &argp->prxregset); - #else - error = EINVAL; - #endif break; #if defined(__sparc) case PCSASRS: /* set ancillary state registers */ error = pr_setasrs(pnp, argp->asrset); --- 416,426 ----
*** 501,513 **** sigset_t sigset; /* PCSTRACE, PCSHOLD */ fltset_t fltset; /* PCSFAULT */ sysset_t sysset; /* PCSENTRY, PCSEXIT */ prgregset32_t prgregset; /* PCSREG, PCAGENT */ prfpregset32_t prfpregset; /* PCSFPREG */ - #if defined(__sparc) prxregset_t prxregset; /* PCSXREG */ - #endif prwatch32_t prwatch; /* PCWATCH */ priovec32_t priovec; /* PCREAD, PCWRITE */ prcred32_t prcred; /* PCSCRED */ prpriv_t prpriv; /* PCSPRIV */ int32_t przoneid; /* PCSZONE */ --- 497,507 ----
*** 571,585 **** size += sizeof (prgregset32_t); break; case PCSFPREG: size += sizeof (prfpregset32_t); break; - #if defined(__sparc) case PCSXREG: size += sizeof (prxregset_t); break; - #endif case PCWATCH: size += sizeof (prwatch32_t); break; case PCREAD: case PCWRITE: --- 565,577 ----
*** 864,881 **** else error = pr_setfpregs32(pnp, &argp->prfpregset); break; case PCSXREG: /* set extra registers */ - #if defined(__sparc) if (PROCESS_NOT_32BIT(p)) error = EOVERFLOW; else error = pr_setxregs(pnp, &argp->prxregset); - #else - error = EINVAL; - #endif break; case PCSVADDR: /* set virtual address at which to resume */ if (PROCESS_NOT_32BIT(p)) error = EOVERFLOW; --- 856,869 ----
*** 1704,1714 **** return (0); } #endif /* _SYSCALL32_IMPL */ - #if defined(__sparc) /* ARGSUSED */ static int pr_setxregs(prnode_t *pnp, prxregset_t *prxregset) { proc_t *p = pnp->pr_common->prc_proc; --- 1692,1701 ----
*** 1729,1738 **** --- 1716,1726 ---- mutex_enter(&p->p_lock); return (0); } + #if defined(__sparc) static int pr_setasrs(prnode_t *pnp, asrset_t asrset) { proc_t *p = pnp->pr_common->prc_proc; kthread_t *t = pr_thread(pnp); /* returns locked thread */