Add support for EARLY_COUNTER

This commit is contained in:
Sebastian Huber 2019-09-25 10:58:00 +02:00
parent c1e05b9ea3
commit b5f802ef43
3 changed files with 17 additions and 0 deletions

View File

@ -174,3 +174,6 @@ counter_ratecheck(struct counter_rate *cr, int64_t limit)
return (val);
}
#ifdef __rtems__
uint64_t _bsd_early_counter[_BSD_EARLY_COUNTER_SIZE];
#endif /* __rtems__ */

View File

@ -227,7 +227,11 @@ extern struct pcpu *cpuid_to_pcpu[];
#endif
#define curvidata PCPU_GET(vidata)
#ifndef __rtems__
#define UMA_PCPU_ALLOC_SIZE PAGE_SIZE
#else /* __rtems__ */
#define UMA_PCPU_ALLOC_SIZE (PAGE_SIZE / 32)
#endif /* __rtems__ */
#ifndef __rtems__
#ifdef CTASSERT

View File

@ -36,6 +36,16 @@
#include <rtems/score/isrlevel.h>
#ifdef RTEMS_SMP
#define _BSD_EARLY_COUNTER_SIZE (CPU_MAXIMUM_PROCESSORS * UMA_PCPU_ALLOC_SIZE)
#else
#define _BSD_EARLY_COUNTER_SIZE 1
#endif
extern uint64_t _bsd_early_counter[_BSD_EARLY_COUNTER_SIZE];
#define EARLY_COUNTER (&_bsd_early_counter[0])
#ifdef IN_SUBR_COUNTER_C
static inline uint64_t