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.