blob: 0b3335a4b2064ab8e1738f74f5f0962508228ee9 [file] [log] [blame]
Ken Cox9d9baad2014-03-04 07:58:05 -06001/* periodic_work.h
2 *
Benjamin Romerf6d0c1e2014-04-23 14:58:34 -04003 * Copyright (C) 2010 - 2013 UNISYS CORPORATION
Ken Cox9d9baad2014-03-04 07:58:05 -06004 * All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or (at
9 * your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
14 * NON INFRINGEMENT. See the GNU General Public License for more
15 * details.
16 */
17
18#ifndef __PERIODIC_WORK_H__
19#define __PERIODIC_WORK_H__
20
Erik Arfvidsonc0a14642015-05-05 18:37:06 -040021#include <linux/seq_file.h>
22#include <linux/slab.h>
Ken Cox9d9baad2014-03-04 07:58:05 -060023
Ken Cox9d9baad2014-03-04 07:58:05 -060024/* PERIODIC_WORK an opaque structure to users.
25 * Fields are declared only in the implementation .c files.
26 */
Benjamin Romer2c5653b2014-09-30 12:07:46 -040027struct periodic_work;
Ken Cox9d9baad2014-03-04 07:58:05 -060028
David Kershner0435d142015-10-12 15:19:43 -040029struct periodic_work *
30visor_periodic_work_create(ulong jiffy_interval,
31 struct workqueue_struct *workqueue,
32 void (*workfunc)(void *),
33 void *workfuncarg,
34 const char *devnam);
Benjamin Romer2c5653b2014-09-30 12:07:46 -040035void visor_periodic_work_destroy(struct periodic_work *pw);
Prarit Bhargava779d0752015-05-05 18:37:01 -040036bool visor_periodic_work_nextperiod(struct periodic_work *pw);
37bool visor_periodic_work_start(struct periodic_work *pw);
38bool visor_periodic_work_stop(struct periodic_work *pw);
Ken Cox9d9baad2014-03-04 07:58:05 -060039
40#endif