diff options
author | Jinkun Jang <jinkun.jang@samsung.com> | 2013-03-16 21:49:29 +0900 |
---|---|---|
committer | Jinkun Jang <jinkun.jang@samsung.com> | 2013-03-16 21:49:29 +0900 |
commit | 0bf0531e4b5d4bf54fd55ddd66253ad38bb4e2e6 (patch) | |
tree | 0dcc5c6c178ff3b3c02e8231d7c8806f45ed0fa5 /include/dlist.h | |
parent | 4eb1b081a9026727985969308acbbc8938b817c6 (diff) | |
download | livebox-viewer-0bf0531e4b5d4bf54fd55ddd66253ad38bb4e2e6.tar.gz livebox-viewer-0bf0531e4b5d4bf54fd55ddd66253ad38bb4e2e6.tar.bz2 livebox-viewer-0bf0531e4b5d4bf54fd55ddd66253ad38bb4e2e6.zip |
sync wit master
Diffstat (limited to 'include/dlist.h')
-rw-r--r-- | include/dlist.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/dlist.h b/include/dlist.h new file mode 100644 index 0000000..b4a5719 --- /dev/null +++ b/include/dlist.h @@ -0,0 +1,43 @@ +/* + * Copyright 2012 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.tizenopensource.org/license + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define dlist_remove_data(list, data) do { \ + struct dlist *l; \ + l = dlist_find_data(list, data); \ + list = dlist_remove(list, l); \ +} while (0) + +#define dlist_foreach(list, l, data) \ + for ((l) = (list); (l) && ((data) = dlist_data(l)); (l) = dlist_next(l)) + +#define dlist_foreach_safe(list, l, n, data) \ + for ((l) = (list), (n) = dlist_next(l); \ + (l) && ((data) = dlist_data(l)); \ + (l) = (n), (n) = dlist_next(l)) + +struct dlist; + +extern struct dlist *dlist_append(struct dlist *list, void *data); +extern struct dlist *dlist_prepend(struct dlist *list, void *data); +extern struct dlist *dlist_remove(struct dlist *list, struct dlist *l); +extern struct dlist *dlist_find_data(struct dlist *list, void *data); +extern void *dlist_data(struct dlist *l); +extern struct dlist *dlist_next(struct dlist *l); +extern struct dlist *dlist_prev(struct dlist *l); +extern int dlist_count(struct dlist *l); +extern struct dlist *dlist_nth(struct dlist *l, int nth); + +/* End of a file */ |