Index: cpukit/posix/include/rtems/posix/priorityimpl.h
===================================================================
--- cpukit/posix/include/rtems/posix/priorityimpl.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/posix/include/rtems/posix/priorityimpl.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -21,4 +21,5 @@
 
 #include <rtems/score/scheduler.h>
+#include <rtems/score/assert.h>
 
 #ifdef __cplusplus
@@ -49,5 +50,11 @@
  * @return The maximum POSIX API priority for this scheduler instance.
  */
-int _POSIX_Priority_Get_maximum( const Scheduler_Control *scheduler );
+RTEMS_INLINE_ROUTINE int _POSIX_Priority_Get_maximum(
+  const Scheduler_Control *scheduler
+)
+{
+  _Assert( (int) scheduler->maximum_priority > 1 );
+  return (int) scheduler->maximum_priority - 1;
+}
 
 /**
Index: cpukit/posix/src/killinfo.c
===================================================================
--- cpukit/posix/src/killinfo.c	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/posix/src/killinfo.c	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -191,5 +191,5 @@
    */
   interested = NULL;
-  interested_priority = PRIORITY_MAXIMUM + 1;
+  interested_priority = UINT64_MAX;
 
   for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
Index: cpukit/posix/src/psxpriorityisvalid.c
===================================================================
--- cpukit/posix/src/psxpriorityisvalid.c	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/posix/src/psxpriorityisvalid.c	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -21,13 +21,4 @@
 #include <rtems/posix/priorityimpl.h>
 #include <rtems/score/schedulerimpl.h>
-
-int _POSIX_Priority_Get_maximum( const Scheduler_Control *scheduler )
-{
-  if ( scheduler->maximum_priority < INT_MAX ) {
-    return (int) scheduler->maximum_priority - 1;
-  } else {
-    return INT_MAX;
-  }
-}
 
 Priority_Control _POSIX_Priority_To_core(
Index: cpukit/rtems/include/rtems/rtems/tasks.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/tasks.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/rtems/include/rtems/rtems/tasks.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -76,5 +76,5 @@
  *  Define the type for an RTEMS API task priority.
  */
-typedef Priority_Control rtems_task_priority;
+typedef uint32_t rtems_task_priority;
 
 /**
Index: cpukit/score/include/rtems/score/priority.h
===================================================================
--- cpukit/score/include/rtems/score/priority.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/include/rtems/score/priority.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -54,5 +54,5 @@
  *  @note Priority 0 is reserved for internal threads only.
  */
-typedef uint32_t   Priority_Control;
+typedef uint64_t Priority_Control;
 
 /** This defines the highest (most important) thread priority. */
Index: cpukit/score/include/rtems/score/scheduleredf.h
===================================================================
--- cpukit/score/include/rtems/score/scheduleredf.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/include/rtems/score/scheduleredf.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -25,4 +25,6 @@
 #include <rtems/score/rbtree.h>
 
+#include <limits.h>
+
 #ifdef __cplusplus
 extern "C" {
@@ -36,5 +38,10 @@
 /**@{*/
 
-#define SCHEDULER_EDF_MAXIMUM_PRIORITY 0x7fffffff
+/*
+ * Actually the EDF scheduler supports a maximum priority of
+ * 0x7fffffffffffffff, but the user API is limited to uint32_t or int for
+ * thread priorities.  Ignore ILP64 targets for now.
+ */
+#define SCHEDULER_EDF_MAXIMUM_PRIORITY INT_MAX
 
 /**
Index: cpukit/score/include/rtems/score/scheduleredfimpl.h
===================================================================
--- cpukit/score/include/rtems/score/scheduleredfimpl.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/include/rtems/score/scheduleredfimpl.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -39,5 +39,5 @@
  * tasks.
  */
-#define SCHEDULER_EDF_PRIO_MSB 0x80000000
+#define SCHEDULER_EDF_PRIO_MSB 0x8000000000000000
 
 RTEMS_INLINE_ROUTINE Scheduler_EDF_Context *
Index: cpukit/score/include/rtems/score/schedulerpriorityimpl.h
===================================================================
--- cpukit/score/include/rtems/score/schedulerpriorityimpl.h	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/include/rtems/score/schedulerpriorityimpl.h	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -211,5 +211,5 @@
 )
 {
-  ready_queue->current_priority = new_priority;
+  ready_queue->current_priority = (unsigned int) new_priority;
   ready_queue->ready_chain = &ready_queues[ new_priority ];
 
@@ -217,5 +217,5 @@
     bit_map,
     &ready_queue->Priority_map,
-    new_priority
+    (unsigned int) new_priority
   );
 }
Index: cpukit/score/src/schedulerprioritychangepriority.c
===================================================================
--- cpukit/score/src/schedulerprioritychangepriority.c	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/src/schedulerprioritychangepriority.c	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -38,5 +38,6 @@
 
   node = _Scheduler_priority_Thread_get_node( the_thread );
-  priority = _Scheduler_Node_get_priority( &node->Base, &prepend_it );
+  priority = (unsigned int )
+    _Scheduler_Node_get_priority( &node->Base, &prepend_it );
 
   if ( priority == node->Ready_queue.current_priority ) {
Index: cpukit/score/src/schedulerpriorityunblock.c
===================================================================
--- cpukit/score/src/schedulerpriorityunblock.c	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ cpukit/score/src/schedulerpriorityunblock.c	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -35,5 +35,6 @@
   context = _Scheduler_priority_Get_context( scheduler );
   node = _Scheduler_priority_Thread_get_node( the_thread );
-  priority = _Scheduler_Node_get_priority( &node->Base, &prepend_it );
+  priority = (unsigned int )
+    _Scheduler_Node_get_priority( &node->Base, &prepend_it );
   (void) prepend_it;
 
Index: testsuites/smptests/smpmrsp01/init.c
===================================================================
--- testsuites/smptests/smpmrsp01/init.c	(revision 1d72f03e5a86a0475cbd4fe92e6b47b053880503)
+++ testsuites/smptests/smpmrsp01/init.c	(revision 254dc82daf8cbd6922376fcbb81c31e21cbf4d16)
@@ -205,5 +205,5 @@
 
     printf(
-      "[%" PRIu32 "] %4s -> %4s (prio %3" PRIu32 ", node %4s)\n",
+      "[%" PRIu32 "] %4s -> %4s (prio %3" PRIu64 ", node %4s)\n",
       e->cpu_index,
       &ex[0],
