/*
* Global token for kqueue subsystem
*/
-struct lwkt_token kq_token = LWKT_TOKEN_UP_INITIALIZER;
+struct lwkt_token kq_token = LWKT_TOKEN_UP_INITIALIZER(kq_token);
MALLOC_DEFINE(M_KQUEUE, "kqueue", "memory for kqueue system");
* any time, the MP state is copied to the tokref when the token is acquired
* and will not race against sysctl changes.
*/
-struct lwkt_token pmap_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token dev_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token vm_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token vmspace_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token kvm_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token proc_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token tty_token = LWKT_TOKEN_UP_INITIALIZER;
-struct lwkt_token vnode_token = LWKT_TOKEN_UP_INITIALIZER;
+struct lwkt_token pmap_token = LWKT_TOKEN_UP_INITIALIZER(pmap_token);
+struct lwkt_token dev_token = LWKT_TOKEN_UP_INITIALIZER(dev_token);
+struct lwkt_token vm_token = LWKT_TOKEN_UP_INITIALIZER(vm_token);
+struct lwkt_token vmspace_token = LWKT_TOKEN_UP_INITIALIZER(vmspace_token);
+struct lwkt_token kvm_token = LWKT_TOKEN_UP_INITIALIZER(kvm_token);
+struct lwkt_token proc_token = LWKT_TOKEN_UP_INITIALIZER(proc_token);
+struct lwkt_token tty_token = LWKT_TOKEN_UP_INITIALIZER(tty_token);
+struct lwkt_token vnode_token = LWKT_TOKEN_UP_INITIALIZER(vnode_token);
SYSCTL_INT(_lwkt, OID_AUTO, pmap_mpsafe,
CTLFLAG_RW, &pmap_token.t_flags, 0, "");
int error;
};
-static struct lwkt_token mapped_ioctl_token = LWKT_TOKEN_MP_INITIALIZER;
+static struct lwkt_token mioctl_token = LWKT_TOKEN_MP_INITIALIZER(mioctl_token);
static int doselect(int nd, fd_set *in, fd_set *ou, fd_set *ex,
struct timespec *ts, int *res);
maskcmd = com & map->mask;
- lwkt_gettoken(&mapped_ioctl_token);
+ lwkt_gettoken(&mioctl_token);
LIST_FOREACH(e, &map->mapping, entries) {
for (iomc = e->cmd_ranges; iomc->start != 0 ||
iomc->maptocmd != 0 || iomc->wrapfunc != NULL ||
iomc->wrapfunc != NULL || iomc->mapfunc != NULL)
break;
}
- lwkt_reltoken(&mapped_ioctl_token);
+ lwkt_reltoken(&mioctl_token);
if (iomc == NULL ||
(iomc->start == 0 && iomc->maptocmd == 0
ne->subsys = he->subsys;
ne->cmd_ranges = he->cmd_ranges;
- lwkt_gettoken(&mapped_ioctl_token);
+ lwkt_gettoken(&mioctl_token);
LIST_INSERT_HEAD(&he->map->mapping, ne, entries);
- lwkt_reltoken(&mapped_ioctl_token);
+ lwkt_reltoken(&mioctl_token);
return(0);
}
KKASSERT(he != NULL && he->map != NULL && he->cmd_ranges != NULL);
- lwkt_gettoken(&mapped_ioctl_token);
+ lwkt_gettoken(&mioctl_token);
LIST_FOREACH(ne, &he->map->mapping, entries) {
if (ne->cmd_ranges == he->cmd_ranges) {
LIST_REMOVE(ne, entries);
break;
}
}
- lwkt_reltoken(&mapped_ioctl_token);
+ lwkt_reltoken(&mioctl_token);
return(error);
}
#define BZ_UNLOCK(bz) crit_exit()
#endif
-static struct lwkt_token bounce_zone_tok = LWKT_TOKEN_MP_INITIALIZER;
+static struct lwkt_token bounce_zone_tok =
+ LWKT_TOKEN_MP_INITIALIZER(bounce_zone_tok);
static int busdma_zonecount;
static STAILQ_HEAD(, bounce_zone) bounce_zone_list =
STAILQ_HEAD_INITIALIZER(bounce_zone_list);
#define BZ_UNLOCK(bz) crit_exit()
#endif
-static struct lwkt_token bounce_zone_tok = LWKT_TOKEN_MP_INITIALIZER;
+static struct lwkt_token bounce_zone_tok =
+ LWKT_TOKEN_MP_INITIALIZER(bounce_zone_token);
static int busdma_zonecount;
static STAILQ_HEAD(, bounce_zone) bounce_zone_list =
STAILQ_HEAD_INITIALIZER(bounce_zone_list);
#define BZ_UNLOCK(bz) crit_exit()
#endif
-static struct lwkt_token bounce_zone_tok = LWKT_TOKEN_MP_INITIALIZER;
+static struct lwkt_token bounce_zone_tok =
+ LWKT_TOKEN_MP_INITIALIZER(bounce_zone_token);
static int busdma_zonecount;
static STAILQ_HEAD(, bounce_zone) bounce_zone_list =
STAILQ_HEAD_INITIALIZER(bounce_zone_list);
#define BZ_UNLOCK(bz) crit_exit()
#endif
-static struct lwkt_token bounce_zone_tok = LWKT_TOKEN_MP_INITIALIZER;
+static struct lwkt_token bounce_zone_tok =
+ LWKT_TOKEN_MP_INITIALIZER(bounce_zone_token);
static int busdma_zonecount;
static STAILQ_HEAD(, bounce_zone) bounce_zone_list =
STAILQ_HEAD_INITIALIZER(bounce_zone_list);
* UP - Not MPSAFE (full MP lock will also be acquired)
* MP - Is MPSAFE (only the token will be acquired)
*/
-#define LWKT_TOKEN_UP_INITIALIZER \
+#define LWKT_TOKEN_UP_INITIALIZER(name) \
{ \
.t_ref = NULL, \
.t_flags = 0, \
- .t_collisions = 0 \
+ .t_collisions = 0, \
+ .t_desc = #name \
}
-#define LWKT_TOKEN_MP_INITIALIZER \
+#define LWKT_TOKEN_MP_INITIALIZER(name) \
{ \
.t_ref = NULL, \
.t_flags = LWKT_TOKEN_MPSAFE, \
- .t_collisions = 0 \
+ .t_collisions = 0, \
+ .t_desc = #name \
}
#define ASSERT_LWKT_TOKEN_HELD(tok) \