[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