Date: Sun, 22 May 2016 07:25:56 +0000 (UTC) From: Garrett Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r300402 - projects/vmware_pvscsi/sys/dev/vmware/vmw_pvscsi Message-ID: <201605220725.u4M7PuQ8077772@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605220725.u4M7PuQ8077772>