[rtems commit] score: Create object implementation header
Sebastian Huber
sebh at rtems.org
Fri Jul 26 09:51:53 UTC 2013
Module: rtems
Branch: master
Commit: a2e3f33f39e6898c2e2886216fe671b29a93d643
Changeset: http://git.rtems.org/rtems/commit/?id=a2e3f33f39e6898c2e2886216fe671b29a93d643
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Wed Jul 24 13:50:54 2013 +0200
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.
---
c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c | 1 +
cpukit/libcsupport/src/getdents.c | 1 +
cpukit/libcsupport/src/getegid.c | 1 -
cpukit/libcsupport/src/geteuid.c | 1 -
cpukit/libcsupport/src/getlogin.c | 1 -
cpukit/libcsupport/src/getpgrp.c | 2 +-
cpukit/libcsupport/src/getpid.c | 3 +-
cpukit/libcsupport/src/getppid.c | 1 -
cpukit/libcsupport/src/realloc.c | 1 +
cpukit/libcsupport/src/setegid.c | 1 -
cpukit/libcsupport/src/utsname.c | 3 +-
cpukit/libmisc/cpuuse/cpuusagereport.c | 1 +
cpukit/libmisc/monitor/monitor.h | 1 +
cpukit/posix/include/rtems/posix/barrierimpl.h | 1 +
cpukit/posix/include/rtems/posix/condimpl.h | 1 +
cpukit/posix/include/rtems/posix/key.h | 2 +-
cpukit/posix/include/rtems/posix/posixapi.h | 2 +-
cpukit/posix/include/rtems/posix/pthreadimpl.h | 1 +
cpukit/posix/include/rtems/posix/rwlockimpl.h | 1 +
cpukit/posix/include/rtems/posix/spinlockimpl.h | 1 +
cpukit/posix/include/rtems/posix/threadsup.h | 1 +
cpukit/posix/include/rtems/posix/timerimpl.h | 1 +
cpukit/posix/src/barrierattrdestroy.c | 1 -
cpukit/posix/src/cond.c | 1 -
cpukit/posix/src/condattrdestroy.c | 1 -
cpukit/posix/src/condattrgetpshared.c | 1 -
cpukit/posix/src/condattrinit.c | 1 -
cpukit/posix/src/condattrsetpshared.c | 1 -
cpukit/posix/src/condbroadcast.c | 1 -
cpukit/posix/src/conddefaultattributes.c | 1 -
cpukit/posix/src/conddestroy.c | 1 -
cpukit/posix/src/condget.c | 1 -
cpukit/posix/src/condinit.c | 1 -
cpukit/posix/src/condsignal.c | 1 -
cpukit/posix/src/condsignalsupp.c | 1 -
cpukit/posix/src/condtimedwait.c | 1 -
cpukit/posix/src/condwait.c | 1 -
cpukit/posix/src/condwaitsupp.c | 1 -
cpukit/posix/src/keyrundestructors.c | 1 -
cpukit/posix/src/posixtimespecabsolutetimeout.c | 1 -
cpukit/posix/src/rwlockattrdestroy.c | 1 -
cpukit/posix/src/semaphore.c | 1 -
cpukit/posix/src/semaphorecreatesupp.c | 1 -
cpukit/posix/src/semaphoredeletesupp.c | 1 -
cpukit/posix/src/semaphorewaitsupp.c | 1 -
cpukit/posix/src/semclose.c | 1 -
cpukit/posix/src/semdestroy.c | 1 -
cpukit/posix/src/semgetvalue.c | 1 -
cpukit/posix/src/seminit.c | 1 -
cpukit/posix/src/semopen.c | 1 -
cpukit/posix/src/sempost.c | 1 -
cpukit/posix/src/semtimedwait.c | 1 -
cpukit/posix/src/semtrywait.c | 1 -
cpukit/posix/src/semunlink.c | 1 -
cpukit/posix/src/semwait.c | 1 -
cpukit/rtems/include/rtems/rtems/barrierimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/dpmemimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/messageimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/partimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/ratemonimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/regionimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/tasksimpl.h | 1 +
cpukit/rtems/include/rtems/rtems/timerimpl.h | 2 +
cpukit/rtems/src/barrier.c | 1 -
cpukit/rtems/src/barriercreate.c | 1 -
cpukit/rtems/src/barrierident.c | 1 -
cpukit/rtems/src/dpmem.c | 1 -
cpukit/rtems/src/dpmemcreate.c | 1 -
cpukit/rtems/src/dpmemdelete.c | 1 -
cpukit/rtems/src/dpmemexternal2internal.c | 1 -
cpukit/rtems/src/dpmemident.c | 1 -
cpukit/rtems/src/dpmeminternal2external.c | 1 -
cpukit/rtems/src/eventmp.c | 1 +
cpukit/rtems/src/msg.c | 1 -
cpukit/rtems/src/msgqallocate.c | 1 -
cpukit/rtems/src/msgqbroadcast.c | 1 -
cpukit/rtems/src/msgqcreate.c | 1 -
cpukit/rtems/src/msgqdelete.c | 1 -
cpukit/rtems/src/msgqflush.c | 1 -
cpukit/rtems/src/msgqgetnumberpending.c | 1 -
cpukit/rtems/src/msgqident.c | 1 -
cpukit/rtems/src/msgqreceive.c | 1 -
cpukit/rtems/src/msgqsend.c | 1 -
cpukit/rtems/src/msgqtranslatereturncode.c | 1 -
cpukit/rtems/src/msgqurgent.c | 1 -
cpukit/rtems/src/part.c | 1 -
cpukit/rtems/src/partgetbuffer.c | 1 -
cpukit/rtems/src/partident.c | 1 -
cpukit/rtems/src/partreturnbuffer.c | 1 -
cpukit/rtems/src/ratemon.c | 1 -
cpukit/rtems/src/ratemoncreate.c | 1 -
cpukit/rtems/src/ratemongetstatistics.c | 1 -
cpukit/rtems/src/ratemongetstatus.c | 1 -
cpukit/rtems/src/ratemonident.c | 1 -
cpukit/rtems/src/ratemonresetall.c | 1 -
cpukit/rtems/src/ratemonresetstatistics.c | 1 -
cpukit/rtems/src/region.c | 1 -
cpukit/rtems/src/regiondelete.c | 1 -
cpukit/rtems/src/regionextend.c | 1 -
cpukit/rtems/src/regiongetfreeinfo.c | 1 -
cpukit/rtems/src/regiongetinfo.c | 1 -
cpukit/rtems/src/regiongetsegmentsize.c | 1 -
cpukit/rtems/src/regionident.c | 1 -
cpukit/rtems/src/regionresizesegment.c | 1 -
cpukit/rtems/src/regionreturnsegment.c | 1 -
cpukit/rtems/src/rtemsbuildid.c | 15 +-
cpukit/rtems/src/rtemsbuildname.c | 1 -
cpukit/rtems/src/rtemsobjectapimaximumclass.c | 4 +-
cpukit/rtems/src/rtemsobjectapiminimumclass.c | 4 +-
cpukit/rtems/src/rtemsobjectgetapiclassname.c | 12 +-
cpukit/rtems/src/rtemsobjectgetapiname.c | 6 +-
cpukit/rtems/src/rtemsobjectgetclassicname.c | 6 +-
cpukit/rtems/src/rtemsobjectgetclassinfo.c | 4 +-
cpukit/rtems/src/rtemsobjectgetname.c | 11 +-
cpukit/rtems/src/rtemsobjectidapimaximum.c | 8 +-
cpukit/rtems/src/rtemsobjectidapiminimum.c | 8 +-
cpukit/rtems/src/rtemsobjectidgetapi.c | 12 +-
cpukit/rtems/src/rtemsobjectidgetclass.c | 12 +-
cpukit/rtems/src/rtemsobjectidgetindex.c | 12 +-
cpukit/rtems/src/rtemsobjectidgetnode.c | 12 +-
cpukit/rtems/src/rtemsobjectsetname.c | 7 +-
cpukit/rtems/src/rtemstimer.c | 1 -
cpukit/rtems/src/sem.c | 1 -
cpukit/rtems/src/semcreate.c | 1 -
cpukit/rtems/src/semdelete.c | 1 -
cpukit/rtems/src/semflush.c | 1 -
cpukit/rtems/src/semident.c | 1 -
cpukit/rtems/src/semobtain.c | 1 -
cpukit/rtems/src/semrelease.c | 1 -
cpukit/rtems/src/taskident.c | 1 -
cpukit/rtems/src/taskinitusers.c | 1 -
cpukit/rtems/src/tasks.c | 1 -
cpukit/rtems/src/timercancel.c | 1 -
cpukit/rtems/src/timercreate.c | 1 -
cpukit/rtems/src/timerdelete.c | 1 -
cpukit/rtems/src/timerfireafter.c | 1 -
cpukit/rtems/src/timerfirewhen.c | 1 -
cpukit/rtems/src/timergetinfo.c | 1 -
cpukit/rtems/src/timerident.c | 1 -
cpukit/rtems/src/timerreset.c | 1 -
cpukit/rtems/src/timerserverfireafter.c | 1 -
cpukit/rtems/src/timerserverfirewhen.c | 1 -
cpukit/sapi/include/rtems/extensionimpl.h | 1 +
cpukit/sapi/src/extension.c | 1 -
cpukit/sapi/src/extensioncreate.c | 1 -
cpukit/sapi/src/extensiondelete.c | 1 -
cpukit/sapi/src/extensionident.c | 1 -
cpukit/sapi/src/posixapi.c | 1 -
cpukit/score/Makefile.am | 4 +-
cpukit/score/include/rtems/score/apimutex.h | 16 +-
cpukit/score/include/rtems/score/object.h | 669 ++------------
cpukit/score/include/rtems/score/objectimpl.h | 930 ++++++++++++++++++++
.../include/rtems/score/schedulerpriorityimpl.h | 1 +
cpukit/score/include/rtems/score/threadimpl.h | 1 +
cpukit/score/inline/rtems/score/object.inl | 421 ---------
cpukit/score/preinstall.am | 8 +-
cpukit/score/src/apimutex.c | 31 +-
cpukit/score/src/apimutexallocate.c | 45 -
cpukit/score/src/corebarrierrelease.c | 1 +
cpukit/score/src/coremsgbroadcast.c | 6 +-
cpukit/score/src/coremsgclose.c | 1 -
cpukit/score/src/coremsgflush.c | 1 -
cpukit/score/src/coremsgflushsupp.c | 1 -
cpukit/score/src/coremsgflushwait.c | 1 -
cpukit/score/src/coremsginsert.c | 1 -
cpukit/score/src/coremsgseize.c | 1 -
cpukit/score/src/coremsgsubmit.c | 7 +-
cpukit/score/src/coresemsurrender.c | 4 +-
cpukit/score/src/coretod.c | 1 -
cpukit/score/src/coretodset.c | 1 -
cpukit/score/src/coretodtickle.c | 1 -
cpukit/score/src/iterateoverthreads.c | 2 +-
cpukit/score/src/objectactivecount.c | 2 +-
cpukit/score/src/objectallocate.c | 10 +-
cpukit/score/src/objectapimaximumclass.c | 3 +-
cpukit/score/src/objectclose.c | 4 +-
cpukit/score/src/objectextendinformation.c | 9 +-
cpukit/score/src/objectfree.c | 10 +-
cpukit/score/src/objectget.c | 11 +-
cpukit/score/src/objectgetinfo.c | 5 +-
cpukit/score/src/objectgetinfoid.c | 4 +-
cpukit/score/src/objectgetisr.c | 11 +-
cpukit/score/src/objectgetnameasstring.c | 1 -
cpukit/score/src/objectgetnext.c | 11 +-
cpukit/score/src/objectgetnoprotection.c | 11 +-
cpukit/score/src/objectidtoname.c | 1 -
cpukit/score/src/objectinitializeinformation.c | 12 +-
cpukit/score/src/objectmp.c | 7 +-
cpukit/score/src/objectnamespaceremove.c | 3 +-
cpukit/score/src/objectnametoid.c | 11 +-
cpukit/score/src/objectnametoidstring.c | 13 +-
cpukit/score/src/objectsetname.c | 8 +-
cpukit/score/src/objectshrinkinformation.c | 9 +-
cpukit/score/src/threaddispatchdisablelevel.c | 1 -
cpukit/score/src/threadqextractwithproxy.c | 1 +
cpukit/score/src/threadqflush.c | 2 +-
testsuites/psxtests/psxobj01/init.c | 3 +-
testsuites/samples/unlimited/test1.c | 1 -
testsuites/sptests/sp41/init.c | 3 +-
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 df5352f..49e4f31 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 9e26a3c..cb65015 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 9ec6f0b..86f514e 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 bc4ee75..85f2d57 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 fe0f9ad..1ec8285 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 9ff1dd6..208c702 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 27825e5..b2cd19b 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 b0269d4..f55bf77 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 f9b2674..845e77b 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 2494911..1d753ad 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 5af5e1a..8320a5c 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 5579b1b..aa5a8c6 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 aedde1a..6a85d60 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 b9df151..266bbdb 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 0e6d340..029ff48 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 0bb1dbe..6d2ebff 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 6ae5dfa..bf1c1b7 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 1231f01..a65f849 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 95e406b..68cffe1 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 2711316..339e66b 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 f1a87c9..414b46f 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 73f953b..ca10820 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 6fe52f4..25c2325 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 c7b91fb..8b819d7 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 a8f1c63..b46b745 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 42e0121..4c0dd34 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 4007e3a..6708bd0 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 d3b3564..186f5bd 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 14e78e7..9d16377 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 aec90f2..7221d1a 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 91388fa..7c815e0 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 4f3bc14..5806708 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 2c6bd8d..26a812d 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 2f2c9b7..fede6bc 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 0261b04..229f96c 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 4328615..2fe1aec 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 cbd6d95..a6e9339 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 cbc21c3..86ad3aa 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 9f48888..eb692e0 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 913de6c..c46f13b 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 5b18f0e..a2f4825 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 21d67c5..0d139c2 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 fecbdb5..9296940 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 6e46f53..f49ef38 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 a590537..93816db 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 81cb316..2b7eb4a 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 0e547df..f4bb1a8 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 b0ffec3..65b85e1 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 39a75b5..c40ee54 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 c74925b..b863080 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 6b9f876..3a23f22 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 f9e57ec..e75198c 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 2aa6d28..9ef802c 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 cee2a64..8f268d9 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 fbc59e4..1918bb1 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 59f9ea2..763b52c 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 1fa636d..ae1ff19 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 90cc517..fbed713 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 2de8028..5a4d662 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 584b45e..40e9864 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 6b900f2..52b2a99 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 830a82a..379b1bc 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 c22658d..8f4cf77 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 248fcad..93f917f 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 cba8802..001d57f 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 96aa349..1789e89 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 a1003d6..dbe56e0 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 f8ca546..5d67c61 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 50e81f8..8e1f8f8 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 9e540aa..296d52d 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 73d3b5a..a6a0b64 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 bf93f41..355e049 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 ae29c3a..b9bfa47 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 bf6c5d6..81141b8 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 8058b30..6ae889b 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 ec06b20..43710f8 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 2df0e21..512a2c5 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 cbb8560..2ad39fc 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 f6deb2b..3679410 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 6b7709e..c18e945 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 e0b3d78..dd1621b 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 b2f1134..33206d4 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 36f1021..2d648e4 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 8819756..97b8013 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 4032855..9661482 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 ba6b4a5..7731598 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 a325ea9..9aa072a 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 237b230..9b3a2e8 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 bb6d940..2acd9ad 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 59d1f0b..b9679ef 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 b21ca4a..d161cfa 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 0cb594a..94e3c11 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 673bc08..77d005f 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 2786c4c..812a541 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 923f4f1..24727b9 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 744e266..34a327b 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 1b151bd..99cc767 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 e65600e..f007972 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 c857eb6..9d19d10 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 1052b38..4e8fe28 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 1cb6f92..e17e13c 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 65c1580..8857217 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 4a64b93..3ae39fe 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 fed8333..68a4e1a 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 4a50bd2..15ec718 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 7c2c48d..2344934 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 472a71b..d834646 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 abeee03..cd44705 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 858bc37..6aaa731 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 9349582..4cd07f8 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 2f10ce7..0cd999c 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 1d9d1db..42ab673 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 c801c66..a8f1439 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 f5f1065..459a6a7 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 1073cb0..7f4a56f 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 c6eb871..3315a74 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 bce0eaa..dce296c 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 a9b7df7..e18a763 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 281e896..8a08bb2 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 15f8cd8..ee3157b 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 6db87ac..9257393 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 f3ca9e0..259df4c 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 83fe07f..00e782b 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 d91365b..5ac57dc 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 0586a19..37cbf3d 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 f6b09ec..dcbef01 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 10c7f94..973d1be 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 fb0ad1f..abec469 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 fae58f5..df06b1d 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 c3c0fb7..ecd01c0 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 6c6f84b..b086a6e 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 a8920e0..ddbc0d2 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 1bec355..28d16f4 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 21fa8cc..516be2f 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 27bb260..dee2dfa 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 aaa478e..a7df31e 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 7dffbbe..453c849 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 2e13e57..f711228 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 f160b17..e87585c 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 68feac6..fb55f9e 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 f97eb3f..c486d91 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 090738c..c6749b2 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 1b80fdf..50c15a6 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 ffa0dce..cbfa85b 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 0590a13..83c6b39 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 0c013f3..9209f2f 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 8817469..900c14c 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 7563e82..f0859a3 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 f571016..a5daa5c 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 60c21ad..a34270e 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 d6b8f48..f06342f 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 0000000..7421453
--- /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 6215015..8a8917c 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 339ccd8..0496a7a 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 bab5f98..0000000
--- 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 2ba6c86..42e2dbf 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 bc72c91..555292d 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 c57cc66..0000000
--- 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 818d171..f39e72d 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 d860eb1..595305c 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 946a4f5..9f63e13 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 169b147..c6aefeb 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 436e77f..0fb4718 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 4355239..ab23850 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 fca5f07..509512e 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 24d6f57..b3280bf 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 09982dc..b0b4833 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 58a3929..caae4b1 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 0cde95b..2f664b4 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 3bf5e52..5c5e9c4 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 4f53bef..d55c054 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 78e769b..de2c5be 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 2cfa56a..3abc27f 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 6d18182..d07b7b9 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 4cd54d8..9d718fc 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 e669504..55d76b0 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 96b26f3..c9f874e 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 d686111..0bfffb9 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 5d05cc8..2da1295 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 3955acc..8b4a26b 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 b6b1353..29e02bc 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 a707384..651037f 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 2e2c18e..c7906a0 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 2a0ef43..1ea6a58 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 e2083b4..4d376cd 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 54e4228..9aa0f10 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 82c488a..a791bd7 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 44319b9..12daae6 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 cd61845..3db39d7 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 bf3bb4c..6d35e7c 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 4023635..b27ee8a 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 2bc86cf..995fa80 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 686d0f2..453c76c 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 d15f4b1..f1c971e 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 6a3e891..221fd71 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 a8288af..1e1501e 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 6bddee7..b3f4e85 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 1d0c9bd..2102285 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 cadf7d5..9aa007a 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);
More information about the vc
mailing list