Print this page
8115 parallel zfs mount

*** 9,31 **** --- 9,34 ---- * http://www.illumos.org/license/CDDL. */ /* * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2017 RackTop Systems. */ #include <sys/types.h> #include <sys/time.h> #include <sys/thread.h> #include <sys/proc.h> #include <sys/zone.h> + #include <sys/cyclic.h> #include <sys/poll.h> #include <time.h> #include <stdlib.h> #include <unistd.h> + #include <errno.h> #include <fakekernel.h> pri_t minclsyspri = 60;
*** 53,76 **** --- 56,150 ---- ddi_get_pid(void) { return ((pid_t)getpid()); } + /* + * Find highest one bit set. + * Returns bit number + 1 of highest bit that is set, otherwise returns 0. + */ int + highbit64(uint64_t i) + { + int h = 1; + + if (i == 0) + return (0); + if (i & 0xffffffff00000000ULL) { + h += 32; i >>= 32; + } + if (i & 0xffff0000) { + h += 16; i >>= 16; + } + if (i & 0xff00) { + h += 8; i >>= 8; + } + if (i & 0xf0) { + h += 4; i >>= 4; + } + if (i & 0xc) { + h += 2; i >>= 2; + } + if (i & 0x2) { + h += 1; + } + return (h); + } + + int ddi_strtoul(const char *str, char **endp, int base, unsigned long *res) { *res = strtoul(str, endp, base); + if (*res == 0) + return (errno); return (0); } + int + ddi_strtoull(const char *str, char **nptr, int base, u_longlong_t *res) + { + char *end; + + *res = strtoull(str, &end, base); + if (*res == 0) + return (errno); + return (0); + } + void delay(clock_t ticks) { int msec = ticks; /* NB: hz==1000 */ (void) poll(0, 0, msec); } + int + issig(int why) + { + return (0); + } + + /* ARGSUSED */ + cyclic_id_t + cyclic_add(cyc_handler_t *hdlr, cyc_time_t *when) + { + return (1); + } + + /* ARGSUSED */ + void + cyclic_remove(cyclic_id_t id) + { + } + + /* ARGSUSED */ + int + cyclic_reprogram(cyclic_id_t id, hrtime_t expiration) + { + return (1); + } + /* * This library does not really need an "init" function, but * providing one the main program can call is an easy way to * make sure this library is loaded into the debugger, and * gives us a way to avoid elfcheck complaints in the build.