diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-03-15 13:22:00 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2019-03-15 13:22:00 +0000 |
commit | a062971fb96ae7154d88ab408f899f56aaf6df6b (patch) | |
tree | 9907dea0824c38373ef2913fd84385ed07a56c3a /usr/src/lib/libproc | |
parent | 0b570b3cb1c0bf505f1b1bd352664d638b8cc359 (diff) | |
parent | b4a8b33babbf9a7a5de61ea06d09e1eb537f1f6e (diff) | |
download | illumos-joyent-a062971fb96ae7154d88ab408f899f56aaf6df6b.tar.gz |
[illumos-gate merge]
commit b4a8b33babbf9a7a5de61ea06d09e1eb537f1f6e
10483 aac: cast between incompatible function types
commit a00b240dc61ea7ab64e3881b755fca973a531e89
10146 core_pcbe_event_coverage() is missing an else
commit 542a7b7f5ccc44e3c95d6dce4ec0566f60bd9ff4
7780 mdb could extract NT_PRPSINFO information from core files
commit 2f7dba3e6747cbaaf1deb86e6ca1e2a5c96332ac
10524 wsdiff much slower after move from deprecated commands module
10448 wsdiff explodes on encoding error
10525 wsdiff output is not correct for a binary file
10526 wsdiff tries to spawn 4.8 threads
commit adee678425979226b2b55d1a0b39ce4c989382e9
9735 Need to provide SMB 2.1 Client
commit 40c0e2317898b8c774791bdc2b30bd50111ab1fa
9875 SMB client connection setup rework
commit 8329232e00f1048795bae53acb230316243aadb5
9874 Add fksmbcl development tool
Conflicts:
usr/src/cmd/mdb/common/modules/libc/libc.c
Diffstat (limited to 'usr/src/lib/libproc')
-rw-r--r-- | usr/src/lib/libproc/common/libproc.h | 4 | ||||
-rw-r--r-- | usr/src/lib/libproc/common/mapfile-vers | 3 | ||||
-rw-r--r-- | usr/src/lib/libproc/common/proc_names.c | 40 |
3 files changed, 44 insertions, 3 deletions
diff --git a/usr/src/lib/libproc/common/libproc.h b/usr/src/lib/libproc/common/libproc.h index eb73039a21..dd7bd9f99b 100644 --- a/usr/src/lib/libproc/common/libproc.h +++ b/usr/src/lib/libproc/common/libproc.h @@ -27,6 +27,8 @@ * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright 2018, Joyent, Inc. * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright 2019, Carlos Neira <cneirabustos@gmail.com> + * Copyright 2019 OmniOS Community Edition (OmniOSce) Association. */ /* @@ -710,10 +712,12 @@ extern int proc_get_secflags(pid_t, prsecflags_t **); */ #define FLT2STR_MAX 32 /* max. string length of faults (like SIG2STR_MAX) */ #define SYS2STR_MAX 32 /* max. string length of syscalls (like SIG2STR_MAX) */ +#define DMODELSTR_MAX 32 /* max. string length of data model names */ extern char *proc_fltname(int, char *, size_t); extern char *proc_signame(int, char *, size_t); extern char *proc_sysname(int, char *, size_t); +extern char *proc_dmodelname(int, char *, size_t); /* * Utility functions for debugging tools to convert fault, signal, and system diff --git a/usr/src/lib/libproc/common/mapfile-vers b/usr/src/lib/libproc/common/mapfile-vers index 3b2fe58812..6e5ff2c21a 100644 --- a/usr/src/lib/libproc/common/mapfile-vers +++ b/usr/src/lib/libproc/common/mapfile-vers @@ -23,6 +23,8 @@ # Copyright 2012 DEY Storage Systems, Inc. All rights reserved. # Copyright 2018 Joyent, Inc. # Copyright (c) 2013 by Delphix. All rights reserved. +# Copyright (c) 2019 Carlos Neira <cneirabustos@gmail.com> +# Copyright 2019 OmniOS Community Edition (OmniOSce) Association. # # @@ -204,6 +206,7 @@ SYMBOL_VERSION SUNWprivate_1.1 { proc_arg_xgrab; proc_arg_xpsinfo; proc_content2str; + proc_dmodelname; proc_finistdio; proc_fltname; proc_fltset2str; diff --git a/usr/src/lib/libproc/common/proc_names.c b/usr/src/lib/libproc/common/proc_names.c index 634a79b312..314b01fbcd 100644 --- a/usr/src/lib/libproc/common/proc_names.c +++ b/usr/src/lib/libproc/common/proc_names.c @@ -22,6 +22,8 @@ /* * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2015, Joyent, Inc. All rights reserved. + * Copyright 2019, Carlos Neira <cneirabustos@gmail.com> + * Copyright 2019 OmniOS Community Edition (OmniOSce) Association. */ #include <stdio.h> @@ -31,6 +33,7 @@ #include <signal.h> #include <errno.h> #include "libproc.h" +#include <sys/procfs_isa.h> static const char * rawfltname(int flt) @@ -482,7 +485,7 @@ proc_str2sys(const char *str, int *sysnum) */ char * proc_fltset2str(const fltset_t *set, const char *delim, int m, - char *buf, size_t len) + char *buf, size_t len) { char name[FLT2STR_MAX], *p = buf; size_t n; @@ -522,7 +525,7 @@ proc_fltset2str(const fltset_t *set, const char *delim, int m, */ char * proc_sigset2str(const sigset_t *set, const char *delim, int m, - char *buf, size_t len) + char *buf, size_t len) { char name[SIG2STR_MAX], *p = buf; size_t n; @@ -568,7 +571,7 @@ proc_sigset2str(const sigset_t *set, const char *delim, int m, */ char * proc_sysset2str(const sysset_t *set, const char *delim, int m, - char *buf, size_t len) + char *buf, size_t len) { char name[SYS2STR_MAX], *p = buf; size_t n; @@ -703,3 +706,34 @@ proc_str2sysset(const char *s, const char *delim, int m, sysset_t *set) } return (NULL); } + +/* + * Returns a string representation of a process data model. + * See <sys/procfs_isa.h> for possible values. + */ +char * +proc_dmodelname(int dmodel, char *buf, size_t bufsz) +{ + static const char *const dmdls[] = { + "PR_MODEL_UNKNOWN", + "PR_MODEL_ILP32", + "PR_MODEL_LP64", + NULL + }; + size_t len; + + if (bufsz == 0) + return (NULL); + + if (dmodel > PR_MODEL_LP64 || dmodel < PR_MODEL_UNKNOWN) { + len = snprintf(buf, bufsz, "DMODEL#%d", dmodel); + } else { + len = strlen(dmdls[dmodel]); + (void) strncpy(buf, dmdls[dmodel], bufsz); + } + + if (len >= bufsz) + buf[bufsz-1] = '\0'; + + return (buf); +} |