Module Name: src
Committed By: riastradh
Date: Sun Dec 19 12:21:56 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/include/linux: kfifo.h
Log Message:
linux: INIT_KFIFO
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/include/linux/kfifo.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/external/bsd/drm2/include/linux/kfifo.h
diff -u src/sys/external/bsd/drm2/include/linux/kfifo.h:1.4 src/sys/external/bsd/drm2/include/linux/kfifo.h:1.5
--- src/sys/external/bsd/drm2/include/linux/kfifo.h:1.4 Sun Dec 19 10:57:34 2021
+++ src/sys/external/bsd/drm2/include/linux/kfifo.h Sun Dec 19 12:21:56 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: kfifo.h,v 1.4 2021/12/19 10:57:34 riastradh Exp $ */
+/* $NetBSD: kfifo.h,v 1.5 2021/12/19 12:21:56 riastradh Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -61,6 +61,21 @@ struct kfifo_meta {
#define DECLARE_KFIFO_PTR(FIFO, TYPE) _KFIFO_PTR_TYPE(, TYPE) FIFO
#define DECLARE_KFIFO(FIFO, TYPE, N) _KFIFO_TYPE(, TYPE, N) FIFO
+#define INIT_KFIFO(FIFO) do \
+{ \
+ _init_kfifo(&(FIFO).kf_meta, sizeof((FIFO).kf_buf)); \
+} while (0)
+
+static inline void
+_init_kfifo(struct kfifo_meta *meta, size_t nbytes)
+{
+
+ mutex_init(&meta->kfm_lock, MUTEX_DEFAULT, IPL_VM);
+ meta->kfm_head = 0;
+ meta->kfm_tail = 0;
+ meta->kfm_nbytes = nbytes;
+}
+
_KFIFO_PTR_TYPE(kfifo, void);
#define kfifo_alloc(FIFO, SIZE, GFP) \
@@ -78,10 +93,7 @@ _kfifo_alloc(struct kfifo_meta *meta, vo
/* Type pun! Hope void * == struct whatever *. */
memcpy(bufp, &buf, sizeof(void *));
- mutex_init(&meta->kfm_lock, MUTEX_DEFAULT, IPL_VM);
- meta->kfm_head = 0;
- meta->kfm_tail = 0;
- meta->kfm_nbytes = nbytes;
+ _init_kfifo(meta, nbytes);
return 0;
}