Mechanically convert cddl sun #ifdef's to illumos
Since the upstream for cddl code is now illumos not sun, mechanically convert all sun #ifdef's to illumos #ifdef's which have been used in all newer code for some time. Also do a manual pass to correct the use if #ifdef comments as per style(9) as well as few uses of #if defined(__FreeBSD__) vs #ifndef illumos. MFC after: 1 month Sponsored by: Multiplay
This commit is contained in:
parent
b0b74fb366
commit
bc96366c86
@ -43,11 +43,11 @@
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <libgen.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <libproc.h>
|
||||
#endif
|
||||
|
||||
@ -101,7 +101,7 @@ static int g_grabanon = 0;
|
||||
static const char *g_ofile = NULL;
|
||||
static FILE *g_ofp;
|
||||
static dtrace_hdl_t *g_dtp;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static char *g_etcfile = "/etc/system";
|
||||
static const char *g_etcbegin = "* vvvv Added by DTrace";
|
||||
static const char *g_etcend = "* ^^^^ Added by DTrace";
|
||||
@ -211,7 +211,7 @@ fatal(const char *fmt, ...)
|
||||
static void
|
||||
dfatal(const char *fmt, ...)
|
||||
{
|
||||
#if !defined(sun) && defined(NEED_ERRLOC)
|
||||
#if !defined(illumos) && defined(NEED_ERRLOC)
|
||||
char *p_errfile = NULL;
|
||||
int errline = 0;
|
||||
#endif
|
||||
@ -232,7 +232,7 @@ dfatal(const char *fmt, ...)
|
||||
(void) fprintf(stderr, "%s\n",
|
||||
dtrace_errmsg(g_dtp, dtrace_errno(g_dtp)));
|
||||
}
|
||||
#if !defined(sun) && defined(NEED_ERRLOC)
|
||||
#if !defined(illumos) && defined(NEED_ERRLOC)
|
||||
dt_get_errloc(g_dtp, &p_errfile, &errline);
|
||||
if (p_errfile != NULL)
|
||||
printf("File '%s', line %d\n", p_errfile, errline);
|
||||
@ -397,7 +397,7 @@ dof_prune(const char *fname)
|
||||
free(buf);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static void
|
||||
etcsystem_prune(void)
|
||||
{
|
||||
@ -508,7 +508,7 @@ etcsystem_add(void)
|
||||
|
||||
error("added forceload directives to %s\n", g_ofile);
|
||||
}
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
static void
|
||||
print_probe_info(const dtrace_probeinfo_t *p)
|
||||
@ -643,7 +643,7 @@ anon_prog(const dtrace_cmd_t *dcp, dof_hdr_t *dof, int n)
|
||||
p = (uchar_t *)dof;
|
||||
q = p + dof->dofh_loadsz;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
oprintf("dof-data-%d=0x%x", n, *p++);
|
||||
|
||||
while (p < q)
|
||||
@ -793,7 +793,7 @@ compile_str(dtrace_cmd_t *dcp)
|
||||
static void
|
||||
prochandler(struct ps_prochandle *P, const char *msg, void *arg)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const psinfo_t *prp = Ppsinfo(P);
|
||||
int pid = Pstatus(P)->pr_pid;
|
||||
char name[SIG2STR_MAX];
|
||||
@ -807,13 +807,13 @@ prochandler(struct ps_prochandle *P, const char *msg, void *arg)
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
switch (Pstate(P)) {
|
||||
#else
|
||||
switch (proc_state(P)) {
|
||||
#endif
|
||||
case PS_UNDEAD:
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Ideally we would like to always report pr_wstat here, but it
|
||||
* isn't possible given current /proc semantics. If we grabbed
|
||||
@ -831,7 +831,7 @@ prochandler(struct ps_prochandle *P, const char *msg, void *arg)
|
||||
notice("pid %d terminated by %d\n", pid,
|
||||
WTERMSIG(wstatus));
|
||||
#endif
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
} else if (prp != NULL && WEXITSTATUS(prp->pr_wstat) != 0) {
|
||||
notice("pid %d exited with status %d\n",
|
||||
pid, WEXITSTATUS(prp->pr_wstat));
|
||||
@ -1238,7 +1238,7 @@ installsighands(void)
|
||||
if (sigaction(SIGTERM, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN)
|
||||
(void) sigaction(SIGTERM, &act, NULL);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (sigaction(SIGPIPE, NULL, &oact) == 0 && oact.sa_handler != SIG_IGN)
|
||||
(void) sigaction(SIGPIPE, &act, NULL);
|
||||
|
||||
@ -1720,7 +1720,7 @@ main(int argc, char *argv[])
|
||||
|
||||
case DMODE_ANON:
|
||||
if (g_ofile == NULL)
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
g_ofile = "/kernel/drv/dtrace.conf";
|
||||
#else
|
||||
/*
|
||||
@ -1732,7 +1732,7 @@ main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
dof_prune(g_ofile); /* strip out any old DOF directives */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
etcsystem_prune(); /* string out any forceload directives */
|
||||
#endif
|
||||
|
||||
@ -1765,7 +1765,7 @@ main(int argc, char *argv[])
|
||||
* that itself contains a #pragma D option quiet.
|
||||
*/
|
||||
error("saved anonymous enabling in %s\n", g_ofile);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
etcsystem_add();
|
||||
error("run update_drv(1M) or reboot to enable changes\n");
|
||||
#endif
|
||||
|
@ -46,10 +46,9 @@
|
||||
#include <signal.h>
|
||||
#include <assert.h>
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define GETOPT_EOF EOF
|
||||
#else
|
||||
/* FreeBSD */
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
@ -57,7 +56,7 @@
|
||||
#define GETOPT_EOF (-1)
|
||||
|
||||
typedef uintptr_t pc_t;
|
||||
#endif /* defined(sun) */
|
||||
#endif
|
||||
|
||||
#define LOCKSTAT_OPTSTR "x:bths:n:d:i:l:f:e:ckwWgCHEATID:RpPo:V"
|
||||
|
||||
@ -214,10 +213,9 @@ static ls_event_info_t g_event_info[LS_MAX_EVENTS] = {
|
||||
{ 'H', "Lock", "Unknown event (type 53)", "units" },
|
||||
{ 'H', "Lock", "Unknown event (type 54)", "units" },
|
||||
{ 'H', "Lock", "Unknown event (type 55)", "units" },
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
{ 'I', "CPU+PIL", "Profiling interrupt", "nsec",
|
||||
#else
|
||||
/* FreeBSD */
|
||||
{ 'I', "CPU+Pri_Class", "Profiling interrupt", "nsec",
|
||||
#endif
|
||||
"profile:::profile-97", NULL },
|
||||
@ -231,7 +229,7 @@ static ls_event_info_t g_event_info[LS_MAX_EVENTS] = {
|
||||
{ 'E', "Lock", "Lockstat record failure", "(N/A)" },
|
||||
};
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
static char *g_pri_class[] = {
|
||||
"",
|
||||
"Intr",
|
||||
@ -598,7 +596,7 @@ filter_add(char **filt, char *what, uintptr_t base, uintptr_t size)
|
||||
*filt[0] = '\0';
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) sprintf(c, "%s(%s >= 0x%p && %s < 0x%p)", *filt[0] != '\0' ?
|
||||
" || " : "", what, (void *)base, what, (void *)(base + size));
|
||||
#else
|
||||
@ -676,7 +674,7 @@ dprog_addevent(int event)
|
||||
* the number of nanoseconds) is the number of nanoseconds
|
||||
* late -- and it's stored in arg2.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
arg0 = "(uintptr_t)curthread->t_cpu + \n"
|
||||
"\t curthread->t_cpu->cpu_profile_pil";
|
||||
#else
|
||||
@ -824,7 +822,7 @@ dprog_compile()
|
||||
}
|
||||
|
||||
static void
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
status_fire(void)
|
||||
#else
|
||||
status_fire(int i)
|
||||
@ -1423,7 +1421,7 @@ main(int argc, char **argv)
|
||||
exit(127);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
while (waitpid(child, &status, WEXITED) != child)
|
||||
#else
|
||||
while (waitpid(child, &status, 0) != child)
|
||||
@ -1468,7 +1466,7 @@ main(int argc, char **argv)
|
||||
dfail("failed to walk aggregate");
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((data_buf = memalign(sizeof (uint64_t),
|
||||
(g_nrecs + 1) * g_recsize)) == NULL)
|
||||
#else
|
||||
@ -1500,7 +1498,7 @@ main(int argc, char **argv)
|
||||
if (g_gflag) {
|
||||
lsrec_t *newlsp, *oldlsp;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
newlsp = memalign(sizeof (uint64_t),
|
||||
g_nrecs_used * LS_TIME * (g_stkdepth + 1));
|
||||
#else
|
||||
@ -1664,7 +1662,7 @@ format_symbol(char *buf, uintptr_t addr, int show_size)
|
||||
else if (symoff == 0)
|
||||
(void) sprintf(buf, "%s", symname);
|
||||
else if (symoff < 16 && bcmp(symname, "cpu[", 4) == 0) /* CPU+PIL */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) sprintf(buf, "%s+%ld", symname, (long)symoff);
|
||||
#else
|
||||
(void) sprintf(buf, "%s+%s", symname, g_pri_class[(int)symoff]);
|
||||
|
@ -42,12 +42,11 @@
|
||||
#include <libelf.h>
|
||||
#include <link.h>
|
||||
#include <elf.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/machelf.h>
|
||||
|
||||
#include <kstat.h>
|
||||
#else
|
||||
/* FreeBSD */
|
||||
#include <sys/elf.h>
|
||||
#include <sys/ksyms.h>
|
||||
#include <sys/param.h>
|
||||
@ -66,7 +65,7 @@ static syment_t *symbol_table;
|
||||
static int nsyms, maxsyms;
|
||||
static char maxsymname[64];
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#ifdef _ELF64
|
||||
#define elf_getshdr elf64_getshdr
|
||||
#else
|
||||
@ -105,7 +104,7 @@ remove_symbol(uintptr_t addr)
|
||||
sep->addr = 0;
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static void
|
||||
fake_up_certain_popular_kernel_symbols(void)
|
||||
{
|
||||
@ -133,8 +132,7 @@ fake_up_certain_popular_kernel_symbols(void)
|
||||
}
|
||||
(void) kstat_close(kc);
|
||||
}
|
||||
#else
|
||||
/* FreeBSD */
|
||||
#else /* !illumos */
|
||||
static void
|
||||
fake_up_certain_popular_kernel_symbols(void)
|
||||
{
|
||||
@ -151,7 +149,7 @@ fake_up_certain_popular_kernel_symbols(void)
|
||||
add_symbol(name, addr, sizeof (uintptr_t));
|
||||
}
|
||||
}
|
||||
#endif /* !defined(sun) */
|
||||
#endif /* illumos */
|
||||
|
||||
static int
|
||||
symcmp(const void *p1, const void *p2)
|
||||
@ -177,12 +175,12 @@ symtab_init(void)
|
||||
int fd;
|
||||
int i;
|
||||
int strindex = -1;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
void *ksyms;
|
||||
size_t sz;
|
||||
#endif
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#ifndef illumos
|
||||
if ((fd = open("/dev/ksyms", O_RDONLY)) == -1) {
|
||||
if (errno == ENOENT && modfind("ksyms") == -1) {
|
||||
kldload("ksyms");
|
||||
@ -196,12 +194,11 @@ symtab_init(void)
|
||||
return (-1);
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) elf_version(EV_CURRENT);
|
||||
|
||||
elf = elf_begin(fd, ELF_C_READ, NULL);
|
||||
#else
|
||||
/* FreeBSD */
|
||||
/*
|
||||
* XXX - libelf needs to be fixed so it will work with
|
||||
* non 'ordinary' files like /dev/ksyms. The following
|
||||
|
@ -40,7 +40,7 @@ die(char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
int err = errno;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
const char *progname = getprogname();
|
||||
#endif
|
||||
|
||||
@ -54,7 +54,7 @@ die(char *format, ...)
|
||||
if (format[strlen(format) - 1] != '\n')
|
||||
(void) fprintf(stderr, ": %s\n", strerror(err));
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#ifndef illumos
|
||||
exit(0);
|
||||
#else
|
||||
exit(1);
|
||||
@ -65,7 +65,7 @@ void
|
||||
elfdie(char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
const char *progname = getprogname();
|
||||
#endif
|
||||
|
||||
@ -79,7 +79,7 @@ elfdie(char *format, ...)
|
||||
if (format[strlen(format) - 1] != '\n')
|
||||
(void) fprintf(stderr, ": %s\n", elf_errmsg(elf_errno()));
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#ifndef illumos
|
||||
exit(0);
|
||||
#else
|
||||
exit(1);
|
||||
|
@ -40,7 +40,7 @@ extern int findelfsecidx(Elf *, char *);
|
||||
extern void die(char *, ...);
|
||||
extern void elfdie(char *, ...);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern const char *progname;
|
||||
#endif
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
#endif
|
||||
|
||||
@ -505,7 +505,7 @@ getsym(struct ps_prochandle *P, uintptr_t addr, char *buf, size_t size,
|
||||
{
|
||||
char name[256];
|
||||
GElf_Sym sym;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
prsyminfo_t info;
|
||||
#else
|
||||
prmap_t *map;
|
||||
@ -518,7 +518,7 @@ getsym(struct ps_prochandle *P, uintptr_t addr, char *buf, size_t size,
|
||||
(void) snprintf(buf, size, "%#lx", addr);
|
||||
return (0);
|
||||
}
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (info.prs_object == NULL)
|
||||
info.prs_object = "<unknown>";
|
||||
|
||||
@ -668,7 +668,7 @@ process_aggregate(const dtrace_aggdata_t **aggsdata, int naggvars, void *arg)
|
||||
static void
|
||||
prochandler(struct ps_prochandle *P, const char *msg, void *arg)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const psinfo_t *prp = Ppsinfo(P);
|
||||
int pid = Pstatus(P)->pr_pid;
|
||||
#else
|
||||
@ -773,7 +773,7 @@ intr(int signo)
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ucred_t *ucp;
|
||||
#endif
|
||||
int err;
|
||||
@ -785,7 +785,7 @@ main(int argc, char **argv)
|
||||
|
||||
g_pname = basename(argv[0]);
|
||||
argv[0] = g_pname; /* rewrite argv[0] for getopt errors */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Make sure we have the required dtrace_proc privilege.
|
||||
*/
|
||||
@ -988,7 +988,7 @@ main(int argc, char **argv)
|
||||
|
||||
if (opt_v)
|
||||
(void) printf("%s: tracing enabled for pid %d\n", g_pname,
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(int)Pstatus(g_pr)->pr_pid);
|
||||
#else
|
||||
(int)proc_getpid(g_pr));
|
||||
|
@ -39,7 +39,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/machelf.h>
|
||||
#else
|
||||
#include <sys/elf.h>
|
||||
|
@ -48,7 +48,7 @@ extern "C" {
|
||||
|
||||
#ifndef _ASM
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/machelf.h>
|
||||
#else
|
||||
#include <elf.h>
|
||||
|
@ -65,7 +65,7 @@
|
||||
#include <zfs_prop.h>
|
||||
#include <zfs_deleg.h>
|
||||
#include <libuutil.h>
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
#include <aclutils.h>
|
||||
#include <directory.h>
|
||||
#include <idmap.h>
|
||||
@ -2391,7 +2391,7 @@ userspace_cb(void *arg, const char *domain, uid_t rid, uint64_t space)
|
||||
/* SMB */
|
||||
char sid[ZFS_MAXNAMELEN + 32];
|
||||
uid_t id;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
int err;
|
||||
int flag = IDMAP_REQ_FLG_USE_CACHE;
|
||||
#endif
|
||||
@ -2402,17 +2402,17 @@ userspace_cb(void *arg, const char *domain, uid_t rid, uint64_t space)
|
||||
|
||||
if (prop == ZFS_PROP_GROUPUSED || prop == ZFS_PROP_GROUPQUOTA) {
|
||||
type = USTYPE_SMB_GRP;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
err = sid_to_id(sid, B_FALSE, &id);
|
||||
#endif
|
||||
} else {
|
||||
type = USTYPE_SMB_USR;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
err = sid_to_id(sid, B_TRUE, &id);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (err == 0) {
|
||||
rid = id;
|
||||
if (!cb->cb_sid2posix) {
|
||||
@ -6110,7 +6110,7 @@ unshare_unmount_path(int op, char *path, int flags, boolean_t is_manual)
|
||||
/*
|
||||
* Search for the given (major,minor) pair in the mount table.
|
||||
*/
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
rewind(mnttab_file);
|
||||
while ((ret = getextmntent(mnttab_file, &entry, 0)) == 0) {
|
||||
if (entry.mnt_major == major(statbuf.st_dev) &&
|
||||
|
@ -112,7 +112,7 @@ vdev_error(const char *fmt, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static void
|
||||
libdiskmgt_error(int error)
|
||||
{
|
||||
@ -274,7 +274,7 @@ check_device(const char *path, boolean_t force, boolean_t isspare)
|
||||
|
||||
return (check_slice(path, force, B_FALSE, isspare));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Check that a file is valid. All we can do in this case is check that it's
|
||||
@ -290,7 +290,7 @@ check_file(const char *file, boolean_t force, boolean_t isspare)
|
||||
pool_state_t state;
|
||||
boolean_t inuse;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (dm_inuse_swap(file, &err)) {
|
||||
if (err)
|
||||
libdiskmgt_error(err);
|
||||
@ -377,7 +377,7 @@ check_device(const char *name, boolean_t force, boolean_t isspare)
|
||||
static boolean_t
|
||||
is_whole_disk(const char *arg)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
struct dk_gpt *label;
|
||||
int fd;
|
||||
char path[MAXPATHLEN];
|
||||
@ -915,7 +915,7 @@ check_replication(nvlist_t *config, nvlist_t *newroot)
|
||||
return (ret);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Go through and find any whole disks in the vdev specification, labelling them
|
||||
* as appropriate. When constructing the vdev spec, we were unable to open this
|
||||
@ -1019,7 +1019,7 @@ make_disks(zpool_handle_t *zhp, nvlist_t *nv)
|
||||
|
||||
return (0);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Determine if the given path is a hot spare within the given configuration.
|
||||
@ -1098,7 +1098,7 @@ is_device_in_use(nvlist_t *config, nvlist_t *nv, boolean_t force,
|
||||
* regardless of what libdiskmgt or zpool_in_use() says.
|
||||
*/
|
||||
if (replacing) {
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_WHOLE_DISK,
|
||||
&wholedisk) == 0 && wholedisk)
|
||||
(void) snprintf(buf, sizeof (buf), "%ss0",
|
||||
@ -1422,7 +1422,7 @@ split_mirror_vdev(zpool_handle_t *zhp, char *newname, nvlist_t *props,
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (!flags.dryrun && make_disks(zhp, newroot) != 0) {
|
||||
nvlist_free(newroot);
|
||||
return (NULL);
|
||||
@ -1507,7 +1507,7 @@ make_root_vdev(zpool_handle_t *zhp, int force, int check_rep,
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Run through the vdev specification and label any whole disks found.
|
||||
*/
|
||||
|
@ -44,7 +44,7 @@ extern "C" {
|
||||
* safe in probe context.
|
||||
*/
|
||||
|
||||
#if defined(sun) && (defined(_KERNEL) || defined(_BOOT))
|
||||
#if defined(illumos) && (defined(_KERNEL) || defined(_BOOT))
|
||||
|
||||
#define isalnum(ch) (isalpha(ch) || isdigit(ch))
|
||||
#define isalpha(ch) (isupper(ch) || islower(ch))
|
||||
|
@ -34,14 +34,14 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <dlfcn.h>
|
||||
#else
|
||||
#include <zlib.h>
|
||||
#endif
|
||||
#include <gelf.h>
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#ifdef _LP64
|
||||
static const char *_libctf_zlib = "/usr/lib/64/libz.so";
|
||||
#else
|
||||
@ -58,7 +58,7 @@ static struct {
|
||||
static size_t _PAGESIZE;
|
||||
static size_t _PAGEMASK;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma init(_libctf_init)
|
||||
#else
|
||||
void _libctf_init(void) __attribute__ ((constructor));
|
||||
@ -66,7 +66,7 @@ void _libctf_init(void) __attribute__ ((constructor));
|
||||
void
|
||||
_libctf_init(void)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const char *p = getenv("LIBCTF_DECOMPRESSOR");
|
||||
|
||||
if (p != NULL)
|
||||
@ -87,7 +87,7 @@ _libctf_init(void)
|
||||
void *
|
||||
ctf_zopen(int *errp)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ctf_dprintf("decompressing CTF data using %s\n", _libctf_zlib);
|
||||
|
||||
if (zlib.z_dlp != NULL)
|
||||
|
@ -56,13 +56,13 @@
|
||||
*/
|
||||
|
||||
static const char *devnamep = "/dev/dtrace/helper";
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static const char *olddevname = "/devices/pseudo/dtrace@0:helper";
|
||||
#endif
|
||||
|
||||
static const char *modname; /* Name of this load object */
|
||||
static int gen; /* DOF helper generation */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern dof_hdr_t __SUNW_dof; /* DOF defined in the .SUNW_dof section */
|
||||
#endif
|
||||
static boolean_t dof_init_debug = B_FALSE; /* From DTRACE_DOF_INIT_DEBUG */
|
||||
@ -90,7 +90,7 @@ dprintf(int debug, const char *fmt, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma init(dtrace_dof_init)
|
||||
#else
|
||||
static void dtrace_dof_init(void) __attribute__ ((constructor));
|
||||
@ -99,7 +99,7 @@ static void dtrace_dof_init(void) __attribute__ ((constructor));
|
||||
static void
|
||||
dtrace_dof_init(void)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dof_hdr_t *dof = &__SUNW_dof;
|
||||
#else
|
||||
dof_hdr_t *dof = NULL;
|
||||
@ -111,14 +111,14 @@ dtrace_dof_init(void)
|
||||
#endif
|
||||
dof_helper_t dh;
|
||||
Link_map *lmp = NULL;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
Lmid_t lmid;
|
||||
#else
|
||||
u_long lmid = 0;
|
||||
#endif
|
||||
int fd;
|
||||
const char *p;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
Elf *e;
|
||||
Elf_Scn *scn = NULL;
|
||||
Elf_Data *dofdata = NULL;
|
||||
@ -141,7 +141,7 @@ dtrace_dof_init(void)
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dlinfo(RTLD_SELF, RTLD_DI_LMID, &lmid) == -1) {
|
||||
dprintf(1, "couldn't discover link map ID\n");
|
||||
return;
|
||||
@ -152,7 +152,7 @@ dtrace_dof_init(void)
|
||||
modname = lmp->l_name;
|
||||
else
|
||||
modname++;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
elf_version(EV_CURRENT);
|
||||
if ((efd = open(lmp->l_name, O_RDONLY, 0)) < 0) {
|
||||
dprintf(1, "couldn't open file for reading\n");
|
||||
@ -215,7 +215,7 @@ dtrace_dof_init(void)
|
||||
|
||||
if ((fd = open64(devnamep, O_RDWR)) < 0) {
|
||||
dprintf(1, "failed to open helper device %s", devnamep);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* If the device path wasn't explicitly set, try again with
|
||||
* the old device path.
|
||||
@ -237,14 +237,14 @@ dtrace_dof_init(void)
|
||||
dprintf(1, "DTrace ioctl failed for DOF at %p", dof);
|
||||
else {
|
||||
dprintf(1, "DTrace ioctl succeeded for DOF at %p\n", dof);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
gen = dh.gen;
|
||||
#endif
|
||||
}
|
||||
|
||||
(void) close(fd);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/* End of while loop */
|
||||
dof = dof_next;
|
||||
}
|
||||
@ -254,7 +254,7 @@ dtrace_dof_init(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma fini(dtrace_dof_fini)
|
||||
#else
|
||||
static void dtrace_dof_fini(void) __attribute__ ((destructor));
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include <unistd.h>
|
||||
#include <dt_impl.h>
|
||||
#include <assert.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#else
|
||||
#include <sys/sysctl.h>
|
||||
@ -453,7 +453,7 @@ dt_aggregate_snap_cpu(dtrace_hdl_t *dtp, processorid_t cpu)
|
||||
|
||||
buf->dtbd_cpu = cpu;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, buf) == -1) {
|
||||
#else
|
||||
if (dt_ioctl(dtp, DTRACEIOC_AGGSNAP, &buf) == -1) {
|
||||
|
@ -1888,7 +1888,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
|
||||
char **argv = malloc(sizeof (char *) * (argc + 5));
|
||||
FILE *ofp = tmpfile();
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
char ipath[20], opath[20]; /* big enough for /dev/fd/ + INT_MAX + \0 */
|
||||
#endif
|
||||
char verdef[32]; /* big enough for -D__SUNW_D_VERSION=0x%08x + \0 */
|
||||
@ -1898,7 +1898,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
|
||||
|
||||
int wstat, estat;
|
||||
pid_t pid;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
off64_t off;
|
||||
#else
|
||||
off_t off = 0;
|
||||
@ -1929,7 +1929,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
|
||||
(void) fseeko64(ifp, off, SEEK_SET);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) snprintf(ipath, sizeof (ipath), "/dev/fd/%d", fileno(ifp));
|
||||
(void) snprintf(opath, sizeof (opath), "/dev/fd/%d", fileno(ofp));
|
||||
#endif
|
||||
@ -1940,7 +1940,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
|
||||
"-D__SUNW_D_VERSION=0x%08x", dtp->dt_vmax);
|
||||
argv[argc++] = verdef;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
switch (dtp->dt_stdcmode) {
|
||||
case DT_STDC_XA:
|
||||
case DT_STDC_XT:
|
||||
@ -1982,7 +1982,7 @@ dt_preproc(dtrace_hdl_t *dtp, FILE *ifp)
|
||||
}
|
||||
|
||||
if (pid == 0) {
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (isatty(fileno(ifp)) == 0)
|
||||
lseek(fileno(ifp), off, SEEK_SET);
|
||||
dup2(fileno(ifp), 0);
|
||||
|
@ -35,12 +35,12 @@
|
||||
#include <limits.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <dt_impl.h>
|
||||
#include <dt_pq.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <libproc_compat.h>
|
||||
#endif
|
||||
|
||||
@ -2958,7 +2958,7 @@ dt_get_buf(dtrace_hdl_t *dtp, int cpu, dtrace_bufdesc_t **bufp)
|
||||
buf->dtbd_size = size;
|
||||
buf->dtbd_cpu = cpu;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, buf) == -1) {
|
||||
#else
|
||||
if (dt_ioctl(dtp, DTRACEIOC_BUFSNAP, &buf) == -1) {
|
||||
|
@ -26,12 +26,12 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
#include <strings.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <assert.h>
|
||||
|
@ -145,7 +145,7 @@ dtrace_errno(dtrace_hdl_t *dtp)
|
||||
return (dtp->dt_errno);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
int
|
||||
dt_set_errno(dtrace_hdl_t *dtp, int err)
|
||||
{
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
|
||||
|
@ -28,18 +28,18 @@
|
||||
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
#include <strings.h>
|
||||
#include <stdlib.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/procfs_isa.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/objfs.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <sys/bitmap.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/ioccom.h>
|
||||
@ -45,7 +45,7 @@
|
||||
#include <libctf.h>
|
||||
#include <dtrace.h>
|
||||
#include <gelf.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <synch.h>
|
||||
#endif
|
||||
|
||||
@ -142,7 +142,7 @@ typedef struct dt_module {
|
||||
GElf_Addr dm_bss_va; /* virtual address of BSS */
|
||||
GElf_Xword dm_bss_size; /* size in bytes of BSS */
|
||||
dt_idhash_t *dm_extern; /* external symbol definitions */
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
caddr_t dm_reloc_offset; /* Symbol relocation offset. */
|
||||
uintptr_t *dm_sec_offsets;
|
||||
#endif
|
||||
@ -296,7 +296,7 @@ struct dtrace_hdl {
|
||||
int dt_version; /* library version requested by client */
|
||||
int dt_ctferr; /* error resulting from last CTF failure */
|
||||
int dt_errno; /* error resulting from last failed operation */
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
const char *dt_errfile;
|
||||
int dt_errline;
|
||||
#endif
|
||||
@ -305,7 +305,7 @@ struct dtrace_hdl {
|
||||
int dt_fterr; /* saved errno from failed open of dt_ftfd */
|
||||
int dt_cdefs_fd; /* file descriptor for C CTF debugging cache */
|
||||
int dt_ddefs_fd; /* file descriptor for D CTF debugging cache */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
int dt_stdout_fd; /* file descriptor for saved stdout */
|
||||
#else
|
||||
FILE *dt_freopen_fp; /* file pointer for freopened stdout */
|
||||
@ -596,7 +596,7 @@ extern int dt_version_defined(dt_version_t);
|
||||
extern char *dt_cpp_add_arg(dtrace_hdl_t *, const char *);
|
||||
extern char *dt_cpp_pop_arg(dtrace_hdl_t *);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern int dt_set_errno(dtrace_hdl_t *, int);
|
||||
#else
|
||||
int _dt_set_errno(dtrace_hdl_t *, int, const char *, int);
|
||||
@ -606,7 +606,7 @@ void dt_get_errloc(dtrace_hdl_t *, const char **, int *);
|
||||
extern void dt_set_errmsg(dtrace_hdl_t *, const char *, const char *,
|
||||
const char *, int, const char *, va_list);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern int dt_ioctl(dtrace_hdl_t *, int, void *);
|
||||
#else
|
||||
extern int dt_ioctl(dtrace_hdl_t *, u_long, void *);
|
||||
|
@ -44,7 +44,7 @@
|
||||
* We need to undefine lex's input and unput macros so that references to these
|
||||
* call the functions provided at the end of this source file.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#undef input
|
||||
#undef unput
|
||||
#else
|
||||
@ -79,7 +79,7 @@
|
||||
#endif
|
||||
|
||||
static int id_or_type(const char *);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static int input(void);
|
||||
static void unput(int);
|
||||
#endif
|
||||
@ -740,7 +740,7 @@ yyinit(dt_pcb_t *pcb)
|
||||
yypcb = pcb;
|
||||
yylineno = 1;
|
||||
yypragma = NULL;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
yysptr = yysbuf;
|
||||
#endif
|
||||
}
|
||||
@ -838,7 +838,7 @@ id_or_type(const char *s)
|
||||
return (ttok);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static int
|
||||
input(void)
|
||||
{
|
||||
@ -880,4 +880,4 @@ unput(int c)
|
||||
*yysptr++ = c;
|
||||
yytchar = c;
|
||||
}
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <elf.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#else
|
||||
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
#include <unistd.h>
|
||||
#include <strings.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
@ -47,7 +47,7 @@
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <wait.h>
|
||||
#else
|
||||
#include <sys/wait.h>
|
||||
@ -322,7 +322,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf64_t *dep)
|
||||
char *strtab;
|
||||
int i, j, nrel;
|
||||
size_t strtabsz = 1;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
uint32_t count = 0;
|
||||
#else
|
||||
uint64_t count = 0;
|
||||
@ -434,7 +434,7 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, dof_elf64_t *dep)
|
||||
#elif defined(__i386) || defined(__amd64)
|
||||
rel->r_offset = s->dofs_offset +
|
||||
dofr[j].dofr_offset;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
rel->r_info = ELF64_R_INFO(count + dep->de_global,
|
||||
R_AMD64_64);
|
||||
#else
|
||||
@ -711,7 +711,7 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, int fd)
|
||||
|
||||
shp = &elf_file.shdr[ESHDR_DOF];
|
||||
shp->sh_name = 11; /* DTRACE_SHSTRTAB64[11] = ".SUNW_dof" */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
shp->sh_flags = SHF_ALLOC;
|
||||
#else
|
||||
shp->sh_flags = SHF_WRITE | SHF_ALLOC;
|
||||
@ -1613,7 +1613,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
|
||||
return (dt_link_error(dtp, elf, fd, bufs,
|
||||
"failed to allocate space for probe"));
|
||||
}
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/*
|
||||
* Our linker doesn't understand the SUNW_IGNORE ndx and
|
||||
* will try to use this relocation when we build the
|
||||
@ -1647,7 +1647,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
|
||||
* already been processed by an earlier link
|
||||
* invocation.
|
||||
*/
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#define SHN_SUNW_IGNORE SHN_ABS
|
||||
#endif
|
||||
if (rsym.st_shndx != SHN_SUNW_IGNORE) {
|
||||
@ -1663,7 +1663,7 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *eprobesp)
|
||||
(void) elf_end(elf);
|
||||
(void) close(fd);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (nsym > 0)
|
||||
#endif
|
||||
while ((pair = bufs) != NULL) {
|
||||
@ -1684,7 +1684,7 @@ int
|
||||
dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
const char *file, int objc, char *const objv[])
|
||||
{
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
char tfile[PATH_MAX];
|
||||
#endif
|
||||
char drti[PATH_MAX];
|
||||
@ -1694,7 +1694,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
size_t len;
|
||||
int eprobes = 0, ret = 0;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (access(file, R_OK) == 0) {
|
||||
fprintf(stderr, "dtrace: target object (%s) already exists. "
|
||||
"Please remove the target\ndtrace: object and rebuild all "
|
||||
@ -1770,7 +1770,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
if ((dof = dtrace_dof_create(dtp, pgp, dflags)) == NULL)
|
||||
return (-1); /* errno is set for us */
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Create a temporary file and then unlink it if we're going to
|
||||
* combine it with drti.o later. We can still refer to it in child
|
||||
@ -1816,7 +1816,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
}
|
||||
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (!dtp->dt_lazyload)
|
||||
(void) unlink(file);
|
||||
#endif
|
||||
@ -1826,7 +1826,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
else
|
||||
status = dump_elf32(dtp, dof, fd);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (status != 0 || lseek(fd, 0, SEEK_SET) != 0) {
|
||||
return (dt_link_error(dtp, NULL, -1, NULL,
|
||||
"failed to write %s: %s", file, strerror(errno)));
|
||||
@ -1839,7 +1839,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
#endif
|
||||
|
||||
if (!dtp->dt_lazyload) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const char *fmt = "%s -o %s -r -Blocal -Breduce /dev/fd/%d %s";
|
||||
|
||||
if (dtp->dt_oflags & DTRACE_O_LP64) {
|
||||
@ -1912,7 +1912,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
||||
done:
|
||||
dtrace_dof_destroy(dtp, dof);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
unlink(tfile);
|
||||
#endif
|
||||
return (ret);
|
||||
|
@ -156,7 +156,7 @@ dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
|
||||
enabled->dtepd_epid = id;
|
||||
enabled->dtepd_nrecs = 1;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled) == -1) {
|
||||
#else
|
||||
if (dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled) == -1) {
|
||||
@ -180,7 +180,7 @@ dt_epid_add(dtrace_hdl_t *dtp, dtrace_epid_t id)
|
||||
if ((enabled = nenabled) == NULL)
|
||||
return (dt_set_errno(dtp, EDT_NOMEM));
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, enabled);
|
||||
#else
|
||||
rval = dt_ioctl(dtp, DTRACEIOC_EPROBE, &enabled);
|
||||
@ -356,7 +356,7 @@ dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id)
|
||||
agg->dtagd_id = id;
|
||||
agg->dtagd_nrecs = 1;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg) == -1) {
|
||||
#else
|
||||
if (dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg) == -1) {
|
||||
@ -379,7 +379,7 @@ dt_aggid_add(dtrace_hdl_t *dtp, dtrace_aggid_t id)
|
||||
if ((agg = nagg) == NULL)
|
||||
return (dt_set_errno(dtp, EDT_NOMEM));
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, agg);
|
||||
#else
|
||||
rval = dt_ioctl(dtp, DTRACEIOC_AGGDESC, &agg);
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/modctl.h>
|
||||
#include <sys/kobj.h>
|
||||
#include <sys/kobj_impl.h>
|
||||
@ -41,7 +41,7 @@
|
||||
#endif
|
||||
|
||||
#include <unistd.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <project.h>
|
||||
#endif
|
||||
#include <strings.h>
|
||||
@ -51,7 +51,7 @@
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <dirent.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <fcntl.h>
|
||||
#include <libproc_compat.h>
|
||||
#endif
|
||||
@ -572,7 +572,7 @@ dt_module_load_sect(dtrace_hdl_t *dtp, dt_module_t *dmp, ctf_sect_t *ctsp)
|
||||
if (sp == NULL || (dp = elf_getdata(sp, NULL)) == NULL)
|
||||
return (0);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ctsp->cts_data = dp->d_buf;
|
||||
#else
|
||||
if ((ctsp->cts_data = malloc(dp->d_size)) == NULL)
|
||||
@ -921,7 +921,7 @@ dt_module_unload(dtrace_hdl_t *dtp, dt_module_t *dmp)
|
||||
ctf_close(dmp->dm_ctfp);
|
||||
dmp->dm_ctfp = NULL;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (dmp->dm_ctdata.cts_data != NULL) {
|
||||
free(dmp->dm_ctdata.cts_data);
|
||||
}
|
||||
@ -1115,7 +1115,7 @@ dt_module_getctflib(dtrace_hdl_t *dtp, dt_module_t *dmp, const char *name)
|
||||
* including the path.
|
||||
*/
|
||||
static void
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_module_update(dtrace_hdl_t *dtp, const char *name)
|
||||
#else
|
||||
dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
|
||||
@ -1132,7 +1132,7 @@ dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
|
||||
Elf_Data *dp;
|
||||
Elf_Scn *sp;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) snprintf(fname, sizeof (fname),
|
||||
"%s/%s/object", OBJFS_ROOT, name);
|
||||
#else
|
||||
@ -1242,7 +1242,7 @@ dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
|
||||
}
|
||||
|
||||
dmp->dm_flags |= DT_DM_KERNEL;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dmp->dm_modid = (int)OBJFS_MODID(st.st_ino);
|
||||
#else
|
||||
/*
|
||||
@ -1265,7 +1265,7 @@ dt_module_update(dtrace_hdl_t *dtp, struct kld_file_stat *k_stat)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
if (dmp->dm_info.objfs_info_primary)
|
||||
dmp->dm_flags |= DT_DM_PRIMARY;
|
||||
@ -1291,7 +1291,7 @@ dtrace_update(dtrace_hdl_t *dtp)
|
||||
dmp != NULL; dmp = dt_list_next(dmp))
|
||||
dt_module_unload(dtp, dmp);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Open /system/object and attempt to create a libdtrace module for
|
||||
* each kernel module that is loaded on the current system.
|
||||
@ -1331,11 +1331,11 @@ dtrace_update(dtrace_hdl_t *dtp)
|
||||
dt_idhash_lookup(dtp->dt_macros, "pid")->di_id = getpid();
|
||||
dt_idhash_lookup(dtp->dt_macros, "pgid")->di_id = getpgid(0);
|
||||
dt_idhash_lookup(dtp->dt_macros, "ppid")->di_id = getppid();
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_idhash_lookup(dtp->dt_macros, "projid")->di_id = getprojid();
|
||||
#endif
|
||||
dt_idhash_lookup(dtp->dt_macros, "sid")->di_id = getsid(0);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_idhash_lookup(dtp->dt_macros, "taskid")->di_id = gettaskid();
|
||||
#endif
|
||||
dt_idhash_lookup(dtp->dt_macros, "uid")->di_id = getuid();
|
||||
|
@ -26,11 +26,10 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/modctl.h>
|
||||
#include <sys/systeminfo.h>
|
||||
#else
|
||||
/* FreeBSD */
|
||||
#include <sys/param.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/linker.h>
|
||||
@ -39,7 +38,7 @@
|
||||
|
||||
#include <libelf.h>
|
||||
#include <strings.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
@ -60,7 +59,7 @@
|
||||
#include <dt_printf.h>
|
||||
#include <dt_string.h>
|
||||
#include <dt_provider.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <sys/sysctl.h>
|
||||
#include <string.h>
|
||||
#endif
|
||||
@ -164,7 +163,7 @@ const dt_version_t _dtrace_versions[] = {
|
||||
/*
|
||||
* Global variables that are formatted on FreeBSD based on the kernel file name.
|
||||
*/
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
static char curthread_str[MAXPATHLEN];
|
||||
static char intmtx_str[MAXPATHLEN];
|
||||
static char threadmtx_str[MAXPATHLEN];
|
||||
@ -246,7 +245,7 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
{ "curthread", DT_IDENT_SCALAR, 0, DIF_VAR_CURTHREAD,
|
||||
{ DTRACE_STABILITY_STABLE, DTRACE_STABILITY_PRIVATE,
|
||||
DTRACE_CLASS_COMMON }, DT_VERS_1_0,
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
&dt_idops_type, "genunix`kthread_t *" },
|
||||
#else
|
||||
&dt_idops_type, curthread_str },
|
||||
@ -297,13 +296,13 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
{ "index", DT_IDENT_FUNC, 0, DIF_SUBR_INDEX, DT_ATTR_STABCMN, DT_VERS_1_1,
|
||||
&dt_idops_func, "int(const char *, const char *, [int])" },
|
||||
{ "inet_ntoa", DT_IDENT_FUNC, 0, DIF_SUBR_INET_NTOA, DT_ATTR_STABCMN,
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
DT_VERS_1_5, &dt_idops_func, "string(ipaddr_t *)" },
|
||||
#else
|
||||
DT_VERS_1_5, &dt_idops_func, "string(in_addr_t *)" },
|
||||
#endif
|
||||
{ "inet_ntoa6", DT_IDENT_FUNC, 0, DIF_SUBR_INET_NTOA6, DT_ATTR_STABCMN,
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
DT_VERS_1_5, &dt_idops_func, "string(in6_addr_t *)" },
|
||||
#else
|
||||
DT_VERS_1_5, &dt_idops_func, "string(struct in6_addr *)" },
|
||||
@ -328,7 +327,7 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
&dt_idops_func, "void(@)" },
|
||||
{ "memref", DT_IDENT_FUNC, 0, DIF_SUBR_MEMREF, DT_ATTR_STABCMN, DT_VERS_1_1,
|
||||
&dt_idops_func, "uintptr_t *(void *, size_t)" },
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
{ "memstr", DT_IDENT_FUNC, 0, DIF_SUBR_MEMSTR, DT_ATTR_STABCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, "string(void *, char, size_t)" },
|
||||
#endif
|
||||
@ -342,7 +341,7 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
{ "msgsize", DT_IDENT_FUNC, 0, DIF_SUBR_MSGSIZE,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, "size_t(mblk_t *)" },
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
{ "mutex_owned", DT_IDENT_FUNC, 0, DIF_SUBR_MUTEX_OWNED,
|
||||
DT_ATTR_EVOLCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, "int(genunix`kmutex_t *)" },
|
||||
@ -413,7 +412,7 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
&dt_idops_func, "int()" },
|
||||
{ "rindex", DT_IDENT_FUNC, 0, DIF_SUBR_RINDEX, DT_ATTR_STABCMN, DT_VERS_1_1,
|
||||
&dt_idops_func, "int(const char *, const char *, [int])" },
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
{ "rw_iswriter", DT_IDENT_FUNC, 0, DIF_SUBR_RW_ISWRITER,
|
||||
DT_ATTR_EVOLCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, "int(genunix`krwlock_t *)" },
|
||||
@ -471,7 +470,7 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
&dt_idops_func, "string(const char *, int, [int])" },
|
||||
{ "sum", DT_IDENT_AGGFUNC, 0, DTRACEAGG_SUM, DT_ATTR_STABCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, "void(@)" },
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
{ "sx_isexclusive", DT_IDENT_FUNC, 0, DIF_SUBR_SX_ISEXCLUSIVE,
|
||||
DT_ATTR_EVOLCMN, DT_VERS_1_0,
|
||||
&dt_idops_func, sxlock_str },
|
||||
@ -531,12 +530,12 @@ static const dt_ident_t _dtrace_globals[] = {
|
||||
{ "walltimestamp", DT_IDENT_SCALAR, 0, DIF_VAR_WALLTIMESTAMP,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_0,
|
||||
&dt_idops_type, "int64_t" },
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
{ "zonename", DT_IDENT_SCALAR, 0, DIF_VAR_ZONENAME,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_type, "string" },
|
||||
#endif
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
{ "cpu", DT_IDENT_SCALAR, 0, DIF_VAR_CPU,
|
||||
DT_ATTR_STABCMN, DT_VERS_1_6_3, &dt_idops_type, "int" },
|
||||
#endif
|
||||
@ -780,7 +779,7 @@ const dtrace_pattr_t _dtrace_prvdesc = {
|
||||
{ DTRACE_STABILITY_UNSTABLE, DTRACE_STABILITY_UNSTABLE, DTRACE_CLASS_COMMON },
|
||||
};
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const char *_dtrace_defcpp = "/usr/ccs/lib/cpp"; /* default cpp(1) to invoke */
|
||||
const char *_dtrace_defld = "/usr/ccs/bin/ld"; /* default ld(1) to invoke */
|
||||
#else
|
||||
@ -789,7 +788,7 @@ const char *_dtrace_defld = "ld"; /* default ld(1) to invoke */
|
||||
#endif
|
||||
|
||||
const char *_dtrace_libdir = "/usr/lib/dtrace"; /* default library directory */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const char *_dtrace_provdir = "/dev/dtrace/provider"; /* provider directory */
|
||||
#else
|
||||
const char *_dtrace_provdir = "/dev/dtrace"; /* provider directory */
|
||||
@ -814,7 +813,7 @@ typedef struct dt_fdlist {
|
||||
uint_t df_size; /* size of df_fds[] */
|
||||
} dt_fdlist_t;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma init(_dtrace_init)
|
||||
#else
|
||||
void _dtrace_init(void) __attribute__ ((constructor));
|
||||
@ -850,7 +849,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
|
||||
dt_provmod_t *prov;
|
||||
char path[PATH_MAX];
|
||||
int fd;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
struct dirent *dp, *ep;
|
||||
DIR *dirp;
|
||||
|
||||
@ -897,7 +896,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
|
||||
}
|
||||
|
||||
(void) closedir(dirp);
|
||||
#else
|
||||
#else /* !illumos */
|
||||
char *p;
|
||||
char *p1;
|
||||
char *p_providers = NULL;
|
||||
@ -982,7 +981,7 @@ dt_provmod_open(dt_provmod_t **provmod, dt_fdlist_t *dfp)
|
||||
}
|
||||
if (p_providers != NULL)
|
||||
free(p_providers);
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
static void
|
||||
@ -999,7 +998,7 @@ dt_provmod_destroy(dt_provmod_t **provmod)
|
||||
*provmod = NULL;
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static const char *
|
||||
dt_get_sysinfo(int cmd, char *buf, size_t len)
|
||||
{
|
||||
@ -1112,7 +1111,7 @@ dt_vopen(int version, int flags, int *errp,
|
||||
err = errno;
|
||||
}
|
||||
#endif
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ftfd = open("/dev/dtrace/provider/fasttrap", O_RDWR);
|
||||
#else
|
||||
ftfd = open("/dev/dtrace/fasttrap", O_RDWR);
|
||||
@ -1154,7 +1153,7 @@ alloc:
|
||||
|
||||
bzero(dtp, sizeof (dtrace_hdl_t));
|
||||
dtp->dt_oflags = flags;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dtp->dt_prcmode = DT_PROC_STOP_PREINIT;
|
||||
#else
|
||||
dtp->dt_prcmode = DT_PROC_STOP_POSTINIT;
|
||||
@ -1170,7 +1169,7 @@ alloc:
|
||||
dtp->dt_fterr = fterr;
|
||||
dtp->dt_cdefs_fd = -1;
|
||||
dtp->dt_ddefs_fd = -1;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dtp->dt_stdout_fd = -1;
|
||||
#else
|
||||
dtp->dt_freopen_fp = NULL;
|
||||
@ -1202,7 +1201,7 @@ alloc:
|
||||
|
||||
dtp->dt_cpp_argv[0] = (char *)strbasename(dtp->dt_cpp_path);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) snprintf(isadef, sizeof (isadef), "-D__SUNW_D_%u",
|
||||
(uint_t)(sizeof (void *) * NBBY));
|
||||
|
||||
@ -1242,7 +1241,7 @@ alloc:
|
||||
return (set_open_errno(dtp, errp, EDT_NOMEM));
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#ifdef __x86
|
||||
/*
|
||||
* On x86 systems, __i386 is defined for <sys/isa_defs.h> for 32-bit
|
||||
@ -1282,7 +1281,7 @@ alloc:
|
||||
* 'kern.bootfile' sysctl value tells us exactly which file is being
|
||||
* used as the kernel.
|
||||
*/
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
{
|
||||
char bootfile[MAXPATHLEN];
|
||||
char *p;
|
||||
@ -1644,7 +1643,7 @@ dtrace_close(dtrace_hdl_t *dtp)
|
||||
(void) close(dtp->dt_cdefs_fd);
|
||||
if (dtp->dt_ddefs_fd != -1)
|
||||
(void) close(dtp->dt_ddefs_fd);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dtp->dt_stdout_fd != -1)
|
||||
(void) close(dtp->dt_stdout_fd);
|
||||
#else
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <limits.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
@ -871,7 +871,7 @@ dt_options_load(dtrace_hdl_t *dtp)
|
||||
bzero(&hdr, sizeof (dof_hdr_t));
|
||||
hdr.dofh_loadsz = sizeof (dof_hdr_t);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &hdr) == -1)
|
||||
#else
|
||||
dof = &hdr;
|
||||
@ -889,7 +889,7 @@ dt_options_load(dtrace_hdl_t *dtp)
|
||||
for (i = 0; i < DTRACEOPT_MAX; i++)
|
||||
dtp->dt_options[i] = DTRACEOPT_UNSET;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (dt_ioctl(dtp, DTRACEIOC_DOFGET, dof) == -1)
|
||||
#else
|
||||
if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &dof) == -1)
|
||||
|
@ -102,7 +102,7 @@
|
||||
#include <setjmp.h>
|
||||
#include <strings.h>
|
||||
#include <assert.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <libgen.h>
|
||||
@ -44,7 +44,7 @@
|
||||
#include <dt_program.h>
|
||||
#include <dt_pid.h>
|
||||
#include <dt_string.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <libproc_compat.h>
|
||||
#endif
|
||||
#include <dt_module.h>
|
||||
@ -74,7 +74,7 @@ typedef struct dt_pid_probe {
|
||||
static void
|
||||
dt_pid_objname(char *buf, size_t len, Lmid_t lmid, const char *obj)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (lmid == LM_ID_BASE)
|
||||
(void) strncpy(buf, obj, len);
|
||||
else
|
||||
@ -126,7 +126,7 @@ dt_pid_per_sym(dt_pid_probe_t *pp, const GElf_Sym *symp, const char *func)
|
||||
int isdash = strcmp("-", func) == 0;
|
||||
pid_t pid;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid = Pstatus(pp->dpp_pr)->pr_pid;
|
||||
#else
|
||||
pid = proc_getpid(pp->dpp_pr);
|
||||
@ -270,7 +270,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
|
||||
if (obj == NULL)
|
||||
return (0);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
|
||||
#endif
|
||||
|
||||
@ -279,7 +279,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
|
||||
pp->dpp_obj = obj;
|
||||
else
|
||||
pp->dpp_obj++;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (Pxlookup_by_name(pp->dpp_pr, pp->dpp_lmid, obj, ".stret1", &sym,
|
||||
NULL) == 0)
|
||||
pp->dpp_stret[0] = sym.st_value;
|
||||
@ -337,7 +337,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
|
||||
GELF_ST_INFO(STB_LOCAL, STT_FUNC);
|
||||
sym.st_other = 0;
|
||||
sym.st_value = 0;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sym.st_size = Pstatus(pp->dpp_pr)->pr_dmodel ==
|
||||
PR_MODEL_ILP32 ? -1U : -1ULL;
|
||||
#else
|
||||
@ -404,7 +404,7 @@ dt_pid_mod_filt(void *arg, const prmap_t *pmp, const char *obj)
|
||||
if (gmatch(obj, pp->dpp_mod))
|
||||
return (dt_pid_per_mod(pp, pmp, obj));
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
|
||||
#else
|
||||
pp->dpp_lmid = 0;
|
||||
@ -418,7 +418,7 @@ dt_pid_mod_filt(void *arg, const prmap_t *pmp, const char *obj)
|
||||
if (gmatch(pp->dpp_obj, pp->dpp_mod))
|
||||
return (dt_pid_per_mod(pp, pmp, obj));
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Plmid(pp->dpp_pr, pmp->pr_vaddr, &pp->dpp_lmid);
|
||||
#endif
|
||||
|
||||
@ -468,7 +468,7 @@ dt_pid_fix_mod(dtrace_probedesc_t *pdp, struct ps_prochandle *P)
|
||||
else
|
||||
obj++;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Plmid(P, pmp->pr_vaddr, &lmid);
|
||||
#endif
|
||||
|
||||
@ -599,13 +599,13 @@ dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
|
||||
dh.dofhp_addr = (e_type == ET_EXEC) ? 0 : pmp->pr_vaddr;
|
||||
|
||||
dt_pid_objname(dh.dofhp_mod, sizeof (dh.dofhp_mod),
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sip.prs_lmid, mname);
|
||||
#else
|
||||
0, mname);
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (fd == -1 &&
|
||||
(fd = pr_open(P, "/dev/dtrace/helper", O_RDWR, 0)) < 0) {
|
||||
dt_dprintf("pr_open of helper device failed: %s\n",
|
||||
@ -618,7 +618,7 @@ dt_pid_usdt_mapping(void *data, const prmap_t *pmp, const char *oname)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (fd != -1)
|
||||
(void) pr_close(P, fd);
|
||||
#endif
|
||||
@ -634,13 +634,13 @@ dt_pid_create_usdt_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp,
|
||||
int ret = 0;
|
||||
|
||||
assert(DT_MUTEX_HELD(&dpr->dpr_lock));
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Pupdate_maps(P);
|
||||
if (Pobject_iter(P, dt_pid_usdt_mapping, P) != 0) {
|
||||
ret = -1;
|
||||
(void) dt_pid_error(dtp, pcb, dpr, NULL, D_PROC_USDT,
|
||||
"failed to instantiate probes for pid %d: %s",
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(int)Pstatus(P)->pr_pid, strerror(errno));
|
||||
#else
|
||||
(int)proc_getpid(P), strerror(errno));
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <strings.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
|
@ -25,7 +25,7 @@
|
||||
* Copyright (c) 2013 by Delphix. All rights reserved.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#else
|
||||
#define ABS(a) ((a) < 0 ? -(a) : (a))
|
||||
@ -33,7 +33,7 @@
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <stdlib.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <assert.h>
|
||||
@ -467,7 +467,7 @@ pfprint_time(dtrace_hdl_t *dtp, FILE *fp, const char *format,
|
||||
* Below, we turn this into the canonical adb/mdb /[yY] format,
|
||||
* "1973 Dec 3 17:20:00".
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) ctime_r(&sec, src, sizeof (src));
|
||||
#else
|
||||
(void) ctime_r(&sec, src);
|
||||
@ -518,7 +518,7 @@ pfprint_port(dtrace_hdl_t *dtp, FILE *fp, const char *format,
|
||||
char buf[256];
|
||||
struct servent *sv, res;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((sv = getservbyport_r(port, NULL, &res, buf, sizeof (buf))) != NULL)
|
||||
#else
|
||||
if (getservbyport_r(port, NULL, &res, buf, sizeof (buf), &sv) > 0)
|
||||
@ -544,7 +544,7 @@ pfprint_inetaddr(dtrace_hdl_t *dtp, FILE *fp, const char *format,
|
||||
s[size] = '\0';
|
||||
|
||||
if (strchr(s, ':') == NULL && inet_pton(AF_INET, s, inetaddr) != -1) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((host = gethostbyaddr_r(inetaddr, NS_INADDRSZ,
|
||||
AF_INET, &res, buf, sizeof (buf), &e)) != NULL)
|
||||
#else
|
||||
@ -694,7 +694,7 @@ static const dt_pfconv_t _dtrace_conversions[] = {
|
||||
{ "S", "s", pfproto_cstr, pfcheck_str, pfprint_estr },
|
||||
{ "T", "s", "int64_t", pfcheck_time, pfprint_time822 },
|
||||
{ "u", "u", pfproto_xint, pfcheck_xint, pfprint_uint },
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
{ "wc", "wc", "int", pfcheck_type, pfprint_sint }, /* a.k.a. wchar_t */
|
||||
{ "ws", "ws", pfproto_wstr, pfcheck_wstr, pfprint_wstr },
|
||||
#else
|
||||
@ -1657,7 +1657,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
|
||||
if (rval == -1 || fp == NULL)
|
||||
return (rval);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (pfd->pfd_preflen != 0 &&
|
||||
strcmp(pfd->pfd_prefix, DT_FREOPEN_RESTORE) == 0) {
|
||||
/*
|
||||
@ -1739,7 +1739,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
|
||||
}
|
||||
|
||||
(void) fclose(nfp);
|
||||
#else
|
||||
#else /* !illumos */
|
||||
/*
|
||||
* The 'standard output' (which is not necessarily stdout)
|
||||
* treatment on FreeBSD is implemented differently than on
|
||||
@ -1814,7 +1814,7 @@ dtrace_freopen(dtrace_hdl_t *dtp, FILE *fp, void *fmtdata,
|
||||
|
||||
/* Remember that the output has been redirected to the new file. */
|
||||
dtp->dt_freopen_fp = nfp;
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
return (rval);
|
||||
}
|
||||
|
@ -77,7 +77,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/wait.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/lwp.h>
|
||||
#endif
|
||||
#include <strings.h>
|
||||
@ -89,7 +89,7 @@
|
||||
#include <dt_pid.h>
|
||||
#include <dt_impl.h>
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <sys/syscall.h>
|
||||
#include <libproc_compat.h>
|
||||
#define SYS_forksys SYS_fork
|
||||
@ -143,7 +143,7 @@ dt_proc_bpdestroy(dt_proc_t *dpr, int delbkpts)
|
||||
static void
|
||||
dt_proc_bpmatch(dtrace_hdl_t *dtp, dt_proc_t *dpr)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const lwpstatus_t *psp = &Pstatus(dpr->dpr_proc)->pr_lwp;
|
||||
#else
|
||||
unsigned long pc;
|
||||
@ -152,14 +152,14 @@ dt_proc_bpmatch(dtrace_hdl_t *dtp, dt_proc_t *dpr)
|
||||
|
||||
assert(DT_MUTEX_HELD(&dpr->dpr_lock));
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
proc_regget(dpr->dpr_proc, REG_PC, &pc);
|
||||
proc_bkptregadj(&pc);
|
||||
#endif
|
||||
|
||||
for (dbp = dt_list_next(&dpr->dpr_bps);
|
||||
dbp != NULL; dbp = dt_list_next(dbp)) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (psp->pr_reg[R_PC] == dbp->dbp_addr)
|
||||
break;
|
||||
#else
|
||||
@ -170,7 +170,7 @@ dt_proc_bpmatch(dtrace_hdl_t *dtp, dt_proc_t *dpr)
|
||||
|
||||
if (dbp == NULL) {
|
||||
dt_dprintf("pid %d: spurious breakpoint wakeup for %lx\n",
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(int)dpr->dpr_pid, (ulong_t)psp->pr_reg[R_PC]);
|
||||
#else
|
||||
(int)dpr->dpr_pid, pc);
|
||||
@ -342,7 +342,7 @@ dt_proc_rdwatch(dt_proc_t *dpr, rd_event_e event, const char *evname)
|
||||
}
|
||||
|
||||
(void) dt_proc_bpcreate(dpr, rdn.u.bptaddr,
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(dt_bkpt_f *)dt_proc_rdevent, (void *)evname);
|
||||
#else
|
||||
/* XXX ugly */
|
||||
@ -357,7 +357,7 @@ dt_proc_rdwatch(dt_proc_t *dpr, rd_event_e event, const char *evname)
|
||||
static void
|
||||
dt_proc_attach(dt_proc_t *dpr, int exec)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const pstatus_t *psp = Pstatus(dpr->dpr_proc);
|
||||
#endif
|
||||
rd_err_e err;
|
||||
@ -366,23 +366,23 @@ dt_proc_attach(dt_proc_t *dpr, int exec)
|
||||
assert(DT_MUTEX_HELD(&dpr->dpr_lock));
|
||||
|
||||
if (exec) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (psp->pr_lwp.pr_errno != 0)
|
||||
return; /* exec failed: nothing needs to be done */
|
||||
#endif
|
||||
|
||||
dt_proc_bpdestroy(dpr, B_FALSE);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
Preset_maps(dpr->dpr_proc);
|
||||
#endif
|
||||
}
|
||||
if ((dpr->dpr_rtld = Prd_agent(dpr->dpr_proc)) != NULL &&
|
||||
(err = rd_event_enable(dpr->dpr_rtld, B_TRUE)) == RD_OK) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_proc_rdwatch(dpr, RD_PREINIT, "RD_PREINIT");
|
||||
#endif
|
||||
dt_proc_rdwatch(dpr, RD_POSTINIT, "RD_POSTINIT");
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_proc_rdwatch(dpr, RD_DLACTIVITY, "RD_DLACTIVITY");
|
||||
#endif
|
||||
} else {
|
||||
@ -507,7 +507,7 @@ dt_proc_control(void *arg)
|
||||
struct ps_prochandle *P = dpr->dpr_proc;
|
||||
int pid = dpr->dpr_pid;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
int pfd = Pctlfd(P);
|
||||
|
||||
const long wstop = PCWSTOP;
|
||||
@ -529,7 +529,7 @@ dt_proc_control(void *arg)
|
||||
*/
|
||||
(void) pthread_mutex_lock(&dpr->dpr_lock);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) Punsetflags(P, PR_ASYNC); /* require synchronous mode */
|
||||
(void) Psetflags(P, PR_BPTADJ); /* always adjust eip on x86 */
|
||||
(void) Punsetflags(P, PR_FORK); /* do not inherit on fork */
|
||||
@ -562,7 +562,7 @@ dt_proc_control(void *arg)
|
||||
* If PR_KLC is set, we created the process; otherwise we grabbed it.
|
||||
* Check for an appropriate stop request and wait for dt_proc_continue.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (Pstatus(P)->pr_flags & PR_KLC)
|
||||
#else
|
||||
if (proc_getflags(P) & PR_KLC)
|
||||
@ -590,7 +590,7 @@ dt_proc_control(void *arg)
|
||||
while (!dpr->dpr_quit) {
|
||||
const lwpstatus_t *psp;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (write(pfd, &wstop, sizeof (wstop)) == -1 && errno == EINTR)
|
||||
continue; /* check dpr_quit and continue waiting */
|
||||
#else
|
||||
@ -602,7 +602,7 @@ dt_proc_control(void *arg)
|
||||
|
||||
(void) pthread_mutex_lock(&dpr->dpr_lock);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pwait_locked:
|
||||
if (Pstopstatus(P, PCNULL, 0) == -1 && errno == EINTR) {
|
||||
(void) pthread_mutex_unlock(&dpr->dpr_lock);
|
||||
@ -612,7 +612,7 @@ pwait_locked:
|
||||
|
||||
switch (Pstate(P)) {
|
||||
case PS_STOP:
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
psp = &Pstatus(P)->pr_lwp;
|
||||
#else
|
||||
psp = proc_getlwpstatus(P);
|
||||
@ -661,7 +661,7 @@ pwait_locked:
|
||||
break;
|
||||
|
||||
case PS_LOST:
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (Preopen(P) == 0)
|
||||
goto pwait_locked;
|
||||
#endif
|
||||
@ -734,7 +734,7 @@ dt_proc_t *
|
||||
dt_proc_lookup(dtrace_hdl_t *dtp, struct ps_prochandle *P, int remove)
|
||||
{
|
||||
dt_proc_hash_t *dph = dtp->dt_procs;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_t pid = Pstatus(P)->pr_pid;
|
||||
#else
|
||||
pid_t pid = proc_getpid(P);
|
||||
@ -772,14 +772,14 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
|
||||
* an external debugger and we were waiting in dt_proc_waitrun().
|
||||
* Leave the process in this condition using PRELEASE_HANG.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (!(Pstatus(dpr->dpr_proc)->pr_flags & (PR_KLC | PR_RLC))) {
|
||||
#else
|
||||
if (!(proc_getflags(dpr->dpr_proc) & (PR_KLC | PR_RLC))) {
|
||||
#endif
|
||||
dt_dprintf("abandoning pid %d\n", (int)dpr->dpr_pid);
|
||||
rflag = PRELEASE_HANG;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
} else if (Pstatus(dpr->dpr_proc)->pr_flags & PR_KLC) {
|
||||
#else
|
||||
} else if (proc_getflags(dpr->dpr_proc) & PR_KLC) {
|
||||
@ -808,7 +808,7 @@ dt_proc_destroy(dtrace_hdl_t *dtp, struct ps_prochandle *P)
|
||||
*/
|
||||
(void) pthread_mutex_lock(&dpr->dpr_lock);
|
||||
dpr->dpr_quit = B_TRUE;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) _lwp_kill(dpr->dpr_tid, SIGCANCEL);
|
||||
#else
|
||||
pthread_kill(dpr->dpr_tid, SIGTHR);
|
||||
@ -880,7 +880,7 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
|
||||
|
||||
(void) sigfillset(&nset);
|
||||
(void) sigdelset(&nset, SIGABRT); /* unblocked for assert() */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
(void) sigdelset(&nset, SIGCANCEL); /* see dt_proc_destroy() */
|
||||
#else
|
||||
(void) sigdelset(&nset, SIGUSR1); /* see dt_proc_destroy() */
|
||||
@ -912,7 +912,7 @@ dt_proc_create_thread(dtrace_hdl_t *dtp, dt_proc_t *dpr, uint_t stop)
|
||||
* small amount of useful information to help figure it out.
|
||||
*/
|
||||
if (dpr->dpr_done) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const psinfo_t *prp = Ppsinfo(dpr->dpr_proc);
|
||||
int stat = prp ? prp->pr_wstat : 0;
|
||||
int pid = dpr->dpr_pid;
|
||||
@ -963,7 +963,7 @@ dt_proc_create(dtrace_hdl_t *dtp, const char *file, char *const *argv,
|
||||
(void) pthread_mutex_init(&dpr->dpr_lock, NULL);
|
||||
(void) pthread_cond_init(&dpr->dpr_cv, NULL);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((dpr->dpr_proc = Pcreate(file, argv, &err, NULL, 0)) == NULL) {
|
||||
#else
|
||||
if ((err = proc_create(file, argv, pcf, child_arg,
|
||||
@ -974,7 +974,7 @@ dt_proc_create(dtrace_hdl_t *dtp, const char *file, char *const *argv,
|
||||
}
|
||||
|
||||
dpr->dpr_hdl = dtp;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dpr->dpr_pid = Pstatus(dpr->dpr_proc)->pr_pid;
|
||||
#else
|
||||
dpr->dpr_pid = proc_getpid(dpr->dpr_proc);
|
||||
@ -1039,7 +1039,7 @@ dt_proc_grab(dtrace_hdl_t *dtp, pid_t pid, int flags, int nomonitor)
|
||||
(void) pthread_mutex_init(&dpr->dpr_lock, NULL);
|
||||
(void) pthread_cond_init(&dpr->dpr_cv, NULL);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((dpr->dpr_proc = Pgrab(pid, flags, &err)) == NULL) {
|
||||
#else
|
||||
if ((err = proc_attach(pid, flags, &dpr->dpr_proc)) != 0) {
|
||||
@ -1174,7 +1174,7 @@ dtrace_proc_create(dtrace_hdl_t *dtp, const char *file, char *const *argv,
|
||||
struct ps_prochandle *P = dt_proc_create(dtp, file, argv, pcf, child_arg);
|
||||
|
||||
if (P != NULL && idp != NULL && idp->di_id == 0) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
idp->di_id = Pstatus(P)->pr_pid; /* $target = created pid */
|
||||
#else
|
||||
idp->di_id = proc_getpid(P); /* $target = created pid */
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <errno.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
#include <limits.h>
|
||||
#include <strings.h>
|
||||
#include <stdlib.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <unistd.h>
|
||||
|
@ -25,7 +25,7 @@
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysmacros.h>
|
||||
#endif
|
||||
#include <sys/isa_defs.h>
|
||||
@ -38,7 +38,7 @@
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#else
|
||||
#include <sys/sysctl.h>
|
||||
@ -477,7 +477,7 @@ dt_dprintf(const char *format, ...)
|
||||
}
|
||||
|
||||
int
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dt_ioctl(dtrace_hdl_t *dtp, int val, void *arg)
|
||||
#else
|
||||
dt_ioctl(dtrace_hdl_t *dtp, u_long val, void *arg)
|
||||
@ -485,7 +485,7 @@ dt_ioctl(dtrace_hdl_t *dtp, u_long val, void *arg)
|
||||
{
|
||||
const dtrace_vector_t *v = dtp->dt_vector;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/* Avoid sign extension. */
|
||||
val &= 0xffffffff;
|
||||
#endif
|
||||
@ -506,7 +506,7 @@ dt_status(dtrace_hdl_t *dtp, processorid_t cpu)
|
||||
const dtrace_vector_t *v = dtp->dt_vector;
|
||||
|
||||
if (v == NULL) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
return (p_online(cpu, P_STATUS));
|
||||
#else
|
||||
int maxid = 0;
|
||||
@ -583,7 +583,7 @@ dt_printf(dtrace_hdl_t *dtp, FILE *fp, const char *format, ...)
|
||||
va_list ap;
|
||||
int n;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/*
|
||||
* On FreeBSD, check if output is currently being re-directed
|
||||
* to another file. If so, output to that file instead of the
|
||||
@ -845,7 +845,7 @@ dt_popcb(const ulong_t *bp, ulong_t n)
|
||||
return (popc + dt_popc(bp[maxw] & ((1UL << maxb) - 1)));
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
struct _rwlock;
|
||||
struct _lwp_mutex;
|
||||
|
||||
@ -867,7 +867,7 @@ dt_rw_write_held(pthread_rwlock_t *lock)
|
||||
int
|
||||
dt_mutex_held(pthread_mutex_t *lock)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern int _mutex_held(struct _lwp_mutex *);
|
||||
return (_mutex_held((struct _lwp_mutex *)lock));
|
||||
#else
|
||||
|
@ -82,7 +82,7 @@ dtrace_sleep(dtrace_hdl_t *dtp)
|
||||
return; /* sleep duration has already past */
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
tv.tv_sec = (earliest - now) / NANOSEC;
|
||||
tv.tv_nsec = (earliest - now) % NANOSEC;
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include <stdio.h>
|
||||
#include <gelf.h>
|
||||
#include <libproc.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <rtld_db.h>
|
||||
#endif
|
||||
|
||||
@ -554,7 +554,7 @@ extern int dtrace_probe_info(dtrace_hdl_t *,
|
||||
* entry point to obtain a library handle.
|
||||
*/
|
||||
struct dtrace_vector {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
int (*dtv_ioctl)(void *, int, void *);
|
||||
#else
|
||||
int (*dtv_ioctl)(void *, u_long, void *);
|
||||
@ -605,7 +605,7 @@ extern int _dtrace_debug;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#define _SC_CPUID_MAX _SC_NPROCESSORS_CONF
|
||||
#define _SC_NPROCESSORS_MAX _SC_NPROCESSORS_CONF
|
||||
#endif
|
||||
|
@ -39,7 +39,7 @@
|
||||
|
||||
#include <dis_tables.h>
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#define PR_MODEL_ILP32 1
|
||||
#define PR_MODEL_LP64 2
|
||||
#include <libproc_compat.h>
|
||||
@ -88,7 +88,7 @@ dt_pid_has_jump_table(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
{
|
||||
ulong_t i;
|
||||
int size;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_t pid = Pstatus(P)->pr_pid;
|
||||
char dmodel = Pstatus(P)->pr_dmodel;
|
||||
#else
|
||||
@ -144,7 +144,7 @@ dt_pid_create_return_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
uint8_t *text;
|
||||
ulong_t i, end;
|
||||
int size;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_t pid = Pstatus(P)->pr_pid;
|
||||
char dmodel = Pstatus(P)->pr_dmodel;
|
||||
#else
|
||||
@ -305,7 +305,7 @@ dt_pid_create_offset_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
uint8_t *text;
|
||||
ulong_t i;
|
||||
int size;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_t pid = Pstatus(P)->pr_pid;
|
||||
char dmodel = Pstatus(P)->pr_dmodel;
|
||||
#else
|
||||
@ -388,7 +388,7 @@ dt_pid_create_glob_offset_probes(struct ps_prochandle *P, dtrace_hdl_t *dtp,
|
||||
uint8_t *text;
|
||||
int size;
|
||||
ulong_t i, end = symp->st_size;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_t pid = Pstatus(P)->pr_pid;
|
||||
char dmodel = Pstatus(P)->pr_dmodel;
|
||||
#else
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma weak gmatch = _gmatch
|
||||
|
||||
#include "gen_synonyms.h"
|
||||
@ -38,7 +38,7 @@
|
||||
#include <libgen.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <widec.h>
|
||||
#include "_range.h"
|
||||
#else
|
||||
|
@ -789,10 +789,10 @@ extern boolean_t libzfs_fru_compare(libzfs_handle_t *, const char *,
|
||||
extern boolean_t libzfs_fru_notself(libzfs_handle_t *, const char *);
|
||||
extern int zpool_fru_set(zpool_handle_t *, uint64_t, const char *);
|
||||
|
||||
#ifndef sun
|
||||
#ifndef illumos
|
||||
extern int zmount(const char *, const char *, int, char *, char *, int, char *,
|
||||
int);
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -1112,7 +1112,7 @@ zfs_valid_proplist(libzfs_handle_t *hdl, zfs_type_t type, nvlist_t *nvl,
|
||||
}
|
||||
case ZFS_PROP_MLSLABEL:
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Verify the mlslabel string and convert to
|
||||
* internal hex label string.
|
||||
@ -1161,11 +1161,11 @@ badlabel:
|
||||
"invalid mlslabel '%s'"), strval);
|
||||
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
|
||||
m_label_free(new_sl); /* OK if null */
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
|
||||
"mlslabel is not supported on FreeBSD"));
|
||||
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
goto error;
|
||||
|
||||
}
|
||||
@ -2423,7 +2423,7 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
|
||||
|
||||
case ZFS_PROP_MLSLABEL:
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
m_label_t *new_sl = NULL;
|
||||
char *ascii = NULL; /* human readable label */
|
||||
|
||||
@ -2457,9 +2457,9 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
|
||||
|
||||
(void) strlcpy(propbuf, ascii, proplen);
|
||||
free(ascii);
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
propbuf[0] = '\0';
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2569,7 +2569,7 @@ static int
|
||||
idmap_id_to_numeric_domain_rid(uid_t id, boolean_t isuser,
|
||||
char **domainp, idmap_rid_t *ridp)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
idmap_get_handle_t *get_hdl = NULL;
|
||||
idmap_stat status;
|
||||
int err = EINVAL;
|
||||
@ -2594,10 +2594,10 @@ out:
|
||||
if (get_hdl)
|
||||
idmap_get_destroy(get_hdl);
|
||||
return (err);
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
assert(!"invalid code path");
|
||||
return (EINVAL); // silence compiler warning
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2632,7 +2632,7 @@ userquota_propname_decode(const char *propname, boolean_t zoned,
|
||||
cp = strchr(propname, '@') + 1;
|
||||
|
||||
if (strchr(cp, '@')) {
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* It's a SID name (eg "user@domain") that needs to be
|
||||
* turned into S-1-domainID-RID.
|
||||
@ -2678,9 +2678,9 @@ userquota_propname_decode(const char *propname, boolean_t zoned,
|
||||
cp = numericsid;
|
||||
*ridp = rid;
|
||||
/* will be further decoded below */
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
return (ENOENT);
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
if (strncmp(cp, "S-1-", 4) == 0) {
|
||||
@ -4184,7 +4184,7 @@ zfs_prune_proplist(zfs_handle_t *zhp, uint8_t *props)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static int
|
||||
zfs_smb_acl_mgmt(libzfs_handle_t *hdl, char *dataset, char *path,
|
||||
zfs_smb_acl_op_t cmd, char *resource1, char *resource2)
|
||||
@ -4266,7 +4266,7 @@ zfs_smb_acl_rename(libzfs_handle_t *hdl, char *dataset, char *path,
|
||||
return (zfs_smb_acl_mgmt(hdl, dataset, path, ZFS_SMB_ACL_RENAME,
|
||||
oldname, newname));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
int
|
||||
zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type,
|
||||
|
@ -494,7 +494,7 @@ find_shares_object(differ_info_t *di)
|
||||
(void) strlcat(fullpath, ZDIFF_SHARESDIR, MAXPATHLEN);
|
||||
|
||||
if (stat64(fullpath, &sb) != 0) {
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
(void) snprintf(di->errbuf, sizeof (di->errbuf),
|
||||
dgettext(TEXT_DOMAIN, "Cannot stat %s"), fullpath);
|
||||
return (zfs_error(di->zhp->zfs_hdl, EZFS_DIFF, di->errbuf));
|
||||
|
@ -952,7 +952,7 @@ slice_cache_compare(const void *arg1, const void *arg2)
|
||||
return (rv > 0 ? 1 : -1);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static void
|
||||
check_one_slice(avl_tree_t *r, char *diskname, uint_t partno,
|
||||
diskaddr_t size, uint_t blksz)
|
||||
@ -975,12 +975,12 @@ check_one_slice(avl_tree_t *r, char *diskname, uint_t partno,
|
||||
(node = avl_find(r, &tmpnode, NULL)))
|
||||
node->rn_nozpool = B_TRUE;
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static void
|
||||
nozpool_all_slices(avl_tree_t *r, const char *sname)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
char diskname[MAXNAMELEN];
|
||||
char *ptr;
|
||||
int i;
|
||||
@ -996,10 +996,10 @@ nozpool_all_slices(avl_tree_t *r, const char *sname)
|
||||
ptr[0] = 'p';
|
||||
for (i = 0; i <= FD_NUMPART; i++)
|
||||
check_one_slice(r, diskname, i, 0, 1);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static void
|
||||
check_slices(avl_tree_t *r, int fd, const char *sname)
|
||||
{
|
||||
@ -1033,7 +1033,7 @@ check_slices(avl_tree_t *r, int fd, const char *sname)
|
||||
efi_free(gpt);
|
||||
}
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static void
|
||||
zpool_open_func(void *arg)
|
||||
@ -1063,7 +1063,7 @@ zpool_open_func(void *arg)
|
||||
return;
|
||||
}
|
||||
/* this file is too small to hold a zpool */
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (S_ISREG(statbuf.st_mode) &&
|
||||
statbuf.st_size < SPA_MINDEVSIZE) {
|
||||
(void) close(fd);
|
||||
@ -1075,12 +1075,12 @@ zpool_open_func(void *arg)
|
||||
*/
|
||||
check_slices(rn->rn_avl, fd, rn->rn_name);
|
||||
}
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
if (statbuf.st_size < SPA_MINDEVSIZE) {
|
||||
(void) close(fd);
|
||||
return;
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
if ((zpool_read_label(fd, &config)) != 0) {
|
||||
(void) close(fd);
|
||||
|
@ -139,7 +139,7 @@ is_shared(libzfs_handle_t *hdl, const char *mountpoint, zfs_share_proto_t proto)
|
||||
|
||||
*tab = '\0';
|
||||
if (strcmp(buf, mountpoint) == 0) {
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* the protocol field is the third field
|
||||
* skip over second field
|
||||
@ -172,7 +172,7 @@ is_shared(libzfs_handle_t *hdl, const char *mountpoint, zfs_share_proto_t proto)
|
||||
return (SHARED_NOT_SHARED);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Returns true if the specified directory is empty. If we can't open the
|
||||
* directory at all, return true so that the mount can fail with a more
|
||||
@ -297,7 +297,7 @@ zfs_mount(zfs_handle_t *zhp, const char *options, int flags)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef sun /* FreeBSD: overlay mounts are not checked. */
|
||||
#ifdef illumos /* FreeBSD: overlay mounts are not checked. */
|
||||
/*
|
||||
* Determine if the mountpoint is empty. If so, refuse to perform the
|
||||
* mount. We don't perform this check if MS_OVERLAY is specified, which
|
||||
@ -507,7 +507,7 @@ zfs_is_shared_smb(zfs_handle_t *zhp, char **where)
|
||||
* initialized in _zfs_init_libshare() are actually present.
|
||||
*/
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static sa_handle_t (*_sa_init)(int);
|
||||
static void (*_sa_fini)(sa_handle_t);
|
||||
static sa_share_t (*_sa_find_share)(sa_handle_t, char *);
|
||||
@ -534,7 +534,7 @@ static void (*_sa_update_sharetab_ts)(sa_handle_t);
|
||||
static void
|
||||
_zfs_init_libshare(void)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
void *libshare;
|
||||
char path[MAXPATHLEN];
|
||||
char isa[MAXISALEN];
|
||||
@ -605,7 +605,7 @@ zfs_init_libshare(libzfs_handle_t *zhandle, int service)
|
||||
{
|
||||
int ret = SA_OK;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (_sa_init == NULL)
|
||||
ret = SA_CONFIG_ERR;
|
||||
|
||||
@ -646,7 +646,7 @@ void
|
||||
zfs_uninit_libshare(libzfs_handle_t *zhandle)
|
||||
{
|
||||
if (zhandle != NULL && zhandle->libzfs_sharehdl != NULL) {
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (_sa_fini != NULL)
|
||||
_sa_fini(zhandle->libzfs_sharehdl);
|
||||
#endif
|
||||
@ -663,7 +663,7 @@ zfs_uninit_libshare(libzfs_handle_t *zhandle)
|
||||
int
|
||||
zfs_parse_options(char *options, zfs_share_proto_t proto)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (_sa_parse_legacy_options != NULL) {
|
||||
return (_sa_parse_legacy_options(NULL, options,
|
||||
proto_table[proto].p_name));
|
||||
@ -674,7 +674,7 @@ zfs_parse_options(char *options, zfs_share_proto_t proto)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* zfs_sa_find_share(handle, path)
|
||||
*
|
||||
@ -716,7 +716,7 @@ zfs_sa_disable_share(sa_share_t share, char *proto)
|
||||
return (_sa_disable_share(share, proto));
|
||||
return (SA_CONFIG_ERR);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Share the given filesystem according to the options in the specified
|
||||
@ -767,7 +767,7 @@ zfs_share_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto)
|
||||
if (zfs_prop_get_int(zhp, ZFS_PROP_ZONED))
|
||||
continue;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
share = zfs_sa_find_share(hdl->libzfs_sharehdl, mountpoint);
|
||||
if (share == NULL) {
|
||||
/*
|
||||
@ -856,7 +856,7 @@ static int
|
||||
unshare_one(libzfs_handle_t *hdl, const char *name, const char *mountpoint,
|
||||
zfs_share_proto_t proto)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
sa_share_t share;
|
||||
int err;
|
||||
char *mntpt;
|
||||
|
@ -409,7 +409,7 @@ bootfs_name_valid(const char *pool, char *bootfs)
|
||||
static boolean_t
|
||||
pool_uses_efi(nvlist_t *config)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
nvlist_t **child;
|
||||
uint_t c, children;
|
||||
|
||||
@ -421,7 +421,7 @@ pool_uses_efi(nvlist_t *config)
|
||||
if (pool_uses_efi(child[c]))
|
||||
return (B_TRUE);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
return (B_FALSE);
|
||||
}
|
||||
|
||||
@ -575,7 +575,7 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
|
||||
verify(nvlist_lookup_nvlist(zpool_get_config(zhp, NULL),
|
||||
ZPOOL_CONFIG_VDEV_TREE, &nvroot) == 0);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* bootfs property cannot be set on a disk which has
|
||||
* been EFI labeled.
|
||||
@ -588,7 +588,7 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname,
|
||||
zpool_close(zhp);
|
||||
goto error;
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
zpool_close(zhp);
|
||||
break;
|
||||
|
||||
@ -2384,7 +2384,7 @@ zpool_get_physpath(zpool_handle_t *zhp, char *physpath, size_t phypath_size)
|
||||
static int
|
||||
zpool_relabel_disk(libzfs_handle_t *hdl, const char *name)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
char path[MAXPATHLEN];
|
||||
char errbuf[1024];
|
||||
int fd, error;
|
||||
@ -2414,7 +2414,7 @@ zpool_relabel_disk(libzfs_handle_t *hdl, const char *name)
|
||||
"relabel '%s': unable to read disk capacity"), name);
|
||||
return (zfs_error(hdl, EZFS_NOCAP, errbuf));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -3470,7 +3470,7 @@ zpool_vdev_name(libzfs_handle_t *hdl, zpool_handle_t *zhp, nvlist_t *nv,
|
||||
devid_str_free(newdevid);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (strncmp(path, "/dev/dsk/", 9) == 0)
|
||||
path += 9;
|
||||
|
||||
@ -3495,10 +3495,10 @@ zpool_vdev_name(libzfs_handle_t *hdl, zpool_handle_t *zhp, nvlist_t *nv,
|
||||
}
|
||||
return (tmp);
|
||||
}
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
if (strncmp(path, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
|
||||
path += sizeof(_PATH_DEV) - 1;
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
} else {
|
||||
verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_TYPE, &path) == 0);
|
||||
|
||||
@ -3888,7 +3888,7 @@ zpool_obj_to_path(zpool_handle_t *zhp, uint64_t dsobj, uint64_t obj,
|
||||
free(mntpnt);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Read the EFI label from the config, if a label does not exist then
|
||||
* pass back the error to the caller. If the caller has passed a non-NULL
|
||||
@ -3953,7 +3953,7 @@ find_start_block(nvlist_t *config)
|
||||
}
|
||||
return (MAXOFFSET_T);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Label an individual disk. The name provided is the short name,
|
||||
@ -3962,7 +3962,7 @@ find_start_block(nvlist_t *config)
|
||||
int
|
||||
zpool_label_disk(libzfs_handle_t *hdl, zpool_handle_t *zhp, const char *name)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
char path[MAXPATHLEN];
|
||||
struct dk_gpt *vtoc;
|
||||
int fd;
|
||||
@ -4067,7 +4067,7 @@ zpool_label_disk(libzfs_handle_t *hdl, zpool_handle_t *zhp, const char *name)
|
||||
|
||||
(void) close(fd);
|
||||
efi_free(vtoc);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
@ -949,7 +949,7 @@ dump_ioctl(zfs_handle_t *zhp, const char *fromsnap, uint64_t fromsnap_obj,
|
||||
case EIO:
|
||||
case ENOLINK:
|
||||
case ENOSPC:
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case ENOSTR:
|
||||
#endif
|
||||
case ENXIO:
|
||||
|
@ -687,7 +687,7 @@ libzfs_fini(libzfs_handle_t *hdl)
|
||||
(void) fclose(hdl->libzfs_sharetab);
|
||||
zfs_uninit_libshare(hdl);
|
||||
zpool_free_handles(hdl);
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
libzfs_fru_clear(hdl, B_TRUE);
|
||||
#endif
|
||||
namespace_clear(hdl);
|
||||
@ -739,7 +739,7 @@ zfs_path_to_zhandle(libzfs_handle_t *hdl, char *path, zfs_type_t argtype)
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
rewind(hdl->libzfs_mnttab);
|
||||
while ((ret = getextmntent(hdl->libzfs_mnttab, &entry, 0)) == 0) {
|
||||
if (makedevice(entry.mnt_major, entry.mnt_minor) ==
|
||||
@ -759,7 +759,7 @@ zfs_path_to_zhandle(libzfs_handle_t *hdl, char *path, zfs_type_t argtype)
|
||||
strerror(errno));
|
||||
}
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
if (ret != 0) {
|
||||
return (NULL);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
*/
|
||||
|
||||
#include <pthread.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <synch.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
@ -49,7 +49,7 @@ void
|
||||
barrier_init(barrier_t *bar, int nthreads)
|
||||
{
|
||||
pthread_mutex_init(&bar->bar_lock, NULL);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sema_init(&bar->bar_sem, 0, USYNC_THREAD, NULL);
|
||||
#else
|
||||
sem_init(&bar->bar_sem, 0, 0);
|
||||
@ -66,7 +66,7 @@ barrier_wait(barrier_t *bar)
|
||||
|
||||
if (++bar->bar_numin < bar->bar_nthr) {
|
||||
pthread_mutex_unlock(&bar->bar_lock);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sema_wait(&bar->bar_sem);
|
||||
#else
|
||||
sem_wait(&bar->bar_sem);
|
||||
@ -80,7 +80,7 @@ barrier_wait(barrier_t *bar)
|
||||
/* reset for next use */
|
||||
bar->bar_numin = 0;
|
||||
for (i = 1; i < bar->bar_nthr; i++)
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sema_post(&bar->bar_sem);
|
||||
#else
|
||||
sem_post(&bar->bar_sem);
|
||||
|
@ -33,7 +33,7 @@
|
||||
* APIs for the barrier synchronization primitive.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <synch.h>
|
||||
#else
|
||||
#include <semaphore.h>
|
||||
|
@ -155,7 +155,7 @@ main(int argc, char **argv)
|
||||
int keep_stabs = 0;
|
||||
int c;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sighold(SIGINT);
|
||||
sighold(SIGQUIT);
|
||||
sighold(SIGTERM);
|
||||
@ -221,7 +221,7 @@ main(int argc, char **argv)
|
||||
*/
|
||||
set_terminate_cleanup(terminate_cleanup);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sigset(SIGINT, handle_sig);
|
||||
sigset(SIGQUIT, handle_sig);
|
||||
sigset(SIGTERM, handle_sig);
|
||||
|
@ -176,20 +176,20 @@
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
#include <assert.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <synch.h>
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#include <libgen.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/sysconf.h>
|
||||
#endif
|
||||
|
||||
@ -232,7 +232,7 @@ usage(void)
|
||||
progname, progname);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
static void
|
||||
bigheap(void)
|
||||
{
|
||||
@ -280,7 +280,7 @@ bigheap(void)
|
||||
|
||||
(void) memcntl(NULL, 0, MC_HAT_ADVISE, (caddr_t)&mha, 0, 0);
|
||||
}
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
static void
|
||||
finalize_phase_one(workqueue_t *wq)
|
||||
@ -707,7 +707,7 @@ start_threads(workqueue_t *wq)
|
||||
(void *(*)(void *))worker_thread, wq);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sigset(SIGINT, handle_sig);
|
||||
sigset(SIGQUIT, handle_sig);
|
||||
sigset(SIGTERM, handle_sig);
|
||||
|
@ -1390,7 +1390,7 @@ die_base_type2enc(dwarf_t *dw, Dwarf_Off off, Dwarf_Signed enc, size_t sz)
|
||||
mult = 2;
|
||||
col = 1;
|
||||
} else if (enc == DW_ATE_imaginary_float
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
|| enc == DW_ATE_SUN_imaginary_float
|
||||
#endif
|
||||
)
|
||||
@ -1441,7 +1441,7 @@ die_base_from_dwarf(dwarf_t *dw, Dwarf_Die base, Dwarf_Off off, size_t sz)
|
||||
case DW_ATE_float:
|
||||
case DW_ATE_complex_float:
|
||||
case DW_ATE_imaginary_float:
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
case DW_ATE_SUN_imaginary_float:
|
||||
case DW_ATE_SUN_interval_float:
|
||||
#endif
|
||||
|
@ -576,7 +576,7 @@ write_file(Elf *src, const char *srcname, Elf *dst, const char *dstname,
|
||||
shdr.sh_name);
|
||||
}
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (gelf_update_shdr(dscn, &shdr) == 0)
|
||||
elfterminate(dstname, "Cannot update sect %s", sname);
|
||||
#endif
|
||||
@ -585,7 +585,7 @@ write_file(Elf *src, const char *srcname, Elf *dst, const char *dstname,
|
||||
elfterminate(srcname, "Cannot get sect %s data", sname);
|
||||
if ((ddata = elf_newdata(dscn)) == NULL)
|
||||
elfterminate(dstname, "Can't make sect %s data", sname);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
bcopy(sdata, ddata, sizeof (Elf_Data));
|
||||
#else
|
||||
/*
|
||||
@ -645,7 +645,7 @@ write_file(Elf *src, const char *srcname, Elf *dst, const char *dstname,
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (ddata->d_buf == NULL && sdata->d_buf != NULL) {
|
||||
ddata->d_buf = xmalloc(shdr.sh_size);
|
||||
bcopy(sdata->d_buf, ddata->d_buf, shdr.sh_size);
|
||||
|
@ -173,7 +173,7 @@ tdesc_namecmp(void *arg1, void *arg2)
|
||||
return (!streq(tdp1->t_name, tdp2->t_name));
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*ARGSUSED1*/
|
||||
static int
|
||||
tdesc_print(void *data, void *private __unused)
|
||||
|
@ -171,7 +171,7 @@ aborterr(const char *format, ...)
|
||||
whine("ERROR", format, ap);
|
||||
va_end(ap);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
abort();
|
||||
#else
|
||||
exit(0);
|
||||
|
@ -44,7 +44,7 @@ extern "C" {
|
||||
* safe in probe context.
|
||||
*/
|
||||
|
||||
#if defined(sun) && (defined(_KERNEL) || defined(_BOOT))
|
||||
#if defined(illumos) && (defined(_KERNEL) || defined(_BOOT))
|
||||
|
||||
#define isalnum(ch) (isalpha(ch) || isdigit(ch))
|
||||
#define isalpha(ch) (isupper(ch) || islower(ch))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -38,13 +38,13 @@
|
||||
#include <sys/modctl.h>
|
||||
#include <sys/conf.h>
|
||||
#include <sys/systm.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/ddi.h>
|
||||
#endif
|
||||
#include <sys/sunddi.h>
|
||||
#include <sys/cpuvar.h>
|
||||
#include <sys/kmem.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/strsubr.h>
|
||||
#endif
|
||||
#include <sys/fasttrap.h>
|
||||
@ -55,12 +55,12 @@
|
||||
#include <sys/sysmacros.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/policy.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <util/qsort.h>
|
||||
#endif
|
||||
#include <sys/mutex.h>
|
||||
#include <sys/kernel.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#include <sys/dtrace_bsd.h>
|
||||
#include <sys/eventhandler.h>
|
||||
#include <sys/u8_textprep.h>
|
||||
@ -212,7 +212,7 @@ static void fasttrap_provider_free(fasttrap_provider_t *);
|
||||
static fasttrap_proc_t *fasttrap_proc_lookup(pid_t);
|
||||
static void fasttrap_proc_release(fasttrap_proc_t *);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
static void fasttrap_thread_dtor(void *, struct thread *);
|
||||
#endif
|
||||
|
||||
@ -221,7 +221,7 @@ static void fasttrap_thread_dtor(void *, struct thread *);
|
||||
|
||||
#define FASTTRAP_PROCS_INDEX(pid) ((pid) & fasttrap_procs.fth_mask)
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
static kmutex_t fasttrap_cpuc_pid_lock[MAXCPU];
|
||||
static eventhandler_tag fasttrap_thread_dtor_tag;
|
||||
#endif
|
||||
@ -274,7 +274,7 @@ fasttrap_hash_str(const char *p)
|
||||
void
|
||||
fasttrap_sigtrap(proc_t *p, kthread_t *t, uintptr_t pc)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sigqueue_t *sqp = kmem_zalloc(sizeof (sigqueue_t), KM_SLEEP);
|
||||
|
||||
sqp->sq_info.si_signo = SIGTRAP;
|
||||
@ -300,7 +300,7 @@ fasttrap_sigtrap(proc_t *p, kthread_t *t, uintptr_t pc)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/*
|
||||
* Obtain a chunk of scratch space in the address space of the target process.
|
||||
*/
|
||||
@ -572,20 +572,20 @@ fasttrap_pid_cleanup(void)
|
||||
static void
|
||||
fasttrap_fork(proc_t *p, proc_t *cp)
|
||||
{
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
fasttrap_scrblock_t *scrblk;
|
||||
fasttrap_proc_t *fprc = NULL;
|
||||
#endif
|
||||
pid_t ppid = p->p_pid;
|
||||
int i;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(curproc == p);
|
||||
ASSERT(p->p_proc_flag & P_PR_LOCK);
|
||||
#else
|
||||
PROC_LOCK_ASSERT(p, MA_OWNED);
|
||||
#endif
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(p->p_dtrace_count > 0);
|
||||
#else
|
||||
if (p->p_dtrace_helpers) {
|
||||
@ -624,7 +624,7 @@ fasttrap_fork(proc_t *p, proc_t *cp)
|
||||
* We don't have to worry about the child process disappearing
|
||||
* because we're in fork().
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mtx_lock_spin(&cp->p_slock);
|
||||
sprlock_proc(cp);
|
||||
mtx_unlock_spin(&cp->p_slock);
|
||||
@ -661,14 +661,14 @@ fasttrap_fork(proc_t *p, proc_t *cp)
|
||||
* mid-fork.
|
||||
*/
|
||||
ASSERT(tp->ftt_proc->ftpc_acount != 0);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
fprc = tp->ftt_proc;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
mutex_exit(&bucket->ftb_mtx);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/*
|
||||
* Unmap any scratch space inherited from the parent's address
|
||||
* space.
|
||||
@ -685,7 +685,7 @@ fasttrap_fork(proc_t *p, proc_t *cp)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&cp->p_lock);
|
||||
sprunlock(cp);
|
||||
#else
|
||||
@ -703,11 +703,11 @@ fasttrap_fork(proc_t *p, proc_t *cp)
|
||||
static void
|
||||
fasttrap_exec_exit(proc_t *p)
|
||||
{
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
struct thread *td;
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(p == curproc);
|
||||
#else
|
||||
PROC_LOCK_ASSERT(p, MA_OWNED);
|
||||
@ -727,7 +727,7 @@ fasttrap_exec_exit(proc_t *p)
|
||||
* static probes are handled by the meta-provider remove entry point.
|
||||
*/
|
||||
fasttrap_provider_retire(p->p_pid, FASTTRAP_PID_NAME, 0);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (p->p_dtrace_helpers)
|
||||
dtrace_helpers_destroy(p);
|
||||
PROC_LOCK(p);
|
||||
@ -762,7 +762,7 @@ fasttrap_tracepoint_enable(proc_t *p, fasttrap_probe_t *probe, uint_t index)
|
||||
|
||||
ASSERT(probe->ftp_tps[index].fit_tp->ftt_pid == pid);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(!(p->p_flag & SVFORK));
|
||||
#endif
|
||||
|
||||
@ -870,7 +870,7 @@ again:
|
||||
* Increment the count of the number of tracepoints active in
|
||||
* the victim process.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(p->p_proc_flag & P_PR_LOCK);
|
||||
#endif
|
||||
p->p_dtrace_count++;
|
||||
@ -1062,7 +1062,7 @@ fasttrap_tracepoint_disable(proc_t *p, fasttrap_probe_t *probe, uint_t index)
|
||||
* Decrement the count of the number of tracepoints active
|
||||
* in the victim process.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(p->p_proc_flag & P_PR_LOCK);
|
||||
#endif
|
||||
p->p_dtrace_count--;
|
||||
@ -1115,7 +1115,7 @@ fasttrap_enable_callbacks(void)
|
||||
static void
|
||||
fasttrap_disable_callbacks(void)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(MUTEX_HELD(&cpu_lock));
|
||||
#endif
|
||||
|
||||
@ -1124,7 +1124,7 @@ fasttrap_disable_callbacks(void)
|
||||
ASSERT(fasttrap_pid_count > 0);
|
||||
fasttrap_pid_count--;
|
||||
if (fasttrap_pid_count == 0) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
cpu_t *cur, *cpu = CPU;
|
||||
|
||||
for (cur = cpu->cpu_next_onln; cur != cpu;
|
||||
@ -1134,7 +1134,7 @@ fasttrap_disable_callbacks(void)
|
||||
#endif
|
||||
dtrace_pid_probe_ptr = NULL;
|
||||
dtrace_return_probe_ptr = NULL;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
for (cur = cpu->cpu_next_onln; cur != cpu;
|
||||
cur = cur->cpu_next_onln) {
|
||||
rw_exit(&cur->cpu_ft_lock);
|
||||
@ -1155,7 +1155,7 @@ fasttrap_pid_enable(void *arg, dtrace_id_t id, void *parg)
|
||||
ASSERT(probe != NULL);
|
||||
ASSERT(!probe->ftp_enabled);
|
||||
ASSERT(id == probe->ftp_id);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(MUTEX_HELD(&cpu_lock));
|
||||
#endif
|
||||
|
||||
@ -1182,7 +1182,7 @@ fasttrap_pid_enable(void *arg, dtrace_id_t id, void *parg)
|
||||
* a fork in which the traced process is being born and we're copying
|
||||
* USDT probes. Otherwise, the process is gone so bail.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if ((p = sprlock(probe->ftp_pid)) == NULL) {
|
||||
if ((curproc->p_flag & SFORKING) == 0)
|
||||
return;
|
||||
@ -1250,7 +1250,7 @@ fasttrap_pid_enable(void *arg, dtrace_id_t id, void *parg)
|
||||
i--;
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&p->p_lock);
|
||||
sprunlock(p);
|
||||
#else
|
||||
@ -1265,7 +1265,7 @@ fasttrap_pid_enable(void *arg, dtrace_id_t id, void *parg)
|
||||
return;
|
||||
}
|
||||
}
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&p->p_lock);
|
||||
sprunlock(p);
|
||||
#else
|
||||
@ -1344,7 +1344,7 @@ fasttrap_pid_disable(void *arg, dtrace_id_t id, void *parg)
|
||||
|
||||
probe->ftp_enabled = 0;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
ASSERT(MUTEX_HELD(&cpu_lock));
|
||||
#endif
|
||||
fasttrap_disable_callbacks();
|
||||
@ -1485,7 +1485,7 @@ fasttrap_proc_lookup(pid_t pid)
|
||||
new_fprc->ftpc_pid = pid;
|
||||
new_fprc->ftpc_rcount = 1;
|
||||
new_fprc->ftpc_acount = 1;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
mutex_init(&new_fprc->ftpc_mtx, "fasttrap proc mtx", MUTEX_DEFAULT,
|
||||
NULL);
|
||||
#endif
|
||||
@ -1525,7 +1525,7 @@ fasttrap_proc_release(fasttrap_proc_t *proc)
|
||||
fasttrap_bucket_t *bucket;
|
||||
fasttrap_proc_t *fprc, **fprcp;
|
||||
pid_t pid = proc->ftpc_pid;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
fasttrap_scrblock_t *scrblk, *scrblktmp;
|
||||
fasttrap_scrspace_t *scrspc, *scrspctmp;
|
||||
struct proc *p;
|
||||
@ -1542,7 +1542,7 @@ fasttrap_proc_release(fasttrap_proc_t *proc)
|
||||
return;
|
||||
}
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
/*
|
||||
* Free all structures used to manage per-thread scratch space.
|
||||
*/
|
||||
@ -1664,7 +1664,7 @@ fasttrap_provider_lookup(pid_t pid, const char *name,
|
||||
new_fp = kmem_zalloc(sizeof (fasttrap_provider_t), KM_SLEEP);
|
||||
new_fp->ftp_pid = pid;
|
||||
new_fp->ftp_proc = fasttrap_proc_lookup(pid);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
mutex_init(&new_fp->ftp_mtx, "provider mtx", MUTEX_DEFAULT, NULL);
|
||||
mutex_init(&new_fp->ftp_cmtx, "lock on creating", MUTEX_DEFAULT, NULL);
|
||||
#endif
|
||||
@ -1745,7 +1745,7 @@ fasttrap_provider_free(fasttrap_provider_t *provider)
|
||||
|
||||
fasttrap_proc_release(provider->ftp_proc);
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
mutex_destroy(&provider->ftp_mtx);
|
||||
mutex_destroy(&provider->ftp_cmtx);
|
||||
#endif
|
||||
@ -1763,7 +1763,7 @@ fasttrap_provider_free(fasttrap_provider_t *provider)
|
||||
}
|
||||
|
||||
p->p_dtrace_probes--;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
PROC_UNLOCK(p);
|
||||
#endif
|
||||
}
|
||||
@ -2304,7 +2304,7 @@ fasttrap_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int fflag,
|
||||
proc_t *p;
|
||||
pid_t pid = probe->ftps_pid;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&pidlock);
|
||||
#endif
|
||||
/*
|
||||
@ -2317,12 +2317,12 @@ fasttrap_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int fflag,
|
||||
fill_kinfo_proc(p, &kp);
|
||||
sx_sunlock(&proctree_lock);
|
||||
if (p == NULL || kp.ki_stat == SIDL) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&pidlock);
|
||||
#endif
|
||||
return (ESRCH);
|
||||
}
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&p->p_lock);
|
||||
mutex_exit(&pidlock);
|
||||
#else
|
||||
@ -2332,7 +2332,7 @@ fasttrap_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int fflag,
|
||||
#ifdef notyet
|
||||
if ((ret = priv_proc_cred_perm(cr, p, NULL,
|
||||
VREAD | VWRITE)) != 0) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&p->p_lock);
|
||||
#else
|
||||
PROC_UNLOCK(p);
|
||||
@ -2340,7 +2340,7 @@ fasttrap_ioctl(struct cdev *dev, u_long cmd, caddr_t arg, int fflag,
|
||||
return (ret);
|
||||
}
|
||||
#endif /* notyet */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&p->p_lock);
|
||||
#else
|
||||
PROC_UNLOCK(p);
|
||||
@ -2358,11 +2358,11 @@ err:
|
||||
fasttrap_instr_query_t instr;
|
||||
fasttrap_tracepoint_t *tp;
|
||||
uint_t index;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
int ret;
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (copyin((void *)arg, &instr, sizeof (instr)) != 0)
|
||||
return (EFAULT);
|
||||
#endif
|
||||
@ -2372,7 +2372,7 @@ err:
|
||||
proc_t *p;
|
||||
pid_t pid = instr.ftiq_pid;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&pidlock);
|
||||
#endif
|
||||
/*
|
||||
@ -2385,12 +2385,12 @@ err:
|
||||
fill_kinfo_proc(p, &kp);
|
||||
sx_sunlock(&proctree_lock);
|
||||
if (p == NULL || kp.ki_stat == SIDL) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&pidlock);
|
||||
#endif
|
||||
return (ESRCH);
|
||||
}
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&p->p_lock);
|
||||
mutex_exit(&pidlock);
|
||||
#else
|
||||
@ -2400,7 +2400,7 @@ err:
|
||||
#ifdef notyet
|
||||
if ((ret = priv_proc_cred_perm(cr, p, NULL,
|
||||
VREAD)) != 0) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&p->p_lock);
|
||||
#else
|
||||
PROC_UNLOCK(p);
|
||||
@ -2409,7 +2409,7 @@ err:
|
||||
}
|
||||
#endif /* notyet */
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&p->p_lock);
|
||||
#else
|
||||
PROC_UNLOCK(p);
|
||||
@ -2462,7 +2462,7 @@ fasttrap_load(void)
|
||||
mutex_init(&fasttrap_count_mtx, "fasttrap count mtx", MUTEX_DEFAULT,
|
||||
NULL);
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
fasttrap_max = ddi_getprop(DDI_DEV_T_ANY, devi, DDI_PROP_DONTPASS,
|
||||
"fasttrap-max-probes", FASTTRAP_MAX_DEFAULT);
|
||||
#else
|
||||
@ -2473,7 +2473,7 @@ fasttrap_load(void)
|
||||
/*
|
||||
* Conjure up the tracepoints hashtable...
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
nent = ddi_getprop(DDI_DEV_T_ANY, devi, DDI_PROP_DONTPASS,
|
||||
"fasttrap-hash-size", FASTTRAP_TPOINTS_DEFAULT_SIZE);
|
||||
#else
|
||||
@ -2491,7 +2491,7 @@ fasttrap_load(void)
|
||||
fasttrap_tpoints.fth_mask = fasttrap_tpoints.fth_nent - 1;
|
||||
fasttrap_tpoints.fth_table = kmem_zalloc(fasttrap_tpoints.fth_nent *
|
||||
sizeof (fasttrap_bucket_t), KM_SLEEP);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
for (i = 0; i < fasttrap_tpoints.fth_nent; i++)
|
||||
mutex_init(&fasttrap_tpoints.fth_table[i].ftb_mtx,
|
||||
"tracepoints bucket mtx", MUTEX_DEFAULT, NULL);
|
||||
@ -2509,7 +2509,7 @@ fasttrap_load(void)
|
||||
fasttrap_provs.fth_mask = fasttrap_provs.fth_nent - 1;
|
||||
fasttrap_provs.fth_table = kmem_zalloc(fasttrap_provs.fth_nent *
|
||||
sizeof (fasttrap_bucket_t), KM_SLEEP);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
for (i = 0; i < fasttrap_provs.fth_nent; i++)
|
||||
mutex_init(&fasttrap_provs.fth_table[i].ftb_mtx,
|
||||
"providers bucket mtx", MUTEX_DEFAULT, NULL);
|
||||
@ -2519,7 +2519,7 @@ fasttrap_load(void)
|
||||
&fasttrap_cleanup_proc, 0, 0, "ftcleanup");
|
||||
if (ret != 0) {
|
||||
destroy_dev(fasttrap_cdev);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
for (i = 0; i < fasttrap_provs.fth_nent; i++)
|
||||
mutex_destroy(&fasttrap_provs.fth_table[i].ftb_mtx);
|
||||
for (i = 0; i < fasttrap_tpoints.fth_nent; i++)
|
||||
@ -2545,7 +2545,7 @@ fasttrap_load(void)
|
||||
fasttrap_procs.fth_mask = fasttrap_procs.fth_nent - 1;
|
||||
fasttrap_procs.fth_table = kmem_zalloc(fasttrap_procs.fth_nent *
|
||||
sizeof (fasttrap_bucket_t), KM_SLEEP);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
for (i = 0; i < fasttrap_procs.fth_nent; i++)
|
||||
mutex_init(&fasttrap_procs.fth_table[i].ftb_mtx,
|
||||
"processes bucket mtx", MUTEX_DEFAULT, NULL);
|
||||
@ -2661,7 +2661,7 @@ fasttrap_unload(void)
|
||||
mutex_exit(&fasttrap_count_mtx);
|
||||
#endif
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
EVENTHANDLER_DEREGISTER(thread_dtor, fasttrap_thread_dtor_tag);
|
||||
|
||||
for (i = 0; i < fasttrap_tpoints.fth_nent; i++)
|
||||
@ -2683,7 +2683,7 @@ fasttrap_unload(void)
|
||||
fasttrap_procs.fth_nent * sizeof (fasttrap_bucket_t));
|
||||
fasttrap_procs.fth_nent = 0;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
destroy_dev(fasttrap_cdev);
|
||||
mutex_destroy(&fasttrap_count_mtx);
|
||||
CPU_FOREACH(i) {
|
||||
|
@ -107,7 +107,7 @@
|
||||
* gfs_root_create_file()
|
||||
*/
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* gfs_make_opsvec: take an array of vnode type definitions and create
|
||||
* their vnodeops_t structures
|
||||
@ -141,7 +141,7 @@ gfs_make_opsvec(gfs_opsvec_t *vec)
|
||||
}
|
||||
return (error);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Low level directory routines
|
||||
@ -347,7 +347,7 @@ gfs_readdir_emit(gfs_readdir_state_t *st, uio_t *uiop, offset_t voff,
|
||||
cookies));
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* gfs_readdir_emitn: like gfs_readdir_emit(), but takes an integer
|
||||
* instead of a string for the entry's name.
|
||||
@ -599,7 +599,7 @@ gfs_root_create(size_t size, vfs_t *vfsp, vnodeops_t *ops, ino64_t ino,
|
||||
return (vp);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* gfs_root_create_file(): create a root vnode for a GFS file as a filesystem
|
||||
*
|
||||
@ -619,7 +619,7 @@ gfs_root_create_file(size_t size, vfs_t *vfsp, vnodeops_t *ops, ino64_t ino)
|
||||
|
||||
return (vp);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* gfs_file_inactive()
|
||||
@ -1146,7 +1146,7 @@ gfs_vop_readdir(ap)
|
||||
}
|
||||
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* gfs_vop_map: VOP_MAP() entry point
|
||||
*
|
||||
@ -1218,7 +1218,7 @@ gfs_vop_map(vnode_t *vp, offset_t off, struct as *as, caddr_t *addrp,
|
||||
|
||||
return (rv);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* gfs_vop_reclaim: VOP_RECLAIM() entry point (solaris' VOP_INACTIVE())
|
||||
|
@ -1207,7 +1207,7 @@ arc_cksum_compute(arc_buf_t *buf, boolean_t force)
|
||||
mutex_exit(&buf->b_hdr->b_freeze_lock);
|
||||
#ifdef illumos
|
||||
arc_buf_watch(buf);
|
||||
#endif /* illumos */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef illumos
|
||||
@ -1282,7 +1282,7 @@ arc_buf_thaw(arc_buf_t *buf)
|
||||
|
||||
#ifdef illumos
|
||||
arc_buf_unwatch(buf);
|
||||
#endif /* illumos */
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
@ -1742,7 +1742,7 @@ arc_buf_destroy(arc_buf_t *buf, boolean_t recycle, boolean_t remove)
|
||||
arc_cksum_verify(buf);
|
||||
#ifdef illumos
|
||||
arc_buf_unwatch(buf);
|
||||
#endif /* illumos */
|
||||
#endif
|
||||
|
||||
if (!recycle) {
|
||||
if (type == ARC_BUFC_METADATA) {
|
||||
@ -2595,7 +2595,7 @@ arc_reclaim_needed(void)
|
||||
return (1);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* take 'desfree' extra pages, so we reclaim sooner, rather than later
|
||||
*/
|
||||
@ -2631,7 +2631,7 @@ arc_reclaim_needed(void)
|
||||
if (availrmem <= pages_pp_maximum)
|
||||
return (1);
|
||||
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
#if defined(__i386) || !defined(UMA_MD_SMALL_ALLOC)
|
||||
/*
|
||||
* If we're on an i386 platform, it's possible that we'll exhaust the
|
||||
@ -2652,7 +2652,7 @@ arc_reclaim_needed(void)
|
||||
return (1);
|
||||
}
|
||||
#endif
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* If zio data pages are being allocated out of a separate heap segment,
|
||||
* then enforce that the size of available vmem for this arena remains
|
||||
@ -2666,7 +2666,7 @@ arc_reclaim_needed(void)
|
||||
vmem_size(zio_arena, VMEM_FREE) <
|
||||
(vmem_size(zio_arena, VMEM_ALLOC) >> 4))
|
||||
return (1);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
#else /* _KERNEL */
|
||||
if (spa_get_random(100) == 0)
|
||||
return (1);
|
||||
@ -2725,7 +2725,7 @@ arc_kmem_reap_now(arc_reclaim_strategy_t strat)
|
||||
kmem_cache_reap_now(hdr_cache);
|
||||
kmem_cache_reap_now(range_seg_cache);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Ask the vmem arena to reclaim unused memory from its
|
||||
* quantum caches.
|
||||
@ -3213,7 +3213,7 @@ arc_read_done(zio_t *zio)
|
||||
arc_cksum_compute(buf, B_FALSE);
|
||||
#ifdef illumos
|
||||
arc_buf_watch(buf);
|
||||
#endif /* illumos */
|
||||
#endif
|
||||
|
||||
if (hash_lock && zio->io_error == 0 && hdr->b_state == arc_anon) {
|
||||
/*
|
||||
@ -3816,7 +3816,7 @@ arc_release(arc_buf_t *buf, void *tag)
|
||||
arc_cksum_verify(buf);
|
||||
#ifdef illumos
|
||||
arc_buf_unwatch(buf);
|
||||
#endif /* illumos */
|
||||
#endif
|
||||
|
||||
mutex_exit(hash_lock);
|
||||
|
||||
@ -4186,7 +4186,7 @@ arc_init(void)
|
||||
/* Start out with 1/8 of all memory */
|
||||
arc_c = kmem_size() / 8;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
#ifdef _KERNEL
|
||||
/*
|
||||
* On architectures where the physical memory can be larger
|
||||
@ -4195,7 +4195,7 @@ arc_init(void)
|
||||
*/
|
||||
arc_c = MIN(arc_c, vmem_size(heap_arena, VMEM_ALLOC | VMEM_FREE) / 8);
|
||||
#endif
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
/* set min cache to 1/32 of all memory, or 16MB, whichever is more */
|
||||
arc_c_min = MAX(arc_c / 4, 64<<18);
|
||||
/* set max to 1/2 of all memory, or all but 1GB, whichever is more */
|
||||
|
@ -1238,7 +1238,7 @@ dmu_write_uio(objset_t *os, uint64_t object, uio_t *uio, uint64_t size,
|
||||
return (err);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
int
|
||||
dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
|
||||
page_t *pp, dmu_tx_t *tx)
|
||||
@ -1294,7 +1294,7 @@ dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
|
||||
return (err);
|
||||
}
|
||||
|
||||
#else
|
||||
#else /* !illumos */
|
||||
|
||||
int
|
||||
dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
|
||||
@ -1351,8 +1351,8 @@ dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
|
||||
dmu_buf_rele_array(dbp, numbufs, FTAG);
|
||||
return (err);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
#endif /* _KERNEL */
|
||||
|
||||
/*
|
||||
* Allocate a loaned anonymous arc buffer.
|
||||
|
@ -57,7 +57,7 @@ static dnode_phys_t dnode_phys_zero;
|
||||
int zfs_default_bs = SPA_MINBLOCKSHIFT;
|
||||
int zfs_default_ibs = DN_MAX_INDBLKSHIFT;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static kmem_cbrc_t dnode_move(void *, void *, size_t, void *);
|
||||
#endif
|
||||
|
||||
@ -813,7 +813,7 @@ dnode_move_impl(dnode_t *odn, dnode_t *ndn)
|
||||
odn->dn_moved = (uint8_t)-1;
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
#ifdef _KERNEL
|
||||
/*ARGSUSED*/
|
||||
static kmem_cbrc_t
|
||||
@ -956,7 +956,7 @@ dnode_move(void *buf, void *newbuf, size_t size, void *arg)
|
||||
return (KMEM_CBRC_YES);
|
||||
}
|
||||
#endif /* _KERNEL */
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
void
|
||||
dnode_special_close(dnode_handle_t *dnh)
|
||||
|
@ -3770,7 +3770,7 @@ spa_create(const char *pool, nvlist_t *nvroot, nvlist_t *props,
|
||||
}
|
||||
|
||||
#ifdef _KERNEL
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Get the root pool information from the root disk, then import the root pool
|
||||
* during the system boot up time.
|
||||
@ -3971,7 +3971,7 @@ out:
|
||||
return (error);
|
||||
}
|
||||
|
||||
#else
|
||||
#else /* !illumos */
|
||||
|
||||
extern int vdev_geom_read_pool_label(const char *name, nvlist_t ***configs,
|
||||
uint64_t *count);
|
||||
@ -4162,8 +4162,8 @@ spa_import_rootpool(const char *name)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#endif /* sun */
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
#endif /* _KERNEL */
|
||||
|
||||
/*
|
||||
* Import a non-root pool into the system.
|
||||
@ -5331,13 +5331,13 @@ spa_vdev_split_mirror(spa_t *spa, char *newname, nvlist_t *config,
|
||||
spa_activate(newspa, spa_mode_global);
|
||||
spa_async_suspend(newspa);
|
||||
|
||||
#ifndef sun
|
||||
#ifndef illumos
|
||||
/* mark that we are creating new spa by splitting */
|
||||
newspa->spa_splitting_newspa = B_TRUE;
|
||||
#endif
|
||||
/* create the new pool from the disks of the original pool */
|
||||
error = spa_load(newspa, SPA_LOAD_IMPORT, SPA_IMPORT_ASSEMBLE, B_TRUE);
|
||||
#ifndef sun
|
||||
#ifndef illumos
|
||||
newspa->spa_splitting_newspa = B_FALSE;
|
||||
#endif
|
||||
if (error)
|
||||
@ -6578,12 +6578,12 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||
#ifdef illumos
|
||||
VERIFY(cyclic_reprogram(spa->spa_deadman_cycid,
|
||||
spa->spa_sync_starttime + spa->spa_deadman_synctime));
|
||||
#else /* FreeBSD */
|
||||
#else /* !illumos */
|
||||
#ifdef _KERNEL
|
||||
callout_reset(&spa->spa_deadman_cycid,
|
||||
hz * spa->spa_deadman_synctime / NANOSEC, spa_deadman, spa);
|
||||
#endif
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* If we are upgrading to SPA_VERSION_RAIDZ_DEFLATE this txg,
|
||||
@ -6728,11 +6728,11 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||
|
||||
#ifdef illumos
|
||||
VERIFY(cyclic_reprogram(spa->spa_deadman_cycid, CY_INFINITY));
|
||||
#else /* FreeBSD */
|
||||
#else /* !illumos */
|
||||
#ifdef _KERNEL
|
||||
callout_drain(&spa->spa_deadman_cycid);
|
||||
#endif
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Clear the dirty config list.
|
||||
|
@ -616,7 +616,7 @@ int dmu_write_uio(objset_t *os, uint64_t object, struct uio *uio, uint64_t size,
|
||||
int dmu_write_uio_dbuf(dmu_buf_t *zdb, struct uio *uio, uint64_t size,
|
||||
dmu_tx_t *tx);
|
||||
#ifdef _KERNEL
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
int dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset,
|
||||
uint64_t size, struct page *pp, dmu_tx_t *tx);
|
||||
#else
|
||||
|
@ -601,7 +601,7 @@ extern int spa_get_stats(const char *pool, nvlist_t **config, char *altroot,
|
||||
size_t buflen);
|
||||
extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props,
|
||||
nvlist_t *zplprops);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern int spa_import_rootpool(char *devpath, char *devid);
|
||||
#else
|
||||
extern int spa_import_rootpool(const char *name);
|
||||
|
@ -245,7 +245,7 @@ struct spa {
|
||||
uint64_t spa_feat_refcount_cache[SPA_FEATURES];
|
||||
#ifdef illumos
|
||||
cyclic_id_t spa_deadman_cycid; /* cyclic id */
|
||||
#else /* FreeBSD */
|
||||
#else /* !illumos */
|
||||
#ifdef _KERNEL
|
||||
struct callout spa_deadman_cycid; /* callout id */
|
||||
#endif
|
||||
@ -275,7 +275,7 @@ struct spa {
|
||||
*/
|
||||
spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */
|
||||
refcount_t spa_refcount; /* number of opens */
|
||||
#ifndef sun
|
||||
#ifndef illumos
|
||||
boolean_t spa_splitting_newspa; /* creating new spa in split */
|
||||
#endif
|
||||
};
|
||||
|
@ -45,7 +45,7 @@ extern int zvol_remove_minor(const char *);
|
||||
extern void zvol_remove_minors(const char *);
|
||||
extern int zvol_set_volsize(const char *, uint64_t);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
extern int zvol_open(dev_t *devp, int flag, int otyp, cred_t *cr);
|
||||
extern int zvol_dump(dev_t dev, caddr_t addr, daddr_t offset, int nblocks);
|
||||
extern int zvol_close(dev_t dev, int flag, int otyp, cred_t *cr);
|
||||
@ -54,14 +54,14 @@ extern int zvol_read(dev_t dev, uio_t *uiop, cred_t *cr);
|
||||
extern int zvol_write(dev_t dev, uio_t *uiop, cred_t *cr);
|
||||
extern int zvol_aread(dev_t dev, struct aio_req *aio, cred_t *cr);
|
||||
extern int zvol_awrite(dev_t dev, struct aio_req *aio, cred_t *cr);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
extern int zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr,
|
||||
int *rvalp);
|
||||
extern int zvol_busy(void);
|
||||
extern void zvol_init(void);
|
||||
extern void zvol_fini(void);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
extern int zvol_get_volume_params(minor_t minor, uint64_t *blksize,
|
||||
uint64_t *max_xfer_len, void **minor_hdl, void **objset_hdl, void **zil_hdl,
|
||||
void **rl_hdl, void **bonus_hdl);
|
||||
@ -69,7 +69,7 @@ extern uint64_t zvol_get_volume_size(void *minor_hdl);
|
||||
extern int zvol_get_volume_wce(void *minor_hdl);
|
||||
extern void zvol_log_write_minor(void *minor_hdl, dmu_tx_t *tx, offset_t off,
|
||||
ssize_t resid, boolean_t sync);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
extern int zvol_create_minors(const char *name);
|
||||
|
@ -3360,7 +3360,7 @@ vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state, vdev_aux_t aux)
|
||||
boolean_t
|
||||
vdev_is_bootable(vdev_t *vd)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (!vd->vdev_ops->vdev_op_leaf) {
|
||||
char *vdev_type = vd->vdev_ops->vdev_op_type;
|
||||
|
||||
@ -3379,7 +3379,7 @@ vdev_is_bootable(vdev_t *vd)
|
||||
if (!vdev_is_bootable(vd->vdev_child[c]))
|
||||
return (B_FALSE);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
return (B_TRUE);
|
||||
}
|
||||
|
||||
|
@ -2053,7 +2053,7 @@ zfs_zaccess_dataset_check(znode_t *zp, uint32_t v4_mode)
|
||||
return (SET_ERROR(EPERM));
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if ((v4_mode & (ACE_DELETE | ACE_DELETE_CHILD)) &&
|
||||
(zp->z_pflags & ZFS_NOUNLINK)) {
|
||||
return (SET_ERROR(EPERM));
|
||||
|
@ -112,7 +112,7 @@ snapentry_compare(const void *a, const void *b)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
vnodeops_t *zfsctl_ops_root;
|
||||
vnodeops_t *zfsctl_ops_snapdir;
|
||||
vnodeops_t *zfsctl_ops_snapshot;
|
||||
@ -123,20 +123,20 @@ static const fs_operation_def_t zfsctl_tops_root[];
|
||||
static const fs_operation_def_t zfsctl_tops_snapdir[];
|
||||
static const fs_operation_def_t zfsctl_tops_snapshot[];
|
||||
static const fs_operation_def_t zfsctl_tops_shares[];
|
||||
#else /* !sun */
|
||||
#else
|
||||
static struct vop_vector zfsctl_ops_root;
|
||||
static struct vop_vector zfsctl_ops_snapdir;
|
||||
static struct vop_vector zfsctl_ops_snapshot;
|
||||
static struct vop_vector zfsctl_ops_shares;
|
||||
static struct vop_vector zfsctl_ops_shares_dir;
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
|
||||
static vnode_t *zfsctl_mknode_snapdir(vnode_t *);
|
||||
static vnode_t *zfsctl_mknode_shares(vnode_t *);
|
||||
static vnode_t *zfsctl_snapshot_mknode(vnode_t *, uint64_t objset);
|
||||
static int zfsctl_unmount_snap(zfs_snapentry_t *, int, cred_t *);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static gfs_opsvec_t zfsctl_opsvec[] = {
|
||||
{ ".zfs", zfsctl_tops_root, &zfsctl_ops_root },
|
||||
{ ".zfs/snapshot", zfsctl_tops_snapdir, &zfsctl_ops_snapdir },
|
||||
@ -145,7 +145,7 @@ static gfs_opsvec_t zfsctl_opsvec[] = {
|
||||
{ ".zfs/shares/vnode", zfsctl_tops_shares, &zfsctl_ops_shares },
|
||||
{ NULL }
|
||||
};
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Root directory elements. We only have two entries
|
||||
@ -170,7 +170,7 @@ static gfs_dirent_t zfsctl_root_entries[] = {
|
||||
void
|
||||
zfsctl_init(void)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
VERIFY(gfs_make_opsvec(zfsctl_opsvec) == 0);
|
||||
#endif
|
||||
}
|
||||
@ -178,7 +178,7 @@ zfsctl_init(void)
|
||||
void
|
||||
zfsctl_fini(void)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Remove vfsctl vnode ops
|
||||
*/
|
||||
@ -198,7 +198,7 @@ zfsctl_fini(void)
|
||||
zfsctl_ops_snapshot = NULL;
|
||||
zfsctl_ops_shares = NULL;
|
||||
zfsctl_ops_shares_dir = NULL;
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
boolean_t
|
||||
@ -549,7 +549,7 @@ zfsctl_root_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp,
|
||||
return (err);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static int
|
||||
zfsctl_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
|
||||
caller_context_t *ct)
|
||||
@ -565,9 +565,9 @@ zfsctl_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
|
||||
|
||||
return (fs_pathconf(vp, cmd, valp, cr, ct));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static const fs_operation_def_t zfsctl_tops_root[] = {
|
||||
{ VOPNAME_OPEN, { .vop_open = zfsctl_common_open } },
|
||||
{ VOPNAME_CLOSE, { .vop_close = zfsctl_common_close } },
|
||||
@ -582,7 +582,7 @@ static const fs_operation_def_t zfsctl_tops_root[] = {
|
||||
{ VOPNAME_FID, { .vop_fid = zfsctl_common_fid } },
|
||||
{ NULL }
|
||||
};
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Special case the handling of "..".
|
||||
@ -676,7 +676,7 @@ zfsctl_unmount_snap(zfs_snapentry_t *sep, int fflags, cred_t *cr)
|
||||
if ((error = vn_vfswlock(svp)) != 0)
|
||||
return (error);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
VN_HOLD(svp);
|
||||
error = dounmount(vn_mountedvfs(svp), fflags, cr);
|
||||
if (error) {
|
||||
@ -696,12 +696,12 @@ zfsctl_unmount_snap(zfs_snapentry_t *sep, int fflags, cred_t *cr)
|
||||
kmem_free(sep, sizeof (zfs_snapentry_t));
|
||||
|
||||
return (0);
|
||||
#else /* !sun */
|
||||
#else
|
||||
return (dounmount(vn_mountedvfs(svp), fflags, curthread));
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static void
|
||||
zfsctl_rename_snap(zfsctl_snapdir_t *sdp, zfs_snapentry_t *sep, const char *nm)
|
||||
{
|
||||
@ -754,9 +754,9 @@ zfsctl_rename_snap(zfsctl_snapdir_t *sdp, zfs_snapentry_t *sep, const char *nm)
|
||||
|
||||
vfs_unlock(vfsp);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*ARGSUSED*/
|
||||
static int
|
||||
zfsctl_snapdir_rename(vnode_t *sdvp, char *snm, vnode_t *tdvp, char *tnm,
|
||||
@ -821,9 +821,9 @@ zfsctl_snapdir_rename(vnode_t *sdvp, char *snm, vnode_t *tdvp, char *tnm,
|
||||
|
||||
return (err);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
zfsctl_snapdir_remove(vnode_t *dvp, char *name, vnode_t *cwd, cred_t *cr,
|
||||
@ -879,7 +879,7 @@ zfsctl_snapdir_remove(vnode_t *dvp, char *name, vnode_t *cwd, cred_t *cr,
|
||||
|
||||
return (err);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* This creates a snapshot under '.zfs/snapshot'.
|
||||
@ -1067,7 +1067,7 @@ zfsctl_snapdir_lookup(ap)
|
||||
}
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (err);
|
||||
#endif /* !illumos */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
sep = kmem_alloc(sizeof (zfs_snapentry_t), KM_SLEEP);
|
||||
@ -1374,7 +1374,7 @@ zfsctl_snapdir_inactive(ap)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static const fs_operation_def_t zfsctl_tops_snapdir[] = {
|
||||
{ VOPNAME_OPEN, { .vop_open = zfsctl_common_open } },
|
||||
{ VOPNAME_CLOSE, { .vop_close = zfsctl_common_close } },
|
||||
@ -1405,7 +1405,7 @@ static const fs_operation_def_t zfsctl_tops_shares[] = {
|
||||
{ VOPNAME_FID, { .vop_fid = zfsctl_shares_fid } },
|
||||
{ NULL }
|
||||
};
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
static struct vop_vector zfsctl_ops_snapdir = {
|
||||
.vop_default = &default_vnodeops,
|
||||
.vop_open = zfsctl_common_open,
|
||||
@ -1434,7 +1434,7 @@ static struct vop_vector zfsctl_ops_shares = {
|
||||
.vop_reclaim = gfs_vop_reclaim,
|
||||
.vop_fid = zfsctl_shares_fid,
|
||||
};
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* pvp is the GFS vnode '.zfs/snapshot'.
|
||||
|
@ -406,7 +406,7 @@ zfs_fuid_map_id(zfsvfs_t *zfsvfs, uint64_t fuid,
|
||||
domain = zfs_fuid_find_by_idx(zfsvfs, index);
|
||||
ASSERT(domain != NULL);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (type == ZFS_OWNER || type == ZFS_ACE_USER) {
|
||||
(void) kidmap_getuidbysid(crgetzone(cr), domain,
|
||||
FUID_RID(fuid), &id);
|
||||
@ -414,9 +414,9 @@ zfs_fuid_map_id(zfsvfs_t *zfsvfs, uint64_t fuid,
|
||||
(void) kidmap_getgidbysid(crgetzone(cr), domain,
|
||||
FUID_RID(fuid), &id);
|
||||
}
|
||||
#else /* !sun */
|
||||
#else
|
||||
id = UID_NOBODY;
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
return (id);
|
||||
}
|
||||
|
||||
@ -703,13 +703,13 @@ zfs_fuid_info_free(zfs_fuid_info_t *fuidp)
|
||||
boolean_t
|
||||
zfs_groupmember(zfsvfs_t *zfsvfs, uint64_t id, cred_t *cr)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
ksid_t *ksid = crgetsid(cr, KSID_GROUP);
|
||||
ksidlist_t *ksidlist = crgetsidlist(cr);
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
uid_t gid;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (ksid && ksidlist) {
|
||||
int i;
|
||||
ksid_t *ksid_groups;
|
||||
@ -741,7 +741,7 @@ zfs_groupmember(zfsvfs_t *zfsvfs, uint64_t id, cred_t *cr)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Not found in ksidlist, check posix groups
|
||||
|
@ -4823,7 +4823,7 @@ zfs_ioc_userspace_upgrade(zfs_cmd_t *zc)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* We don't want to have a hard dependency
|
||||
* against some special symbols in sharefs
|
||||
@ -4841,10 +4841,10 @@ int zfs_smbshare_inited;
|
||||
ddi_modhandle_t nfs_mod;
|
||||
ddi_modhandle_t sharefs_mod;
|
||||
ddi_modhandle_t smbsrv_mod;
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
kmutex_t zfs_share_lock;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static int
|
||||
zfs_init_sharefs()
|
||||
{
|
||||
@ -4864,12 +4864,12 @@ zfs_init_sharefs()
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static int
|
||||
zfs_ioc_share(zfs_cmd_t *zc)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
int error;
|
||||
int opcode;
|
||||
|
||||
@ -4960,9 +4960,9 @@ zfs_ioc_share(zfs_cmd_t *zc)
|
||||
|
||||
return (error);
|
||||
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
return (ENOSYS);
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
ace_t full_access[] = {
|
||||
@ -5065,7 +5065,7 @@ zfs_ioc_diff(zfs_cmd_t *zc)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Remove all ACL files in shares dir
|
||||
*/
|
||||
@ -5087,12 +5087,12 @@ zfs_smb_acl_purge(znode_t *dzp)
|
||||
zap_cursor_fini(&zc);
|
||||
return (error);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static int
|
||||
zfs_ioc_smb_acl(zfs_cmd_t *zc)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
vnode_t *vp;
|
||||
znode_t *dzp;
|
||||
vnode_t *resourcevp = NULL;
|
||||
@ -5215,9 +5215,9 @@ zfs_ioc_smb_acl(zfs_cmd_t *zc)
|
||||
ZFS_EXIT(zfsvfs);
|
||||
|
||||
return (error);
|
||||
#else /* !sun */
|
||||
#else /* !illumos */
|
||||
return (EOPNOTSUPP);
|
||||
#endif /* !sun */
|
||||
#endif /* illumos */
|
||||
}
|
||||
|
||||
/*
|
||||
@ -5908,7 +5908,7 @@ zfsdev_open(struct cdev *devp, int flag, int mode, struct thread *td)
|
||||
{
|
||||
int error = 0;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (getminor(*devp) != 0)
|
||||
return (zvol_open(devp, flag, otyp, cr));
|
||||
#endif
|
||||
@ -6245,7 +6245,7 @@ out:
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static int
|
||||
zfs_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
|
||||
{
|
||||
@ -6296,7 +6296,7 @@ zfs_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
|
||||
|
||||
return (DDI_FAILURE);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* OK, so this is a little weird.
|
||||
@ -6307,7 +6307,7 @@ zfs_info(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, void **result)
|
||||
* /dev/zfs has basically nothing to do except serve up ioctls,
|
||||
* so most of the standard driver entry points are in zvol.c.
|
||||
*/
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static struct cb_ops zfs_cb_ops = {
|
||||
zfsdev_open, /* open */
|
||||
zfsdev_close, /* close */
|
||||
@ -6356,7 +6356,7 @@ static struct modlinkage modlinkage = {
|
||||
(void *)&zfs_modldrv,
|
||||
NULL
|
||||
};
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static struct cdevsw zfs_cdevsw = {
|
||||
.d_version = D_VERSION,
|
||||
@ -6389,7 +6389,7 @@ zfsdev_fini(void)
|
||||
static struct root_hold_token *zfs_root_token;
|
||||
struct proc *zfsproc;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
int
|
||||
_init(void)
|
||||
{
|
||||
@ -6452,7 +6452,7 @@ _info(struct modinfo *modinfop)
|
||||
{
|
||||
return (mod_info(&modlinkage, modinfop));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static int zfs__init(void);
|
||||
static int zfs__fini(void);
|
||||
|
@ -820,7 +820,7 @@ top:
|
||||
static int
|
||||
zfs_replay_truncate(zfsvfs_t *zfsvfs, lr_truncate_t *lr, boolean_t byteswap)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
znode_t *zp;
|
||||
flock64_t fl;
|
||||
int error;
|
||||
@ -843,10 +843,10 @@ zfs_replay_truncate(zfsvfs_t *zfsvfs, lr_truncate_t *lr, boolean_t byteswap)
|
||||
VN_RELE(ZTOV(zp));
|
||||
|
||||
return (error);
|
||||
#else /* !sun */
|
||||
#else
|
||||
ZFS_LOG(0, "Unexpected code path, report to pjd@FreeBSD.org");
|
||||
return (EOPNOTSUPP);
|
||||
#endif /* !sun */
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -1635,13 +1635,13 @@ zfs_mount(vfs_t *vfsp)
|
||||
* can be interrogated.
|
||||
*/
|
||||
if ((uap->flags & MS_DATA) && uap->datalen > 0)
|
||||
#else
|
||||
#else /* !illumos */
|
||||
if (!prison_allow(td->td_ucred, PR_ALLOW_MOUNT_ZFS))
|
||||
return (SET_ERROR(EPERM));
|
||||
|
||||
if (vfs_getopt(vfsp->mnt_optnew, "from", (void **)&osname, NULL))
|
||||
return (SET_ERROR(EINVAL));
|
||||
#endif /* ! illumos */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* If full-owner-access is enabled and delegated administration is
|
||||
@ -1734,14 +1734,14 @@ zfs_mount(vfs_t *vfsp)
|
||||
error = zfs_domount(vfsp, osname);
|
||||
PICKUP_GIANT();
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Add an extra VFS_HOLD on our parent vfs so that it can't
|
||||
* disappear due to a forced unmount.
|
||||
*/
|
||||
if (error == 0 && ((zfsvfs_t *)vfsp->vfs_data)->z_issnap)
|
||||
VFS_HOLD(mvp->v_vfsp);
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
out:
|
||||
return (error);
|
||||
@ -1996,7 +1996,7 @@ zfs_umount(vfs_t *vfsp, int fflag)
|
||||
return (ret);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (!(fflag & MS_FORCE)) {
|
||||
/*
|
||||
* Check the number of active vnodes in the file system.
|
||||
@ -2321,7 +2321,7 @@ zfs_freevfs(vfs_t *vfsp)
|
||||
{
|
||||
zfsvfs_t *zfsvfs = vfsp->vfs_data;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* If this is a snapshot, we have an extra VFS_HOLD on our parent
|
||||
* from zfs_mount(). Release it here. If we came through
|
||||
@ -2330,7 +2330,7 @@ zfs_freevfs(vfs_t *vfsp)
|
||||
*/
|
||||
if (zfsvfs->z_issnap && (vfsp != rootvfs))
|
||||
VFS_RELE(zfsvfs->z_parent->z_vfs);
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
zfsvfs_free(zfsvfs);
|
||||
|
||||
|
@ -311,7 +311,7 @@ zfs_ioctl(vnode_t *vp, u_long com, intptr_t data, int flag, cred_t *cred,
|
||||
|
||||
case _FIO_SEEK_DATA:
|
||||
case _FIO_SEEK_HOLE:
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (ddi_copyin((void *)data, &off, sizeof (off), flag))
|
||||
return (SET_ERROR(EFAULT));
|
||||
#else
|
||||
@ -327,7 +327,7 @@ zfs_ioctl(vnode_t *vp, u_long com, intptr_t data, int flag, cred_t *cred,
|
||||
ZFS_EXIT(zfsvfs);
|
||||
if (error)
|
||||
return (error);
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (ddi_copyout(&off, (void *)data, sizeof (off), flag))
|
||||
return (SET_ERROR(EFAULT));
|
||||
#else
|
||||
@ -714,7 +714,7 @@ zfs_read(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
|
||||
ASSERT(uio->uio_loffset < zp->z_size);
|
||||
n = MIN(uio->uio_resid, zp->z_size - uio->uio_loffset);
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if ((uio->uio_extflg == UIO_XUIO) &&
|
||||
(((xuio_t *)uio)->xu_type == UIOTYPE_ZEROCOPY)) {
|
||||
int nblk;
|
||||
@ -743,7 +743,7 @@ zfs_read(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
while (n > 0) {
|
||||
nbytes = MIN(n, zfs_read_chunk_size -
|
||||
@ -885,7 +885,7 @@ zfs_write(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Pre-fault the pages to ensure slow (eg NFS) pages
|
||||
* don't hold up txg.
|
||||
@ -896,7 +896,7 @@ zfs_write(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
|
||||
xuio = (xuio_t *)uio;
|
||||
else
|
||||
uio_prefaultpages(MIN(n, max_blksz), uio);
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If in append mode, set the io offset pointer to eof.
|
||||
@ -1148,10 +1148,10 @@ zfs_write(vnode_t *vp, uio_t *uio, int ioflag, cred_t *cr, caller_context_t *ct)
|
||||
ASSERT(tx_bytes == nbytes);
|
||||
n -= nbytes;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (!xuio && n > 0)
|
||||
uio_prefaultpages(MIN(n, max_blksz), uio);
|
||||
#endif /* sun */
|
||||
#endif
|
||||
}
|
||||
|
||||
zfs_range_unlock(rl);
|
||||
@ -2823,7 +2823,7 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
|
||||
mutex_enter(&zp->z_lock);
|
||||
vap->va_type = IFTOVT(zp->z_mode);
|
||||
vap->va_mode = zp->z_mode & ~S_IFMT;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
vap->va_fsid = zp->z_zfsvfs->z_vfs->vfs_dev;
|
||||
#else
|
||||
vap->va_fsid = vp->v_mount->mnt_stat.f_fsid.val[0];
|
||||
@ -2835,7 +2835,7 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
|
||||
links = zp->z_links;
|
||||
vap->va_nlink = MIN(links, LINK_MAX); /* nlink_t limit! */
|
||||
vap->va_size = zp->z_size;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
vap->va_rdev = vp->v_rdev;
|
||||
#else
|
||||
if (vp->v_type == VBLK || vp->v_type == VCHR)
|
||||
@ -4462,7 +4462,7 @@ top:
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* zfs_null_putapage() is used when the file system has been force
|
||||
* unmounted. It just drops the pages.
|
||||
@ -4690,7 +4690,7 @@ out:
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (error);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
@ -4743,7 +4743,7 @@ zfs_inactive(vnode_t *vp, cred_t *cr, caller_context_t *ct)
|
||||
rw_exit(&zfsvfs->z_teardown_inactive_lock);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Bounds-check the seek operation.
|
||||
*
|
||||
@ -5169,7 +5169,7 @@ zfs_space(vnode_t *vp, int cmd, flock64_t *bfp, int flag,
|
||||
ZFS_EXIT(zfsvfs);
|
||||
return (error);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
CTASSERT(sizeof(struct zfid_short) <= sizeof(struct fid));
|
||||
CTASSERT(sizeof(struct zfid_long) <= sizeof(struct fid));
|
||||
@ -5257,7 +5257,7 @@ zfs_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
|
||||
case _PC_FILESIZEBITS:
|
||||
*valp = 64;
|
||||
return (0);
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case _PC_XATTR_EXISTS:
|
||||
zp = VTOZ(vp);
|
||||
zfsvfs = zp->z_zfsvfs;
|
||||
@ -5295,16 +5295,16 @@ zfs_pathconf(vnode_t *vp, int cmd, ulong_t *valp, cred_t *cr,
|
||||
case _PC_ACL_ENABLED:
|
||||
*valp = _ACL_ACE_ENABLED;
|
||||
return (0);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
case _PC_MIN_HOLE_SIZE:
|
||||
*valp = (int)SPA_MINBLOCKSIZE;
|
||||
return (0);
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case _PC_TIMESTAMP_RESOLUTION:
|
||||
/* nanosecond timestamp resolution */
|
||||
*valp = 1L;
|
||||
return (0);
|
||||
#endif /* sun */
|
||||
#endif
|
||||
case _PC_ACL_EXTENDED:
|
||||
*valp = 0;
|
||||
return (0);
|
||||
@ -5363,7 +5363,7 @@ zfs_setsecattr(vnode_t *vp, vsecattr_t *vsecp, int flag, cred_t *cr,
|
||||
return (error);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* The smallest read we may consider to loan out an arcbuf.
|
||||
* This must be a power of 2.
|
||||
@ -5694,7 +5694,7 @@ const fs_operation_def_t zfs_evnodeops_template[] = {
|
||||
VOPNAME_PATHCONF, { .vop_pathconf = zfs_pathconf },
|
||||
NULL, NULL
|
||||
};
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
static int
|
||||
ioflags(int ioflags)
|
||||
|
@ -172,7 +172,7 @@ static struct {
|
||||
} znode_move_stats;
|
||||
#endif /* ZNODE_STATS */
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
static void
|
||||
zfs_znode_move_impl(znode_t *ozp, znode_t *nzp)
|
||||
{
|
||||
@ -343,7 +343,7 @@ zfs_znode_move(void *buf, void *newbuf, size_t size, void *arg)
|
||||
|
||||
return (KMEM_CBRC_YES);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
void
|
||||
zfs_znode_init(void)
|
||||
@ -362,12 +362,12 @@ zfs_znode_init(void)
|
||||
void
|
||||
zfs_znode_fini(void)
|
||||
{
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Cleanup vfs & vnode ops
|
||||
*/
|
||||
zfs_remove_op_tables();
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Cleanup zcache
|
||||
@ -378,7 +378,7 @@ zfs_znode_fini(void)
|
||||
rw_destroy(&zfsvfs_lock);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
struct vnodeops *zfs_dvnodeops;
|
||||
struct vnodeops *zfs_fvnodeops;
|
||||
struct vnodeops *zfs_symvnodeops;
|
||||
@ -470,7 +470,7 @@ zfs_create_op_tables()
|
||||
|
||||
return (error);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
int
|
||||
zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *tx)
|
||||
@ -689,7 +689,7 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz,
|
||||
case VDIR:
|
||||
zp->z_zn_prefetch = B_TRUE; /* z_prefetch default is enabled */
|
||||
break;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case VBLK:
|
||||
case VCHR:
|
||||
{
|
||||
@ -700,12 +700,12 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz,
|
||||
vp->v_rdev = zfs_cmpldev(rdev);
|
||||
}
|
||||
break;
|
||||
#endif /* sun */
|
||||
#endif
|
||||
case VFIFO:
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case VSOCK:
|
||||
case VDOOR:
|
||||
#endif /* sun */
|
||||
#endif
|
||||
vp->v_op = &zfs_fifoops;
|
||||
break;
|
||||
case VREG:
|
||||
@ -714,14 +714,14 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz,
|
||||
vp->v_op = &zfs_shareops;
|
||||
}
|
||||
break;
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
case VLNK:
|
||||
vn_setops(vp, zfs_symvnodeops);
|
||||
break;
|
||||
default:
|
||||
vn_setops(vp, zfs_evnodeops);
|
||||
break;
|
||||
#endif /* sun */
|
||||
#endif
|
||||
}
|
||||
|
||||
mutex_enter(&zfsvfs->z_znodes_lock);
|
||||
@ -1490,7 +1490,7 @@ zfs_grow_blocksize(znode_t *zp, uint64_t size, dmu_tx_t *tx)
|
||||
dmu_object_size_from_db(sa_get_db(zp->z_sa_hdl), &zp->z_blksz, &dummy);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* This is a dummy interface used when pvn_vplist_dirty() should *not*
|
||||
* be calling back into the fs for a putpage(). E.g.: when truncating
|
||||
@ -1504,7 +1504,7 @@ zfs_no_putpage(vnode_t *vp, page_t *pp, u_offset_t *offp, size_t *lenp,
|
||||
ASSERT(0);
|
||||
return (0);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Increase the file length
|
||||
|
@ -368,7 +368,7 @@ callb_unlock_table(void)
|
||||
mutex_exit(&ct->ct_lock);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Return a boolean value indicating whether a particular kernel thread is
|
||||
* stopped in accordance with the cpr callback protocol. If returning
|
||||
@ -432,7 +432,7 @@ callb_is_stopped(kthread_id_t tp, caddr_t *thread_name)
|
||||
mutex_exit(&ct->ct_lock);
|
||||
return (ret_val);
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
SYSINIT(sol_callb, SI_SUB_DRIVERS, SI_ORDER_FIRST, callb_init, NULL);
|
||||
SYSUNINIT(sol_callb, SI_SUB_DRIVERS, SI_ORDER_FIRST, callb_fini, NULL);
|
||||
|
@ -79,7 +79,7 @@ static const char *fm_url = "http://www.sun.com/msg";
|
||||
static const char *fm_msgid = "SUNOS-8000-0G";
|
||||
static char *volatile fm_panicstr = NULL;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
errorq_t *ereport_errorq;
|
||||
#endif
|
||||
void *ereport_dumpbuf;
|
||||
@ -112,7 +112,7 @@ static struct erpt_kstat erpt_kstat_data = {
|
||||
{ "payload-set-failed", KSTAT_DATA_UINT64 }
|
||||
};
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
fm_drain(void *private, void *data, errorq_elem_t *eep)
|
||||
@ -131,7 +131,7 @@ fm_init(void)
|
||||
{
|
||||
kstat_t *ksp;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
(void) sysevent_evc_bind(FM_ERROR_CHAN,
|
||||
&ereport_chan, EVCH_CREAT | EVCH_HOLD_PEND);
|
||||
|
||||
@ -145,7 +145,7 @@ fm_init(void)
|
||||
if (ereport_size == 0)
|
||||
ereport_size = ERPT_DATA_SZ;
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
ereport_errorq = errorq_nvcreate("fm_ereport_queue",
|
||||
(errorq_func_t)fm_drain, NULL, ereport_qlen, ereport_size,
|
||||
FM_ERR_PIL, ERRORQ_VITAL);
|
||||
@ -170,7 +170,7 @@ fm_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Formatting utility function for fm_nvprintr. We attempt to wrap chunks of
|
||||
* output so they aren't split across console lines, and return the end column.
|
||||
@ -528,7 +528,7 @@ fm_ereport_post(nvlist_t *ereport, int evc_flag)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
if (sysevent_evc_bind(FM_ERROR_CHAN, &error_chan,
|
||||
EVCH_CREAT|EVCH_HOLD_PEND) != 0) {
|
||||
atomic_inc_64(&erpt_kstat_data.erpt_dropped.value.ui64);
|
||||
@ -1262,7 +1262,7 @@ fm_ena_time_get(uint64_t ena)
|
||||
return (time);
|
||||
}
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Convert a getpcstack() trace to symbolic name+offset, and add the resulting
|
||||
* string array to a Fault Management ereport as FM_EREPORT_PAYLOAD_NAME_STACK.
|
||||
@ -1290,7 +1290,7 @@ fm_payload_stack_add(nvlist_t *payload, const pc_t *stack, int depth)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
void
|
||||
print_msg_hwerr(ctid_t ct_id, proc_t *p)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@
|
||||
#ifndef _CTF_H
|
||||
#define _CTF_H
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
#endif
|
||||
|
||||
|
@ -69,7 +69,7 @@ typedef struct ctf_sect {
|
||||
const char *cts_name; /* section name (if any) */
|
||||
ulong_t cts_type; /* section type (ELF SHT_... value) */
|
||||
ulong_t cts_flags; /* section flags (ELF SHF_... value) */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
const void *cts_data; /* pointer to section data */
|
||||
#else
|
||||
void *cts_data; /* pointer to section data */
|
||||
|
@ -54,7 +54,7 @@ extern "C" {
|
||||
#include <sys/types.h>
|
||||
#include <sys/modctl.h>
|
||||
#include <sys/processor.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/systm.h>
|
||||
#else
|
||||
#include <sys/cpuvar.h>
|
||||
@ -65,7 +65,7 @@ extern "C" {
|
||||
typedef int model_t;
|
||||
#endif
|
||||
#include <sys/ctf_api.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/cyclic.h>
|
||||
#include <sys/int_limits.h>
|
||||
#else
|
||||
@ -257,7 +257,7 @@ typedef enum dtrace_probespec {
|
||||
#define DIF_VAR_ERRNO 0x0120 /* thread errno */
|
||||
#define DIF_VAR_EXECARGS 0x0121 /* process arguments */
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#define DIF_VAR_CPU 0x0200
|
||||
#endif
|
||||
|
||||
@ -1277,7 +1277,7 @@ typedef struct dtrace_providerdesc {
|
||||
* pseudodevice driver. These ioctls comprise the user-kernel interface to
|
||||
* DTrace.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define DTRACEIOC (('d' << 24) | ('t' << 16) | ('r' << 8))
|
||||
#define DTRACEIOC_PROVIDER (DTRACEIOC | 1) /* provider query */
|
||||
#define DTRACEIOC_PROBES (DTRACEIOC | 2) /* probe query */
|
||||
@ -1408,7 +1408,7 @@ typedef struct {
|
||||
* helpers and should no longer be used. No other ioctls are valid on the
|
||||
* helper minor node.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define DTRACEHIOC (('d' << 24) | ('t' << 16) | ('h' << 8))
|
||||
#define DTRACEHIOC_ADD (DTRACEHIOC | 1) /* add helper */
|
||||
#define DTRACEHIOC_REMOVE (DTRACEHIOC | 2) /* remove helper */
|
||||
@ -1423,7 +1423,7 @@ typedef struct dof_helper {
|
||||
char dofhp_mod[DTRACE_MODNAMELEN]; /* executable or library name */
|
||||
uint64_t dofhp_addr; /* base address of object */
|
||||
uint64_t dofhp_dof; /* address of helper DOF */
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
int gen;
|
||||
#endif
|
||||
} dof_helper_t;
|
||||
@ -2325,7 +2325,7 @@ typedef enum dtrace_vtime_state {
|
||||
DTRACE_VTIME_ACTIVE_TNF /* DTrace virtual time _and_ TNF */
|
||||
} dtrace_vtime_state_t;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern dtrace_vtime_state_t dtrace_vtime_active;
|
||||
#endif
|
||||
extern void dtrace_vtime_switch(kthread_t *next);
|
||||
@ -2337,7 +2337,7 @@ extern void dtrace_vtime_disable(void);
|
||||
struct regs;
|
||||
struct reg;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern int (*dtrace_pid_probe_ptr)(struct reg *);
|
||||
extern int (*dtrace_return_probe_ptr)(struct reg *);
|
||||
extern void (*dtrace_fasttrap_fork_ptr)(proc_t *, proc_t *);
|
||||
@ -2356,7 +2356,7 @@ extern void dtrace_membar_producer(void);
|
||||
extern void dtrace_membar_consumer(void);
|
||||
|
||||
extern void (*dtrace_cpu_init)(processorid_t);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern void (*dtrace_modload)(modctl_t *);
|
||||
extern void (*dtrace_modunload)(modctl_t *);
|
||||
#endif
|
||||
@ -2370,7 +2370,7 @@ extern void (*dtrace_debugger_init)(void);
|
||||
extern void (*dtrace_debugger_fini)(void);
|
||||
extern dtrace_cacheid_t dtrace_predcache_id;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern hrtime_t dtrace_gethrtime(void);
|
||||
#else
|
||||
void dtrace_debug_printf(const char *, ...) __printflike(1, 2);
|
||||
@ -2399,7 +2399,7 @@ extern int dtrace_blksuword32(uintptr_t, uint32_t *, int);
|
||||
extern void dtrace_getfsr(uint64_t *);
|
||||
#endif
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
extern void dtrace_helpers_duplicate(proc_t *, proc_t *);
|
||||
extern void dtrace_helpers_destroy(proc_t *);
|
||||
#endif
|
||||
|
@ -50,7 +50,7 @@ extern "C" {
|
||||
*/
|
||||
|
||||
#include <sys/dtrace.h>
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
#ifdef __sparcv9
|
||||
typedef uint32_t pc_t;
|
||||
#else
|
||||
@ -1122,7 +1122,7 @@ typedef struct dtrace_cred {
|
||||
* dtrace_state structure.
|
||||
*/
|
||||
struct dtrace_state {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
dev_t dts_dev; /* device */
|
||||
#else
|
||||
struct cdev *dts_dev; /* device */
|
||||
@ -1140,7 +1140,7 @@ struct dtrace_state {
|
||||
int dts_nspeculations; /* number of speculations */
|
||||
int dts_naggregations; /* number of aggregations */
|
||||
dtrace_aggregation_t **dts_aggregations; /* aggregation array */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
vmem_t *dts_aggid_arena; /* arena for aggregation IDs */
|
||||
#else
|
||||
struct unrhdr *dts_aggid_arena; /* arena for aggregation IDs */
|
||||
@ -1152,7 +1152,7 @@ struct dtrace_state {
|
||||
uint32_t dts_dblerrors; /* errors in ERROR probes */
|
||||
uint32_t dts_reserve; /* space reserved for END */
|
||||
hrtime_t dts_laststatus; /* time of last status */
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
cyclic_id_t dts_cleaner; /* cleaning cyclic */
|
||||
cyclic_id_t dts_deadman; /* deadman cyclic */
|
||||
#else
|
||||
@ -1270,7 +1270,7 @@ typedef struct dtrace_toxrange {
|
||||
uintptr_t dtt_limit; /* limit of toxic range */
|
||||
} dtrace_toxrange_t;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern uint64_t dtrace_getarg(int, int);
|
||||
#else
|
||||
extern uint64_t __noinline dtrace_getarg(int, int);
|
||||
@ -1300,7 +1300,7 @@ extern void dtrace_probe_error(dtrace_state_t *, dtrace_epid_t, int, int,
|
||||
int, uintptr_t);
|
||||
extern int dtrace_assfail(const char *, const char *, int);
|
||||
extern int dtrace_attached(void);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
extern hrtime_t dtrace_gethrestime(void);
|
||||
#endif
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define FASTTRAPIOC (('m' << 24) | ('r' << 16) | ('f' << 8))
|
||||
#define FASTTRAPIOC_MAKEPROBE (FASTTRAPIOC | 1)
|
||||
#define FASTTRAPIOC_GETINSTR (FASTTRAPIOC | 2)
|
||||
|
@ -79,7 +79,7 @@ extern "C" {
|
||||
* until it exits.
|
||||
*/
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
typedef struct fasttrap_scrblock {
|
||||
vm_offset_t ftsb_addr; /* address of a scratch block */
|
||||
LIST_ENTRY(fasttrap_scrblock) ftsb_next;/* next block in list */
|
||||
@ -99,7 +99,7 @@ typedef struct fasttrap_proc {
|
||||
uint64_t ftpc_rcount; /* count of extant providers */
|
||||
kmutex_t ftpc_mtx; /* lock on all but acount */
|
||||
struct fasttrap_proc *ftpc_next; /* next proc in hash chain */
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
LIST_HEAD(, fasttrap_scrblock) ftpc_scrblks; /* mapped scratch blocks */
|
||||
LIST_HEAD(, fasttrap_scrspace) ftpc_fscr; /* free scratch space */
|
||||
LIST_HEAD(, fasttrap_scrspace) ftpc_ascr; /* used scratch space */
|
||||
@ -198,7 +198,7 @@ typedef struct fasttrap_hash {
|
||||
#endif
|
||||
|
||||
extern void fasttrap_sigtrap(proc_t *, kthread_t *, uintptr_t);
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
extern fasttrap_scrspace_t *fasttrap_scraddr(struct thread *,
|
||||
fasttrap_proc_t *);
|
||||
#endif
|
||||
|
@ -235,7 +235,7 @@ extern "C" {
|
||||
/*
|
||||
* Define the appropriate "processor characteristics"
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define _LITTLE_ENDIAN
|
||||
#endif
|
||||
#define _STACK_GROWS_DOWNWARD
|
||||
@ -302,7 +302,7 @@ extern "C" {
|
||||
/*
|
||||
* Define the appropriate "processor characteristics"
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define _LITTLE_ENDIAN
|
||||
#endif
|
||||
#define _STACK_GROWS_DOWNWARD
|
||||
@ -508,7 +508,7 @@ extern "C" {
|
||||
* Define the appropriate "processor characteristics" shared between
|
||||
* all Solaris on SPARC systems.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define _BIG_ENDIAN
|
||||
#endif
|
||||
#define _STACK_GROWS_DOWNWARD
|
||||
|
@ -143,7 +143,7 @@ typedef struct procset {
|
||||
|
||||
#endif /* !defined(_XPG4_2) || defined(__EXTENSIONS__) */
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#ifdef _KERNEL
|
||||
|
||||
struct proc;
|
||||
|
@ -214,7 +214,7 @@ typedef struct sysevent_value {
|
||||
#define EVCH_SET_CHAN_LEN 3 /* Set event queue length */
|
||||
#define EVCH_CMD_LAST EVCH_SET_CHAN_LEN /* Last command */
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Shared user/kernel event channel interface definitions
|
||||
*/
|
||||
@ -228,11 +228,11 @@ extern int sysevent_evc_publish(evchan_t *, const char *, const char *,
|
||||
extern int sysevent_evc_control(evchan_t *, int, ...);
|
||||
extern int sysevent_evc_setpropnvl(evchan_t *, nvlist_t *);
|
||||
extern int sysevent_evc_getpropnvl(evchan_t *, nvlist_t **);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#ifndef _KERNEL
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Userland-only event channel interfaces
|
||||
*/
|
||||
@ -254,7 +254,7 @@ extern void sysevent_subattr_thrsetup(sysevent_subattr_t *,
|
||||
|
||||
extern int sysevent_evc_xsubscribe(evchan_t *, const char *, const char *,
|
||||
int (*)(sysevent_t *, void *), void *, uint32_t, sysevent_subattr_t *);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#else
|
||||
|
||||
@ -270,7 +270,7 @@ extern int sysevent_add_attr(sysevent_attr_list_t **, char *,
|
||||
extern void sysevent_free_attr(sysevent_attr_list_t *);
|
||||
extern int sysevent_attach_attributes(sysevent_t *, sysevent_attr_list_t *);
|
||||
extern void sysevent_detach_attributes(sysevent_t *);
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
extern char *sysevent_get_class_name(sysevent_t *);
|
||||
extern char *sysevent_get_subclass_name(sysevent_t *);
|
||||
extern uint64_t sysevent_get_seq(sysevent_t *);
|
||||
@ -278,7 +278,7 @@ extern void sysevent_get_time(sysevent_t *, hrtime_t *);
|
||||
extern size_t sysevent_get_size(sysevent_t *);
|
||||
extern char *sysevent_get_pub(sysevent_t *);
|
||||
extern int sysevent_get_attr_list(sysevent_t *, nvlist_t **);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
|
@ -112,7 +112,7 @@ extern unsigned char bcd_to_byte[256];
|
||||
#define L_MAXMIN L_MAXMIN32
|
||||
#endif
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
#ifdef _KERNEL
|
||||
|
||||
/* major part of a device internal to the kernel */
|
||||
@ -172,7 +172,7 @@ extern unsigned char bcd_to_byte[256];
|
||||
#define getemajor(x) (major_t)((((dev_t)(x) >> L_BITSMINOR) > L_MAXMAJ) ? \
|
||||
NODEV : (((dev_t)(x) >> L_BITSMINOR) & L_MAXMAJ))
|
||||
#define geteminor(x) (minor_t)((x) & L_MAXMIN)
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* These are versions of the kernel routines for compressing and
|
||||
|
@ -36,7 +36,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef sun
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Unicode encoding conversion functions and their macros.
|
||||
*/
|
||||
@ -58,7 +58,7 @@ extern int uconv_u32tou16(const uint32_t *, size_t *, uint16_t *, size_t *,
|
||||
extern int uconv_u32tou8(const uint32_t *, size_t *, uchar_t *, size_t *, int);
|
||||
extern int uconv_u8tou16(const uchar_t *, size_t *, uint16_t *, size_t *, int);
|
||||
extern int uconv_u8tou32(const uchar_t *, size_t *, uint32_t *, size_t *, int);
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* UTF-8 text preparation functions and their macros.
|
||||
|
@ -28,7 +28,7 @@
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma ident "%Z%%M% %I% %E% SMI"
|
||||
#endif
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
#include <sys/dtrace.h>
|
||||
#include <sys/dtrace_impl.h>
|
||||
#include <sys/cmn_err.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/regset.h>
|
||||
#include <sys/privregs.h>
|
||||
#include <sys/segments.h>
|
||||
@ -53,7 +53,7 @@
|
||||
#include <machine/pcb.h>
|
||||
#endif
|
||||
#include <sys/sysmacros.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/trap.h>
|
||||
#include <sys/archsystm.h>
|
||||
#else
|
||||
@ -97,7 +97,7 @@ uwrite(proc_t *p, void *kaddr, size_t len, uintptr_t uaddr)
|
||||
|
||||
return (proc_ops(UIO_WRITE, p, kaddr, uaddr, len));
|
||||
}
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
#ifdef __i386__
|
||||
#define r_rax r_eax
|
||||
#define r_rbx r_ebx
|
||||
@ -747,11 +747,11 @@ fasttrap_return_common(struct reg *rp, uintptr_t pc, pid_t pid,
|
||||
fasttrap_tracepoint_t *tp;
|
||||
fasttrap_bucket_t *bucket;
|
||||
fasttrap_id_t *id;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
kmutex_t *pid_mtx;
|
||||
#endif
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
pid_mtx = &cpu_core[CPU->cpu_id].cpuc_pid_lock;
|
||||
mutex_enter(pid_mtx);
|
||||
#endif
|
||||
@ -769,7 +769,7 @@ fasttrap_return_common(struct reg *rp, uintptr_t pc, pid_t pid,
|
||||
* is not essential to the correct execution of the process.
|
||||
*/
|
||||
if (tp == NULL) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(pid_mtx);
|
||||
#endif
|
||||
return;
|
||||
@ -792,7 +792,7 @@ fasttrap_return_common(struct reg *rp, uintptr_t pc, pid_t pid,
|
||||
rp->r_rax, rp->r_rbx, 0, 0);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(pid_mtx);
|
||||
#endif
|
||||
}
|
||||
@ -800,7 +800,7 @@ fasttrap_return_common(struct reg *rp, uintptr_t pc, pid_t pid,
|
||||
static void
|
||||
fasttrap_sigsegv(proc_t *p, kthread_t *t, uintptr_t addr)
|
||||
{
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
sigqueue_t *sqp = kmem_zalloc(sizeof (sigqueue_t), KM_SLEEP);
|
||||
|
||||
sqp->sq_info.si_signo = SIGSEGV;
|
||||
@ -1001,13 +1001,13 @@ int
|
||||
fasttrap_pid_probe(struct reg *rp)
|
||||
{
|
||||
proc_t *p = curproc;
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
proc_t *pp;
|
||||
#endif
|
||||
uintptr_t pc = rp->r_rip - 1;
|
||||
uintptr_t new_pc = 0;
|
||||
fasttrap_bucket_t *bucket;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
kmutex_t *pid_mtx;
|
||||
#endif
|
||||
fasttrap_tracepoint_t *tp, tp_local;
|
||||
@ -1044,7 +1044,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
* parent. We know that there's only one thread of control in such a
|
||||
* process: this one.
|
||||
*/
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
while (p->p_flag & SVFORK) {
|
||||
p = p->p_parent;
|
||||
}
|
||||
@ -1082,7 +1082,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
* fasttrap_ioctl), or somehow we have mislaid this tracepoint.
|
||||
*/
|
||||
if (tp == NULL) {
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(pid_mtx);
|
||||
#else
|
||||
_PRELE(p);
|
||||
@ -1209,7 +1209,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
* tracepoint again later if we need to light up any return probes.
|
||||
*/
|
||||
tp_local = *tp;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(pid_mtx);
|
||||
#else
|
||||
PROC_UNLOCK(p);
|
||||
@ -1537,7 +1537,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
uint8_t scratch[2 * FASTTRAP_MAX_INSTR_SIZE + 7];
|
||||
#endif
|
||||
uint_t i = 0;
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
klwp_t *lwp = ttolwp(curthread);
|
||||
|
||||
/*
|
||||
@ -1558,7 +1558,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
addr = USD_GETBASE(&lwp->lwp_pcb.pcb_gsdesc);
|
||||
addr += sizeof (void *);
|
||||
#endif
|
||||
#else
|
||||
#else /* !illumos */
|
||||
fasttrap_scrspace_t *scrspace;
|
||||
scrspace = fasttrap_scraddr(curthread, tp->ftt_proc);
|
||||
if (scrspace == NULL) {
|
||||
@ -1574,7 +1574,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
break;
|
||||
}
|
||||
addr = scrspace->ftss_addr;
|
||||
#endif /* sun */
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* Generic Instruction Tracing
|
||||
@ -1760,7 +1760,7 @@ fasttrap_pid_probe(struct reg *rp)
|
||||
|
||||
ASSERT(i <= sizeof (scratch));
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
if (fasttrap_copyout(scratch, (char *)addr, i)) {
|
||||
#else
|
||||
if (uwrite(p, scratch, i, addr)) {
|
||||
@ -1822,7 +1822,7 @@ done:
|
||||
|
||||
rp->r_rip = new_pc;
|
||||
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
PROC_LOCK(p);
|
||||
proc_write_regs(curthread, rp);
|
||||
_PRELE(p);
|
||||
@ -1844,7 +1844,7 @@ fasttrap_return_probe(struct reg *rp)
|
||||
curthread->t_dtrace_scrpc = 0;
|
||||
curthread->t_dtrace_astpc = 0;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
/*
|
||||
* Treat a child created by a call to vfork(2) as if it were its
|
||||
* parent. We know that there's only one thread of control in such a
|
||||
@ -1917,7 +1917,7 @@ fasttrap_getreg(struct reg *rp, uint_t reg)
|
||||
case REG_ERR: return (rp->r_err);
|
||||
case REG_RIP: return (rp->r_rip);
|
||||
case REG_CS: return (rp->r_cs);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
case REG_RFL: return (rp->r_rfl);
|
||||
#endif
|
||||
case REG_RSP: return (rp->r_rsp);
|
||||
|
@ -30,14 +30,14 @@
|
||||
/* All Rights Reserved */
|
||||
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma ident "@(#)instr_size.c 1.14 05/07/08 SMI"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/proc.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/cmn_err.h>
|
||||
#include <sys/archsystm.h>
|
||||
#include <sys/copyops.h>
|
||||
@ -104,7 +104,7 @@ dtrace_dis_isize(uchar_t *instr, dis_isize_t which, model_t model, int *rmindex)
|
||||
dis86_t x;
|
||||
uint_t mode = SIZE64;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mode = (model == DATAMODEL_LP64) ? SIZE64 : SIZE32;
|
||||
#endif
|
||||
|
||||
|
@ -578,14 +578,14 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
return (EINVAL);
|
||||
|
||||
mutex_enter(&dtrace_provider_lock);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_enter(&mod_lock);
|
||||
#endif
|
||||
mutex_enter(&dtrace_lock);
|
||||
|
||||
if (desc->dtargd_id > dtrace_nprobes) {
|
||||
mutex_exit(&dtrace_lock);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&mod_lock);
|
||||
#endif
|
||||
mutex_exit(&dtrace_provider_lock);
|
||||
@ -594,7 +594,7 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
|
||||
if ((probe = dtrace_probes[desc->dtargd_id - 1]) == NULL) {
|
||||
mutex_exit(&dtrace_lock);
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&mod_lock);
|
||||
#endif
|
||||
mutex_exit(&dtrace_provider_lock);
|
||||
@ -620,7 +620,7 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
probe->dtpr_id, probe->dtpr_arg, desc);
|
||||
}
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mutex_exit(&mod_lock);
|
||||
#endif
|
||||
mutex_exit(&dtrace_provider_lock);
|
||||
@ -779,7 +779,7 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr,
|
||||
dstate = &state->dts_vstate.dtvs_dynvars;
|
||||
|
||||
for (i = 0; i < NCPU; i++) {
|
||||
#if !defined(sun)
|
||||
#ifndef illumos
|
||||
if (pcpu_find(i) == NULL)
|
||||
continue;
|
||||
#endif
|
||||
|
@ -30,14 +30,14 @@
|
||||
/* All Rights Reserved */
|
||||
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#pragma ident "@(#)instr_size.c 1.14 05/07/08 SMI"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/proc.h>
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#include <sys/cmn_err.h>
|
||||
#include <sys/archsystm.h>
|
||||
#include <sys/copyops.h>
|
||||
@ -104,7 +104,7 @@ dtrace_dis_isize(uchar_t *instr, dis_isize_t which, model_t model, int *rmindex)
|
||||
dis86_t x;
|
||||
uint_t mode = SIZE32;
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
mode = (model == DATAMODEL_LP64) ? SIZE64 : SIZE32;
|
||||
#endif
|
||||
|
||||
|
@ -61,7 +61,7 @@ extern "C" {
|
||||
|
||||
#define REG_GSBASE 27
|
||||
#define REG_FSBASE 26
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define REG_DS 25
|
||||
#define REG_ES 24
|
||||
|
||||
@ -89,7 +89,7 @@ extern "C" {
|
||||
#define REG_R13 2
|
||||
#define REG_R14 1
|
||||
#define REG_R15 0
|
||||
#else
|
||||
#else /* !illumos */
|
||||
#define REG_SS 25
|
||||
#define REG_RSP 24
|
||||
#define REG_RFL 23
|
||||
@ -116,13 +116,13 @@ extern "C" {
|
||||
#define REG_R13 2
|
||||
#define REG_R14 1
|
||||
#define REG_R15 0
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
/*
|
||||
* The names and offsets defined here are specified by i386 ABI suppl.
|
||||
*/
|
||||
|
||||
#if defined(sun)
|
||||
#ifdef illumos
|
||||
#define SS 18 /* only stored on a privilege transition */
|
||||
#define UESP 17 /* only stored on a privilege transition */
|
||||
#define EFL 16
|
||||
@ -142,7 +142,7 @@ extern "C" {
|
||||
#define ES 2
|
||||
#define FS 1
|
||||
#define GS 0
|
||||
#else
|
||||
#else /* !illumos */
|
||||
#define GS 18
|
||||
#define SS 17 /* only stored on a privilege transition */
|
||||
#define UESP 16 /* only stored on a privilege transition */
|
||||
@ -162,7 +162,7 @@ extern "C" {
|
||||
#define DS 2
|
||||
#define ES 1
|
||||
#define FS 0
|
||||
#endif
|
||||
#endif /* illumos */
|
||||
|
||||
#define REG_PC EIP
|
||||
#define REG_FP EBP
|
||||
|
Loading…
x
Reference in New Issue
Block a user