18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Timer handling
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#ifndef __CTTIMER_H
78c2ecf20Sopenharmony_ci#define __CTTIMER_H
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <linux/spinlock.h>
108c2ecf20Sopenharmony_ci#include <linux/timer.h>
118c2ecf20Sopenharmony_ci#include <linux/list.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cistruct snd_pcm_substream;
148c2ecf20Sopenharmony_cistruct ct_atc;
158c2ecf20Sopenharmony_cistruct ct_atc_pcm;
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_cistruct ct_timer;
188c2ecf20Sopenharmony_cistruct ct_timer_instance;
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistruct ct_timer *ct_timer_new(struct ct_atc *atc);
218c2ecf20Sopenharmony_civoid ct_timer_free(struct ct_timer *atimer);
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_cistruct ct_timer_instance *
248c2ecf20Sopenharmony_cict_timer_instance_new(struct ct_timer *atimer, struct ct_atc_pcm *apcm);
258c2ecf20Sopenharmony_civoid ct_timer_instance_free(struct ct_timer_instance *ti);
268c2ecf20Sopenharmony_civoid ct_timer_start(struct ct_timer_instance *ti);
278c2ecf20Sopenharmony_civoid ct_timer_stop(struct ct_timer_instance *ti);
288c2ecf20Sopenharmony_civoid ct_timer_prepare(struct ct_timer_instance *ti);
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#endif /* __CTTIMER_H */
31