From: Graeme Russ <graeme.russ@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 (WIP) 08/16] [Timer]Create new userland timer API
Date: Tue, 28 Jun 2011 21:41:01 +1000 [thread overview]
Message-ID: <1309261269-4363-9-git-send-email-graeme.russ@gmail.com> (raw)
In-Reply-To: <1309261269-4363-1-git-send-email-graeme.russ@gmail.com>
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
---
include/common.h | 36 ++++++++++++++++++++----------------
lib/time.c | 26 ++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 16 deletions(-)
diff --git a/include/common.h b/include/common.h
index 340e585..9735d47 100644
--- a/include/common.h
+++ b/include/common.h
@@ -584,11 +584,29 @@ void timer_interrupt (struct pt_regs *);
void external_interrupt (struct pt_regs *);
void irq_install_handler(int, interrupt_handler_t *, void *);
void irq_free_handler (int);
-void reset_timer (void);
-ulong get_timer (ulong base);
void enable_interrupts (void);
int disable_interrupts (void);
+/*
+ * Timer API
+ */
+void reset_timer (void);
+ulong get_timer (ulong base);
+u64 get_ticks(void);
+void wait_ticks(unsigned long);
+void __udelay(unsigned long);
+ulong usec2ticks(unsigned long usec);
+ulong ticks2usec(unsigned long ticks);
+int init_timebase(void);
+
+/* lib/time.c */
+void udelay(unsigned long);
+
+u32 time_now_ms(void);
+u32 time_since_ms(u32 from, u32 to);
+u32 time_max_since_ms(u32 from, u32 to);
+u32 time_resolution_ms(void);
+
/* $(CPU)/.../commproc.c */
int dpram_init (void);
uint dpram_base(void);
@@ -616,17 +634,6 @@ void flush_cache (unsigned long, unsigned long);
void flush_dcache_range(unsigned long start, unsigned long stop);
void invalidate_dcache_range(unsigned long start, unsigned long stop);
-
-/* arch/$(ARCH)/lib/ticks.S */
-unsigned long long get_ticks(void);
-void wait_ticks (unsigned long);
-
-/* arch/$(ARCH)/lib/time.c */
-void __udelay (unsigned long);
-ulong usec2ticks (unsigned long usec);
-ulong ticks2usec (unsigned long ticks);
-int init_timebase (void);
-
/* lib/gunzip.c */
int gunzip(void *, int, unsigned char *, unsigned long *);
int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
@@ -644,9 +651,6 @@ void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
int strcmp_compar(const void *, const void *);
-/* lib/time.c */
-void udelay (unsigned long);
-
/* lib/vsprintf.c */
ulong simple_strtoul(const char *cp,char **endp,unsigned int base);
int strict_strtoul(const char *cp, unsigned int base, unsigned long *res);
diff --git a/lib/time.c b/lib/time.c
index a309c26..1563507 100644
--- a/lib/time.c
+++ b/lib/time.c
@@ -41,3 +41,29 @@ void udelay(unsigned long usec)
usec -= kv;
} while(usec);
}
+
+u32 time_since_ms(u32 from)
+{
+ u32 delta = time_now_ms() - from;
+
+ /* round down */
+ if (delta < time_ms_resolution())
+ return 0;
+
+ return delta - time_resolution_ms();
+}
+
+u32 time_max_since_ms(u32 from)
+{
+ u32 delta = time_now_ms() - from;
+
+ return delta + time_resolution_ms();
+}
+
+__attribute__((weak))
+u32 time_resolution_ms(void) {return 1;}
+
+u32 time_now_ms(void)
+{
+ return get_timer(0);
+}
--
1.7.5.2.317.g391b14
next prev parent reply other threads:[~2011-06-28 11:41 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 11:40 [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 01/16] [Timer]Fix misuse of ARM *timer_masked() functions outside arch/arm Graeme Russ
2011-06-28 12:35 ` Andreas Bießmann
2011-07-11 21:57 ` Wolfgang Denk
2011-07-14 17:01 ` Albert ARIBAUD
2011-07-14 19:50 ` Wolfgang Denk
2011-07-14 23:24 ` Graeme Russ
2011-07-15 6:31 ` Wolfgang Denk
2011-07-15 7:00 ` Graeme Russ
2011-07-15 12:16 ` [U-Boot] [PATCH v2 1/7]Timer: Fix " Graeme Russ
2011-07-16 8:40 ` Albert ARIBAUD
2011-07-16 8:59 ` Graeme Russ
2011-07-16 9:12 ` Albert ARIBAUD
2011-07-16 9:31 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-16 9:58 ` Albert ARIBAUD
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 02/16] [Timer]Remove calls to set_timer outside arch/ Graeme Russ
2011-07-11 21:58 ` Wolfgang Denk
2011-07-15 12:17 ` [U-Boot] [PATCH v2 2/7]Timer: Remove " Graeme Russ
2011-07-16 9:33 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52 ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 03/16] [Timer]Remove calls to set_timer in arch/ Graeme Russ
2011-07-11 21:59 ` Wolfgang Denk
2011-07-15 12:18 ` [U-Boot] [PATCH v2 3/7]Timer: Remove set_timer completely Graeme Russ
2011-07-16 9:34 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:52 ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 04/16] [Timer]Allow reset_timer() only for Nios2 Graeme Russ
2011-07-11 22:01 ` Wolfgang Denk
2011-07-15 12:18 ` [U-Boot] [PATCH v2 4/7]Timer: Allow reset_timer() only for systems with low resolution timers Graeme Russ
2011-07-16 9:35 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53 ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 05/16] [Timer]Remove reset_timer() for non-Nios2 arches Graeme Russ
2011-07-11 22:02 ` Wolfgang Denk
2011-07-15 0:01 ` Graeme Russ
2011-07-15 12:19 ` [U-Boot] [PATCH v2 5/7]Timer: Remove " Graeme Russ
2011-07-16 9:36 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:53 ` Wolfgang Denk
2011-08-19 21:24 ` Mike Frysinger
2011-08-19 22:55 ` Graeme Russ
2011-08-19 23:12 ` Mike Frysinger
2011-09-28 19:24 ` Wolfgang Denk
2011-06-28 11:40 ` [U-Boot] [PATCH v1 (WIP) 06/16] [Timer]Fix at91rm9200/spi.c timer usage Graeme Russ
2011-06-28 12:30 ` Andreas Bießmann
2011-07-15 12:20 ` [U-Boot] [PATCH v2 6/7]Timer: Fix " Graeme Russ
2011-07-16 9:37 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54 ` Wolfgang Denk
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 07/16] [Timer]Remove reset_timer_masked() Graeme Russ
2011-07-11 22:04 ` Wolfgang Denk
2011-07-15 12:21 ` [U-Boot] [PATCH v2 7/7]Timer: Remove reset_timer_masked() Graeme Russ
2011-07-16 9:38 ` [U-Boot] [PATCH v3 " Graeme Russ
2011-07-26 12:54 ` Wolfgang Denk
2011-06-28 11:41 ` Graeme Russ [this message]
2011-06-29 4:31 ` [U-Boot] [PATCH v1 (WIP) 08/16] [Timer]Create new userland timer API Simon Glass
2011-06-29 4:36 ` Graeme Russ
2011-06-29 4:48 ` Simon Glass
2011-07-11 22:05 ` Wolfgang Denk
2011-07-11 22:32 ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 09/16] [Timer]Replace get_timer() usage in drivers/block/ Graeme Russ
2011-06-29 4:40 ` Simon Glass
2011-06-29 5:06 ` Reinhard Meyer
2011-06-29 5:19 ` Graeme Russ
2011-06-29 5:30 ` Simon Glass
2011-06-29 5:38 ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 10/16] [Timer]Replace get_timer() usage in driver/mtd and driver/block Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 11/16] [Timer]Remove reset_timer() completely Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 12/16] [Timer]Replace get_timer() usage in drivers/ Graeme Russ
2011-06-28 12:36 ` Vitaly Kuzmichev
2011-06-28 23:03 ` Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 13/16] [Timer]Replace get_timer() usage in net/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 14/16] [Timer]Replace get_timer() usage in common/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 15/16] [Timer]Replace get_timer() usage in board/ Graeme Russ
2011-06-28 11:41 ` [U-Boot] [PATCH v1 (WIP) 16/16] [Timer]Replace get_timer() usage in arch/ Graeme Russ
2011-06-29 4:45 ` Simon Glass
2011-06-29 4:51 ` Graeme Russ
2011-06-29 5:15 ` Mike Frysinger
2011-06-29 5:26 ` Mike Frysinger
2011-06-29 5:29 ` Graeme Russ
2011-06-29 4:54 ` [U-Boot] [PATCH v1 (WIP) 00/16] [Timer]API Rewrite Graeme Russ
2011-06-29 5:08 ` Mike Frysinger
2011-06-29 5:20 ` Graeme Russ
2011-07-08 0:25 ` Graeme Russ
2011-07-09 6:01 ` Albert ARIBAUD
2011-07-11 21:56 ` Wolfgang Denk
2011-07-11 22:49 ` Graeme Russ
2011-07-11 23:36 ` Graeme Russ
2011-07-12 2:17 ` Graeme Russ
2011-07-12 8:49 ` Wolfgang Denk
2011-07-12 10:36 ` Graeme Russ
2011-07-12 13:10 ` Wolfgang Denk
2011-07-12 15:23 ` Scott McNutt
2011-07-12 17:27 ` J. William Campbell
2011-07-13 0:29 ` Graeme Russ
2011-07-14 19:30 ` Wolfgang Denk
2011-07-17 1:51 ` Graeme Russ
2011-07-12 14:30 ` J. William Campbell
2011-07-12 16:08 ` Reinhard Meyer
2011-07-13 0:33 ` Graeme Russ
2011-07-13 1:20 ` J. William Campbell
2011-07-14 19:41 ` Wolfgang Denk
2011-07-14 23:52 ` J. William Campbell
2011-07-15 7:17 ` Wolfgang Denk
2011-07-15 18:08 ` J. William Campbell
2011-07-15 18:34 ` Wolfgang Denk
2011-07-15 21:03 ` J. William Campbell
2011-07-16 14:11 ` Graeme Russ
2011-07-15 12:15 ` [U-Boot] [PATCH v2 0/7]Timer: Simplify API Graeme Russ
2011-07-15 13:08 ` Graeme Russ
2011-07-16 8:36 ` Albert ARIBAUD
2011-07-16 9:01 ` Graeme Russ
2011-07-16 9:13 ` Albert ARIBAUD
2011-07-16 9:32 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1309261269-4363-9-git-send-email-graeme.russ@gmail.com \
--to=graeme.russ@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.