Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
    usr/src/uts/common/fs/proc/prcontrol.c
    usr/src/uts/intel/os/archdep.c
    usr/src/uts/intel/sys/ucontext.h
    usr/src/uts/intel/syscall/getcontext.c

*** 25,35 **** /* * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. * Copyright 2018 Joyent, Inc. * Copyright 2020 OmniOS Community Edition (OmniOSce) Association. ! * Copyright 2021 Oxide Computer Company */ #ifndef _PCONTROL_H #define _PCONTROL_H --- 25,35 ---- /* * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. * Copyright 2018 Joyent, Inc. * Copyright 2020 OmniOS Community Edition (OmniOSce) Association. ! * Copyright 2023 Oxide Computer Company */ #ifndef _PCONTROL_H #define _PCONTROL_H
*** 142,154 **** list_node_t lwp_list; /* linked list */ lwpid_t lwp_id; /* lwp identifier */ lwpsinfo_t lwp_psinfo; /* /proc/<pid>/lwp/<lwpid>/lwpsinfo data */ lwpstatus_t lwp_status; /* /proc/<pid>/lwp/<lwpid>/lwpstatus data */ char lwp_name[THREAD_NAME_MAX]; #if defined(sparc) || defined(__sparc) gwindows_t *lwp_gwins; /* /proc/<pid>/lwp/<lwpid>/gwindows data */ - prxregset_t *lwp_xregs; /* /proc/<pid>/lwp/<lwpid>/xregs data */ int64_t *lwp_asrs; /* /proc/<pid>/lwp/<lwpid>/asrs data */ #endif } lwp_info_t; typedef struct fd_info { --- 142,155 ---- list_node_t lwp_list; /* linked list */ lwpid_t lwp_id; /* lwp identifier */ lwpsinfo_t lwp_psinfo; /* /proc/<pid>/lwp/<lwpid>/lwpsinfo data */ lwpstatus_t lwp_status; /* /proc/<pid>/lwp/<lwpid>/lwpstatus data */ char lwp_name[THREAD_NAME_MAX]; + prxregset_t *lwp_xregs; /* /proc/<pid>/lwp/<lwpid>/xregs data */ + size_t lwp_xregsize; #if defined(sparc) || defined(__sparc) gwindows_t *lwp_gwins; /* /proc/<pid>/lwp/<lwpid>/gwindows data */ int64_t *lwp_asrs; /* /proc/<pid>/lwp/<lwpid>/asrs data */ #endif } lwp_info_t; typedef struct fd_info {
*** 296,305 **** --- 297,308 ---- size_t); extern int Padd_mapping(struct ps_prochandle *, off64_t, file_info_t *, prmap_t *); extern void Psort_mappings(struct ps_prochandle *); + extern struct ps_lwphandle *Lfind(struct ps_prochandle *, lwpid_t); + extern int Lstopstatus(struct ps_lwphandle *, long, uint_t); extern char procfs_path[PATH_MAX]; /* * Architecture-dependent definition of the breakpoint instruction.