diff options
author | Chris Johns <chrisj@rtems.org> | 2017-12-23 18:18:56 +1100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-01-25 08:45:26 +0100 |
commit | 2afb22b7e1ebcbe40373ff7e0efae7d207c655a9 (patch) | |
tree | 44759efe9374f13200a97e96d91bd9a2b7e5ce2a /cpukit/score/include/sys/timetc.h | |
parent | MAINTAINERS: Add myself to Write After Approval. (diff) | |
download | rtems-2afb22b7e1ebcbe40373ff7e0efae7d207c655a9.tar.bz2 |
Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
Diffstat (limited to 'cpukit/score/include/sys/timetc.h')
-rw-r--r-- | cpukit/score/include/sys/timetc.h | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/cpukit/score/include/sys/timetc.h b/cpukit/score/include/sys/timetc.h deleted file mode 100644 index 347a140ed9..0000000000 --- a/cpukit/score/include/sys/timetc.h +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ---------------------------------------------------------------------------- - * "THE BEER-WARE LICENSE" (Revision 42): - * <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp - * ---------------------------------------------------------------------------- - * - * $FreeBSD: head/sys/sys/timetc.h 304285 2016-08-17 09:52:09Z kib $ - */ - -#ifndef _SYS_TIMETC_H_ -#define _SYS_TIMETC_H_ - -#ifndef __rtems__ -#ifndef _KERNEL -#error "no user-serviceable parts inside" -#endif -#endif /* __rtems__ */ - -/*- - * `struct timecounter' is the interface between the hardware which implements - * a timecounter and the MI code which uses this to keep track of time. - * - * A timecounter is a binary counter which has two properties: - * * it runs at a fixed, known frequency. - * * it has sufficient bits to not roll over in less than approximately - * max(2 msec, 2/HZ seconds). (The value 2 here is really 1 + delta, - * for some indeterminate value of delta.) - */ - -struct timecounter; -struct vdso_timehands; -struct vdso_timehands32; -#ifndef __rtems__ -typedef u_int timecounter_get_t(struct timecounter *); -#else /* __rtems__ */ -typedef uint32_t timecounter_get_t(struct timecounter *); -#endif /* __rtems__ */ -typedef void timecounter_pps_t(struct timecounter *); -typedef uint32_t timecounter_fill_vdso_timehands_t(struct vdso_timehands *, - struct timecounter *); -typedef uint32_t timecounter_fill_vdso_timehands32_t(struct vdso_timehands32 *, - struct timecounter *); - -struct timecounter { - timecounter_get_t *tc_get_timecount; - /* - * This function reads the counter. It is not required to - * mask any unimplemented bits out, as long as they are - * constant. - */ - timecounter_pps_t *tc_poll_pps; - /* - * This function is optional. It will be called whenever the - * timecounter is rewound, and is intended to check for PPS - * events. Normal hardware does not need it but timecounters - * which latch PPS in hardware (like sys/pci/xrpu.c) do. - */ - uint32_t tc_counter_mask; - /* This mask should mask off any unimplemented bits. */ - uint64_t tc_frequency; - /* Frequency of the counter in Hz. */ - const char *tc_name; - /* Name of the timecounter. */ - int tc_quality; - /* - * Used to determine if this timecounter is better than - * another timecounter higher means better. Negative - * means "only use at explicit request". - */ - u_int tc_flags; -#define TC_FLAGS_C2STOP 1 /* Timer dies in C2+. */ -#define TC_FLAGS_SUSPEND_SAFE 2 /* - * Timer functional across - * suspend/resume. - */ - - void *tc_priv; - /* Pointer to the timecounter's private parts. */ - struct timecounter *tc_next; - /* Pointer to the next timecounter. */ -#ifndef __rtems__ - timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands; - timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32; -#endif /* __rtems__ */ -}; - -extern struct timecounter *timecounter; -extern int tc_min_ticktock_freq; /* - * Minimal tc_ticktock() call frequency, - * required to handle counter wraps. - */ - -u_int64_t tc_getfrequency(void); -void tc_init(struct timecounter *tc); -void tc_setclock(struct timespec *ts); -void tc_ticktock(int cnt); -void cpu_tick_calibration(void); - -#ifdef SYSCTL_DECL -SYSCTL_DECL(_kern_timecounter); -#endif - -#endif /* !_SYS_TIMETC_H_ */ |