Module Name: src
Committed By: ozaki-r
Date: Wed Jul 6 05:20:48 UTC 2016
Modified Files:
src/sys/kern: subr_hash.c
src/sys/sys: systm.h
Log Message:
Add HASH_PSLIST (pslist(9)) type for hashinit()
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/kern/subr_hash.c
cvs rdiff -u -r1.270 -r1.271 src/sys/sys/systm.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/subr_hash.c
diff -u src/sys/kern/subr_hash.c:1.6 src/sys/kern/subr_hash.c:1.7
--- src/sys/kern/subr_hash.c:1.6 Thu May 29 21:15:55 2014
+++ src/sys/kern/subr_hash.c Wed Jul 6 05:20:48 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_hash.c,v 1.6 2014/05/29 21:15:55 rmind Exp $ */
+/* $NetBSD: subr_hash.c,v 1.7 2016/07/06 05:20:48 ozaki-r Exp $ */
/*
* Copyright (c) 1982, 1986, 1991, 1993
@@ -37,12 +37,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_hash.c,v 1.6 2014/05/29 21:15:55 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_hash.c,v 1.7 2016/07/06 05:20:48 ozaki-r Exp $");
#include <sys/param.h>
#include <sys/bitops.h>
#include <sys/kmem.h>
#include <sys/systm.h>
+#include <sys/pslist.h>
static size_t
hash_list_size(enum hashtype htype)
@@ -50,12 +51,16 @@ hash_list_size(enum hashtype htype)
LIST_HEAD(, generic) *hashtbl_list;
SLIST_HEAD(, generic) *hashtbl_slist;
TAILQ_HEAD(, generic) *hashtbl_tailq;
+ struct pslist_head *hashtbl_pslist;
size_t esize;
switch (htype) {
case HASH_LIST:
esize = sizeof(*hashtbl_list);
break;
+ case HASH_PSLIST:
+ esize = sizeof(*hashtbl_pslist);
+ break;
case HASH_SLIST:
esize = sizeof(*hashtbl_slist);
break;
@@ -80,6 +85,7 @@ hashinit(u_int elements, enum hashtype h
LIST_HEAD(, generic) *hashtbl_list;
SLIST_HEAD(, generic) *hashtbl_slist;
TAILQ_HEAD(, generic) *hashtbl_tailq;
+ struct pslist_head *hashtbl_pslist;
u_long hashsize, i;
size_t esize;
void *p;
@@ -103,6 +109,11 @@ hashinit(u_int elements, enum hashtype h
for (i = 0; i < hashsize; i++)
LIST_INIT(&hashtbl_list[i]);
break;
+ case HASH_PSLIST:
+ hashtbl_pslist = p;
+ for (i = 0; i < hashsize; i++)
+ PSLIST_INIT(&hashtbl_pslist[i]);
+ break;
case HASH_SLIST:
hashtbl_slist = p;
for (i = 0; i < hashsize; i++)
Index: src/sys/sys/systm.h
diff -u src/sys/sys/systm.h:1.270 src/sys/sys/systm.h:1.271
--- src/sys/sys/systm.h:1.270 Sat Jan 23 20:44:06 2016
+++ src/sys/sys/systm.h Wed Jul 6 05:20:48 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: systm.h,v 1.270 2016/01/23 20:44:06 christos Exp $ */
+/* $NetBSD: systm.h,v 1.271 2016/07/06 05:20:48 ozaki-r Exp $ */
/*-
* Copyright (c) 1982, 1988, 1991, 1993
@@ -177,7 +177,8 @@ int eopnotsupp(void);
enum hashtype {
HASH_LIST,
HASH_SLIST,
- HASH_TAILQ
+ HASH_TAILQ,
+ HASH_PSLIST
};
#ifdef _KERNEL