svn commit: r300402 - projects/vmware_pvscsi/sys/dev/vmware/vmw_pvscsi

Garrett Cooper ngie at FreeBSD.org
Sun May 22 07:25:57 UTC 2016


Author: ngie
Date: Sun May 22 07:25:56 2016
New Revision: 300402
URL: https://svnweb.freebsd.org/changeset/base/300402

Log:
  Check in short-term shims for dealing with lists
  
  This will be converted to queue(3) soon instead of handrolling queue(3)

Added:
  projects/vmware_pvscsi/sys/dev/vmware/vmw_pvscsi/fbsd_list.h   (contents, props changed)

Added: projects/vmware_pvscsi/sys/dev/vmware/vmw_pvscsi/fbsd_list.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/vmware_pvscsi/sys/dev/vmware/vmw_pvscsi/fbsd_list.h	Sun May 22 07:25:56 2016	(r300402)
@@ -0,0 +1,28 @@
+/* XXX: use queue(3) instead */
+
+#ifndef _FBSD_LIST_H_
+#define _FBSD_LIST_H_
+
+#define	container_of	__containerof
+
+struct list_head {
+	struct list_head *next,*last;
+};
+#define INIT_LIST_HEAD(a) {(a)->next=(a)->last=(a);}
+#define list_entry(p,t,m) container_of(p, t, m)
+
+#define list_empty(a) ((a)->next==(a))
+
+#define list_del(a)\
+        {(a)->last->next=(a)->next;\
+         (a)->next->last=(a)->last;}
+
+#define list_del_rcu(a)\
+        {atomic_store_rel_ptr(&(a)->last->next, (a)->next);\
+         (a)->next->last=(a)->last;}
+
+#define list_add(a,b)\
+        {(a)->last=(b);       (a)->next=(b)->next ;\
+         (a)->next->last=(a); (b)->next=(a);}
+
+#endif /* !_FBSD_LIST_H_ */


More information about the svn-src-projects mailing list