summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared/include/tlib.h
diff options
context:
space:
mode:
authorMartin Aberg <maberg@gaisler.com>2017-02-23 16:33:21 +0100
committerDaniel Hellstrom <daniel@gaisler.com>2017-05-02 12:34:45 +0200
commitf600458d05ee3f15f75292e15aea4d913862d132 (patch)
treecec1214c4456aec2334859d0a1da66f5278959b5 /c/src/lib/libbsp/sparc/shared/include/tlib.h
parentleon, tlib: added timer width mask information (diff)
downloadrtems-f600458d05ee3f15f75292e15aea4d913862d132.tar.bz2
leon, clock: new driver manager clock driver
- Compatible with SMP - Selects timecounter depending on features available - Fixes problem with time going to fast on SMP This is an implementation of the RTEMS "clockdrv_shell" interface for LEON2/3/4 systems using the Driver Manager. It is clock hardware agnostic and compatible with SMP and UP. Availability of free running counters is probed and selected as needed. GR740: RTEMS TESTSUITE FAILURE SUMMARY Result Test ExecRes ConsoleRes ExitCode1 ExitCode2 FAIL: ./fstests/imfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/jffs2_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mdosfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mimfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mrfs_fsscandir01 OK FAIL 5 0 FAIL: ./psxtests/psxshm01 FAIL FAIL N/A N/A FAIL: ./psxtests/psxshm02 FAIL FAIL N/A N/A FAIL: ./sptests/spinternalerror01 OK N/A -559038737 1611526157 FAIL: ./sptests/sptimecounter01 OK N/A 5 0 SUMMARY Tests failing: 9 Tests successful: 578 --- GR712RC: RTEMS TESTSUITE FAILURE SUMMARY Result Test ExecRes ConsoleRes ExitCode1 ExitCode2 FAIL: ./smptests/smpipi01 FAIL FAIL N/A N/A FAIL: ./smptests/smpthreadlife01 FAIL FAIL N/A N/A FAIL: ./fstests/imfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/jffs2_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mdosfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mimfs_fsscandir01 OK FAIL 5 0 FAIL: ./fstests/mrfs_fsscandir01 OK FAIL 5 0 FAIL: ./psxtests/psxshm01 FAIL FAIL N/A N/A FAIL: ./psxtests/psxshm02 FAIL FAIL N/A N/A FAIL: ./sptests/spinternalerror01 OK N/A -559038737 1611526157 FAIL: ./sptests/sptimecounter01 OK N/A 5 0 SUMMARY Tests failing: 11 Tests successful: 576
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared/include/tlib.h')
-rw-r--r--c/src/lib/libbsp/sparc/shared/include/tlib.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/include/tlib.h b/c/src/lib/libbsp/sparc/shared/include/tlib.h
index 5e49dd488e..debb8c8215 100644
--- a/c/src/lib/libbsp/sparc/shared/include/tlib.h
+++ b/c/src/lib/libbsp/sparc/shared/include/tlib.h
@@ -27,6 +27,10 @@ struct tlib_dev;
typedef void (*tlib_isr_t)(void *data);
+enum {
+ TLIB_FLAGS_BROADCAST = 0x01
+};
+
struct tlib_drv {
/*** Functions ***/
void (*reset)(struct tlib_dev *hand);
@@ -35,7 +39,7 @@ struct tlib_drv {
unsigned int *basefreq,
unsigned int *tickrate);
int (*set_freq)(struct tlib_dev *hand, unsigned int tickrate);
- void (*irq_reg)(struct tlib_dev *hand, tlib_isr_t func, void *data);
+ void (*irq_reg)(struct tlib_dev *hand, tlib_isr_t func, void *data, int flags);
void (*irq_unreg)(struct tlib_dev *hand, tlib_isr_t func,void *data);
void (*start)(struct tlib_dev *hand, int once);
void (*stop)(struct tlib_dev *hand);
@@ -122,7 +126,7 @@ static inline void tlib_irq_unregister(void *hand)
}
/* Register ISR at Timer ISR */
-static inline void tlib_irq_register(void *hand, tlib_isr_t func, void *data)
+static inline void tlib_irq_register(void *hand, tlib_isr_t func, void *data, int flags)
{
struct tlib_dev *dev = hand;
@@ -130,7 +134,7 @@ static inline void tlib_irq_register(void *hand, tlib_isr_t func, void *data)
tlib_irq_unregister(hand);
dev->isr_func = func;
dev->isr_data = data;
- dev->drv->irq_reg(dev, func, data);
+ dev->drv->irq_reg(dev, func, data, flags);
}
/* Start Timer, ISRs will be generated if enabled.