diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-24 13:50:54 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-26 11:55:47 +0200 |
commit | a2e3f33f39e6898c2e2886216fe671b29a93d643 (patch) | |
tree | d304dc7fe4fcf0dcb42a61b8ba99b2c698d8454f | |
parent | Include missing <rtems/score/threaddispatch.h> (diff) | |
download | rtems-a2e3f33f39e6898c2e2886216fe671b29a93d643.tar.bz2 |
score: Create object implementation header
Move implementation specific parts of object.h and object.inl into new
header file objectimpl.h. The object.h contains now only the
application visible API.
199 files changed, 1192 insertions, 1404 deletions
diff --git a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c index df5352f6a2..49e4f31843 100644 --- a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c +++ b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c @@ -30,6 +30,7 @@ #include <rtems.h> #include <rtems/score/sysstate.h> +#include <rtems/score/objectimpl.h> #include <string.h> #include "gdb_if.h" diff --git a/cpukit/libcsupport/src/getdents.c b/cpukit/libcsupport/src/getdents.c index 9e26a3cc2d..cb650159c6 100644 --- a/cpukit/libcsupport/src/getdents.c +++ b/cpukit/libcsupport/src/getdents.c @@ -20,6 +20,7 @@ #include <errno.h> +#include <rtems/score/objectimpl.h> #include <rtems/libio_.h> #include <rtems/seterr.h> diff --git a/cpukit/libcsupport/src/getegid.c b/cpukit/libcsupport/src/getegid.c index 9ec6f0b6fc..86f514eb8f 100644 --- a/cpukit/libcsupport/src/getegid.c +++ b/cpukit/libcsupport/src/getegid.c @@ -12,7 +12,6 @@ #include <unistd.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/seterr.h> #include <rtems/userenv.h> diff --git a/cpukit/libcsupport/src/geteuid.c b/cpukit/libcsupport/src/geteuid.c index bc4ee75601..85f2d575da 100644 --- a/cpukit/libcsupport/src/geteuid.c +++ b/cpukit/libcsupport/src/geteuid.c @@ -12,7 +12,6 @@ #include <unistd.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/seterr.h> #include <rtems/userenv.h> diff --git a/cpukit/libcsupport/src/getlogin.c b/cpukit/libcsupport/src/getlogin.c index fe0f9ad6f8..1ec8285292 100644 --- a/cpukit/libcsupport/src/getlogin.c +++ b/cpukit/libcsupport/src/getlogin.c @@ -15,7 +15,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/seterr.h> #include <rtems/userenv.h> diff --git a/cpukit/libcsupport/src/getpgrp.c b/cpukit/libcsupport/src/getpgrp.c index 9ff1dd6cb6..208c7022f7 100644 --- a/cpukit/libcsupport/src/getpgrp.c +++ b/cpukit/libcsupport/src/getpgrp.c @@ -3,7 +3,7 @@ #endif #include <unistd.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> /* * 4.3.1 Get Process Group IDs, P1003.1b-1993, p. 89 diff --git a/cpukit/libcsupport/src/getpid.c b/cpukit/libcsupport/src/getpid.c index 27825e50b5..b2cd19b999 100644 --- a/cpukit/libcsupport/src/getpid.c +++ b/cpukit/libcsupport/src/getpid.c @@ -11,8 +11,7 @@ #include <unistd.h> -#include <rtems/system.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> #include <rtems/seterr.h> /** diff --git a/cpukit/libcsupport/src/getppid.c b/cpukit/libcsupport/src/getppid.c index b0269d4aea..f55bf77c04 100644 --- a/cpukit/libcsupport/src/getppid.c +++ b/cpukit/libcsupport/src/getppid.c @@ -12,7 +12,6 @@ #include <unistd.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/seterr.h> pid_t _POSIX_types_Ppid = 0; diff --git a/cpukit/libcsupport/src/realloc.c b/cpukit/libcsupport/src/realloc.c index f9b2674f14..845e77b43a 100644 --- a/cpukit/libcsupport/src/realloc.c +++ b/cpukit/libcsupport/src/realloc.c @@ -25,6 +25,7 @@ #include <string.h> #include <rtems/score/sysstate.h> +#include <rtems/score/objectimpl.h> void *realloc( void *ptr, diff --git a/cpukit/libcsupport/src/setegid.c b/cpukit/libcsupport/src/setegid.c index 249491102b..1d753adc51 100644 --- a/cpukit/libcsupport/src/setegid.c +++ b/cpukit/libcsupport/src/setegid.c @@ -21,7 +21,6 @@ #include <unistd.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/seterr.h> #include <rtems/userenv.h> diff --git a/cpukit/libcsupport/src/utsname.c b/cpukit/libcsupport/src/utsname.c index 5af5e1a97d..8320a5c36e 100644 --- a/cpukit/libcsupport/src/utsname.c +++ b/cpukit/libcsupport/src/utsname.c @@ -23,8 +23,7 @@ #include <sys/utsname.h> #include <inttypes.h> -#include <rtems/system.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> #include <rtems/seterr.h> /* diff --git a/cpukit/libmisc/cpuuse/cpuusagereport.c b/cpukit/libmisc/cpuuse/cpuusagereport.c index 5579b1bff2..aa5a8c65e3 100644 --- a/cpukit/libmisc/cpuuse/cpuusagereport.c +++ b/cpukit/libmisc/cpuuse/cpuusagereport.c @@ -25,6 +25,7 @@ #include <inttypes.h> #include <rtems/cpuuse.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/watchdogimpl.h> #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__ diff --git a/cpukit/libmisc/monitor/monitor.h b/cpukit/libmisc/monitor/monitor.h index aedde1a848..6a85d602eb 100644 --- a/cpukit/libmisc/monitor/monitor.h +++ b/cpukit/libmisc/monitor/monitor.h @@ -8,6 +8,7 @@ #ifndef __MONITOR_H #define __MONITOR_H +#include <rtems/score/objectimpl.h> #include <rtems/error.h> /* rtems_error() */ #include <rtems/config.h> diff --git a/cpukit/posix/include/rtems/posix/barrierimpl.h b/cpukit/posix/include/rtems/posix/barrierimpl.h index b9df1517cc..266bbdbe8b 100644 --- a/cpukit/posix/include/rtems/posix/barrierimpl.h +++ b/cpukit/posix/include/rtems/posix/barrierimpl.h @@ -21,6 +21,7 @@ #include <rtems/posix/barrier.h> #include <rtems/score/corebarrierimpl.h> +#include <rtems/score/objectimpl.h> #include <pthread.h> diff --git a/cpukit/posix/include/rtems/posix/condimpl.h b/cpukit/posix/include/rtems/posix/condimpl.h index 0e6d3409c1..029ff48b88 100644 --- a/cpukit/posix/include/rtems/posix/condimpl.h +++ b/cpukit/posix/include/rtems/posix/condimpl.h @@ -18,6 +18,7 @@ #define _RTEMS_POSIX_CONDIMPL_H #include <rtems/posix/cond.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/watchdog.h> #ifdef __cplusplus diff --git a/cpukit/posix/include/rtems/posix/key.h b/cpukit/posix/include/rtems/posix/key.h index 0bb1dbe6a8..6d2ebff6fd 100644 --- a/cpukit/posix/include/rtems/posix/key.h +++ b/cpukit/posix/include/rtems/posix/key.h @@ -19,7 +19,7 @@ #ifndef _RTEMS_POSIX_KEY_H #define _RTEMS_POSIX_KEY_H -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> /** * @defgroup POSIX_KEY POSIX Key diff --git a/cpukit/posix/include/rtems/posix/posixapi.h b/cpukit/posix/include/rtems/posix/posixapi.h index 6ae5dfabfd..bf1c1b7eb8 100644 --- a/cpukit/posix/include/rtems/posix/posixapi.h +++ b/cpukit/posix/include/rtems/posix/posixapi.h @@ -20,7 +20,7 @@ #define _RTEMS_POSIX_POSIXAPI_H #include <rtems/config.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> /** * @defgroup POSIXAPI RTEMS POSIX API diff --git a/cpukit/posix/include/rtems/posix/pthreadimpl.h b/cpukit/posix/include/rtems/posix/pthreadimpl.h index 1231f01634..a65f849c7a 100644 --- a/cpukit/posix/include/rtems/posix/pthreadimpl.h +++ b/cpukit/posix/include/rtems/posix/pthreadimpl.h @@ -22,6 +22,7 @@ #include <rtems/posix/pthread.h> #include <rtems/posix/config.h> #include <rtems/posix/threadsup.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/thread.h> #ifdef __cplusplus diff --git a/cpukit/posix/include/rtems/posix/rwlockimpl.h b/cpukit/posix/include/rtems/posix/rwlockimpl.h index 95e406b760..68cffe1f45 100644 --- a/cpukit/posix/include/rtems/posix/rwlockimpl.h +++ b/cpukit/posix/include/rtems/posix/rwlockimpl.h @@ -21,6 +21,7 @@ #include <rtems/posix/rwlock.h> #include <rtems/score/corerwlockimpl.h> +#include <rtems/score/objectimpl.h> #include <pthread.h> diff --git a/cpukit/posix/include/rtems/posix/spinlockimpl.h b/cpukit/posix/include/rtems/posix/spinlockimpl.h index 2711316498..339e66bd65 100644 --- a/cpukit/posix/include/rtems/posix/spinlockimpl.h +++ b/cpukit/posix/include/rtems/posix/spinlockimpl.h @@ -21,6 +21,7 @@ #include <rtems/posix/spinlock.h> #include <rtems/score/corespinlockimpl.h> +#include <rtems/score/objectimpl.h> #include <pthread.h> diff --git a/cpukit/posix/include/rtems/posix/threadsup.h b/cpukit/posix/include/rtems/posix/threadsup.h index f1a87c9aed..414b46fd83 100644 --- a/cpukit/posix/include/rtems/posix/threadsup.h +++ b/cpukit/posix/include/rtems/posix/threadsup.h @@ -19,6 +19,7 @@ #define _RTEMS_POSIX_THREADSUP_H #include <rtems/score/coresem.h> +#include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/watchdog.h> diff --git a/cpukit/posix/include/rtems/posix/timerimpl.h b/cpukit/posix/include/rtems/posix/timerimpl.h index 73f953b45e..ca108201a6 100644 --- a/cpukit/posix/include/rtems/posix/timerimpl.h +++ b/cpukit/posix/include/rtems/posix/timerimpl.h @@ -20,6 +20,7 @@ #define _RTEMS_POSIX_TIMERIMPL_H #include <rtems/posix/timer.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/posix/src/barrierattrdestroy.c b/cpukit/posix/src/barrierattrdestroy.c index 6fe52f4de2..25c23250c2 100644 --- a/cpukit/posix/src/barrierattrdestroy.c +++ b/cpukit/posix/src/barrierattrdestroy.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/cond.c b/cpukit/posix/src/cond.c index c7b91fba88..8b819d7d91 100644 --- a/cpukit/posix/src/cond.c +++ b/cpukit/posix/src/cond.c @@ -24,7 +24,6 @@ #include <rtems/system.h> #include <rtems/config.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condattrdestroy.c b/cpukit/posix/src/condattrdestroy.c index a8f1c63bc7..b46b745dbd 100644 --- a/cpukit/posix/src/condattrdestroy.c +++ b/cpukit/posix/src/condattrdestroy.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condattrgetpshared.c b/cpukit/posix/src/condattrgetpshared.c index 42e0121c2f..4c0dd348c9 100644 --- a/cpukit/posix/src/condattrgetpshared.c +++ b/cpukit/posix/src/condattrgetpshared.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condattrinit.c b/cpukit/posix/src/condattrinit.c index 4007e3ac2a..6708bd0887 100644 --- a/cpukit/posix/src/condattrinit.c +++ b/cpukit/posix/src/condattrinit.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condattrsetpshared.c b/cpukit/posix/src/condattrsetpshared.c index d3b3564d90..186f5bd760 100644 --- a/cpukit/posix/src/condattrsetpshared.c +++ b/cpukit/posix/src/condattrsetpshared.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condbroadcast.c b/cpukit/posix/src/condbroadcast.c index 14e78e700a..9d163771c4 100644 --- a/cpukit/posix/src/condbroadcast.c +++ b/cpukit/posix/src/condbroadcast.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/conddefaultattributes.c b/cpukit/posix/src/conddefaultattributes.c index aec90f2e05..7221d1a1bc 100644 --- a/cpukit/posix/src/conddefaultattributes.c +++ b/cpukit/posix/src/conddefaultattributes.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/conddestroy.c b/cpukit/posix/src/conddestroy.c index 91388fae4c..7c815e0423 100644 --- a/cpukit/posix/src/conddestroy.c +++ b/cpukit/posix/src/conddestroy.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condget.c b/cpukit/posix/src/condget.c index 4f3bc14a3f..5806708274 100644 --- a/cpukit/posix/src/condget.c +++ b/cpukit/posix/src/condget.c @@ -15,7 +15,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condinit.c b/cpukit/posix/src/condinit.c index 2c6bd8d609..26a812ddf5 100644 --- a/cpukit/posix/src/condinit.c +++ b/cpukit/posix/src/condinit.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condsignal.c b/cpukit/posix/src/condsignal.c index 2f2c9b7ae1..fede6bc139 100644 --- a/cpukit/posix/src/condsignal.c +++ b/cpukit/posix/src/condsignal.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condsignalsupp.c b/cpukit/posix/src/condsignalsupp.c index 0261b048bd..229f96cacb 100644 --- a/cpukit/posix/src/condsignalsupp.c +++ b/cpukit/posix/src/condsignalsupp.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condtimedwait.c b/cpukit/posix/src/condtimedwait.c index 4328615604..2fe1aec218 100644 --- a/cpukit/posix/src/condtimedwait.c +++ b/cpukit/posix/src/condtimedwait.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condwait.c b/cpukit/posix/src/condwait.c index cbd6d957b5..a6e933939b 100644 --- a/cpukit/posix/src/condwait.c +++ b/cpukit/posix/src/condwait.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/condwaitsupp.c b/cpukit/posix/src/condwaitsupp.c index cbc21c3137..86ad3aa6b6 100644 --- a/cpukit/posix/src/condwaitsupp.c +++ b/cpukit/posix/src/condwaitsupp.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/keyrundestructors.c b/cpukit/posix/src/keyrundestructors.c index 9f48888bb8..eb692e0dc9 100644 --- a/cpukit/posix/src/keyrundestructors.c +++ b/cpukit/posix/src/keyrundestructors.c @@ -21,7 +21,6 @@ #endif #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/posix/key.h> diff --git a/cpukit/posix/src/posixtimespecabsolutetimeout.c b/cpukit/posix/src/posixtimespecabsolutetimeout.c index 913de6c9c0..c46f13bf89 100644 --- a/cpukit/posix/src/posixtimespecabsolutetimeout.c +++ b/cpukit/posix/src/posixtimespecabsolutetimeout.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/rwlockattrdestroy.c b/cpukit/posix/src/rwlockattrdestroy.c index 5b18f0e673..a2f482567c 100644 --- a/cpukit/posix/src/rwlockattrdestroy.c +++ b/cpukit/posix/src/rwlockattrdestroy.c @@ -22,7 +22,6 @@ #include <errno.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/watchdog.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/semaphore.c b/cpukit/posix/src/semaphore.c index 21d67c5646..0d139c2f46 100644 --- a/cpukit/posix/src/semaphore.c +++ b/cpukit/posix/src/semaphore.c @@ -28,7 +28,6 @@ #include <rtems/system.h> #include <rtems/config.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semaphorecreatesupp.c b/cpukit/posix/src/semaphorecreatesupp.c index fecbdb5f48..92969409e6 100644 --- a/cpukit/posix/src/semaphorecreatesupp.c +++ b/cpukit/posix/src/semaphorecreatesupp.c @@ -28,7 +28,6 @@ #include <string.h> /* strlen */ #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/wkspace.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/semaphoredeletesupp.c b/cpukit/posix/src/semaphoredeletesupp.c index 6e46f53511..f49ef38415 100644 --- a/cpukit/posix/src/semaphoredeletesupp.c +++ b/cpukit/posix/src/semaphoredeletesupp.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semaphorewaitsupp.c b/cpukit/posix/src/semaphorewaitsupp.c index a590537d10..93816dbbff 100644 --- a/cpukit/posix/src/semaphorewaitsupp.c +++ b/cpukit/posix/src/semaphorewaitsupp.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semclose.c b/cpukit/posix/src/semclose.c index 81cb3161d5..2b7eb4a487 100644 --- a/cpukit/posix/src/semclose.c +++ b/cpukit/posix/src/semclose.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semdestroy.c b/cpukit/posix/src/semdestroy.c index 0e547df205..f4bb1a8469 100644 --- a/cpukit/posix/src/semdestroy.c +++ b/cpukit/posix/src/semdestroy.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semgetvalue.c b/cpukit/posix/src/semgetvalue.c index b0ffec3117..65b85e1941 100644 --- a/cpukit/posix/src/semgetvalue.c +++ b/cpukit/posix/src/semgetvalue.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/seminit.c b/cpukit/posix/src/seminit.c index 39a75b5e2b..c40ee5485e 100644 --- a/cpukit/posix/src/seminit.c +++ b/cpukit/posix/src/seminit.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semopen.c b/cpukit/posix/src/semopen.c index c74925b4c9..b86308030b 100644 --- a/cpukit/posix/src/semopen.c +++ b/cpukit/posix/src/semopen.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/sempost.c b/cpukit/posix/src/sempost.c index 6b9f87648f..3a23f22129 100644 --- a/cpukit/posix/src/sempost.c +++ b/cpukit/posix/src/sempost.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semtimedwait.c b/cpukit/posix/src/semtimedwait.c index f9e57ecc01..e75198c37d 100644 --- a/cpukit/posix/src/semtimedwait.c +++ b/cpukit/posix/src/semtimedwait.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semtrywait.c b/cpukit/posix/src/semtrywait.c index 2aa6d284bd..9ef802cbab 100644 --- a/cpukit/posix/src/semtrywait.c +++ b/cpukit/posix/src/semtrywait.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semunlink.c b/cpukit/posix/src/semunlink.c index cee2a6427e..8f268d9a3d 100644 --- a/cpukit/posix/src/semunlink.c +++ b/cpukit/posix/src/semunlink.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/posix/src/semwait.c b/cpukit/posix/src/semwait.c index fbc59e44a8..1918bb1e9d 100644 --- a/cpukit/posix/src/semwait.c +++ b/cpukit/posix/src/semwait.c @@ -27,7 +27,6 @@ #include <limits.h> #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/posix/time.h> #include <rtems/seterr.h> diff --git a/cpukit/rtems/include/rtems/rtems/barrierimpl.h b/cpukit/rtems/include/rtems/rtems/barrierimpl.h index 59f9ea22e3..763b52c8d8 100644 --- a/cpukit/rtems/include/rtems/rtems/barrierimpl.h +++ b/cpukit/rtems/include/rtems/rtems/barrierimpl.h @@ -24,6 +24,7 @@ #include <rtems/rtems/barrier.h> #include <rtems/score/corebarrierimpl.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/rtems/include/rtems/rtems/dpmemimpl.h b/cpukit/rtems/include/rtems/rtems/dpmemimpl.h index 1fa636dc35..ae1ff19f3e 100644 --- a/cpukit/rtems/include/rtems/rtems/dpmemimpl.h +++ b/cpukit/rtems/include/rtems/rtems/dpmemimpl.h @@ -18,6 +18,7 @@ #define _RTEMS_RTEMS_DPMEM_INL #include <rtems/rtems/dpmem.h> +#include <rtems/score/objectimpl.h> /** * @defgroup ClassicDPMEMImpl Dual Ported Memory Manager Implementation diff --git a/cpukit/rtems/include/rtems/rtems/messageimpl.h b/cpukit/rtems/include/rtems/rtems/messageimpl.h index 90cc5178e2..fbed713abf 100644 --- a/cpukit/rtems/include/rtems/rtems/messageimpl.h +++ b/cpukit/rtems/include/rtems/rtems/messageimpl.h @@ -17,6 +17,7 @@ #define _RTEMS_RTEMS_MESSAGEIMPL_H #include <rtems/rtems/message.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/rtems/include/rtems/rtems/partimpl.h b/cpukit/rtems/include/rtems/rtems/partimpl.h index 2de8028a8f..5a4d662621 100644 --- a/cpukit/rtems/include/rtems/rtems/partimpl.h +++ b/cpukit/rtems/include/rtems/rtems/partimpl.h @@ -19,6 +19,7 @@ #include <rtems/rtems/part.h> #include <rtems/score/chainimpl.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h index 584b45ef1e..40e986433c 100644 --- a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h +++ b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h @@ -18,6 +18,7 @@ #define _RTEMS_RTEMS_RATEMONIMPL_H #include <rtems/rtems/ratemon.h> +#include <rtems/score/objectimpl.h> #include <string.h> diff --git a/cpukit/rtems/include/rtems/rtems/regionimpl.h b/cpukit/rtems/include/rtems/rtems/regionimpl.h index 6b900f22ed..52b2a99e1c 100644 --- a/cpukit/rtems/include/rtems/rtems/regionimpl.h +++ b/cpukit/rtems/include/rtems/rtems/regionimpl.h @@ -19,6 +19,7 @@ #include <rtems/rtems/region.h> #include <rtems/score/heapimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/debug.h> #ifdef __cplusplus diff --git a/cpukit/rtems/include/rtems/rtems/tasksimpl.h b/cpukit/rtems/include/rtems/rtems/tasksimpl.h index 830a82a283..379b1bcfbb 100644 --- a/cpukit/rtems/include/rtems/rtems/tasksimpl.h +++ b/cpukit/rtems/include/rtems/rtems/tasksimpl.h @@ -18,6 +18,7 @@ #define _RTEMS_RTEMS_TASKSIMPL_H #include <rtems/rtems/tasks.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/rtems/include/rtems/rtems/timerimpl.h b/cpukit/rtems/include/rtems/rtems/timerimpl.h index c22658d99b..8f4cf7702b 100644 --- a/cpukit/rtems/include/rtems/rtems/timerimpl.h +++ b/cpukit/rtems/include/rtems/rtems/timerimpl.h @@ -19,6 +19,8 @@ #define _RTEMS_RTEMS_TIMER_INL #include <rtems/rtems/timer.h> +#include <rtems/score/objectimpl.h> +#include <rtems/score/thread.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/rtems/src/barrier.c b/cpukit/rtems/src/barrier.c index 248fcad0c9..93f917fe99 100644 --- a/cpukit/rtems/src/barrier.c +++ b/cpukit/rtems/src/barrier.c @@ -29,7 +29,6 @@ #include <rtems/config.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/barrierimpl.h> /** diff --git a/cpukit/rtems/src/barriercreate.c b/cpukit/rtems/src/barriercreate.c index cba8802e9c..001d57f6d0 100644 --- a/cpukit/rtems/src/barriercreate.c +++ b/cpukit/rtems/src/barriercreate.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/barrierimpl.h> /* diff --git a/cpukit/rtems/src/barrierident.c b/cpukit/rtems/src/barrierident.c index 96aa349a50..1789e892b2 100644 --- a/cpukit/rtems/src/barrierident.c +++ b/cpukit/rtems/src/barrierident.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/barrierimpl.h> diff --git a/cpukit/rtems/src/dpmem.c b/cpukit/rtems/src/dpmem.c index a1003d622a..dbe56e0595 100644 --- a/cpukit/rtems/src/dpmem.c +++ b/cpukit/rtems/src/dpmem.c @@ -24,7 +24,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> void _Dual_ported_memory_Manager_initialization(void) diff --git a/cpukit/rtems/src/dpmemcreate.c b/cpukit/rtems/src/dpmemcreate.c index f8ca546078..5d67c612f9 100644 --- a/cpukit/rtems/src/dpmemcreate.c +++ b/cpukit/rtems/src/dpmemcreate.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> rtems_status_code rtems_port_create( diff --git a/cpukit/rtems/src/dpmemdelete.c b/cpukit/rtems/src/dpmemdelete.c index 50e81f81d6..8e1f8f8909 100644 --- a/cpukit/rtems/src/dpmemdelete.c +++ b/cpukit/rtems/src/dpmemdelete.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> rtems_status_code rtems_port_delete( diff --git a/cpukit/rtems/src/dpmemexternal2internal.c b/cpukit/rtems/src/dpmemexternal2internal.c index 9e540aae9e..296d52d58e 100644 --- a/cpukit/rtems/src/dpmemexternal2internal.c +++ b/cpukit/rtems/src/dpmemexternal2internal.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> rtems_status_code rtems_port_external_to_internal( diff --git a/cpukit/rtems/src/dpmemident.c b/cpukit/rtems/src/dpmemident.c index 73d3b5a3a9..a6a0b64540 100644 --- a/cpukit/rtems/src/dpmemident.c +++ b/cpukit/rtems/src/dpmemident.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> rtems_status_code rtems_port_ident( diff --git a/cpukit/rtems/src/dpmeminternal2external.c b/cpukit/rtems/src/dpmeminternal2external.c index bf93f417b2..355e049c40 100644 --- a/cpukit/rtems/src/dpmeminternal2external.c +++ b/cpukit/rtems/src/dpmeminternal2external.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/score/address.h> #include <rtems/rtems/dpmemimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> rtems_status_code rtems_port_internal_to_external( diff --git a/cpukit/rtems/src/eventmp.c b/cpukit/rtems/src/eventmp.c index ae29c3afff..b9bfa47307 100644 --- a/cpukit/rtems/src/eventmp.c +++ b/cpukit/rtems/src/eventmp.c @@ -19,6 +19,7 @@ #endif #include <rtems/rtems/eventimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/statesimpl.h> RTEMS_STATIC_ASSERT( diff --git a/cpukit/rtems/src/msg.c b/cpukit/rtems/src/msg.c index bf6c5d6e6b..81141b876e 100644 --- a/cpukit/rtems/src/msg.c +++ b/cpukit/rtems/src/msg.c @@ -23,7 +23,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqallocate.c b/cpukit/rtems/src/msgqallocate.c index 8058b3076f..6ae889baf3 100644 --- a/cpukit/rtems/src/msgqallocate.c +++ b/cpukit/rtems/src/msgqallocate.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqbroadcast.c b/cpukit/rtems/src/msgqbroadcast.c index ec06b20240..43710f87b3 100644 --- a/cpukit/rtems/src/msgqbroadcast.c +++ b/cpukit/rtems/src/msgqbroadcast.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqcreate.c b/cpukit/rtems/src/msgqcreate.c index 2df0e21827..512a2c50d4 100644 --- a/cpukit/rtems/src/msgqcreate.c +++ b/cpukit/rtems/src/msgqcreate.c @@ -23,7 +23,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqdelete.c b/cpukit/rtems/src/msgqdelete.c index cbb8560627..2ad39fc5ba 100644 --- a/cpukit/rtems/src/msgqdelete.c +++ b/cpukit/rtems/src/msgqdelete.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqflush.c b/cpukit/rtems/src/msgqflush.c index f6deb2b7c6..36794108c9 100644 --- a/cpukit/rtems/src/msgqflush.c +++ b/cpukit/rtems/src/msgqflush.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqgetnumberpending.c b/cpukit/rtems/src/msgqgetnumberpending.c index 6b7709e283..c18e945b33 100644 --- a/cpukit/rtems/src/msgqgetnumberpending.c +++ b/cpukit/rtems/src/msgqgetnumberpending.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqident.c b/cpukit/rtems/src/msgqident.c index e0b3d785e4..dd1621bcf7 100644 --- a/cpukit/rtems/src/msgqident.c +++ b/cpukit/rtems/src/msgqident.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/statusimpl.h> diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c index b2f11343d3..33206d47da 100644 --- a/cpukit/rtems/src/msgqreceive.c +++ b/cpukit/rtems/src/msgqreceive.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqsend.c b/cpukit/rtems/src/msgqsend.c index 36f1021a0f..2d648e40a0 100644 --- a/cpukit/rtems/src/msgqsend.c +++ b/cpukit/rtems/src/msgqsend.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqtranslatereturncode.c b/cpukit/rtems/src/msgqtranslatereturncode.c index 8819756059..97b8013afd 100644 --- a/cpukit/rtems/src/msgqtranslatereturncode.c +++ b/cpukit/rtems/src/msgqtranslatereturncode.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/threadimpl.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/msgqurgent.c b/cpukit/rtems/src/msgqurgent.c index 40328557b0..966148255d 100644 --- a/cpukit/rtems/src/msgqurgent.c +++ b/cpukit/rtems/src/msgqurgent.c @@ -22,7 +22,6 @@ #include <rtems/score/chain.h> #include <rtems/score/isr.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #include <rtems/rtems/status.h> diff --git a/cpukit/rtems/src/part.c b/cpukit/rtems/src/part.c index ba6b4a5652..7731598864 100644 --- a/cpukit/rtems/src/part.c +++ b/cpukit/rtems/src/part.c @@ -23,7 +23,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/address.h> -#include <rtems/score/object.h> #include <rtems/rtems/partimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/partgetbuffer.c b/cpukit/rtems/src/partgetbuffer.c index a325ea94d9..9aa072a858 100644 --- a/cpukit/rtems/src/partgetbuffer.c +++ b/cpukit/rtems/src/partgetbuffer.c @@ -22,7 +22,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/address.h> -#include <rtems/score/object.h> #include <rtems/rtems/partimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/partident.c b/cpukit/rtems/src/partident.c index 237b23027d..9b3a2e8fa6 100644 --- a/cpukit/rtems/src/partident.c +++ b/cpukit/rtems/src/partident.c @@ -22,7 +22,6 @@ #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> #include <rtems/score/address.h> -#include <rtems/score/object.h> #include <rtems/rtems/partimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/partreturnbuffer.c b/cpukit/rtems/src/partreturnbuffer.c index bb6d940f39..2acd9ad62d 100644 --- a/cpukit/rtems/src/partreturnbuffer.c +++ b/cpukit/rtems/src/partreturnbuffer.c @@ -18,7 +18,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/address.h> -#include <rtems/score/object.h> #include <rtems/rtems/partimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemon.c b/cpukit/rtems/src/ratemon.c index 59d1f0b853..b9679ef618 100644 --- a/cpukit/rtems/src/ratemon.c +++ b/cpukit/rtems/src/ratemon.c @@ -23,7 +23,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemoncreate.c b/cpukit/rtems/src/ratemoncreate.c index b21ca4a158..d161cfa4da 100644 --- a/cpukit/rtems/src/ratemoncreate.c +++ b/cpukit/rtems/src/ratemoncreate.c @@ -22,7 +22,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> #include <rtems/score/watchdogimpl.h> diff --git a/cpukit/rtems/src/ratemongetstatistics.c b/cpukit/rtems/src/ratemongetstatistics.c index 0cb594a6a2..94e3c113e8 100644 --- a/cpukit/rtems/src/ratemongetstatistics.c +++ b/cpukit/rtems/src/ratemongetstatistics.c @@ -22,7 +22,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c index 673bc08a0e..77d005f3a8 100644 --- a/cpukit/rtems/src/ratemongetstatus.c +++ b/cpukit/rtems/src/ratemongetstatus.c @@ -22,7 +22,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemonident.c b/cpukit/rtems/src/ratemonident.c index 2786c4cc60..812a541411 100644 --- a/cpukit/rtems/src/ratemonident.c +++ b/cpukit/rtems/src/ratemonident.c @@ -22,7 +22,6 @@ #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemonresetall.c b/cpukit/rtems/src/ratemonresetall.c index 923f4f182b..24727b9c8b 100644 --- a/cpukit/rtems/src/ratemonresetall.c +++ b/cpukit/rtems/src/ratemonresetall.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/ratemonresetstatistics.c b/cpukit/rtems/src/ratemonresetstatistics.c index 744e266621..34a327b126 100644 --- a/cpukit/rtems/src/ratemonresetstatistics.c +++ b/cpukit/rtems/src/ratemonresetstatistics.c @@ -22,7 +22,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/ratemonimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/region.c b/cpukit/rtems/src/region.c index 1b151bd230..99cc767d33 100644 --- a/cpukit/rtems/src/region.c +++ b/cpukit/rtems/src/region.c @@ -22,7 +22,6 @@ #include <rtems/config.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/regiondelete.c b/cpukit/rtems/src/regiondelete.c index e65600ede2..f00797288a 100644 --- a/cpukit/rtems/src/regiondelete.c +++ b/cpukit/rtems/src/regiondelete.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/regionextend.c b/cpukit/rtems/src/regionextend.c index c857eb67c3..9d19d10b60 100644 --- a/cpukit/rtems/src/regionextend.c +++ b/cpukit/rtems/src/regionextend.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/regiongetfreeinfo.c b/cpukit/rtems/src/regiongetfreeinfo.c index 1052b38808..4e8fe28ecc 100644 --- a/cpukit/rtems/src/regiongetfreeinfo.c +++ b/cpukit/rtems/src/regiongetfreeinfo.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/apimutex.h> diff --git a/cpukit/rtems/src/regiongetinfo.c b/cpukit/rtems/src/regiongetinfo.c index 1cb6f925ed..e17e13c100 100644 --- a/cpukit/rtems/src/regiongetinfo.c +++ b/cpukit/rtems/src/regiongetinfo.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/apimutex.h> diff --git a/cpukit/rtems/src/regiongetsegmentsize.c b/cpukit/rtems/src/regiongetsegmentsize.c index 65c15802b0..8857217a9e 100644 --- a/cpukit/rtems/src/regiongetsegmentsize.c +++ b/cpukit/rtems/src/regiongetsegmentsize.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/apimutex.h> diff --git a/cpukit/rtems/src/regionident.c b/cpukit/rtems/src/regionident.c index 4a64b935a8..3ae39fe542 100644 --- a/cpukit/rtems/src/regionident.c +++ b/cpukit/rtems/src/regionident.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/regionresizesegment.c b/cpukit/rtems/src/regionresizesegment.c index fed8333cbe..68a4e1aea1 100644 --- a/cpukit/rtems/src/regionresizesegment.c +++ b/cpukit/rtems/src/regionresizesegment.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/regionreturnsegment.c b/cpukit/rtems/src/regionreturnsegment.c index 4a50bd2f5a..15ec7188e5 100644 --- a/cpukit/rtems/src/regionreturnsegment.c +++ b/cpukit/rtems/src/regionreturnsegment.c @@ -29,7 +29,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/regionimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/rtemsbuildid.c b/cpukit/rtems/src/rtemsbuildid.c index 7c2c48d5fe..2344934660 100644 --- a/cpukit/rtems/src/rtemsbuildid.c +++ b/cpukit/rtems/src/rtemsbuildid.c @@ -18,12 +18,17 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> -#undef rtems_build_id -rtems_id rtems_build_id( +/* XXX: This is for language bindings */ +Objects_Id rtems_build_id( + uint32_t api, + uint32_t class, + uint32_t node, + uint32_t index +); + +Objects_Id rtems_build_id( uint32_t api, uint32_t class, uint32_t node, diff --git a/cpukit/rtems/src/rtemsbuildname.c b/cpukit/rtems/src/rtemsbuildname.c index 472a71bdcc..d83464664e 100644 --- a/cpukit/rtems/src/rtemsbuildname.c +++ b/cpukit/rtems/src/rtemsbuildname.c @@ -19,7 +19,6 @@ #endif #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/rtems/types.h> #undef rtems_build_name diff --git a/cpukit/rtems/src/rtemsobjectapimaximumclass.c b/cpukit/rtems/src/rtemsobjectapimaximumclass.c index abeee0365c..cd44705c05 100644 --- a/cpukit/rtems/src/rtemsobjectapimaximumclass.c +++ b/cpukit/rtems/src/rtemsobjectapimaximumclass.c @@ -18,10 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> #include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> int rtems_object_api_maximum_class( int api diff --git a/cpukit/rtems/src/rtemsobjectapiminimumclass.c b/cpukit/rtems/src/rtemsobjectapiminimumclass.c index 858bc37ddb..6aaa73155e 100644 --- a/cpukit/rtems/src/rtemsobjectapiminimumclass.c +++ b/cpukit/rtems/src/rtemsobjectapiminimumclass.c @@ -18,10 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> #include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> int rtems_object_api_minimum_class( int api diff --git a/cpukit/rtems/src/rtemsobjectgetapiclassname.c b/cpukit/rtems/src/rtemsobjectgetapiclassname.c index 93495829f8..4cd07f8a9b 100644 --- a/cpukit/rtems/src/rtemsobjectgetapiclassname.c +++ b/cpukit/rtems/src/rtemsobjectgetapiclassname.c @@ -18,18 +18,18 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> #include <rtems/assoc.h> -rtems_assoc_t rtems_object_api_internal_assoc[] = { +static const rtems_assoc_t rtems_object_api_internal_assoc[] = { { "Thread", OBJECTS_INTERNAL_THREADS, 0}, { "Mutex", OBJECTS_INTERNAL_MUTEXES, 0}, + { NULL, 0, 0} }; -rtems_assoc_t rtems_object_api_classic_assoc[] = { +static const rtems_assoc_t rtems_object_api_classic_assoc[] = { { "Task", OBJECTS_RTEMS_TASKS, 0}, { "Timer", OBJECTS_RTEMS_TIMERS, 0}, { "Semaphore", OBJECTS_RTEMS_SEMAPHORES, 0}, @@ -40,10 +40,11 @@ rtems_assoc_t rtems_object_api_classic_assoc[] = { { "Period", OBJECTS_RTEMS_PERIODS, 0}, { "Extension", OBJECTS_RTEMS_EXTENSIONS, 0}, { "Barrier", OBJECTS_RTEMS_BARRIERS, 0}, + { NULL, 0, 0} }; #ifdef RTEMS_POSIX_API -rtems_assoc_t rtems_object_api_posix_assoc[] = { +static const rtems_assoc_t rtems_object_api_posix_assoc[] = { { "Thread", OBJECTS_POSIX_THREADS, 0}, { "Key", OBJECTS_POSIX_KEYS, 0}, { "Interrupt", OBJECTS_POSIX_INTERRUPTS, 0}, @@ -56,6 +57,7 @@ rtems_assoc_t rtems_object_api_posix_assoc[] = { { "Barrier", OBJECTS_POSIX_BARRIERS, 0}, { "Spinlock", OBJECTS_POSIX_SPINLOCKS, 0}, { "RWLock", OBJECTS_POSIX_RWLOCKS, 0}, + { NULL, 0, 0} }; #endif diff --git a/cpukit/rtems/src/rtemsobjectgetapiname.c b/cpukit/rtems/src/rtemsobjectgetapiname.c index 2f10ce74d6..0cd999cefe 100644 --- a/cpukit/rtems/src/rtemsobjectgetapiname.c +++ b/cpukit/rtems/src/rtemsobjectgetapiname.c @@ -18,13 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/rtems/object.h> - +#include <rtems/score/objectimpl.h> #include <rtems/assoc.h> -rtems_assoc_t rtems_objects_api_assoc[] = { +static const rtems_assoc_t rtems_objects_api_assoc[] = { { "Internal", OBJECTS_INTERNAL_API, 0}, { "Classic", OBJECTS_CLASSIC_API, 0}, { "POSIX", OBJECTS_POSIX_API, 0}, diff --git a/cpukit/rtems/src/rtemsobjectgetclassicname.c b/cpukit/rtems/src/rtemsobjectgetclassicname.c index 1d9d1db6c1..42ab673ff7 100644 --- a/cpukit/rtems/src/rtemsobjectgetclassicname.c +++ b/cpukit/rtems/src/rtemsobjectgetclassicname.c @@ -18,11 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/statusimpl.h> -#include <rtems/rtems/types.h> #include <rtems/rtems/object.h> +#include <rtems/rtems/statusimpl.h> +#include <rtems/score/objectimpl.h> rtems_status_code rtems_object_get_classic_name( rtems_id id, diff --git a/cpukit/rtems/src/rtemsobjectgetclassinfo.c b/cpukit/rtems/src/rtemsobjectgetclassinfo.c index c801c66669..a8f14399ea 100644 --- a/cpukit/rtems/src/rtemsobjectgetclassinfo.c +++ b/cpukit/rtems/src/rtemsobjectgetclassinfo.c @@ -18,10 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/rtems/status.h> -#include <rtems/score/object.h> #include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> rtems_status_code rtems_object_get_class_information( int the_api, diff --git a/cpukit/rtems/src/rtemsobjectgetname.c b/cpukit/rtems/src/rtemsobjectgetname.c index f5f10651a0..459a6a7d6c 100644 --- a/cpukit/rtems/src/rtemsobjectgetname.c +++ b/cpukit/rtems/src/rtemsobjectgetname.c @@ -18,9 +18,14 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> + +/* XXX: This is for language bindings */ +char *rtems_object_get_name( + Objects_Id id, + size_t length, + char *name +); char *rtems_object_get_name( Objects_Id id, diff --git a/cpukit/rtems/src/rtemsobjectidapimaximum.c b/cpukit/rtems/src/rtemsobjectidapimaximum.c index 1073cb0c13..7f4a56f722 100644 --- a/cpukit/rtems/src/rtemsobjectidapimaximum.c +++ b/cpukit/rtems/src/rtemsobjectidapimaximum.c @@ -18,11 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> + +/* XXX: This is for language bindings */ +int rtems_object_id_api_maximum(void); -#undef rtems_object_id_api_maximum int rtems_object_id_api_maximum(void) { return OBJECTS_APIS_LAST; diff --git a/cpukit/rtems/src/rtemsobjectidapiminimum.c b/cpukit/rtems/src/rtemsobjectidapiminimum.c index c6eb871d47..3315a74fa8 100644 --- a/cpukit/rtems/src/rtemsobjectidapiminimum.c +++ b/cpukit/rtems/src/rtemsobjectidapiminimum.c @@ -18,11 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> + +/* XXX: This is for language bindings */ +int rtems_object_id_api_minimum(void); -#undef rtems_object_id_api_minimum int rtems_object_id_api_minimum(void) { return OBJECTS_INTERNAL_API; diff --git a/cpukit/rtems/src/rtemsobjectidgetapi.c b/cpukit/rtems/src/rtemsobjectidgetapi.c index bce0eaadf6..dce296cc20 100644 --- a/cpukit/rtems/src/rtemsobjectidgetapi.c +++ b/cpukit/rtems/src/rtemsobjectidgetapi.c @@ -18,13 +18,15 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> -#undef rtems_object_id_get_api +/* XXX: This is for language bindings */ int rtems_object_id_get_api( - rtems_id id + Objects_Id id +); + +int rtems_object_id_get_api( + Objects_Id id ) { return _Objects_Get_API( id ); diff --git a/cpukit/rtems/src/rtemsobjectidgetclass.c b/cpukit/rtems/src/rtemsobjectidgetclass.c index a9b7df76a7..e18a763c92 100644 --- a/cpukit/rtems/src/rtemsobjectidgetclass.c +++ b/cpukit/rtems/src/rtemsobjectidgetclass.c @@ -18,13 +18,15 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> -#undef rtems_object_id_get_class +/* XXX: This is for language bindings */ int rtems_object_id_get_class( - rtems_id id + Objects_Id id +); + +int rtems_object_id_get_class( + Objects_Id id ) { return _Objects_Get_class( id ); diff --git a/cpukit/rtems/src/rtemsobjectidgetindex.c b/cpukit/rtems/src/rtemsobjectidgetindex.c index 281e896007..8a08bb2d9f 100644 --- a/cpukit/rtems/src/rtemsobjectidgetindex.c +++ b/cpukit/rtems/src/rtemsobjectidgetindex.c @@ -18,13 +18,15 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> -#undef rtems_object_id_get_index +/* XXX: This is for language bindings */ int rtems_object_id_get_index( - rtems_id id + Objects_Id id +); + +int rtems_object_id_get_index( + Objects_Id id ) { return _Objects_Get_index( id ); diff --git a/cpukit/rtems/src/rtemsobjectidgetnode.c b/cpukit/rtems/src/rtemsobjectidgetnode.c index 15f8cd8a3c..ee3157b1e4 100644 --- a/cpukit/rtems/src/rtemsobjectidgetnode.c +++ b/cpukit/rtems/src/rtemsobjectidgetnode.c @@ -18,13 +18,15 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/rtems/types.h> +#include <rtems/score/objectimpl.h> -#undef rtems_object_id_get_node +/* XXX: This is for language bindings */ int rtems_object_id_get_node( - rtems_id id + Objects_Id id +); + +int rtems_object_id_get_node( + Objects_Id id ) { return _Objects_Get_node( id ); diff --git a/cpukit/rtems/src/rtemsobjectsetname.c b/cpukit/rtems/src/rtemsobjectsetname.c index 6db87ac8ac..925739303b 100644 --- a/cpukit/rtems/src/rtemsobjectsetname.c +++ b/cpukit/rtems/src/rtemsobjectsetname.c @@ -18,12 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/score/thread.h> -#include <rtems/rtems/status.h> -#include <rtems/rtems/types.h> #include <rtems/rtems/object.h> +#include <rtems/score/objectimpl.h> +#include <rtems/score/thread.h> /* * This method will set the object name based upon the user string. diff --git a/cpukit/rtems/src/rtemstimer.c b/cpukit/rtems/src/rtemstimer.c index f3ca9e0e85..259df4ccf3 100644 --- a/cpukit/rtems/src/rtemstimer.c +++ b/cpukit/rtems/src/rtemstimer.c @@ -22,7 +22,6 @@ #include <rtems/config.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c index 83fe07fb8a..00e782b62e 100644 --- a/cpukit/rtems/src/sem.c +++ b/cpukit/rtems/src/sem.c @@ -24,7 +24,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c index d91365b709..5ac57dc568 100644 --- a/cpukit/rtems/src/semcreate.c +++ b/cpukit/rtems/src/semcreate.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semdelete.c b/cpukit/rtems/src/semdelete.c index 0586a19a67..37cbf3d33e 100644 --- a/cpukit/rtems/src/semdelete.c +++ b/cpukit/rtems/src/semdelete.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semflush.c b/cpukit/rtems/src/semflush.c index f6b09ec787..dcbef01bf3 100644 --- a/cpukit/rtems/src/semflush.c +++ b/cpukit/rtems/src/semflush.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semident.c b/cpukit/rtems/src/semident.c index 10c7f94cae..973d1be2c5 100644 --- a/cpukit/rtems/src/semident.c +++ b/cpukit/rtems/src/semident.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c index fb0ad1f846..abec4697ee 100644 --- a/cpukit/rtems/src/semobtain.c +++ b/cpukit/rtems/src/semobtain.c @@ -23,7 +23,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/optionsimpl.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index fae58f5eb1..df06b1d4ca 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -38,7 +38,6 @@ #include <rtems/rtems/support.h> #include <rtems/rtems/attrimpl.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/rtems/options.h> #include <rtems/rtems/semimpl.h> #include <rtems/score/coremuteximpl.h> diff --git a/cpukit/rtems/src/taskident.c b/cpukit/rtems/src/taskident.c index c3c0fb78f2..ecd01c003c 100644 --- a/cpukit/rtems/src/taskident.c +++ b/cpukit/rtems/src/taskident.c @@ -22,7 +22,6 @@ #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> #include <rtems/rtems/modes.h> -#include <rtems/score/object.h> #include <rtems/score/stack.h> #include <rtems/rtems/tasksimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/taskinitusers.c b/cpukit/rtems/src/taskinitusers.c index 6c6f84b4b6..b086a6ea7e 100644 --- a/cpukit/rtems/src/taskinitusers.c +++ b/cpukit/rtems/src/taskinitusers.c @@ -23,7 +23,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/rtems/modes.h> -#include <rtems/score/object.h> #include <rtems/rtems/rtemsapi.h> #include <rtems/score/stack.h> #include <rtems/rtems/tasksimpl.h> diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c index a8920e0e24..ddbc0d235a 100644 --- a/cpukit/rtems/src/tasks.c +++ b/cpukit/rtems/src/tasks.c @@ -25,7 +25,6 @@ #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> #include <rtems/rtems/modes.h> -#include <rtems/score/object.h> #include <rtems/score/stack.h> #include <rtems/rtems/tasksimpl.h> #include <rtems/score/thread.h> diff --git a/cpukit/rtems/src/timercancel.c b/cpukit/rtems/src/timercancel.c index 1bec3559b5..28d16f49da 100644 --- a/cpukit/rtems/src/timercancel.c +++ b/cpukit/rtems/src/timercancel.c @@ -17,7 +17,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c index 21fa8cc0d8..516be2fc2e 100644 --- a/cpukit/rtems/src/timercreate.c +++ b/cpukit/rtems/src/timercreate.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c index 27bb26087a..dee2dfafb4 100644 --- a/cpukit/rtems/src/timerdelete.c +++ b/cpukit/rtems/src/timerdelete.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerfireafter.c b/cpukit/rtems/src/timerfireafter.c index aaa478e337..a7df31e78d 100644 --- a/cpukit/rtems/src/timerfireafter.c +++ b/cpukit/rtems/src/timerfireafter.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c index 7dffbbe319..453c84944a 100644 --- a/cpukit/rtems/src/timerfirewhen.c +++ b/cpukit/rtems/src/timerfirewhen.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/rtems/clock.h> diff --git a/cpukit/rtems/src/timergetinfo.c b/cpukit/rtems/src/timergetinfo.c index 2e13e577eb..f711228aa5 100644 --- a/cpukit/rtems/src/timergetinfo.c +++ b/cpukit/rtems/src/timergetinfo.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerident.c b/cpukit/rtems/src/timerident.c index f160b170b2..e87585c0a8 100644 --- a/cpukit/rtems/src/timerident.c +++ b/cpukit/rtems/src/timerident.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerreset.c b/cpukit/rtems/src/timerreset.c index 68feac6051..fb55f9e9de 100644 --- a/cpukit/rtems/src/timerreset.c +++ b/cpukit/rtems/src/timerreset.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerserverfireafter.c b/cpukit/rtems/src/timerserverfireafter.c index f97eb3f5b2..c486d91421 100644 --- a/cpukit/rtems/src/timerserverfireafter.c +++ b/cpukit/rtems/src/timerserverfireafter.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/score/tod.h> diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c index 090738cf98..c6749b2a60 100644 --- a/cpukit/rtems/src/timerserverfirewhen.c +++ b/cpukit/rtems/src/timerserverfirewhen.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/status.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/rtems/timerimpl.h> #include <rtems/rtems/clock.h> diff --git a/cpukit/sapi/include/rtems/extensionimpl.h b/cpukit/sapi/include/rtems/extensionimpl.h index 1b80fdfff7..50c15a6fa2 100644 --- a/cpukit/sapi/include/rtems/extensionimpl.h +++ b/cpukit/sapi/include/rtems/extensionimpl.h @@ -19,6 +19,7 @@ #define _RTEMS_EXTENSIONIMPL_H #include <rtems/extension.h> +#include <rtems/score/objectimpl.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/sapi/src/extension.c b/cpukit/sapi/src/extension.c index ffa0dcecc5..cbfa85b39b 100644 --- a/cpukit/sapi/src/extension.c +++ b/cpukit/sapi/src/extension.c @@ -24,7 +24,6 @@ #include <rtems/system.h> #include <rtems/config.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/extensionimpl.h> diff --git a/cpukit/sapi/src/extensioncreate.c b/cpukit/sapi/src/extensioncreate.c index 0590a1374c..83c6b39b1a 100644 --- a/cpukit/sapi/src/extensioncreate.c +++ b/cpukit/sapi/src/extensioncreate.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/userextimpl.h> #include <rtems/extensionimpl.h> diff --git a/cpukit/sapi/src/extensiondelete.c b/cpukit/sapi/src/extensiondelete.c index 0c013f32ad..9209f2fe83 100644 --- a/cpukit/sapi/src/extensiondelete.c +++ b/cpukit/sapi/src/extensiondelete.c @@ -20,7 +20,6 @@ #endif #include <rtems/extensionimpl.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/userextimpl.h> diff --git a/cpukit/sapi/src/extensionident.c b/cpukit/sapi/src/extensionident.c index 8817469b89..900c14c24b 100644 --- a/cpukit/sapi/src/extensionident.c +++ b/cpukit/sapi/src/extensionident.c @@ -22,7 +22,6 @@ #include <rtems/system.h> #include <rtems/rtems/statusimpl.h> #include <rtems/rtems/support.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/extensionimpl.h> diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c index 7563e82e0c..f0859a3639 100644 --- a/cpukit/sapi/src/posixapi.c +++ b/cpukit/sapi/src/posixapi.c @@ -27,7 +27,6 @@ #include <sys/types.h> #include <mqueue.h> #include <rtems/config.h> -#include <rtems/score/object.h> #include <rtems/posix/barrierimpl.h> #include <rtems/posix/condimpl.h> #include <rtems/posix/config.h> diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index f5710166eb..a5daa5cddc 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -37,6 +37,7 @@ include_rtems_score_HEADERS += include/rtems/score/isr.h include_rtems_score_HEADERS += include/rtems/score/isrlevel.h include_rtems_score_HEADERS += include/rtems/score/freechain.h include_rtems_score_HEADERS += include/rtems/score/object.h +include_rtems_score_HEADERS += include/rtems/score/objectimpl.h include_rtems_score_HEADERS += include/rtems/score/percpu.h include_rtems_score_HEADERS += include/rtems/score/priority.h include_rtems_score_HEADERS += include/rtems/score/prioritybitmap.h @@ -101,7 +102,6 @@ include_rtems_score_HEADERS += include/rtems/score/schedulersimplesmp.h endif ## inline -include_rtems_score_HEADERS += inline/rtems/score/object.inl include_rtems_score_HEADERS += inline/rtems/score/tod.inl ## src @@ -124,7 +124,7 @@ libscore_a_SOURCES += src/smp.c endif ## CORE_APIMUTEX_C_FILES -libscore_a_SOURCES += src/apimutex.c src/apimutexallocate.c \ +libscore_a_SOURCES += src/apimutex.c \ src/apimutexlock.c src/apimutexunlock.c ## CORE_BARRIER_C_FILES diff --git a/cpukit/score/include/rtems/score/apimutex.h b/cpukit/score/include/rtems/score/apimutex.h index 60c21ad29c..a34270ec08 100644 --- a/cpukit/score/include/rtems/score/apimutex.h +++ b/cpukit/score/include/rtems/score/apimutex.h @@ -18,9 +18,8 @@ #ifndef _RTEMS_SCORE_APIMUTEX_H #define _RTEMS_SCORE_APIMUTEX_H -#ifdef __cplusplus -extern "C" { -#endif +#include <rtems/score/coremutex.h> +#include <rtems/score/object.h> /** * @defgroup ScoreAPIMutex API Mutex Handler @@ -31,9 +30,9 @@ extern "C" { */ /**@{**/ -#include <rtems/score/coremutex.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> +#ifdef __cplusplus +extern "C" { +#endif /** * @brief Control block used to manage each API mutex. @@ -51,11 +50,6 @@ typedef struct { } API_Mutex_Control; /** - * @brief Information control block used to manage this class of objects. - */ -SCORE_EXTERN Objects_Information _API_Mutex_Information; - -/** * @brief Initialization for the API Mutexe Handler. * * The value @a maximum_mutexes is the maximum number of API mutexes that may diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h index d6b8f48d35..f06342facb 100644 --- a/cpukit/score/include/rtems/score/object.h +++ b/cpukit/score/include/rtems/score/object.h @@ -20,18 +20,8 @@ #ifndef _RTEMS_SCORE_OBJECT_H #define _RTEMS_SCORE_OBJECT_H +#include <rtems/score/basedefs.h> #include <rtems/score/chain.h> -#include <rtems/score/isr.h> - -#if defined(RTEMS_POSIX_API) - /** - * This macro is defined when an API is enabled that requires the - * use of strings for object names. Since the Classic API uses - * 32-bit unsigned integers and not strings, this allows us to - * disable this in the smallest RTEMS configuratinos. - */ - #define RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES -#endif #ifdef __cplusplus extern "C" { @@ -44,6 +34,16 @@ extern "C" { */ /**@{*/ +#if defined(RTEMS_POSIX_API) + /** + * This macro is defined when an API is enabled that requires the + * use of strings for object names. Since the Classic API uses + * 32-bit unsigned integers and not strings, this allows us to + * disable this in the smallest RTEMS configuratinos. + */ + #define RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES +#endif + /** * @defgroup ScoreCPU CPU Architecture Support * @@ -73,15 +73,6 @@ typedef union { uint32_t name_u32; } Objects_Name; -/** - * Functions which compare names are prototyped like this. - */ -typedef bool (*Objects_Name_comparators)( - void * /* name_1 */, - void * /* name_2 */, - uint16_t /* length */ -); - #if defined(RTEMS_USE_16_BIT_OBJECT) /** * The following type defines the control block used to manage @@ -229,86 +220,6 @@ typedef enum { OBJECTS_POSIX_API = 3 } Objects_APIs; -/** This macro is used to generically specify the last API index. */ -#define OBJECTS_APIS_LAST OBJECTS_POSIX_API - -/** - * This enumerated type is used in the class field of the object ID - * for RTEMS internal object classes. - */ -typedef enum { - OBJECTS_INTERNAL_NO_CLASS = 0, - OBJECTS_INTERNAL_THREADS = 1, - OBJECTS_INTERNAL_MUTEXES = 2 -} Objects_Internal_API; - -/** This macro is used to generically specify the last API index. */ -#define OBJECTS_INTERNAL_CLASSES_LAST OBJECTS_INTERNAL_MUTEXES - -/** - * This enumerated type is used in the class field of the object ID - * for the RTEMS Classic API. - */ -typedef enum { - OBJECTS_CLASSIC_NO_CLASS = 0, - OBJECTS_RTEMS_TASKS = 1, - OBJECTS_RTEMS_TIMERS = 2, - OBJECTS_RTEMS_SEMAPHORES = 3, - OBJECTS_RTEMS_MESSAGE_QUEUES = 4, - OBJECTS_RTEMS_PARTITIONS = 5, - OBJECTS_RTEMS_REGIONS = 6, - OBJECTS_RTEMS_PORTS = 7, - OBJECTS_RTEMS_PERIODS = 8, - OBJECTS_RTEMS_EXTENSIONS = 9, - OBJECTS_RTEMS_BARRIERS = 10 -} Objects_Classic_API; - -/** This macro is used to generically specify the last API index. */ -#define OBJECTS_RTEMS_CLASSES_LAST OBJECTS_RTEMS_BARRIERS - -/** - * This enumerated type is used in the class field of the object ID - * for the POSIX API. - */ -typedef enum { - OBJECTS_POSIX_NO_CLASS = 0, - OBJECTS_POSIX_THREADS = 1, - OBJECTS_POSIX_KEYS = 2, - OBJECTS_POSIX_INTERRUPTS = 3, - OBJECTS_POSIX_MESSAGE_QUEUE_FDS = 4, - OBJECTS_POSIX_MESSAGE_QUEUES = 5, - OBJECTS_POSIX_MUTEXES = 6, - OBJECTS_POSIX_SEMAPHORES = 7, - OBJECTS_POSIX_CONDITION_VARIABLES = 8, - OBJECTS_POSIX_TIMERS = 9, - OBJECTS_POSIX_BARRIERS = 10, - OBJECTS_POSIX_SPINLOCKS = 11, - OBJECTS_POSIX_RWLOCKS = 12 -} Objects_POSIX_API; - -/** This macro is used to generically specify the last API index. */ -#define OBJECTS_POSIX_CLASSES_LAST OBJECTS_POSIX_RWLOCKS - -/** - * This enumerated type lists the locations which may be returned - * by _Objects_Get. These codes indicate the success of locating - * an object with the specified ID. - */ -typedef enum { -#if defined(RTEMS_MULTIPROCESSING) - OBJECTS_REMOTE = 2, /* object is remote */ -#endif - OBJECTS_LOCAL = 0, /* object is local */ - OBJECTS_ERROR = 1 /* id was invalid */ -} Objects_Locations; - -/** - * The following type defines the callout used when a local task - * is extracted from a remote thread queue (i.e. it's proxy must - * extracted from the remote queue). - */ -typedef void ( *Objects_Thread_queue_Extract_callout )( void * ); - /** * The following defines the Object Control Block used to manage * each object local to this node. @@ -323,77 +234,6 @@ typedef struct { } Objects_Control; /** - * The following defines the structure for the information used to - * manage each class of objects. - */ -typedef struct { - /** This field indicates the API of this object class. */ - Objects_APIs the_api; - /** This is the class of this object set. */ - uint16_t the_class; - /** This is the minimum valid id of this object class. */ - Objects_Id minimum_id; - /** This is the maximum valid id of this object class. */ - Objects_Id maximum_id; - /** This is the maximum number of objects in this class. */ - Objects_Maximum maximum; - /** This is the true if unlimited objects in this class. */ - bool auto_extend; - /** This is the number of objects in a block. */ - Objects_Maximum allocation_size; - /** This is the size in bytes of each object instance. */ - size_t size; - /** This points to the table of local objects. */ - Objects_Control **local_table; - /** This is the chain of inactive control blocks. */ - Chain_Control Inactive; - /** This is the number of objects on the Inactive list. */ - Objects_Maximum inactive; - /** This is the number of inactive objects per block. */ - uint32_t *inactive_per_block; - /** This is a table to the chain of inactive object memory blocks. */ - void **object_blocks; - #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) - /** This is true if names are strings. */ - bool is_string; - #endif - /** This is the maximum length of names. */ - uint16_t name_length; - /** This is this object class' method called when extracting a thread. */ - Objects_Thread_queue_Extract_callout extract; - #if defined(RTEMS_MULTIPROCESSING) - /** This is this object class' pointer to the global name table */ - Chain_Control *global_table; - #endif -} Objects_Information; - -/** - * The following is referenced to the node number of the local node. - */ -#if defined(RTEMS_MULTIPROCESSING) -SCORE_EXTERN uint16_t _Objects_Local_node; -#else -#define _Objects_Local_node ((uint16_t)1) -#endif - -/** - * The following is referenced to the number of nodes in the system. - */ -#if defined(RTEMS_MULTIPROCESSING) -SCORE_EXTERN uint16_t _Objects_Maximum_nodes; -#else -#define _Objects_Maximum_nodes 1 -#endif - -/** - * The following is the list of information blocks per API for each object - * class. From the ID, we can go to one of these information blocks, - * and obtain a pointer to the appropriate object control block. - */ -SCORE_EXTERN Objects_Information - **_Objects_Information_table[OBJECTS_APIS_LAST + 1]; - -/** * No object can have this ID. */ #define OBJECTS_ID_NONE 0 @@ -441,105 +281,6 @@ SCORE_EXTERN Objects_Information #define OBJECTS_ID_FINAL ((Objects_Id)~0) /** - * This function extends an object class information record. - * - * @param[in] information points to an object class information block. - */ -void _Objects_Extend_information( - Objects_Information *information -); - -/** - * @brief Shrink an object class information record - * - * This function shrink an object class information record. - * The object's name and object space are released. The local_table - * etc block does not shrink. The InActive list needs to be scanned - * to find the objects are remove them. - * - * @param[in] information points to an object class information block. - */ -void _Objects_Shrink_information( - Objects_Information *information -); - -/** - * @brief Initialize object Information - * - * This function initializes an object class information record. - * SUPPORTS_GLOBAL is true if the object class supports global - * objects, and false otherwise. Maximum indicates the number - * of objects required in this class and size indicates the size - * in bytes of each control block for this object class. The - * name length and string designator are also set. In addition, - * the class may be a task, therefore this information is also included. - * - * @param[in] information points to an object class information block. - * @param[in] the_api indicates the API associated with this information block. - * @param[in] the_class indicates the class of object being managed - * by this information block. It is specific to @a the_api. - * @param[in] maximum is the maximum number of instances of this object - * class which may be concurrently active. - * @param[in] size is the size of the data structure for this class. - * @param[in] is_string is true if this object uses string style names. - * @param[in] maximum_name_length is the maximum length of object names. - */ -void _Objects_Initialize_information ( - Objects_Information *information, - Objects_APIs the_api, - uint16_t the_class, - uint32_t maximum, - uint16_t size, - bool is_string, - uint32_t maximum_name_length -#if defined(RTEMS_MULTIPROCESSING) - , - bool supports_global, - Objects_Thread_queue_Extract_callout extract -#endif -); - -/** - * @brief Object API Maximum Class - * - * This function returns the highest numeric value of a valid - * API for the specified @a api. - * - * @param[in] api is the API of interest - * - * @retval A positive integer on success and 0 otherwise. - */ -unsigned int _Objects_API_maximum_class( - uint32_t api -); - -/** - * @brief Allocate an object. - * - * This function allocates an object control block from - * the inactive chain of free object control blocks. - * - * @param[in] information points to an object class information block. - */ -Objects_Control *_Objects_Allocate( - Objects_Information *information -); - -/** - * @brief Free an object. - * - * This function frees an object control block to the - * inactive chain of free object control blocks. - * - * @param[in] information points to an object class information block. - * @param[in] the_object points to the object to deallocate. - */ -void _Objects_Free( - Objects_Information *information, - Objects_Control *the_object -); - -/** * This macro is used to build a thirty-two bit style name from * four characters. The most significant byte will be the * character @a _C1. @@ -556,344 +297,104 @@ void _Objects_Free( (uint32_t)(_C4) ) /** - * This function implements the common portion of the object - * identification directives. This directive returns the object - * id associated with name. If more than one object of this class - * is named name, then the object to which the id belongs is - * arbitrary. Node indicates the extent of the search for the - * id of the object named name. If the object class supports global - * objects, then the search can be limited to a particular node - * or allowed to encompass all nodes. - */ -typedef enum { - OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL, - OBJECTS_INVALID_NAME, - OBJECTS_INVALID_ADDRESS, - OBJECTS_INVALID_ID, - OBJECTS_INVALID_NODE -} Objects_Name_or_id_lookup_errors; - -/** - * This macro defines the first entry in the - * @ref Objects_Name_or_id_lookup_errors enumerated list. - */ -#define OBJECTS_NAME_ERRORS_FIRST OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL - -/** - * This macro defines the last entry in the - * @ref Objects_Name_or_id_lookup_errors enumerated list. - */ -#define OBJECTS_NAME_ERRORS_LAST OBJECTS_INVALID_NODE - -/** - * @brief Converts an object name to an Id. - * - * This method converts an object name to an Id. It performs a look up - * using the object information block for this object class. - * - * @param[in] information points to an object class information block. - * @param[in] name is the name of the object to find. - * @param[in] node is the set of nodes to search. - * @param[in] id will contain the Id if the search is successful. - * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a id will contain the Id of - * the requested object. - */ -Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32( - Objects_Information *information, - uint32_t name, - uint32_t node, - Objects_Id *id -); - -#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) -/** - * @brief Converts an object name to an Id. - * - * This method converts an object name to an Id. It performs a look up - * using the object information block for this object class. - * - * @param[in] information points to an object class information block. - * @param[in] name is the name of the object to find. - * @param[in] id will contain the Id if the search is successful. - * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a id will contain the Id of - * the requested object. - */ -Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string( - Objects_Information *information, - const char *name, - Objects_Id *id -); -#endif - -/** - * @brief Implements the common portion of the object Id to name directives. - * - * This function implements the common portion of the object Id - * to name directives. This function returns the name - * associated with object id. - * - * @param[in] id is the Id of the object whose name we are locating. - * @param[in] name will contain the name of the object, if found. - * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a name will contain the name of - * the requested object. - * - * @note This function currently does not support string names. - */ -Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( - Objects_Id id, - Objects_Name *name -); - -/** - * @brief Maps object ids to object control blocks. - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - * @param[in] information points to an object class information block. - * @param[in] id is the Id of the object whose name we are locating. - * @param[in] location will contain an indication of success or failure. - * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a id will contain the Id of - * the requested object. - * - * @note _Objects_Get returns with dispatching disabled for - * local and remote objects. _Objects_Get_isr_disable returns with - * dispatching disabled for remote objects and interrupts for local - * objects. - */ -Objects_Control *_Objects_Get ( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -); - -/** - * @brief Maps object ids to object control blocks. - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - * @param[in] information points to an object class information block. - * @param[in] id is the Id of the object whose name we are locating. - * @param[in] location will contain an indication of success or failure. - * @param[in] level is the interrupt level being turned. - * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a name will contain the name of - * the requested object. - * - * @note _Objects_Get returns with dispatching disabled for - * local and remote objects. _Objects_Get_isr_disable returns with - * dispatchng disabled for remote objects and interrupts for local - * objects. - */ -Objects_Control *_Objects_Get_isr_disable( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location, - ISR_Level *level -); - -/** - * @brief Maps object ids to object control blocks. - * - * This function maps object ids to object control blocks. - * If id corresponds to a local object, then it returns - * the_object control pointer which maps to id and location - * is set to OBJECTS_LOCAL. If the object class supports global - * objects and the object id is global and resides on a remote - * node, then location is set to OBJECTS_REMOTE, and the_object - * is undefined. Otherwise, location is set to OBJECTS_ERROR - * and the_object is undefined. - * - * @param[in] information points to an object class information block. - * @param[in] id is the Id of the object whose name we are locating. - * @param[in] location will contain an indication of success or failure. + * This function returns the API portion of the ID. * - * @retval This method returns one of the values from the - * @ref Objects_Name_or_id_lookup_errors enumeration to indicate - * successful or failure. On success @a id will contain the Id of - * the requested object. + * @param[in] id is the object Id to be processed. * - * @note _Objects_Get returns with dispatching disabled for - * local and remote objects. _Objects_Get_isr_disable returns with - * dispatching disabled for remote objects and interrupts for local - * objects. + * @return This method returns an object Id constructed from the arguments. */ -Objects_Control *_Objects_Get_no_protection( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location -); - -/** - * Like @ref _Objects_Get, but is used to find "next" open object. - * - * @param[in] information points to an object class information block. - * @param[in] id is the Id of the object whose name we are locating. - * @param[in] location_p will contain an indication of success or failure. - * @param[in] next_id_p is the Id of the next object we will look at. - * - * @retval This method returns the pointer to the object located or - * NULL on error. - */ -Objects_Control *_Objects_Get_next( - Objects_Information *information, - Objects_Id id, - Objects_Locations *location_p, - Objects_Id *next_id_p -); - -/** - * @brief Get object information. - * - * This function return the information structure given - * an the API and Class. This can be done independent of - * the existence of any objects created by the API. - * - * @param[in] the_api indicates the API for the information we want - * @param[in] the_class indicates the Class for the information we want - * - * @retval This method returns a pointer to the Object Information Table - * for the class of objects which corresponds to this object ID. - */ -Objects_Information *_Objects_Get_information( - Objects_APIs the_api, - uint16_t the_class -); - -/** - * @brief Get information of an object from an ID. - * - * This function return the information structure given - * an @a id of an object. - * - * @param[in] id is the object ID to get the information from - * - * @retval This method returns a pointer to the Object Information Table - * for the class of objects which corresponds to this object ID. - */ -Objects_Information *_Objects_Get_information_id( - Objects_Id id -); - -/** - * @brief Gets object name in the form of a C string. - * - * This method objects the name of an object and returns its name - * in the form of a C string. It attempts to be careful about - * overflowing the user's string and about returning unprintable characters. - * - * @param[in] id is the object to obtain the name of - * @param[in] length indicates the length of the caller's buffer - * @param[in] name points a string which will be filled in. - * - * @retval This method returns @a name or NULL on error. @a *name will - * contain the name if successful. - */ -char *_Objects_Get_name_as_string( - Objects_Id id, - size_t length, - char *name -); +RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API( + Objects_Id id +) +{ + return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS); +} /** - * @brief Set objects name. - * - * This method sets the object name to either a copy of a string - * or up to the first four characters of the string based upon - * whether this object class uses strings for names. - * - * @param[in] information points to the object information structure - * @param[in] the_object is the object to operate upon - * @param[in] name is a pointer to the name to use + * This function returns the class portion of the ID. * - * @retval If successful, true is returned. Otherwise false is returned. + * @param[in] id is the object Id to be processed */ -bool _Objects_Set_name( - Objects_Information *information, - Objects_Control *the_object, - const char *name -); +RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class( + Objects_Id id +) +{ + return (uint32_t) + ((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS); +} /** - * @brief Removes object from namespace. + * This function returns the node portion of the ID. * - * This function removes @a the_object from the namespace. + * @param[in] id is the object Id to be processed * - * @param[in] information points to an Object Information Table. - * @param[in] the_object is a pointer to an object. + * @return This method returns the node portion of an object ID. */ -void _Objects_Namespace_remove( - Objects_Information *information, - Objects_Control *the_object -); +RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node( + Objects_Id id +) +{ + /* + * If using 16-bit Ids, then there is no node field and it MUST + * be a single processor system. + */ + #if defined(RTEMS_USE_16_BIT_OBJECT) + return 1; + #else + return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS; + #endif +} /** - * @brief Close object. + * This function returns the index portion of the ID. * - * This function removes the_object control pointer and object name - * in the Local Pointer and Local Name Tables. + * @param[in] id is the Id to be processed * - * @param[in] information points to an Object Information Table - * @param[in] the_object is a pointer to an object + * @return This method returns the class portion of the specified object ID. */ -void _Objects_Close( - Objects_Information *information, - Objects_Control *the_object -); +RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index( + Objects_Id id +) +{ + return + (Objects_Maximum)((id >> OBJECTS_INDEX_START_BIT) & + OBJECTS_INDEX_VALID_BITS); +} /** - * @brief Returns the count of active objects. - * - * @param[in] information The object information table. - * - * @retval The count of active objects. - */ -Objects_Maximum _Objects_Active_count( - const Objects_Information *information -); - -/* - * Pieces of object.inl are promoted out to the user - */ + * This function builds an object's id from the processor node and index + * values specified. + * + * @param[in] the_api indicates the API associated with this Id. + * @param[in] the_class indicates the class of object. + * It is specific to @a the_api. + * @param[in] node is the node where this object resides. + * @param[in] index is the instance number of this object. + * + * @return This method returns an object Id constructed from the arguments. + */ +RTEMS_INLINE_ROUTINE Objects_Id _Objects_Build_id( + Objects_APIs the_api, + uint32_t the_class, + uint32_t node, + uint32_t index +) +{ + return (( (Objects_Id) the_api ) << OBJECTS_API_START_BIT) | + (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) | + #if !defined(RTEMS_USE_16_BIT_OBJECT) + (( (Objects_Id) node ) << OBJECTS_NODE_START_BIT) | + #endif + (( (Objects_Id) index ) << OBJECTS_INDEX_START_BIT); +} -#include <rtems/score/object.inl> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif +/**@}*/ +/**@}*/ +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ -/**@}*/ -/**@}*/ #endif /* end of include file */ diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h new file mode 100644 index 0000000000..742145387c --- /dev/null +++ b/cpukit/score/include/rtems/score/objectimpl.h @@ -0,0 +1,930 @@ +/** + * @file + * + * @brief Inlined Routines in the Object Handler + * + * This include file contains the static inline implementation of all + * of the inlined routines in the Object Handler. + */ + +/* + * COPYRIGHT (c) 1989-2011. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifndef _RTEMS_SCORE_OBJECTIMPL_H +#define _RTEMS_SCORE_OBJECTIMPL_H + +#include <rtems/score/object.h> +#include <rtems/score/isrlevel.h> +#include <rtems/score/threaddispatch.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup ScoreObject + * + * @{ + */ + +/** + * Functions which compare names are prototyped like this. + */ +typedef bool (*Objects_Name_comparators)( + void * /* name_1 */, + void * /* name_2 */, + uint16_t /* length */ +); + +/** This macro is used to generically specify the last API index. */ +#define OBJECTS_APIS_LAST OBJECTS_POSIX_API + +/** + * This enumerated type is used in the class field of the object ID + * for RTEMS internal object classes. + */ +typedef enum { + OBJECTS_INTERNAL_NO_CLASS = 0, + OBJECTS_INTERNAL_THREADS = 1, + OBJECTS_INTERNAL_MUTEXES = 2 +} Objects_Internal_API; + +/** This macro is used to generically specify the last API index. */ +#define OBJECTS_INTERNAL_CLASSES_LAST OBJECTS_INTERNAL_MUTEXES + +/** + * This enumerated type is used in the class field of the object ID + * for the RTEMS Classic API. + */ +typedef enum { + OBJECTS_CLASSIC_NO_CLASS = 0, + OBJECTS_RTEMS_TASKS = 1, + OBJECTS_RTEMS_TIMERS = 2, + OBJECTS_RTEMS_SEMAPHORES = 3, + OBJECTS_RTEMS_MESSAGE_QUEUES = 4, + OBJECTS_RTEMS_PARTITIONS = 5, + OBJECTS_RTEMS_REGIONS = 6, + OBJECTS_RTEMS_PORTS = 7, + OBJECTS_RTEMS_PERIODS = 8, + OBJECTS_RTEMS_EXTENSIONS = 9, + OBJECTS_RTEMS_BARRIERS = 10 +} Objects_Classic_API; + +/** This macro is used to generically specify the last API index. */ +#define OBJECTS_RTEMS_CLASSES_LAST OBJECTS_RTEMS_BARRIERS + +/** + * This enumerated type is used in the class field of the object ID + * for the POSIX API. + */ +typedef enum { + OBJECTS_POSIX_NO_CLASS = 0, + OBJECTS_POSIX_THREADS = 1, + OBJECTS_POSIX_KEYS = 2, + OBJECTS_POSIX_INTERRUPTS = 3, + OBJECTS_POSIX_MESSAGE_QUEUE_FDS = 4, + OBJECTS_POSIX_MESSAGE_QUEUES = 5, + OBJECTS_POSIX_MUTEXES = 6, + OBJECTS_POSIX_SEMAPHORES = 7, + OBJECTS_POSIX_CONDITION_VARIABLES = 8, + OBJECTS_POSIX_TIMERS = 9, + OBJECTS_POSIX_BARRIERS = 10, + OBJECTS_POSIX_SPINLOCKS = 11, + OBJECTS_POSIX_RWLOCKS = 12 +} Objects_POSIX_API; + +/** This macro is used to generically specify the last API index. */ +#define OBJECTS_POSIX_CLASSES_LAST OBJECTS_POSIX_RWLOCKS + +/** + * This enumerated type lists the locations which may be returned + * by _Objects_Get. These codes indicate the success of locating + * an object with the specified ID. + */ +typedef enum { +#if defined(RTEMS_MULTIPROCESSING) + OBJECTS_REMOTE = 2, /* object is remote */ +#endif + OBJECTS_LOCAL = 0, /* object is local */ + OBJECTS_ERROR = 1 /* id was invalid */ +} Objects_Locations; + +/** + * The following type defines the callout used when a local task + * is extracted from a remote thread queue (i.e. it's proxy must + * extracted from the remote queue). + */ +typedef void ( *Objects_Thread_queue_Extract_callout )( void * ); + +/** + * The following defines the structure for the information used to + * manage each class of objects. + */ +typedef struct { + /** This field indicates the API of this object class. */ + Objects_APIs the_api; + /** This is the class of this object set. */ + uint16_t the_class; + /** This is the minimum valid id of this object class. */ + Objects_Id minimum_id; + /** This is the maximum valid id of this object class. */ + Objects_Id maximum_id; + /** This is the maximum number of objects in this class. */ + Objects_Maximum maximum; + /** This is the true if unlimited objects in this class. */ + bool auto_extend; + /** This is the number of objects in a block. */ + Objects_Maximum allocation_size; + /** This is the size in bytes of each object instance. */ + size_t size; + /** This points to the table of local objects. */ + Objects_Control **local_table; + /** This is the chain of inactive control blocks. */ + Chain_Control Inactive; + /** This is the number of objects on the Inactive list. */ + Objects_Maximum inactive; + /** This is the number of inactive objects per block. */ + uint32_t *inactive_per_block; + /** This is a table to the chain of inactive object memory blocks. */ + void **object_blocks; + #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) + /** This is true if names are strings. */ + bool is_string; + #endif + /** This is the maximum length of names. */ + uint16_t name_length; + /** This is this object class' method called when extracting a thread. */ + Objects_Thread_queue_Extract_callout extract; + #if defined(RTEMS_MULTIPROCESSING) + /** This is this object class' pointer to the global name table */ + Chain_Control *global_table; + #endif +} Objects_Information; + +/** + * The following is referenced to the node number of the local node. + */ +#if defined(RTEMS_MULTIPROCESSING) +SCORE_EXTERN uint16_t _Objects_Local_node; +#else +#define _Objects_Local_node ((uint16_t)1) +#endif + +/** + * The following is referenced to the number of nodes in the system. + */ +#if defined(RTEMS_MULTIPROCESSING) +SCORE_EXTERN uint16_t _Objects_Maximum_nodes; +#else +#define _Objects_Maximum_nodes 1 +#endif + +/** + * The following is the list of information blocks per API for each object + * class. From the ID, we can go to one of these information blocks, + * and obtain a pointer to the appropriate object control block. + */ +SCORE_EXTERN Objects_Information + **_Objects_Information_table[OBJECTS_APIS_LAST + 1]; + +/** + * This function extends an object class information record. + * + * @param[in] information points to an object class information block. + */ +void _Objects_Extend_information( + Objects_Information *information +); + +/** + * @brief Shrink an object class information record + * + * This function shrink an object class information record. + * The object's name and object space are released. The local_table + * etc block does not shrink. The InActive list needs to be scanned + * to find the objects are remove them. + * + * @param[in] information points to an object class information block. + */ +void _Objects_Shrink_information( + Objects_Information *information +); + +/** + * @brief Initialize object Information + * + * This function initializes an object class information record. + * SUPPORTS_GLOBAL is true if the object class supports global + * objects, and false otherwise. Maximum indicates the number + * of objects required in this class and size indicates the size + * in bytes of each control block for this object class. The + * name length and string designator are also set. In addition, + * the class may be a task, therefore this information is also included. + * + * @param[in] information points to an object class information block. + * @param[in] the_api indicates the API associated with this information block. + * @param[in] the_class indicates the class of object being managed + * by this information block. It is specific to @a the_api. + * @param[in] maximum is the maximum number of instances of this object + * class which may be concurrently active. + * @param[in] size is the size of the data structure for this class. + * @param[in] is_string is true if this object uses string style names. + * @param[in] maximum_name_length is the maximum length of object names. + */ +void _Objects_Initialize_information ( + Objects_Information *information, + Objects_APIs the_api, + uint16_t the_class, + uint32_t maximum, + uint16_t size, + bool is_string, + uint32_t maximum_name_length +#if defined(RTEMS_MULTIPROCESSING) + , + bool supports_global, + Objects_Thread_queue_Extract_callout extract +#endif +); + +/** + * @brief Object API Maximum Class + * + * This function returns the highest numeric value of a valid + * API for the specified @a api. + * + * @param[in] api is the API of interest + * + * @retval A positive integer on success and 0 otherwise. + */ +unsigned int _Objects_API_maximum_class( + uint32_t api +); + +/** + * @brief Allocate an object. + * + * This function allocates an object control block from + * the inactive chain of free object control blocks. + * + * @param[in] information points to an object class information block. + */ +Objects_Control *_Objects_Allocate( + Objects_Information *information +); + +/** + * @brief Free an object. + * + * This function frees an object control block to the + * inactive chain of free object control blocks. + * + * @param[in] information points to an object class information block. + * @param[in] the_object points to the object to deallocate. + */ +void _Objects_Free( + Objects_Information *information, + Objects_Control *the_object +); + +/** + * This function implements the common portion of the object + * identification directives. This directive returns the object + * id associated with name. If more than one object of this class + * is named name, then the object to which the id belongs is + * arbitrary. Node indicates the extent of the search for the + * id of the object named name. If the object class supports global + * objects, then the search can be limited to a particular node + * or allowed to encompass all nodes. + */ +typedef enum { + OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL, + OBJECTS_INVALID_NAME, + OBJECTS_INVALID_ADDRESS, + OBJECTS_INVALID_ID, + OBJECTS_INVALID_NODE +} Objects_Name_or_id_lookup_errors; + +/** + * This macro defines the first entry in the + * @ref Objects_Name_or_id_lookup_errors enumerated list. + */ +#define OBJECTS_NAME_ERRORS_FIRST OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL + +/** + * This macro defines the last entry in the + * @ref Objects_Name_or_id_lookup_errors enumerated list. + */ +#define OBJECTS_NAME_ERRORS_LAST OBJECTS_INVALID_NODE + +/** + * @brief Converts an object name to an Id. + * + * This method converts an object name to an Id. It performs a look up + * using the object information block for this object class. + * + * @param[in] information points to an object class information block. + * @param[in] name is the name of the object to find. + * @param[in] node is the set of nodes to search. + * @param[in] id will contain the Id if the search is successful. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a id will contain the Id of + * the requested object. + */ +Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32( + Objects_Information *information, + uint32_t name, + uint32_t node, + Objects_Id *id +); + +#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) +/** + * @brief Converts an object name to an Id. + * + * This method converts an object name to an Id. It performs a look up + * using the object information block for this object class. + * + * @param[in] information points to an object class information block. + * @param[in] name is the name of the object to find. + * @param[in] id will contain the Id if the search is successful. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a id will contain the Id of + * the requested object. + */ +Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string( + Objects_Information *information, + const char *name, + Objects_Id *id +); +#endif + +/** + * @brief Implements the common portion of the object Id to name directives. + * + * This function implements the common portion of the object Id + * to name directives. This function returns the name + * associated with object id. + * + * @param[in] id is the Id of the object whose name we are locating. + * @param[in] name will contain the name of the object, if found. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a name will contain the name of + * the requested object. + * + * @note This function currently does not support string names. + */ +Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( + Objects_Id id, + Objects_Name *name +); + +/** + * @brief Maps object ids to object control blocks. + * + * This function maps object ids to object control blocks. + * If id corresponds to a local object, then it returns + * the_object control pointer which maps to id and location + * is set to OBJECTS_LOCAL. If the object class supports global + * objects and the object id is global and resides on a remote + * node, then location is set to OBJECTS_REMOTE, and the_object + * is undefined. Otherwise, location is set to OBJECTS_ERROR + * and the_object is undefined. + * + * @param[in] information points to an object class information block. + * @param[in] id is the Id of the object whose name we are locating. + * @param[in] location will contain an indication of success or failure. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a id will contain the Id of + * the requested object. + * + * @note _Objects_Get returns with dispatching disabled for + * local and remote objects. _Objects_Get_isr_disable returns with + * dispatching disabled for remote objects and interrupts for local + * objects. + */ +Objects_Control *_Objects_Get ( + Objects_Information *information, + Objects_Id id, + Objects_Locations *location +); + +/** + * @brief Maps object ids to object control blocks. + * + * This function maps object ids to object control blocks. + * If id corresponds to a local object, then it returns + * the_object control pointer which maps to id and location + * is set to OBJECTS_LOCAL. If the object class supports global + * objects and the object id is global and resides on a remote + * node, then location is set to OBJECTS_REMOTE, and the_object + * is undefined. Otherwise, location is set to OBJECTS_ERROR + * and the_object is undefined. + * + * @param[in] information points to an object class information block. + * @param[in] id is the Id of the object whose name we are locating. + * @param[in] location will contain an indication of success or failure. + * @param[in] level is the interrupt level being turned. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a name will contain the name of + * the requested object. + * + * @note _Objects_Get returns with dispatching disabled for + * local and remote objects. _Objects_Get_isr_disable returns with + * dispatchng disabled for remote objects and interrupts for local + * objects. + */ +Objects_Control *_Objects_Get_isr_disable( + Objects_Information *information, + Objects_Id id, + Objects_Locations *location, + ISR_Level *level +); + +/** + * @brief Maps object ids to object control blocks. + * + * This function maps object ids to object control blocks. + * If id corresponds to a local object, then it returns + * the_object control pointer which maps to id and location + * is set to OBJECTS_LOCAL. If the object class supports global + * objects and the object id is global and resides on a remote + * node, then location is set to OBJECTS_REMOTE, and the_object + * is undefined. Otherwise, location is set to OBJECTS_ERROR + * and the_object is undefined. + * + * @param[in] information points to an object class information block. + * @param[in] id is the Id of the object whose name we are locating. + * @param[in] location will contain an indication of success or failure. + * + * @retval This method returns one of the values from the + * @ref Objects_Name_or_id_lookup_errors enumeration to indicate + * successful or failure. On success @a id will contain the Id of + * the requested object. + * + * @note _Objects_Get returns with dispatching disabled for + * local and remote objects. _Objects_Get_isr_disable returns with + * dispatching disabled for remote objects and interrupts for local + * objects. + */ +Objects_Control *_Objects_Get_no_protection( + Objects_Information *information, + Objects_Id id, + Objects_Locations *location +); + +/** + * Like @ref _Objects_Get, but is used to find "next" open object. + * + * @param[in] information points to an object class information block. + * @param[in] id is the Id of the object whose name we are locating. + * @param[in] location_p will contain an indication of success or failure. + * @param[in] next_id_p is the Id of the next object we will look at. + * + * @retval This method returns the pointer to the object located or + * NULL on error. + */ +Objects_Control *_Objects_Get_next( + Objects_Information *information, + Objects_Id id, + Objects_Locations *location_p, + Objects_Id *next_id_p +); + +/** + * @brief Get object information. + * + * This function return the information structure given + * an the API and Class. This can be done independent of + * the existence of any objects created by the API. + * + * @param[in] the_api indicates the API for the information we want + * @param[in] the_class indicates the Class for the information we want + * + * @retval This method returns a pointer to the Object Information Table + * for the class of objects which corresponds to this object ID. + */ +Objects_Information *_Objects_Get_information( + Objects_APIs the_api, + uint16_t the_class +); + +/** + * @brief Get information of an object from an ID. + * + * This function return the information structure given + * an @a id of an object. + * + * @param[in] id is the object ID to get the information from + * + * @retval This method returns a pointer to the Object Information Table + * for the class of objects which corresponds to this object ID. + */ +Objects_Information *_Objects_Get_information_id( + Objects_Id id +); + +/** + * @brief Gets object name in the form of a C string. + * + * This method objects the name of an object and returns its name + * in the form of a C string. It attempts to be careful about + * overflowing the user's string and about returning unprintable characters. + * + * @param[in] id is the object to obtain the name of + * @param[in] length indicates the length of the caller's buffer + * @param[in] name points a string which will be filled in. + * + * @retval This method returns @a name or NULL on error. @a *name will + * contain the name if successful. + */ +char *_Objects_Get_name_as_string( + Objects_Id id, + size_t length, + char *name +); + +/** + * @brief Set objects name. + * + * This method sets the object name to either a copy of a string + * or up to the first four characters of the string based upon + * whether this object class uses strings for names. + * + * @param[in] information points to the object information structure + * @param[in] the_object is the object to operate upon + * @param[in] name is a pointer to the name to use + * + * @retval If successful, true is returned. Otherwise false is returned. + */ +bool _Objects_Set_name( + Objects_Information *information, + Objects_Control *the_object, + const char *name +); + +/** + * @brief Removes object from namespace. + * + * This function removes @a the_object from the namespace. + * + * @param[in] information points to an Object Information Table. + * @param[in] the_object is a pointer to an object. + */ +void _Objects_Namespace_remove( + Objects_Information *information, + Objects_Control *the_object +); + +/** + * @brief Close object. + * + * This function removes the_object control pointer and object name + * in the Local Pointer and Local Name Tables. + * + * @param[in] information points to an Object Information Table + * @param[in] the_object is a pointer to an object + */ +void _Objects_Close( + Objects_Information *information, + Objects_Control *the_object +); + +/** + * @brief Returns the count of active objects. + * + * @param[in] information The object information table. + * + * @retval The count of active objects. + */ +Objects_Maximum _Objects_Active_count( + const Objects_Information *information +); + +/** + * This function returns true if the api is valid. + * + * @param[in] the_api is the api portion of an object ID. + * + * @return This method returns true if the specified api value is valid + * and false otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( + uint32_t the_api +) +{ + if ( !the_api || the_api > OBJECTS_APIS_LAST ) + return false; + return true; +} + +/** + * This function returns true if the node is of the local object, and + * false otherwise. + * + * @param[in] node is the node number and corresponds to the node number + * portion of an object ID. + * + * @return This method returns true if the specified node is the local node + * and false otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node( + uint32_t node +) +{ + return ( node == _Objects_Local_node ); +} + +/** + * This function returns true if the id is of a local object, and + * false otherwise. + * + * @param[in] id is an object ID + * + * @return This method returns true if the specified object Id is local + * and false otherwise. + * + * @note On a single processor configuration, this always returns true. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id( +#if defined(RTEMS_MULTIPROCESSING) + Objects_Id id +#else + Objects_Id id __attribute__((unused)) +#endif +) +{ +#if defined(RTEMS_MULTIPROCESSING) + return _Objects_Is_local_node( _Objects_Get_node(id) ); +#else + return true; +#endif +} + +/** + * This function returns true if left and right are equal, + * and false otherwise. + * + * @param[in] left is the Id on the left hand side of the comparison + * @param[in] right is the Id on the right hand side of the comparison + * + * @return This method returns true if the specified object IDs are equal + * and false otherwise. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal( + Objects_Id left, + Objects_Id right +) +{ + return ( left == right ); +} + +/** + * This function returns a pointer to the local_table object + * referenced by the index. + * + * @param[in] information points to an Object Information Table + * @param[in] index is the index of the object the caller wants to access + * + * @return This method returns a pointer to a local object or NULL if the + * index is invalid and RTEMS_DEBUG is enabled. + */ +RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( + Objects_Information *information, + uint16_t index +) +{ + /* + * This routine is ONLY to be called from places in the code + * where the Id is known to be good. Therefore, this should NOT + * occur in normal situations. + */ + #if defined(RTEMS_DEBUG) + if ( index > information->maximum ) + return NULL; + #endif + return information->local_table[ index ]; +} + +/** + * This function sets the pointer to the local_table object + * referenced by the index. + * + * @param[in] information points to an Object Information Table + * @param[in] index is the index of the object the caller wants to access + * @param[in] the_object is the local object pointer + * + * @note This routine is ONLY to be called in places where the + * index portion of the Id is known to be good. This is + * OK since it is normally called from object create/init + * or delete/destroy operations. + */ + +RTEMS_INLINE_ROUTINE void _Objects_Set_local_object( + Objects_Information *information, + uint32_t index, + Objects_Control *the_object +) +{ + /* + * This routine is ONLY to be called from places in the code + * where the Id is known to be good. Therefore, this should NOT + * occur in normal situations. + */ + #if defined(RTEMS_DEBUG) + if ( index > information->maximum ) + return; + #endif + + information->local_table[ index ] = the_object; +} + +/** + * This function sets the pointer to the local_table object + * referenced by the index to a NULL so the object Id is invalid + * after this call. + * + * @param[in] information points to an Object Information Table + * @param[in] the_object is the local object pointer + * + * @note This routine is ONLY to be called in places where the + * index portion of the Id is known to be good. This is + * OK since it is normally called from object create/init + * or delete/destroy operations. + */ + +RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id( + Objects_Information *information, + Objects_Control *the_object +) +{ + _Objects_Set_local_object( + information, + _Objects_Get_index( the_object->id ), + NULL + ); +} + +/** + * This function places the_object control pointer and object name + * in the Local Pointer and Local Name Tables, respectively. + * + * @param[in] information points to an Object Information Table + * @param[in] the_object is a pointer to an object + * @param[in] name is the name of the object to make accessible + */ +RTEMS_INLINE_ROUTINE void _Objects_Open( + Objects_Information *information, + Objects_Control *the_object, + Objects_Name name +) +{ + _Objects_Set_local_object( + information, + _Objects_Get_index( the_object->id ), + the_object + ); + + the_object->name = name; +} + +/** + * This function places the_object control pointer and object name + * in the Local Pointer and Local Name Tables, respectively. + * + * @param[in] information points to an Object Information Table + * @param[in] the_object is a pointer to an object + * @param[in] name is the name of the object to make accessible + */ +RTEMS_INLINE_ROUTINE void _Objects_Open_u32( + Objects_Information *information, + Objects_Control *the_object, + uint32_t name +) +{ + _Objects_Set_local_object( + information, + _Objects_Get_index( the_object->id ), + the_object + ); + + /* ASSERT: information->is_string == false */ + the_object->name.name_u32 = name; +} + +/** + * This function places the_object control pointer and object name + * in the Local Pointer and Local Name Tables, respectively. + * + * @param[in] information points to an Object Information Table + * @param[in] the_object is a pointer to an object + * @param[in] name is the name of the object to make accessible + */ +RTEMS_INLINE_ROUTINE void _Objects_Open_string( + Objects_Information *information, + Objects_Control *the_object, + const char *name +) +{ + _Objects_Set_local_object( + information, + _Objects_Get_index( the_object->id ), + the_object + ); + + #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) + /* ASSERT: information->is_string */ + the_object->name.name_p = name; + #endif +} + +/** + * Returns if the object maximum specifies unlimited objects. + * + * @param[in] maximum The object maximum specification. + * + * @retval true Unlimited objects are available. + * @retval false The object count is fixed. + */ +RTEMS_INLINE_ROUTINE bool _Objects_Is_unlimited( uint32_t maximum ) +{ + return (maximum & OBJECTS_UNLIMITED_OBJECTS) != 0; +} + +/* + * We cannot use an inline function for this since it may be evaluated at + * compile time. + */ +#define _Objects_Maximum_per_allocation( maximum ) \ + ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS)) + +/** + * @brief Puts back an object obtained with _Objects_Get(). + * + * This function decrements the thread dispatch disable level. The + * _Thread_Dispatch() is called if the level reaches zero. + */ +RTEMS_INLINE_ROUTINE void _Objects_Put( + Objects_Control *the_object +) +{ + (void) the_object; + _Thread_Enable_dispatch(); +} + +/** + * @brief Puts back an object obtained with _Objects_Get(). + * + * This function decrements the thread dispatch disable level. The + * _Thread_Dispatch() is not called if the level reaches zero, thus a thread + * dispatch will not take place immediately on the current processor. + */ +RTEMS_INLINE_ROUTINE void _Objects_Put_without_thread_dispatch( + Objects_Control *the_object +) +{ + (void) the_object; + _Thread_Unnest_dispatch(); +} + +/** + * @brief Puts back an object obtained with _Objects_Get_isr_disable(). + */ +RTEMS_INLINE_ROUTINE void _Objects_Put_for_get_isr_disable( + Objects_Control *the_object +) +{ + (void) the_object; +#if defined(RTEMS_SMP) + _Thread_Enable_dispatch(); +#endif +} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#if defined(RTEMS_MULTIPROCESSING) +#include <rtems/score/objectmp.h> +#endif + + +#endif +/* end of include file */ diff --git a/cpukit/score/include/rtems/score/schedulerpriorityimpl.h b/cpukit/score/include/rtems/score/schedulerpriorityimpl.h index 6215015102..8a8917ca1b 100644 --- a/cpukit/score/include/rtems/score/schedulerpriorityimpl.h +++ b/cpukit/score/include/rtems/score/schedulerpriorityimpl.h @@ -23,6 +23,7 @@ #include <rtems/score/schedulerpriority.h> #include <rtems/score/chainimpl.h> #include <rtems/score/prioritybitmapimpl.h> +#include <rtems/score/thread.h> #include <rtems/score/wkspace.h> #ifdef __cplusplus diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h index 339ccd806e..0496a7a802 100644 --- a/cpukit/score/include/rtems/score/threadimpl.h +++ b/cpukit/score/include/rtems/score/threadimpl.h @@ -20,6 +20,7 @@ #define _RTEMS_SCORE_THREADIMPL_H #include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/statesimpl.h> #ifdef __cplusplus diff --git a/cpukit/score/inline/rtems/score/object.inl b/cpukit/score/inline/rtems/score/object.inl deleted file mode 100644 index bab5f984e3..0000000000 --- a/cpukit/score/inline/rtems/score/object.inl +++ /dev/null @@ -1,421 +0,0 @@ -/** - * @file - * - * @brief Inlined Routines in the Object Handler - * - * This include file contains the static inline implementation of all - * of the inlined routines in the Object Handler. - */ - -/* - * COPYRIGHT (c) 1989-2011. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.com/license/LICENSE. - */ - -#ifndef _RTEMS_SCORE_OBJECT_H -# error "Never use <rtems/score/object.inl> directly; include <rtems/score/object.h> instead." -#endif - -#ifndef _RTEMS_SCORE_OBJECT_INL -#define _RTEMS_SCORE_OBJECT_INL - -#include <rtems/score/threaddispatch.h> - -/** - * This function builds an object's id from the processor node and index - * values specified. - * - * @param[in] the_api indicates the API associated with this Id. - * @param[in] the_class indicates the class of object. - * It is specific to @a the_api. - * @param[in] node is the node where this object resides. - * @param[in] index is the instance number of this object. - * - * @return This method returns an object Id constructed from the arguments. - */ -RTEMS_INLINE_ROUTINE Objects_Id _Objects_Build_id( - Objects_APIs the_api, - uint32_t the_class, - uint32_t node, - uint32_t index -) -{ - return (( (Objects_Id) the_api ) << OBJECTS_API_START_BIT) | - (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) | - #if !defined(RTEMS_USE_16_BIT_OBJECT) - (( (Objects_Id) node ) << OBJECTS_NODE_START_BIT) | - #endif - (( (Objects_Id) index ) << OBJECTS_INDEX_START_BIT); -} - -/** - * This function returns the API portion of the ID. - * - * @param[in] id is the object Id to be processed. - * - * @return This method returns an object Id constructed from the arguments. - */ -RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API( - Objects_Id id -) -{ - return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS); -} - -/** - * This function returns the class portion of the ID. - * - * @param[in] id is the object Id to be processed - */ -RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class( - Objects_Id id -) -{ - return (uint32_t) - ((id >> OBJECTS_CLASS_START_BIT) & OBJECTS_CLASS_VALID_BITS); -} - -/** - * This function returns the node portion of the ID. - * - * @param[in] id is the object Id to be processed - * - * @return This method returns the node portion of an object ID. - */ -RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node( - Objects_Id id -) -{ - /* - * If using 16-bit Ids, then there is no node field and it MUST - * be a single processor system. - */ - #if defined(RTEMS_USE_16_BIT_OBJECT) - return 1; - #else - return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS; - #endif -} - -/** - * This function returns the index portion of the ID. - * - * @param[in] id is the Id to be processed - * - * @return This method returns the class portion of the specified object ID. - */ -RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index( - Objects_Id id -) -{ - return - (Objects_Maximum)((id >> OBJECTS_INDEX_START_BIT) & - OBJECTS_INDEX_VALID_BITS); -} - -/** - * This function returns true if the api is valid. - * - * @param[in] the_api is the api portion of an object ID. - * - * @return This method returns true if the specified api value is valid - * and false otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( - uint32_t the_api -) -{ - if ( !the_api || the_api > OBJECTS_APIS_LAST ) - return false; - return true; -} - -/** - * This function returns true if the node is of the local object, and - * false otherwise. - * - * @param[in] node is the node number and corresponds to the node number - * portion of an object ID. - * - * @return This method returns true if the specified node is the local node - * and false otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node( - uint32_t node -) -{ - return ( node == _Objects_Local_node ); -} - -/** - * This function returns true if the id is of a local object, and - * false otherwise. - * - * @param[in] id is an object ID - * - * @return This method returns true if the specified object Id is local - * and false otherwise. - * - * @note On a single processor configuration, this always returns true. - */ -RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id( -#if defined(RTEMS_MULTIPROCESSING) - Objects_Id id -#else - Objects_Id id __attribute__((unused)) -#endif -) -{ -#if defined(RTEMS_MULTIPROCESSING) - return _Objects_Is_local_node( _Objects_Get_node(id) ); -#else - return true; -#endif -} - -/** - * This function returns true if left and right are equal, - * and false otherwise. - * - * @param[in] left is the Id on the left hand side of the comparison - * @param[in] right is the Id on the right hand side of the comparison - * - * @return This method returns true if the specified object IDs are equal - * and false otherwise. - */ -RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal( - Objects_Id left, - Objects_Id right -) -{ - return ( left == right ); -} - -/** - * This function returns a pointer to the local_table object - * referenced by the index. - * - * @param[in] information points to an Object Information Table - * @param[in] index is the index of the object the caller wants to access - * - * @return This method returns a pointer to a local object or NULL if the - * index is invalid and RTEMS_DEBUG is enabled. - */ -RTEMS_INLINE_ROUTINE Objects_Control *_Objects_Get_local_object( - Objects_Information *information, - uint16_t index -) -{ - /* - * This routine is ONLY to be called from places in the code - * where the Id is known to be good. Therefore, this should NOT - * occur in normal situations. - */ - #if defined(RTEMS_DEBUG) - if ( index > information->maximum ) - return NULL; - #endif - return information->local_table[ index ]; -} - -/** - * This function sets the pointer to the local_table object - * referenced by the index. - * - * @param[in] information points to an Object Information Table - * @param[in] index is the index of the object the caller wants to access - * @param[in] the_object is the local object pointer - * - * @note This routine is ONLY to be called in places where the - * index portion of the Id is known to be good. This is - * OK since it is normally called from object create/init - * or delete/destroy operations. - */ - -RTEMS_INLINE_ROUTINE void _Objects_Set_local_object( - Objects_Information *information, - uint32_t index, - Objects_Control *the_object -) -{ - /* - * This routine is ONLY to be called from places in the code - * where the Id is known to be good. Therefore, this should NOT - * occur in normal situations. - */ - #if defined(RTEMS_DEBUG) - if ( index > information->maximum ) - return; - #endif - - information->local_table[ index ] = the_object; -} - -/** - * This function sets the pointer to the local_table object - * referenced by the index to a NULL so the object Id is invalid - * after this call. - * - * @param[in] information points to an Object Information Table - * @param[in] the_object is the local object pointer - * - * @note This routine is ONLY to be called in places where the - * index portion of the Id is known to be good. This is - * OK since it is normally called from object create/init - * or delete/destroy operations. - */ - -RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id( - Objects_Information *information, - Objects_Control *the_object -) -{ - _Objects_Set_local_object( - information, - _Objects_Get_index( the_object->id ), - NULL - ); -} - -/** - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - * @param[in] information points to an Object Information Table - * @param[in] the_object is a pointer to an object - * @param[in] name is the name of the object to make accessible - */ -RTEMS_INLINE_ROUTINE void _Objects_Open( - Objects_Information *information, - Objects_Control *the_object, - Objects_Name name -) -{ - _Objects_Set_local_object( - information, - _Objects_Get_index( the_object->id ), - the_object - ); - - the_object->name = name; -} - -/** - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - * @param[in] information points to an Object Information Table - * @param[in] the_object is a pointer to an object - * @param[in] name is the name of the object to make accessible - */ -RTEMS_INLINE_ROUTINE void _Objects_Open_u32( - Objects_Information *information, - Objects_Control *the_object, - uint32_t name -) -{ - _Objects_Set_local_object( - information, - _Objects_Get_index( the_object->id ), - the_object - ); - - /* ASSERT: information->is_string == false */ - the_object->name.name_u32 = name; -} - -/** - * This function places the_object control pointer and object name - * in the Local Pointer and Local Name Tables, respectively. - * - * @param[in] information points to an Object Information Table - * @param[in] the_object is a pointer to an object - * @param[in] name is the name of the object to make accessible - */ -RTEMS_INLINE_ROUTINE void _Objects_Open_string( - Objects_Information *information, - Objects_Control *the_object, - const char *name -) -{ - _Objects_Set_local_object( - information, - _Objects_Get_index( the_object->id ), - the_object - ); - - #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) - /* ASSERT: information->is_string */ - the_object->name.name_p = name; - #endif -} - -/** - * Returns if the object maximum specifies unlimited objects. - * - * @param[in] maximum The object maximum specification. - * - * @retval true Unlimited objects are available. - * @retval false The object count is fixed. - */ -RTEMS_INLINE_ROUTINE bool _Objects_Is_unlimited( uint32_t maximum ) -{ - return (maximum & OBJECTS_UNLIMITED_OBJECTS) != 0; -} - -/* - * We cannot use an inline function for this since it may be evaluated at - * compile time. - */ -#define _Objects_Maximum_per_allocation( maximum ) \ - ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS)) - -#endif - -/** - * @brief Puts back an object obtained with _Objects_Get(). - * - * This function decrements the thread dispatch disable level. The - * _Thread_Dispatch() is called if the level reaches zero. - */ -RTEMS_INLINE_ROUTINE void _Objects_Put( - Objects_Control *the_object -) -{ - (void) the_object; - _Thread_Enable_dispatch(); -} - -/** - * @brief Puts back an object obtained with _Objects_Get(). - * - * This function decrements the thread dispatch disable level. The - * _Thread_Dispatch() is not called if the level reaches zero, thus a thread - * dispatch will not take place immediately on the current processor. - */ -RTEMS_INLINE_ROUTINE void _Objects_Put_without_thread_dispatch( - Objects_Control *the_object -) -{ - (void) the_object; - _Thread_Unnest_dispatch(); -} - -/** - * @brief Puts back an object obtained with _Objects_Get_isr_disable(). - */ -RTEMS_INLINE_ROUTINE void _Objects_Put_for_get_isr_disable( - Objects_Control *the_object -) -{ - (void) the_object; -#if defined(RTEMS_SMP) - _Thread_Enable_dispatch(); -#endif -} - -/* end of include file */ diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am index 2ba6c86f73..42e2dbf828 100644 --- a/cpukit/score/preinstall.am +++ b/cpukit/score/preinstall.am @@ -131,6 +131,10 @@ $(PROJECT_INCLUDE)/rtems/score/object.h: include/rtems/score/object.h $(PROJECT_ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/object.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/object.h +$(PROJECT_INCLUDE)/rtems/score/objectimpl.h: include/rtems/score/objectimpl.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/objectimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/objectimpl.h + $(PROJECT_INCLUDE)/rtems/score/percpu.h: include/rtems/score/percpu.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/percpu.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/percpu.h @@ -335,10 +339,6 @@ $(PROJECT_INCLUDE)/rtems/score/schedulersimplesmp.h: include/rtems/score/schedul $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/schedulersimplesmp.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/schedulersimplesmp.h endif -$(PROJECT_INCLUDE)/rtems/score/object.inl: inline/rtems/score/object.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/object.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/object.inl - $(PROJECT_INCLUDE)/rtems/score/tod.inl: inline/rtems/score/tod.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tod.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tod.inl diff --git a/cpukit/score/src/apimutex.c b/cpukit/score/src/apimutex.c index bc72c91e7c..555292d539 100644 --- a/cpukit/score/src/apimutex.c +++ b/cpukit/score/src/apimutex.c @@ -1,7 +1,7 @@ /** * @file - * - * @brief Initialization for the API Mutexe Handler. + * + * @brief Initialization and Allocation for API Mutex Handler * * @ingroup ScoreAPIMutex */ @@ -19,8 +19,11 @@ #include "config.h" #endif -#include <rtems/system.h> #include <rtems/score/apimutex.h> +#include <rtems/score/coremuteximpl.h> +#include <rtems/score/objectimpl.h> + +static Objects_Information _API_Mutex_Information; void _API_Mutex_Initialization( uint32_t maximum_mutexes @@ -41,3 +44,25 @@ void _API_Mutex_Initialization( #endif ); } + +void _API_Mutex_Allocate( + API_Mutex_Control **the_mutex +) +{ + API_Mutex_Control *mutex; + + CORE_mutex_Attributes attr = { + CORE_MUTEX_NESTING_ACQUIRES, + false, + CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, + 0 + }; + + mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); + + _CORE_mutex_Initialize( &mutex->Mutex, NULL, &attr, CORE_MUTEX_UNLOCKED ); + + _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); + + *the_mutex = mutex; +} diff --git a/cpukit/score/src/apimutexallocate.c b/cpukit/score/src/apimutexallocate.c deleted file mode 100644 index c57cc66e6b..0000000000 --- a/cpukit/score/src/apimutexallocate.c +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file - * - * @brief Allocates an API Mutex from the Inactive Set - * @ingroup ScoreAPIMutex - */ - -/* - * COPYRIGHT (c) 1989-2007. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.com/license/LICENSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <rtems/system.h> -#include <rtems/score/apimutex.h> -#include <rtems/score/coremuteximpl.h> - -void _API_Mutex_Allocate( - API_Mutex_Control **the_mutex -) -{ - API_Mutex_Control *mutex; - - CORE_mutex_Attributes attr = { - CORE_MUTEX_NESTING_ACQUIRES, - false, - CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT, - 0 - }; - - mutex = (API_Mutex_Control *) _Objects_Allocate( &_API_Mutex_Information ); - - _CORE_mutex_Initialize( &mutex->Mutex, NULL, &attr, CORE_MUTEX_UNLOCKED ); - - _Objects_Open_u32( &_API_Mutex_Information, &mutex->Object, 1 ); - - *the_mutex = mutex; -} diff --git a/cpukit/score/src/corebarrierrelease.c b/cpukit/score/src/corebarrierrelease.c index 818d1718cb..f39e72d9fa 100644 --- a/cpukit/score/src/corebarrierrelease.c +++ b/cpukit/score/src/corebarrierrelease.c @@ -20,6 +20,7 @@ #endif #include <rtems/score/corebarrierimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/threadqimpl.h> uint32_t _CORE_barrier_Release( diff --git a/cpukit/score/src/coremsgbroadcast.c b/cpukit/score/src/coremsgbroadcast.c index d860eb11a8..595305cbb1 100644 --- a/cpukit/score/src/coremsgbroadcast.c +++ b/cpukit/score/src/coremsgbroadcast.c @@ -18,13 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/chain.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> CORE_message_queue_Status _CORE_message_queue_Broadcast( CORE_message_queue_Control *the_message_queue, diff --git a/cpukit/score/src/coremsgclose.c b/cpukit/score/src/coremsgclose.c index 946a4f5653..9f63e1314b 100644 --- a/cpukit/score/src/coremsgclose.c +++ b/cpukit/score/src/coremsgclose.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsgflush.c b/cpukit/score/src/coremsgflush.c index 169b1472f7..c6aefeb166 100644 --- a/cpukit/score/src/coremsgflush.c +++ b/cpukit/score/src/coremsgflush.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsgflushsupp.c b/cpukit/score/src/coremsgflushsupp.c index 436e77f2c6..0fb4718298 100644 --- a/cpukit/score/src/coremsgflushsupp.c +++ b/cpukit/score/src/coremsgflushsupp.c @@ -22,7 +22,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsgflushwait.c b/cpukit/score/src/coremsgflushwait.c index 4355239497..ab238509b4 100644 --- a/cpukit/score/src/coremsgflushwait.c +++ b/cpukit/score/src/coremsgflushwait.c @@ -22,7 +22,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsginsert.c b/cpukit/score/src/coremsginsert.c index fca5f07150..509512e0fd 100644 --- a/cpukit/score/src/coremsginsert.c +++ b/cpukit/score/src/coremsginsert.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsgseize.c b/cpukit/score/src/coremsgseize.c index 24d6f573a2..b3280bf755 100644 --- a/cpukit/score/src/coremsgseize.c +++ b/cpukit/score/src/coremsgseize.c @@ -21,7 +21,6 @@ #include <rtems/system.h> #include <rtems/score/chain.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> #include <rtems/score/thread.h> #include <rtems/score/wkspace.h> diff --git a/cpukit/score/src/coremsgsubmit.c b/cpukit/score/src/coremsgsubmit.c index 09982dc2a5..b0b4833640 100644 --- a/cpukit/score/src/coremsgsubmit.c +++ b/cpukit/score/src/coremsgsubmit.c @@ -19,12 +19,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/chain.h> -#include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/coremsgimpl.h> -#include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> +#include <rtems/score/isr.h> #include <rtems/score/wkspace.h> CORE_message_queue_Status _CORE_message_queue_Submit( diff --git a/cpukit/score/src/coresemsurrender.c b/cpukit/score/src/coresemsurrender.c index 58a39299a2..caae4b15c9 100644 --- a/cpukit/score/src/coresemsurrender.c +++ b/cpukit/score/src/coresemsurrender.c @@ -19,10 +19,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/isr.h> #include <rtems/score/coresemimpl.h> -#include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> CORE_semaphore_Status _CORE_semaphore_Surrender( CORE_semaphore_Control *the_semaphore, diff --git a/cpukit/score/src/coretod.c b/cpukit/score/src/coretod.c index 0cde95bbbe..2f664b4b45 100644 --- a/cpukit/score/src/coretod.c +++ b/cpukit/score/src/coretod.c @@ -19,7 +19,6 @@ #endif #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> #include <rtems/score/watchdog.h> diff --git a/cpukit/score/src/coretodset.c b/cpukit/score/src/coretodset.c index 3bf5e52de5..5c5e9c452c 100644 --- a/cpukit/score/src/coretodset.c +++ b/cpukit/score/src/coretodset.c @@ -19,7 +19,6 @@ #endif #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/threaddispatch.h> #include <rtems/score/timestamp.h> diff --git a/cpukit/score/src/coretodtickle.c b/cpukit/score/src/coretodtickle.c index 4f53befe8d..d55c054a82 100644 --- a/cpukit/score/src/coretodtickle.c +++ b/cpukit/score/src/coretodtickle.c @@ -19,7 +19,6 @@ #endif #include <rtems/system.h> -#include <rtems/score/object.h> #include <rtems/score/thread.h> #include <rtems/score/timestamp.h> #include <rtems/score/tod.h> diff --git a/cpukit/score/src/iterateoverthreads.c b/cpukit/score/src/iterateoverthreads.c index 78e769bb00..de2c5befde 100644 --- a/cpukit/score/src/iterateoverthreads.c +++ b/cpukit/score/src/iterateoverthreads.c @@ -18,8 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> #include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) { diff --git a/cpukit/score/src/objectactivecount.c b/cpukit/score/src/objectactivecount.c index 2cfa56aefb..3abc27fa9e 100644 --- a/cpukit/score/src/objectactivecount.c +++ b/cpukit/score/src/objectactivecount.c @@ -16,7 +16,7 @@ #include "config.h" #endif -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/chainimpl.h> Objects_Maximum _Objects_Active_count( diff --git a/cpukit/score/src/objectallocate.c b/cpukit/score/src/objectallocate.c index 6d1818229d..d07b7b90e3 100644 --- a/cpukit/score/src/objectallocate.c +++ b/cpukit/score/src/objectallocate.c @@ -18,16 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/chainimpl.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> /* #define RTEMS_DEBUG_OBJECT_ALLOCATION */ diff --git a/cpukit/score/src/objectapimaximumclass.c b/cpukit/score/src/objectapimaximumclass.c index 4cd54d8efe..9d718fc576 100644 --- a/cpukit/score/src/objectapimaximumclass.c +++ b/cpukit/score/src/objectapimaximumclass.c @@ -18,8 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> unsigned int _Objects_API_maximum_class( uint32_t api diff --git a/cpukit/score/src/objectclose.c b/cpukit/score/src/objectclose.c index e669504782..55d76b0782 100644 --- a/cpukit/score/src/objectclose.c +++ b/cpukit/score/src/objectclose.c @@ -18,9 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/objectimpl.h> void _Objects_Close( Objects_Information *information, diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c index 96b26f3f3a..c9f874ea89 100644 --- a/cpukit/score/src/objectextendinformation.c +++ b/cpukit/score/src/objectextendinformation.c @@ -18,16 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/address.h> #include <rtems/score/chainimpl.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> +#include <rtems/score/isrlevel.h> #include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> #include <string.h> /* for memcpy() */ diff --git a/cpukit/score/src/objectfree.c b/cpukit/score/src/objectfree.c index d6861118c9..0bfffb9d84 100644 --- a/cpukit/score/src/objectfree.c +++ b/cpukit/score/src/objectfree.c @@ -18,16 +18,8 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/chainimpl.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> void _Objects_Free( Objects_Information *information, diff --git a/cpukit/score/src/objectget.c b/cpukit/score/src/objectget.c index 5d05cc83a2..2da1295697 100644 --- a/cpukit/score/src/objectget.c +++ b/cpukit/score/src/objectget.c @@ -18,16 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <rtems/score/objectimpl.h> Objects_Control *_Objects_Get( Objects_Information *information, diff --git a/cpukit/score/src/objectgetinfo.c b/cpukit/score/src/objectgetinfo.c index 3955acc3ca..8b4a26b07b 100644 --- a/cpukit/score/src/objectgetinfo.c +++ b/cpukit/score/src/objectgetinfo.c @@ -18,10 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/objectimpl.h> Objects_Information *_Objects_Get_information( Objects_APIs the_api, diff --git a/cpukit/score/src/objectgetinfoid.c b/cpukit/score/src/objectgetinfoid.c index b6b13534b4..29e02bcc0f 100644 --- a/cpukit/score/src/objectgetinfoid.c +++ b/cpukit/score/src/objectgetinfoid.c @@ -19,9 +19,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> Objects_Information *_Objects_Get_information_id( Objects_Id id diff --git a/cpukit/score/src/objectgetisr.c b/cpukit/score/src/objectgetisr.c index a7073842ac..651037feda 100644 --- a/cpukit/score/src/objectgetisr.c +++ b/cpukit/score/src/objectgetisr.c @@ -18,16 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <rtems/score/objectimpl.h> Objects_Control *_Objects_Get_isr_disable( Objects_Information *information, diff --git a/cpukit/score/src/objectgetnameasstring.c b/cpukit/score/src/objectgetnameasstring.c index 2e2c18ee6b..c7906a08b6 100644 --- a/cpukit/score/src/objectgetnameasstring.c +++ b/cpukit/score/src/objectgetnameasstring.c @@ -19,7 +19,6 @@ #include "config.h" #endif -#include <rtems/score/object.h> #include <rtems/score/threadimpl.h> #include <ctype.h> diff --git a/cpukit/score/src/objectgetnext.c b/cpukit/score/src/objectgetnext.c index 2a0ef43488..1ea6a58950 100644 --- a/cpukit/score/src/objectgetnext.c +++ b/cpukit/score/src/objectgetnext.c @@ -18,16 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <rtems/score/objectimpl.h> /* * _Objects_Get_next diff --git a/cpukit/score/src/objectgetnoprotection.c b/cpukit/score/src/objectgetnoprotection.c index e2083b4d09..4d376cde97 100644 --- a/cpukit/score/src/objectgetnoprotection.c +++ b/cpukit/score/src/objectgetnoprotection.c @@ -18,16 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <rtems/score/objectimpl.h> Objects_Control *_Objects_Get_no_protection( Objects_Information *information, diff --git a/cpukit/score/src/objectidtoname.c b/cpukit/score/src/objectidtoname.c index 54e4228b28..9aa0f10496 100644 --- a/cpukit/score/src/objectidtoname.c +++ b/cpukit/score/src/objectidtoname.c @@ -18,7 +18,6 @@ #include "config.h" #endif -#include <rtems/score/object.h> #include <rtems/score/threadimpl.h> Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( diff --git a/cpukit/score/src/objectinitializeinformation.c b/cpukit/score/src/objectinitializeinformation.c index 82c488a13f..a791bd7220 100644 --- a/cpukit/score/src/objectinitializeinformation.c +++ b/cpukit/score/src/objectinitializeinformation.c @@ -18,17 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/chainimpl.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> +#include <rtems/score/interr.h> #include <rtems/score/sysstate.h> -#include <rtems/score/isr.h> +#include <rtems/score/wkspace.h> void _Objects_Initialize_information( Objects_Information *information, diff --git a/cpukit/score/src/objectmp.c b/cpukit/score/src/objectmp.c index 44319b9363..12daae6c91 100644 --- a/cpukit/score/src/objectmp.c +++ b/cpukit/score/src/objectmp.c @@ -18,12 +18,11 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/config.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/interr.h> -#include <rtems/score/object.h> +#include <rtems/score/threaddispatch.h> #include <rtems/score/wkspace.h> -#include <rtems/score/thread.h> +#include <rtems/config.h> void _Objects_MP_Handler_early_initialization(void) { diff --git a/cpukit/score/src/objectnamespaceremove.c b/cpukit/score/src/objectnamespaceremove.c index cd618457a4..3db39d7854 100644 --- a/cpukit/score/src/objectnamespaceremove.c +++ b/cpukit/score/src/objectnamespaceremove.c @@ -19,8 +19,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/wkspace.h> void _Objects_Namespace_remove( diff --git a/cpukit/score/src/objectnametoid.c b/cpukit/score/src/objectnametoid.c index bf3bb4c6d6..6d35e7cabe 100644 --- a/cpukit/score/src/objectnametoid.c +++ b/cpukit/score/src/objectnametoid.c @@ -18,16 +18,7 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <rtems/score/objectimpl.h> Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32( Objects_Information *information, diff --git a/cpukit/score/src/objectnametoidstring.c b/cpukit/score/src/objectnametoidstring.c index 4023635855..b27ee8a724 100644 --- a/cpukit/score/src/objectnametoidstring.c +++ b/cpukit/score/src/objectnametoidstring.c @@ -18,18 +18,9 @@ #include "config.h" #endif -#include <string.h> +#include <rtems/score/objectimpl.h> -#include <rtems/system.h> -#include <rtems/score/address.h> -#include <rtems/score/chain.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> +#include <string.h> #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES) Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string( diff --git a/cpukit/score/src/objectsetname.c b/cpukit/score/src/objectsetname.c index 2bc86cf553..995fa80bff 100644 --- a/cpukit/score/src/objectsetname.c +++ b/cpukit/score/src/objectsetname.c @@ -18,13 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/object.h> -#include <rtems/score/thread.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/wkspace.h> -#include <stdlib.h> -#include <ctype.h> -#include <inttypes.h> + #include <string.h> bool _Objects_Set_name( diff --git a/cpukit/score/src/objectshrinkinformation.c b/cpukit/score/src/objectshrinkinformation.c index 686d0f2a5c..453c76c10f 100644 --- a/cpukit/score/src/objectshrinkinformation.c +++ b/cpukit/score/src/objectshrinkinformation.c @@ -18,16 +18,9 @@ #include "config.h" #endif -#include <rtems/system.h> -#include <rtems/score/address.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/chainimpl.h> -#include <rtems/score/object.h> -#if defined(RTEMS_MULTIPROCESSING) -#include <rtems/score/objectmp.h> -#endif -#include <rtems/score/thread.h> #include <rtems/score/wkspace.h> -#include <rtems/score/isr.h> void _Objects_Shrink_information( Objects_Information *information diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c index d15f4b1862..f1c971e33f 100644 --- a/cpukit/score/src/threaddispatchdisablelevel.c +++ b/cpukit/score/src/threaddispatchdisablelevel.c @@ -20,7 +20,6 @@ #include <rtems/score/context.h> #include <rtems/score/interr.h> #include <rtems/score/isr.h> -#include <rtems/score/object.h> #include <rtems/score/priority.h> #include <rtems/score/threaddispatch.h> diff --git a/cpukit/score/src/threadqextractwithproxy.c b/cpukit/score/src/threadqextractwithproxy.c index 6a3e891acf..221fd71706 100644 --- a/cpukit/score/src/threadqextractwithproxy.c +++ b/cpukit/score/src/threadqextractwithproxy.c @@ -24,6 +24,7 @@ #endif #include <rtems/score/threadqimpl.h> +#include <rtems/score/objectimpl.h> #include <rtems/score/statesimpl.h> bool _Thread_queue_Extract_with_proxy( diff --git a/cpukit/score/src/threadqflush.c b/cpukit/score/src/threadqflush.c index a8288afc6c..1e1501e7b8 100644 --- a/cpukit/score/src/threadqflush.c +++ b/cpukit/score/src/threadqflush.c @@ -19,7 +19,7 @@ #endif #include <rtems/score/threadqimpl.h> -#include <rtems/score/object.h> +#include <rtems/score/objectimpl.h> void _Thread_queue_Flush( Thread_queue_Control *the_thread_queue, diff --git a/testsuites/psxtests/psxobj01/init.c b/testsuites/psxtests/psxobj01/init.c index 6bddee753b..b3f4e85209 100644 --- a/testsuites/psxtests/psxobj01/init.c +++ b/testsuites/psxtests/psxobj01/init.c @@ -16,9 +16,10 @@ #include "config.h" #endif -#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ #include <tmacros.h> +#include <rtems/score/objectimpl.h> + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument ignored); diff --git a/testsuites/samples/unlimited/test1.c b/testsuites/samples/unlimited/test1.c index 1d0c9bd104..2102285526 100644 --- a/testsuites/samples/unlimited/test1.c +++ b/testsuites/samples/unlimited/test1.c @@ -25,7 +25,6 @@ #include "system.h" #include "tmacros.h" -#include <rtems/score/object.h> void test1() { diff --git a/testsuites/sptests/sp41/init.c b/testsuites/sptests/sp41/init.c index cadf7d58b6..9aa007a6f5 100644 --- a/testsuites/sptests/sp41/init.c +++ b/testsuites/sptests/sp41/init.c @@ -11,9 +11,10 @@ #include "config.h" #endif -#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__ #include <tmacros.h> +#include <rtems/score/objectimpl.h> + /* forward declarations to avoid warnings */ rtems_task Init(rtems_task_argument argument); void iterator(Thread_Control *thread); |