12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /*
- * TimeSync API driver.
- *
- * Copyright 2016 Google Inc.
- * Copyright 2016 Linaro Ltd.
- *
- * Released under the GPLv2 only.
- */
- #ifndef __TIMESYNC_H
- #define __TIMESYNC_H
- struct gb_svc;
- struct gb_interface;
- struct gb_timesync_svc;
- /* Platform */
- u64 gb_timesync_platform_get_counter(void);
- u32 gb_timesync_platform_get_clock_rate(void);
- int gb_timesync_platform_lock_bus(struct gb_timesync_svc *pdata);
- void gb_timesync_platform_unlock_bus(void);
- int gb_timesync_platform_init(void);
- void gb_timesync_platform_exit(void);
- /* Core API */
- int gb_timesync_interface_add(struct gb_interface *interface);
- void gb_timesync_interface_remove(struct gb_interface *interface);
- int gb_timesync_svc_add(struct gb_svc *svc);
- void gb_timesync_svc_remove(struct gb_svc *svc);
- u64 gb_timesync_get_frame_time_by_interface(struct gb_interface *interface);
- u64 gb_timesync_get_frame_time_by_svc(struct gb_svc *svc);
- int gb_timesync_to_timespec_by_svc(struct gb_svc *svc, u64 frame_time,
- struct timespec *ts);
- int gb_timesync_to_timespec_by_interface(struct gb_interface *interface,
- u64 frame_time, struct timespec *ts);
- int gb_timesync_schedule_synchronous(struct gb_interface *intf);
- void gb_timesync_schedule_asynchronous(struct gb_interface *intf);
- void gb_timesync_irq(struct gb_timesync_svc *timesync_svc);
- int gb_timesync_init(void);
- void gb_timesync_exit(void);
- #endif /* __TIMESYNC_H */
|