You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2022/11/01 03:54:50 UTC
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7494: arch_timer: adjust timer/arch_timer to support tick
xiaoxiang781216 commented on code in PR #7494:
URL: https://github.com/apache/incubator-nuttx/pull/7494#discussion_r1010048575
##########
include/nuttx/timers/timer.h:
##########
@@ -200,6 +247,98 @@ extern "C"
#define EXTERN extern
#endif
+static inline
+int timer_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s tick_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_getstatus);
+
+ ret = lower->ops->tick_getstatus(lower, &tick_status);
Review Comment:
let's use status directly
##########
include/nuttx/timers/timer.h:
##########
@@ -200,6 +247,98 @@ extern "C"
#define EXTERN extern
#endif
+static inline
+int timer_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s tick_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_getstatus);
+
+ ret = lower->ops->tick_getstatus(lower, &tick_status);
+ if (ret >= 0)
+ {
+ status->flags = tick_status.flags;
+ status->timeout = TICK2USEC(tick_status.timeout);
+ status->timeleft = TICK2USEC(tick_status.timeleft);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_settimeout(FAR struct timer_lowerhalf_s *lower,
+ uint32_t timeout)
+{
+ DEBUGASSERT(lower->ops->tick_setttimeout);
+ return lower->ops->tick_setttimeout(lower, USEC2TICK(timeout));
+}
+
+static inline
+int timer_maxtimeout(FAR struct timer_lowerhalf_s *lower,
+ FAR uint32_t *maxtimeout)
+{
+ uint32_t maxtimeout_tick;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_maxtimeout);
+
+ ret = lower->ops->tick_maxtimeout(lower, &maxtimeout_tick);
+ if (ret >= 0)
+ {
+ *maxtimeout = TICK2USEC(maxtimeout_tick);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_tick_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s us_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->getstatus);
+
+ ret = lower->ops->getstatus(lower, &us_status);
+ if (ret >= 0)
+ {
+ status->flags = us_status.flags;
+ status->timeout = USEC2TICK(us_status.timeout);
+ status->timeleft = USEC2TICK(us_status.timeleft);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_tick_settimeout(FAR struct timer_lowerhalf_s *lower,
+ uint32_t timeout)
+{
+ DEBUGASSERT(lower->ops->settimeout);
+ return lower->ops->settimeout(lower, TICK2USEC(timeout));
+}
+
+static inline
+int timer_tick_maxtimeout(FAR struct timer_lowerhalf_s *lower,
+ FAR uint32_t *maxtimeout)
+{
+ uint32_t maxtimeout_us;
+ int ret;
+
+ DEBUGASSERT(lower->ops->maxtimeout);
+
+ ret = lower->ops->maxtimeout(lower, &maxtimeout_us);
Review Comment:
let's use maxtimeout directly
##########
include/nuttx/timers/timer.h:
##########
@@ -200,6 +247,98 @@ extern "C"
#define EXTERN extern
#endif
+static inline
+int timer_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s tick_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_getstatus);
+
+ ret = lower->ops->tick_getstatus(lower, &tick_status);
+ if (ret >= 0)
+ {
+ status->flags = tick_status.flags;
+ status->timeout = TICK2USEC(tick_status.timeout);
+ status->timeleft = TICK2USEC(tick_status.timeleft);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_settimeout(FAR struct timer_lowerhalf_s *lower,
+ uint32_t timeout)
+{
+ DEBUGASSERT(lower->ops->tick_setttimeout);
+ return lower->ops->tick_setttimeout(lower, USEC2TICK(timeout));
+}
+
+static inline
+int timer_maxtimeout(FAR struct timer_lowerhalf_s *lower,
+ FAR uint32_t *maxtimeout)
+{
+ uint32_t maxtimeout_tick;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_maxtimeout);
+
+ ret = lower->ops->tick_maxtimeout(lower, &maxtimeout_tick);
+ if (ret >= 0)
+ {
+ *maxtimeout = TICK2USEC(maxtimeout_tick);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_tick_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s us_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->getstatus);
+
+ ret = lower->ops->getstatus(lower, &us_status);
Review Comment:
let's use status directly
##########
include/nuttx/timers/timer.h:
##########
@@ -200,6 +247,98 @@ extern "C"
#define EXTERN extern
#endif
+static inline
+int timer_getstatus(FAR struct timer_lowerhalf_s *lower,
+ FAR struct timer_status_s *status)
+{
+ struct timer_status_s tick_status;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_getstatus);
+
+ ret = lower->ops->tick_getstatus(lower, &tick_status);
+ if (ret >= 0)
+ {
+ status->flags = tick_status.flags;
+ status->timeout = TICK2USEC(tick_status.timeout);
+ status->timeleft = TICK2USEC(tick_status.timeleft);
+ }
+
+ return ret;
+}
+
+static inline
+int timer_settimeout(FAR struct timer_lowerhalf_s *lower,
+ uint32_t timeout)
+{
+ DEBUGASSERT(lower->ops->tick_setttimeout);
+ return lower->ops->tick_setttimeout(lower, USEC2TICK(timeout));
+}
+
+static inline
+int timer_maxtimeout(FAR struct timer_lowerhalf_s *lower,
+ FAR uint32_t *maxtimeout)
+{
+ uint32_t maxtimeout_tick;
+ int ret;
+
+ DEBUGASSERT(lower->ops->tick_maxtimeout);
+
+ ret = lower->ops->tick_maxtimeout(lower, &maxtimeout_tick);
Review Comment:
let's use maxtimeout directly
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org