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;
 }

Reply via email to