From: Lucas De Marchi Date: Thu, 26 Apr 2012 16:36:02 +0000 (-0300) Subject: udev: use container_of() macro X-Git-Tag: v183~185 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b27ee00bf5e377a4b59b454c68c8617ea9666bc8;p=platform%2Fupstream%2Fsystemd.git udev: use container_of() macro --- diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c index 1fe46f3..aec334b 100644 --- a/src/libudev/libudev-list.c +++ b/src/libudev/libudev-list.c @@ -80,13 +80,9 @@ void udev_list_node_remove(struct udev_list_node *entry) } /* return list entry which embeds this node */ -static struct udev_list_entry *list_node_to_entry(struct udev_list_node *node) +static inline struct udev_list_entry *list_node_to_entry(struct udev_list_node *node) { - char *list; - - list = (char *)node; - list -= offsetof(struct udev_list_entry, node); - return (struct udev_list_entry *)list; + return container_of(node, struct udev_list_entry, node); } void udev_list_init(struct udev *udev, struct udev_list *list, bool unique) diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c index 882564a..7775429 100644 --- a/src/udev/collect/collect.c +++ b/src/udev/collect/collect.c @@ -55,13 +55,9 @@ static int debug; /* This can increase dynamically */ static size_t bufsize = BUFSIZE; -static struct _mate *node_to_mate(struct udev_list_node *node) +static inline struct _mate *node_to_mate(struct udev_list_node *node) { - char *mate; - - mate = (char *)node; - mate -= offsetof(struct _mate, node); - return (struct _mate *)mate; + return container_of(node, struct _mate, node); } static void sig_alrm(int signo) diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 59e2cfa..0d85960 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -99,13 +99,9 @@ struct event { int ifindex; }; -static struct event *node_to_event(struct udev_list_node *node) +static inline struct event *node_to_event(struct udev_list_node *node) { - char *event; - - event = (char *)node; - event -= offsetof(struct event, node); - return (struct event *)event; + return container_of(node, struct event, node); } static void event_queue_cleanup(struct udev *udev, enum event_state type); @@ -134,13 +130,9 @@ struct worker_message { int exitcode; }; -static struct worker *node_to_worker(struct udev_list_node *node) +static inline struct worker *node_to_worker(struct udev_list_node *node) { - char *worker; - - worker = (char *)node; - worker -= offsetof(struct worker, node); - return (struct worker *)worker; + return container_of(node, struct worker, node); } static void event_queue_delete(struct event *event, bool export)