Training courses
Kernel and Embedded Linux
Bootlin training courses
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
/* * 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 */