summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r--usr/src/uts/common/sys/dtrace.h7
-rw-r--r--usr/src/uts/common/sys/elf.h19
-rw-r--r--usr/src/uts/common/sys/procfs.h15
-rw-r--r--usr/src/uts/common/sys/thread.h3
4 files changed, 29 insertions, 15 deletions
diff --git a/usr/src/uts/common/sys/dtrace.h b/usr/src/uts/common/sys/dtrace.h
index 44ca7d8ae7..ab6d4c4445 100644
--- a/usr/src/uts/common/sys/dtrace.h
+++ b/usr/src/uts/common/sys/dtrace.h
@@ -25,7 +25,7 @@
*/
/*
- * Copyright 2017 Joyent, Inc.
+ * Copyright 2018 Joyent, Inc.
* Copyright (c) 2013 by Delphix. All rights reserved.
*/
@@ -242,6 +242,7 @@ typedef enum dtrace_probespec {
#define DIF_VAR_UID 0x011e /* process user ID */
#define DIF_VAR_GID 0x011f /* process group ID */
#define DIF_VAR_ERRNO 0x0120 /* thread errno */
+#define DIF_VAR_THREADNAME 0x0121 /* thread name */
#define DIF_SUBR_RAND 0
#define DIF_SUBR_MUTEX_OWNED 1
@@ -2212,8 +2213,8 @@ extern void dtrace_probe(dtrace_id_t, uintptr_t arg0, uintptr_t arg1,
*/
typedef struct dtrace_helper_probedesc {
char *dthpb_mod; /* probe module */
- char *dthpb_func; /* probe function */
- char *dthpb_name; /* probe name */
+ char *dthpb_func; /* probe function */
+ char *dthpb_name; /* probe name */
uint64_t dthpb_base; /* base address */
uint32_t *dthpb_offs; /* offsets array */
uint32_t *dthpb_enoffs; /* is-enabled offsets array */
diff --git a/usr/src/uts/common/sys/elf.h b/usr/src/uts/common/sys/elf.h
index 0dd4f2d17e..1a2ca397ef 100644
--- a/usr/src/uts/common/sys/elf.h
+++ b/usr/src/uts/common/sys/elf.h
@@ -429,10 +429,10 @@ typedef struct {
#define ELFOSABI_OPENVMS 13 /* Open VMS */
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
#define ELFOSABI_AROS 15 /* Amiga Research OS */
-#define ELFOSABI_FENIXOS 16 /* The FenixOS highly scalable */
+#define ELFOSABI_FENIXOS 16 /* The FenixOS highly scalable */
/* multi-core OS */
-#define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */
-#define ELFOSABI_OPENVOS 18 /* Stratus Technologies OpenVOS */
+#define ELFOSABI_CLOUDABI 17 /* Nuxi CloudABI */
+#define ELFOSABI_OPENVOS 18 /* Stratus Technologies OpenVOS */
#define ELFOSABI_ARM 97 /* ARM */
#define ELFOSABI_STANDALONE 255 /* standalone (embedded) application */
@@ -820,7 +820,7 @@ typedef struct {
#define ELF32_R_INFO(sym, type) (((sym)<<8)+(unsigned char)(type))
#define ELF64_R_SYM(info) ((info)>>32)
-#define ELF64_R_TYPE(info) ((Elf64_Word)(info))
+#define ELF64_R_TYPE(info) ((Elf64_Word)(info))
#define ELF64_R_INFO(sym, type) (((Elf64_Xword)(sym)<<32)+(Elf64_Xword)(type))
@@ -867,7 +867,7 @@ typedef struct {
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf32_Lword m_value; /* symbol value */
- Elf32_Word m_info; /* size + index */
+ Elf32_Word m_info; /* size + index */
Elf32_Word m_poffset; /* symbol offset */
Elf32_Half m_repeat; /* repeat count */
Elf32_Half m_stride; /* stride info */
@@ -886,7 +886,7 @@ typedef struct {
typedef struct {
Elf64_Lword m_value; /* symbol value */
- Elf64_Xword m_info; /* size + index */
+ Elf64_Xword m_info; /* size + index */
Elf64_Xword m_poffset; /* symbol offset */
Elf64_Half m_repeat; /* repeat count */
Elf64_Half m_stride; /* stride info */
@@ -945,7 +945,7 @@ typedef Elf64_Word Elf64_Capchain;
* info = ELF64_C_INFO(sym, grp)
*/
#define ELF64_C_SYM(info) ((info)>>32)
-#define ELF64_C_GROUP(info) ((Elf64_Word)(info))
+#define ELF64_C_GROUP(info) ((Elf64_Word)(info))
#define ELF64_C_INFO(sym, grp) (((Elf64_Xword)(sym)<<32)+(Elf64_Xword)(grp))
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
@@ -1014,10 +1014,11 @@ typedef Elf64_Word Elf64_Capchain;
#define NT_PRPRIVINFO 19 /* priv_impl_info_t <sys/priv.h> */
#define NT_CONTENT 20 /* core_content_t <sys/corectl.h> */
#define NT_ZONENAME 21 /* string from getzonenamebyid(3C) */
-#define NT_FDINFO 22 /* open fd info */
+#define NT_FDINFO 22 /* open fd info */
#define NT_SPYMASTER 23 /* psinfo_t for agent LWP spymaster */
#define NT_SECFLAGS 24 /* process security-flags */
-#define NT_NUM 24
+#define NT_LWPNAME 25 /* prlwpname_t */
+#define NT_NUM 25
#ifdef _KERNEL
diff --git a/usr/src/uts/common/sys/procfs.h b/usr/src/uts/common/sys/procfs.h
index 427d682d68..38c006f8f0 100644
--- a/usr/src/uts/common/sys/procfs.h
+++ b/usr/src/uts/common/sys/procfs.h
@@ -25,7 +25,7 @@
*/
/*
* Copyright 2012 DEY Storage Systems, Inc. All rights reserved.
- * Copyright 2015, Joyent, Inc.
+ * Copyright 2018, Joyent, Inc.
*/
#ifndef _SYS_PROCFS_H
@@ -66,6 +66,7 @@ extern "C" {
#include <sys/stat.h>
#include <sys/param.h>
#include <sys/secflags.h>
+#include <sys/thread.h>
/*
* System call interfaces for /proc.
@@ -346,7 +347,7 @@ typedef struct prxmap {
int pr_shmid; /* SysV shmid, -1 if not SysV shared memory */
dev_t pr_dev; /* st_dev from stat64() of mapped object, or PRNODEV */
uint64_t pr_ino; /* st_ino from stat64() of mapped object, if any */
- size_t pr_rss; /* pages of resident memory */
+ size_t pr_rss; /* pages of resident memory */
size_t pr_anon; /* pages of resident anonymous memory */
size_t pr_locked; /* pages of locked memory */
size_t pr_pad; /* currently unused */
@@ -537,6 +538,16 @@ typedef struct prfdinfo {
} prfdinfo_t;
/*
+ * Representation of LWP name in core files. In /proc, we use a simple char
+ * array, but in core files we need to make it easy to correlate the note back
+ * to the right LWP. For simplicity, we'll use 32/64 consistent types.
+ */
+typedef struct prlwpname {
+ uint64_t pr_lwpid;
+ char pr_lwpname[THREAD_NAME_MAX];
+} prlwpname_t;
+
+/*
* Header for /proc/<pid>/lstatus /proc/<pid>/lpsinfo /proc/<pid>/lusage
*/
typedef struct prheader {
diff --git a/usr/src/uts/common/sys/thread.h b/usr/src/uts/common/sys/thread.h
index 678d356564..6cc474f864 100644
--- a/usr/src/uts/common/sys/thread.h
+++ b/usr/src/uts/common/sys/thread.h
@@ -607,7 +607,8 @@ extern disp_lock_t stop_lock; /* lock protecting stopped threads */
caddr_t thread_stk_init(caddr_t); /* init thread stack */
-void thread_setname(kthread_t *, const char *);
+int thread_setname(kthread_t *, const char *);
+int thread_vsetname(kthread_t *, const char *, ...);
extern int default_binding_mode;
extern int default_stksize;