diff options
author | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:03:14 +0200 |
---|---|---|
committer | whitespace / reindent <invalid@invalid.invalid> | 2017-07-17 14:04:07 +0200 |
commit | d62a17aedeb0eebdba98238874bb13d62c48dbf9 (patch) | |
tree | 3b319b1d61c8b85b4d1f06adf8b844bb8a9b5107 /lib/workqueue.h | |
parent | *: add indent control files (diff) | |
download | frr-d62a17aedeb0eebdba98238874bb13d62c48dbf9.tar.xz frr-d62a17aedeb0eebdba98238874bb13d62c48dbf9.zip |
*: reindentreindent-master-after
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'lib/workqueue.h')
-rw-r--r-- | lib/workqueue.h | 153 |
1 files changed, 76 insertions, 77 deletions
diff --git a/lib/workqueue.h b/lib/workqueue.h index 45f02afc6..ff7f57690 100644 --- a/lib/workqueue.h +++ b/lib/workqueue.h @@ -1,4 +1,4 @@ -/* +/* * Quagga Work Queues. * * Copyright (C) 2005 Sun Microsystems, Inc. @@ -30,105 +30,104 @@ DECLARE_MTYPE(WORK_QUEUE) #define WORK_QUEUE_DEFAULT_HOLD 50 /* action value, for use by item processor and item error handlers */ -typedef enum -{ - WQ_SUCCESS = 0, - WQ_ERROR, /* Error, run error handler if provided */ - WQ_RETRY_NOW, /* retry immediately */ - WQ_RETRY_LATER, /* retry later, cease processing work queue */ - WQ_REQUEUE, /* requeue item, continue processing work queue */ - WQ_QUEUE_BLOCKED, /* Queue cant be processed at this time. - * Similar to WQ_RETRY_LATER, but doesn't penalise - * the particular item.. */ +typedef enum { + WQ_SUCCESS = 0, + WQ_ERROR, /* Error, run error handler if provided */ + WQ_RETRY_NOW, /* retry immediately */ + WQ_RETRY_LATER, /* retry later, cease processing work queue */ + WQ_REQUEUE, /* requeue item, continue processing work queue */ + WQ_QUEUE_BLOCKED, /* Queue cant be processed at this time. + * Similar to WQ_RETRY_LATER, but doesn't penalise + * the particular item.. */ } wq_item_status; /* A single work queue item, unsurprisingly */ -struct work_queue_item -{ - void *data; /* opaque data */ - unsigned short ran; /* # of times item has been run */ +struct work_queue_item { + void *data; /* opaque data */ + unsigned short ran; /* # of times item has been run */ }; #define WQ_UNPLUGGED (1 << 0) /* available for draining */ -struct work_queue -{ - /* Everything but the specification struct is private - * the following may be read - */ - struct thread_master *master; /* thread master */ - struct thread *thread; /* thread, if one is active */ - char *name; /* work queue name */ - - /* Specification for this work queue. - * Public, must be set before use by caller. May be modified at will. - */ - struct { - /* optional opaque user data, global to the queue. */ - void *data; - - /* work function to process items with: - * First argument is the workqueue queue. - * Second argument is the item data - */ - wq_item_status (*workfunc) (struct work_queue *, void *); - - /* error handling function, optional */ - void (*errorfunc) (struct work_queue *, struct work_queue_item *); - - /* callback to delete user specific item data */ - void (*del_item_data) (struct work_queue *, void *); - - /* completion callback, called when queue is emptied, optional */ - void (*completion_func) (struct work_queue *); - - /* max number of retries to make for item that errors */ - unsigned int max_retries; - - unsigned int hold; /* hold time for first run, in ms */ - - unsigned long yield; /* yield time in us for associated thread */ - } spec; - - /* remaining fields should be opaque to users */ - struct list *items; /* queue item list */ - unsigned long runs; /* runs count */ - unsigned long yields; /* yields count */ - - struct { - unsigned int best; - unsigned int granularity; - unsigned long total; - } cycles; /* cycle counts */ - - /* private state */ - u_int16_t flags; /* user set flag */ +struct work_queue { + /* Everything but the specification struct is private + * the following may be read + */ + struct thread_master *master; /* thread master */ + struct thread *thread; /* thread, if one is active */ + char *name; /* work queue name */ + + /* Specification for this work queue. + * Public, must be set before use by caller. May be modified at will. + */ + struct { + /* optional opaque user data, global to the queue. */ + void *data; + + /* work function to process items with: + * First argument is the workqueue queue. + * Second argument is the item data + */ + wq_item_status (*workfunc)(struct work_queue *, void *); + + /* error handling function, optional */ + void (*errorfunc)(struct work_queue *, + struct work_queue_item *); + + /* callback to delete user specific item data */ + void (*del_item_data)(struct work_queue *, void *); + + /* completion callback, called when queue is emptied, optional + */ + void (*completion_func)(struct work_queue *); + + /* max number of retries to make for item that errors */ + unsigned int max_retries; + + unsigned int hold; /* hold time for first run, in ms */ + + unsigned long + yield; /* yield time in us for associated thread */ + } spec; + + /* remaining fields should be opaque to users */ + struct list *items; /* queue item list */ + unsigned long runs; /* runs count */ + unsigned long yields; /* yields count */ + + struct { + unsigned int best; + unsigned int granularity; + unsigned long total; + } cycles; /* cycle counts */ + + /* private state */ + u_int16_t flags; /* user set flag */ }; /* User API */ -/* create a new work queue, of given name. +/* create a new work queue, of given name. * user must fill in the spec of the returned work queue before adding * anything to it */ -extern struct work_queue *work_queue_new (struct thread_master *, - const char *); +extern struct work_queue *work_queue_new(struct thread_master *, const char *); /* destroy work queue */ -extern void work_queue_free (struct work_queue *); +extern void work_queue_free(struct work_queue *); /* Add the supplied data as an item onto the workqueue */ -extern void work_queue_add (struct work_queue *, void *); +extern void work_queue_add(struct work_queue *, void *); /* plug the queue, ie prevent it from being drained / processed */ -extern void work_queue_plug (struct work_queue *wq); +extern void work_queue_plug(struct work_queue *wq); /* unplug the queue, allow it to be drained again */ -extern void work_queue_unplug (struct work_queue *wq); +extern void work_queue_unplug(struct work_queue *wq); -bool work_queue_is_scheduled (struct work_queue *); +bool work_queue_is_scheduled(struct work_queue *); /* Helpers, exported for thread.c and command.c */ -extern int work_queue_run (struct thread *); +extern int work_queue_run(struct thread *); -extern void workqueue_cmd_init (void); +extern void workqueue_cmd_init(void); #endif /* _QUAGGA_WORK_QUEUE_H */ |