123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #ifndef ZEPHYR_INCLUDE_DRIVERS_PTP_CLOCK_H_
- #define ZEPHYR_INCLUDE_DRIVERS_PTP_CLOCK_H_
- #include <kernel.h>
- #include <stdint.h>
- #include <device.h>
- #include <sys/util.h>
- #include <net/ptp_time.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if !defined(PTP_CLOCK_NAME)
- #define PTP_CLOCK_NAME "PTP_CLOCK"
- #endif
- __subsystem struct ptp_clock_driver_api {
- int (*set)(const struct device *dev, struct net_ptp_time *tm);
- int (*get)(const struct device *dev, struct net_ptp_time *tm);
- int (*adjust)(const struct device *dev, int increment);
- int (*rate_adjust)(const struct device *dev, float ratio);
- };
- static inline int ptp_clock_set(const struct device *dev,
- struct net_ptp_time *tm)
- {
- const struct ptp_clock_driver_api *api =
- (const struct ptp_clock_driver_api *)dev->api;
- return api->set(dev, tm);
- }
- __syscall int ptp_clock_get(const struct device *dev, struct net_ptp_time *tm);
- static inline int z_impl_ptp_clock_get(const struct device *dev,
- struct net_ptp_time *tm)
- {
- const struct ptp_clock_driver_api *api =
- (const struct ptp_clock_driver_api *)dev->api;
- return api->get(dev, tm);
- }
- static inline int ptp_clock_adjust(const struct device *dev, int increment)
- {
- const struct ptp_clock_driver_api *api =
- (const struct ptp_clock_driver_api *)dev->api;
- return api->adjust(dev, increment);
- }
- static inline int ptp_clock_rate_adjust(const struct device *dev, float rate)
- {
- const struct ptp_clock_driver_api *api =
- (const struct ptp_clock_driver_api *)dev->api;
- return api->rate_adjust(dev, rate);
- }
- #ifdef __cplusplus
- }
- #endif
- #include <syscalls/ptp_clock.h>
- #endif
|