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