diff options
author | Martin Aberg <maberg@gaisler.com> | 2017-02-23 16:33:21 +0100 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2017-05-02 12:34:45 +0200 |
commit | f600458d05ee3f15f75292e15aea4d913862d132 (patch) | |
tree | cec1214c4456aec2334859d0a1da66f5278959b5 /c/src/lib/libbsp/sparc/shared/include/tlib.h | |
parent | leon, tlib: added timer width mask information (diff) | |
download | rtems-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 '')
-rw-r--r-- | c/src/lib/libbsp/sparc/shared/include/tlib.h | 10 |
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. |