andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 4 months ago
Clone

Blame SOURCES/0028-Ticket-48864-Add-cgroup-memory-limit-detection-to-38.patch

61f723
From 57b6e5afb6265363ede667ad450e267f8a803b9e Mon Sep 17 00:00:00 2001
61f723
From: Mark Reynolds <mreynolds@redhat.com>
61f723
Date: Wed, 19 Apr 2017 13:37:10 -0400
61f723
Subject: [PATCH] Ticket 48864 - Add cgroup memory limit detection to 389-ds
61f723
61f723
Bug Description:  Previously our memory limits only check hardware
61f723
    limits and shell resource limits. However, we may be in a container
61f723
    like docker or lxc, and unable to detect these limits. This can lead
61f723
    to crash conditions or worse, especially with autosizing
61f723
    on import we may have conditions where the server may not
61f723
    even be able to install.
61f723
61f723
Fix Description:  Add support for cgroup memory limit detection
61f723
    so that we can properly determine our resource availability regardless
61f723
    of lxc, docker, systemd or others.
61f723
61f723
https://pagure.io/389-ds-base/issue/48864
61f723
61f723
Author: wibrown
61f723
61f723
Review by: mreynolds (Thanks!)
61f723
---
61f723
 Makefile.am                                        |   7 +-
61f723
 ldap/servers/plugins/acl/acl.c                     |  18 +-
61f723
 ldap/servers/plugins/acl/acl.h                     |  16 -
61f723
 ldap/servers/plugins/acl/aclanom.c                 |   8 +-
61f723
 ldap/servers/plugins/dna/dna.c                     |  50 ++-
61f723
 ldap/servers/plugins/posix-winsync/posix-winsync.c |   4 +-
61f723
 ldap/servers/plugins/replication/repl.h            |  17 +-
61f723
 .../plugins/replication/repl5_inc_protocol.c       |   2 +-
61f723
 ldap/servers/plugins/replication/repl5_init.c      |   2 +-
61f723
 ldap/servers/plugins/replication/repl5_plugins.c   |   2 +-
61f723
 ldap/servers/plugins/replication/repl5_replica.c   |   8 +-
61f723
 ldap/servers/plugins/replication/repl5_total.c     |   4 +-
61f723
 ldap/servers/plugins/replication/repl_connext.c    |  20 +-
61f723
 ldap/servers/plugins/replication/repl_extop.c      |  26 +-
61f723
 ldap/servers/plugins/sync/sync_persist.c           |   6 +-
61f723
 ldap/servers/plugins/syntaxes/validate_task.c      |   6 +-
61f723
 ldap/servers/plugins/usn/usn.c                     |   8 +-
61f723
 ldap/servers/slapd/abandon.c                       |   8 +-
61f723
 ldap/servers/slapd/add.c                           |   4 +-
61f723
 ldap/servers/slapd/auth.c                          |  18 +-
61f723
 ldap/servers/slapd/back-ldbm/back-ldbm.h           |  23 +-
61f723
 ldap/servers/slapd/back-ldbm/cache.c               |  34 +-
61f723
 ldap/servers/slapd/back-ldbm/dblayer.c             |  72 ++--
61f723
 ldap/servers/slapd/back-ldbm/dblayer.h             |   8 -
61f723
 ldap/servers/slapd/back-ldbm/import-threads.c      |   2 +-
61f723
 ldap/servers/slapd/back-ldbm/import.c              |  12 +-
61f723
 ldap/servers/slapd/back-ldbm/ldbm_config.c         |  32 +-
61f723
 ldap/servers/slapd/back-ldbm/ldbm_delete.c         |   4 +-
61f723
 .../servers/slapd/back-ldbm/ldbm_instance_config.c |  20 +-
61f723
 ldap/servers/slapd/back-ldbm/ldbm_modrdn.c         |   4 +-
61f723
 ldap/servers/slapd/back-ldbm/ldbm_search.c         |   4 +-
61f723
 ldap/servers/slapd/back-ldbm/misc.c                |   2 +-
61f723
 ldap/servers/slapd/back-ldbm/monitor.c             |  10 +-
61f723
 ldap/servers/slapd/back-ldbm/perfctrs.h            |   2 +-
61f723
 ldap/servers/slapd/back-ldbm/start.c               | 113 +++----
61f723
 ldap/servers/slapd/bind.c                          |   8 +-
61f723
 ldap/servers/slapd/compare.c                       |   2 +-
61f723
 ldap/servers/slapd/connection.c                    |  72 ++--
61f723
 ldap/servers/slapd/conntable.c                     |   8 +-
61f723
 ldap/servers/slapd/control.c                       |   2 +-
61f723
 ldap/servers/slapd/daemon.c                        |  48 +--
61f723
 ldap/servers/slapd/delete.c                        |   2 +-
61f723
 ldap/servers/slapd/entry.c                         |   2 +-
61f723
 ldap/servers/slapd/extendop.c                      |   4 +-
61f723
 ldap/servers/slapd/log.c                           |  10 +-
61f723
 ldap/servers/slapd/modify.c                        |  12 +-
61f723
 ldap/servers/slapd/modrdn.c                        |   6 +-
61f723
 ldap/servers/slapd/monitor.c                       |   8 +-
61f723
 ldap/servers/slapd/operation.c                     |   6 +-
61f723
 ldap/servers/slapd/opshared.c                      |   4 +-
61f723
 ldap/servers/slapd/pagedresults.c                  |   2 +-
61f723
 ldap/servers/slapd/psearch.c                       |  10 +-
61f723
 ldap/servers/slapd/result.c                        |  12 +-
61f723
 ldap/servers/slapd/sasl_io.c                       |  52 +--
61f723
 ldap/servers/slapd/saslbind.c                      |   2 +-
61f723
 ldap/servers/slapd/search.c                        |   2 +-
61f723
 ldap/servers/slapd/slap.h                          |   9 +-
61f723
 ldap/servers/slapd/slapi-plugin.h                  |  14 +-
61f723
 ldap/servers/slapd/slapi-private.h                 |  38 ++-
61f723
 ldap/servers/slapd/slapi_pal.c                     | 311 +++++++++++++++++
61f723
 ldap/servers/slapd/slapi_pal.h                     |  62 ++++
61f723
 ldap/servers/slapd/snmp_collator.c                 |   2 +-
61f723
 ldap/servers/slapd/unbind.c                        |   6 +-
61f723
 ldap/servers/slapd/util.c                          | 376 +--------------------
61f723
 test/libslapd/spal/meminfo.c                       |  54 +++
61f723
 test/libslapd/test.c                               |   2 +
61f723
 test/test_slapd.h                                  |   5 +
61f723
 67 files changed, 870 insertions(+), 859 deletions(-)
61f723
 create mode 100644 ldap/servers/slapd/slapi_pal.c
61f723
 create mode 100644 ldap/servers/slapd/slapi_pal.h
61f723
 create mode 100644 test/libslapd/spal/meminfo.c
61f723
61f723
diff --git a/Makefile.am b/Makefile.am
61f723
index 485a460..429a345 100644
61f723
--- a/Makefile.am
61f723
+++ b/Makefile.am
61f723
@@ -481,6 +481,7 @@ dist_noinst_HEADERS = \
61f723
 	ldap/servers/slapd/pw_verify.h \
61f723
 	ldap/servers/slapd/secerrstrs.h \
61f723
 	ldap/servers/slapd/slap.h \
61f723
+	ldap/servers/slapd/slapi_pal.h \
61f723
 	ldap/servers/slapd/slapi-plugin-compat4.h \
61f723
 	ldap/servers/slapd/slapi-plugin.h \
61f723
 	ldap/servers/slapd/slapi-private.h \
61f723
@@ -850,6 +851,7 @@ pkgconfig_DATA = src/pkgconfig/dirsrv.pc \
61f723
 # header files
61f723
 #------------------------
61f723
 serverinc_HEADERS = ldap/servers/plugins/replication/repl-session-plugin.h \
61f723
+	ldap/servers/slapd/slapi_pal.h \
61f723
 	ldap/servers/slapd/slapi-plugin.h \
61f723
 	ldap/servers/plugins/replication/winsync-plugin.h \
61f723
 	src/nunc-stans/include/nunc-stans.h \
61f723
@@ -1219,6 +1221,7 @@ libslapd_la_SOURCES = ldap/servers/slapd/add.c \
61f723
 	ldap/servers/slapd/value.c \
61f723
 	ldap/servers/slapd/valueset.c \
61f723
 	ldap/servers/slapd/vattr.c \
61f723
+	ldap/servers/slapd/slapi_pal.c \
61f723
 	$(libavl_a_SOURCES)
61f723
 
61f723
 libslapd_la_CPPFLAGS = $(AM_CPPFLAGS) $(DSPLUGIN_CPPFLAGS) $(SASL_INCLUDES) @db_inc@ $(SVRCORE_INCLUDES) @kerberos_inc@ @pcre_inc@
61f723
@@ -2004,7 +2007,9 @@ test_slapd_SOURCES = test/main.c \
61f723
 	test/libslapd/counters/atomic.c \
61f723
 	test/libslapd/pblock/analytics.c \
61f723
 	test/libslapd/pblock/v3_compat.c \
61f723
-	test/libslapd/operation/v3_compat.c
61f723
+	test/libslapd/operation/v3_compat.c \
61f723
+	test/libslapd/spal/meminfo.c
61f723
+
61f723
 test_slapd_LDADD = libslapd.la
61f723
 test_slapd_LDFLAGS = $(AM_CPPFLAGS) $(CMOCKA_LINKS)
61f723
 ### WARNING: Slap.h needs cert.h, which requires the -I/lib/ldaputil!!!
61f723
diff --git a/ldap/servers/plugins/acl/acl.c b/ldap/servers/plugins/acl/acl.c
61f723
index 48b8efc..561dd91 100644
61f723
--- a/ldap/servers/plugins/acl/acl.c
61f723
+++ b/ldap/servers/plugins/acl/acl.c
61f723
@@ -276,7 +276,7 @@ acl_access_allowed(
61f723
 
61f723
 		 if (  !privateBackend && (be_readonly ||  slapi_config_get_readonly () )){
61f723
 			slapi_log_err(loglevel, plugin_name,
61f723
-				"acl_access_allowed - conn=%" NSPRIu64 " op=%d (main): Deny %s on entry(%s)"
61f723
+				"acl_access_allowed - conn=%" PRIu64 " op=%d (main): Deny %s on entry(%s)"
61f723
 				": readonly backend\n", 
61f723
 				o_connid, o_opid,
61f723
 				acl_access2str(access),
61f723
@@ -289,7 +289,7 @@ acl_access_allowed(
61f723
 	TNF_PROBE_0_DEBUG(acl_skipaccess_start,"ACL","");
61f723
 	if (  acl_skip_access_check ( pb, e, access )) {
61f723
 		slapi_log_err(loglevel, plugin_name,
61f723
-				"acl_access_allowed - conn=%" NSPRIu64 " op=%d (main): Allow %s on entry(%s)"
61f723
+				"acl_access_allowed - conn=%" PRIu64 " op=%d (main): Allow %s on entry(%s)"
61f723
 				": root user\n", 
61f723
 				o_connid, o_opid,
61f723
 				acl_access2str(access),
61f723
@@ -448,7 +448,7 @@ acl_access_allowed(
61f723
 		TNF_PROBE_0_DEBUG(acl_entry_first_touch_start,"ACL","");
61f723
 
61f723
 		slapi_log_err(loglevel, plugin_name,
61f723
-			"acl_access_allowed - #### conn=%" NSPRIu64 " op=%d binddn=\"%s\"\n",
61f723
+			"acl_access_allowed - #### conn=%" PRIu64 " op=%d binddn=\"%s\"\n",
61f723
 			o_connid, o_opid, clientDn);
61f723
 		aclpb->aclpb_stat_total_entries++;
61f723
 
61f723
@@ -776,7 +776,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
                                 null_user);
61f723
                         if (strcasecmp(right, access_str_moddn) == 0) {
61f723
                                  slapi_log_err(loglevel, plugin_name, "print_access_control_summary - "                                            
61f723
-                                        "conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to proxy (%s)"
61f723
+                                        "conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to proxy (%s)"
61f723
                                          ": %s\n",
61f723
                                         o_connid, o_opid,
61f723
                                         source,
61f723
@@ -790,7 +790,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
 
61f723
                         } else {
61f723
                                 slapi_log_err(loglevel, plugin_name, 
61f723
-                                        "print_access_control_summary - conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to proxy (%s)"
61f723
+                                        "print_access_control_summary - conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to proxy (%s)"
61f723
                                          ": %s\n",
61f723
                                         o_connid, o_opid,
61f723
                                         source,
61f723
@@ -805,7 +805,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
                         proxy_user = null_user;
61f723
                         if (strcasecmp(right, access_str_moddn) == 0) {
61f723
                                 slapi_log_err(loglevel, plugin_name, 
61f723
-                                        "print_access_control_summary - conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to proxy (%s)"
61f723
+                                        "print_access_control_summary - conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to proxy (%s)"
61f723
                                         ": %s\n",
61f723
                                         o_connid, o_opid,
61f723
                                         source,
61f723
@@ -819,7 +819,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
                                 
61f723
                         } else {
61f723
                                 slapi_log_err(loglevel, plugin_name, 
61f723
-                                        "print_access_control_summary - conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to proxy (%s)"
61f723
+                                        "print_access_control_summary - conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to proxy (%s)"
61f723
                                         ": %s\n",
61f723
                                         o_connid, o_opid,
61f723
                                         source,
61f723
@@ -834,7 +834,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
 	} else {
61f723
                 if (strcasecmp(right, access_str_moddn) == 0) {
61f723
                         slapi_log_err(loglevel, plugin_name, 
61f723
-                                "print_access_control_summary - conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to %s"
61f723
+                                "print_access_control_summary - conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) [from %s] to %s"
61f723
                                 ": %s\n",
61f723
                                 o_connid, o_opid,
61f723
                                 source,
61f723
@@ -848,7 +848,7 @@ print_access_control_summary( char *source, int ret_val, char *clientDn,
61f723
                         
61f723
                 } else {
61f723
                         slapi_log_err(loglevel, plugin_name, 
61f723
-                                "print_access_control_summary - conn=%" NSPRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to %s"
61f723
+                                "print_access_control_summary - conn=%" PRIu64 " op=%d (%s): %s %s on entry(%s).attr(%s) to %s"
61f723
                                 ": %s\n",
61f723
                                 o_connid, o_opid,
61f723
                                 source,
61f723
diff --git a/ldap/servers/plugins/acl/acl.h b/ldap/servers/plugins/acl/acl.h
61f723
index 91f5071..8b3486c 100644
61f723
--- a/ldap/servers/plugins/acl/acl.h
61f723
+++ b/ldap/servers/plugins/acl/acl.h
61f723
@@ -20,22 +20,6 @@
61f723
 #ifndef _ACL_H_
61f723
 #define _ACL_H_
61f723
 
61f723
-/* Required to get portable printf/scanf format macros */
61f723
-#ifdef HAVE_INTTYPES_H
61f723
-#include <inttypes.h>
61f723
-
61f723
-/* NSPR uses the print macros a bit differently than ANSI C.  We
61f723
- * need to use ll for a 64-bit integer, even when a long is 64-bit.
61f723
- */
61f723
-#undef PRIu64
61f723
-#define PRIu64  "llu"
61f723
-#undef PRI64
61f723
-#define PRI64   "ll"
61f723
-
61f723
-#else
61f723
-#error Need to define portable format macros such as PRIu64
61f723
-#endif /* HAVE_INTTYPES_H */
61f723
-
61f723
 #include 	<stdio.h>
61f723
 #include 	<string.h>
61f723
 #include 	<sys/types.h>
61f723
diff --git a/ldap/servers/plugins/acl/aclanom.c b/ldap/servers/plugins/acl/aclanom.c
61f723
index 5462d87..96d0d9f 100644
61f723
--- a/ldap/servers/plugins/acl/aclanom.c
61f723
+++ b/ldap/servers/plugins/acl/aclanom.c
61f723
@@ -523,7 +523,7 @@ aclanom_match_profile (Slapi_PBlock *pb, struct acl_pblock *aclpb, Slapi_Entry *
61f723
 			aci_ndn = slapi_sdn_get_ndn (acl_anom_profile->anom_targetinfo[i].anom_target);
61f723
 			if (access & SLAPI_ACL_MODDN) {
61f723
 				slapi_log_err(loglevel, plugin_name, 
61f723
-					"aclanom_match_profile - conn=%" NSPRIu64 " op=%d: Allow access on entry(%s).attr(%s) (from %s) to anonymous: acidn=\"%s\"\n",
61f723
+					"aclanom_match_profile - conn=%" PRIu64 " op=%d: Allow access on entry(%s).attr(%s) (from %s) to anonymous: acidn=\"%s\"\n",
61f723
 					o_connid, o_opid,
61f723
 					ndn,
61f723
 					attr ? attr:"NULL",
61f723
@@ -532,7 +532,7 @@ aclanom_match_profile (Slapi_PBlock *pb, struct acl_pblock *aclpb, Slapi_Entry *
61f723
 				
61f723
 			} else {
61f723
 				slapi_log_err(loglevel, plugin_name, 
61f723
-					"aclanom_match_profile - conn=%" NSPRIu64 " op=%d: Allow access on entry(%s).attr(%s) to anonymous: acidn=\"%s\"\n",
61f723
+					"aclanom_match_profile - conn=%" PRIu64 " op=%d: Allow access on entry(%s).attr(%s) to anonymous: acidn=\"%s\"\n",
61f723
 					o_connid, o_opid,
61f723
 					ndn,
61f723
 					attr ? attr:"NULL",
61f723
@@ -541,13 +541,13 @@ aclanom_match_profile (Slapi_PBlock *pb, struct acl_pblock *aclpb, Slapi_Entry *
61f723
 		} else {
61f723
 			if (access & SLAPI_ACL_MODDN) {
61f723
 				slapi_log_err(loglevel, plugin_name,
61f723
-					"aclanom_match_profile - conn=%" NSPRIu64 " op=%d: Deny access on entry(%s).attr(%s) (from %s) to anonymous\n",
61f723
+					"aclanom_match_profile - conn=%" PRIu64 " op=%d: Deny access on entry(%s).attr(%s) (from %s) to anonymous\n",
61f723
 					o_connid, o_opid,
61f723
 					ndn, attr ? attr:"NULL" ,
61f723
 					aclpb->aclpb_moddn_source_sdn ? slapi_sdn_get_dn(aclpb->aclpb_moddn_source_sdn) : "NULL");
61f723
 			} else {
61f723
 				slapi_log_err(loglevel, plugin_name,
61f723
-					"aclanom_match_profile - conn=%" NSPRIu64 " op=%d: Deny access on entry(%s).attr(%s) to anonymous\n",
61f723
+					"aclanom_match_profile - conn=%" PRIu64 " op=%d: Deny access on entry(%s).attr(%s) to anonymous\n",
61f723
 					o_connid, o_opid,
61f723
 					ndn, attr ? attr:"NULL" );
61f723
 			}
61f723
diff --git a/ldap/servers/plugins/dna/dna.c b/ldap/servers/plugins/dna/dna.c
61f723
index 34011b9..a085941 100644
61f723
--- a/ldap/servers/plugins/dna/dna.c
61f723
+++ b/ldap/servers/plugins/dna/dna.c
61f723
@@ -23,14 +23,6 @@
61f723
 #include "slapi-private.h"
61f723
 #include "prclist.h"
61f723
 
61f723
-/* Required to get portable printf/scanf format macros */
61f723
-#ifdef HAVE_INTTYPES_H
61f723
-#include <inttypes.h>
61f723
-
61f723
-#else
61f723
-#error Need to define portable format macros such as PRIu64
61f723
-#endif /* HAVE_INTTYPES_H */
61f723
-
61f723
 #include <sys/stat.h>
61f723
 
61f723
 #define DNA_PLUGIN_SUBSYSTEM "dna-plugin"
61f723
@@ -997,7 +989,7 @@ dna_parse_config_entry(Slapi_PBlock *pb, Slapi_Entry * e, int apply)
61f723
     }
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONFIG, DNA_PLUGIN_SUBSYSTEM,
61f723
-                    "dna_parse_config_entry - %s [%" NSPRIu64 "]\n", DNA_NEXTVAL,
61f723
+                    "dna_parse_config_entry - %s [%" PRIu64 "]\n", DNA_NEXTVAL,
61f723
                     entry->nextval);
61f723
 
61f723
     value = slapi_entry_attr_get_charptr(e, DNA_PREFIX);
61f723
@@ -1026,7 +1018,7 @@ dna_parse_config_entry(Slapi_PBlock *pb, Slapi_Entry * e, int apply)
61f723
     }
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONFIG, DNA_PLUGIN_SUBSYSTEM,
61f723
-                    "dna_parse_config_entry - %s [%" NSPRIu64 "]\n", DNA_INTERVAL, entry->interval);
61f723
+                    "dna_parse_config_entry - %s [%" PRIu64 "]\n", DNA_INTERVAL, entry->interval);
61f723
 #endif
61f723
 
61f723
     value = slapi_entry_attr_get_charptr(e, DNA_GENERATE);
61f723
@@ -1126,7 +1118,7 @@ dna_parse_config_entry(Slapi_PBlock *pb, Slapi_Entry * e, int apply)
61f723
     }
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONFIG, DNA_PLUGIN_SUBSYSTEM,
61f723
-                    "dna_parse_config_entry - %s [%" NSPRIu64 "]\n", DNA_MAXVAL,
61f723
+                    "dna_parse_config_entry - %s [%" PRIu64 "]\n", DNA_MAXVAL,
61f723
                     entry->maxval);
61f723
 
61f723
     /* get the global bind dn and password(if any) */
61f723
@@ -1256,7 +1248,7 @@ dna_parse_config_entry(Slapi_PBlock *pb, Slapi_Entry * e, int apply)
61f723
     }
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONFIG, DNA_PLUGIN_SUBSYSTEM,
61f723
-                    "dna_parse_config_entry - %s [%" NSPRIu64 "]\n", DNA_THRESHOLD,
61f723
+                    "dna_parse_config_entry - %s [%" PRIu64 "]\n", DNA_THRESHOLD,
61f723
                     entry->threshold);
61f723
 
61f723
     value = slapi_entry_attr_get_charptr(e, DNA_RANGE_REQUEST_TIMEOUT);
61f723
@@ -1268,7 +1260,7 @@ dna_parse_config_entry(Slapi_PBlock *pb, Slapi_Entry * e, int apply)
61f723
     }
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONFIG, DNA_PLUGIN_SUBSYSTEM,
61f723
-                    "dna_parse_config_entry - %s [%" NSPRIu64 "]\n", DNA_RANGE_REQUEST_TIMEOUT,
61f723
+                    "dna_parse_config_entry - %s [%" PRIu64 "]\n", DNA_RANGE_REQUEST_TIMEOUT,
61f723
                     entry->timeout);
61f723
 
61f723
     value = slapi_entry_attr_get_charptr(e, DNA_NEXT_RANGE);
61f723
@@ -2307,7 +2299,7 @@ dna_first_free_value(struct configEntry *config_entry,
61f723
             return LDAP_OPERATIONS_ERROR;
61f723
         }
61f723
 
61f723
-        filter = slapi_ch_smprintf("(&%s(&(%s>=%" NSPRIu64 ")(%s<=%" NSPRIu64 ")))",
61f723
+        filter = slapi_ch_smprintf("(&%s(&(%s>=%" PRIu64 ")(%s<=%" PRIu64 ")))",
61f723
                                    config_entry->filter,
61f723
                                    config_entry->types[0], tmpval,
61f723
                                    config_entry->types[0], config_entry->maxval);
61f723
@@ -2497,7 +2489,7 @@ static int dna_get_next_value(struct configEntry *config_entry,
61f723
     if ((config_entry->maxval == -1) ||
61f723
         (nextval <= (config_entry->maxval + config_entry->interval))) {
61f723
         /* try to set the new next value in the config entry */
61f723
-        snprintf(next_value, sizeof(next_value),"%" NSPRIu64, nextval);
61f723
+        snprintf(next_value, sizeof(next_value),"%" PRIu64, nextval);
61f723
 
61f723
         /* set up our replace modify operation */
61f723
         replace_val[0] = next_value;
61f723
@@ -2524,7 +2516,7 @@ static int dna_get_next_value(struct configEntry *config_entry,
61f723
 
61f723
     if (LDAP_SUCCESS == ret) {
61f723
         slapi_ch_free_string(next_value_ret);
61f723
-        *next_value_ret = slapi_ch_smprintf("%" NSPRIu64, setval);
61f723
+        *next_value_ret = slapi_ch_smprintf("%" PRIu64, setval);
61f723
         if (NULL == *next_value_ret) {
61f723
             ret = LDAP_OPERATIONS_ERROR;
61f723
             goto done;
61f723
@@ -2609,7 +2601,7 @@ dna_update_shared_config(struct configEntry *config_entry)
61f723
 
61f723
         /* We store the number of remaining assigned values
61f723
          * in the shared config entry. */
61f723
-        snprintf(remaining_vals, sizeof(remaining_vals),"%" NSPRIu64,
61f723
+        snprintf(remaining_vals, sizeof(remaining_vals),"%" PRIu64,
61f723
                 config_entry->remaining);
61f723
 
61f723
         /* set up our replace modify operation */
61f723
@@ -2709,7 +2701,7 @@ dna_update_next_range(struct configEntry *config_entry,
61f723
     int ret = 0;
61f723
 
61f723
     /* Try to set the new next range in the config entry. */
61f723
-    snprintf(nextrange_value, sizeof(nextrange_value), "%" NSPRIu64 "-%" NSPRIu64,
61f723
+    snprintf(nextrange_value, sizeof(nextrange_value), "%" PRIu64 "-%" PRIu64,
61f723
     		lower, upper);
61f723
 
61f723
     /* set up our replace modify operation */
61f723
@@ -2778,8 +2770,8 @@ dna_activate_next_range(struct configEntry *config_entry)
61f723
     int ret = 0;
61f723
 
61f723
     /* Setup the modify operation for the config entry */
61f723
-    snprintf(maxval_val, sizeof(maxval_val),"%" NSPRIu64, config_entry->next_range_upper);
61f723
-    snprintf(nextval_val, sizeof(nextval_val),"%" NSPRIu64, config_entry->next_range_lower);
61f723
+    snprintf(maxval_val, sizeof(maxval_val),"%" PRIu64, config_entry->next_range_upper);
61f723
+    snprintf(nextval_val, sizeof(nextval_val),"%" PRIu64, config_entry->next_range_lower);
61f723
 
61f723
     maxval_vals[0] = maxval_val;
61f723
     maxval_vals[1] = 0;
61f723
@@ -3319,7 +3311,7 @@ dna_create_valcheck_filter(struct configEntry *config_entry, PRUint64 value, cha
61f723
      * - the string length of the filter in the config
61f723
      * - the string length sum of all configured types
61f723
      * - 23 bytes for each type (20 for the max string
61f723
-     *   representation of a NSPRIu64, 3 for "(=)"
61f723
+     *   representation of a PRIu64, 3 for "(=)"
61f723
      * - 3 bytes for the beginning and end of the filter - "(&" and ")"
61f723
      * - 3 bytes to OR together multiple types (if present) - "(|" and ")"
61f723
      * - the string length of the prefix (if one is configured) for each type
61f723
@@ -3556,8 +3548,8 @@ _dna_pre_op_add(Slapi_PBlock *pb, Slapi_Entry *e, char **errstr)
61f723
                     (config_entry->remaining <= config_entry->threshold)) {
61f723
                     slapi_log_err(SLAPI_LOG_PLUGIN, DNA_PLUGIN_SUBSYSTEM,
61f723
                                     "_dna_pre_op_add - Passed threshold of %" 
61f723
-                                    NSPRIu64 " remaining values "
61f723
-                                    "for range %s. (%" NSPRIu64 " values remain)\n",
61f723
+                                    PRIu64 " remaining values "
61f723
+                                    "for range %s. (%" PRIu64 " values remain)\n",
61f723
                                     config_entry->threshold, config_entry->dn,
61f723
                                     config_entry->remaining);
61f723
                     dna_fix_maxval(config_entry, 0);
61f723
@@ -3828,8 +3820,8 @@ _dna_pre_op_modify(Slapi_PBlock *pb, Slapi_Entry *e, Slapi_Mods *smods, char **e
61f723
                     (config_entry->remaining <= config_entry->threshold)) {
61f723
                     slapi_log_err(SLAPI_LOG_ERR, DNA_PLUGIN_SUBSYSTEM,
61f723
                                     "_dna_pre_op_modify - Passed threshold of %" 
61f723
-                                    NSPRIu64 " remaining values "
61f723
-                                    "for range %s. (%" NSPRIu64 " values remain)\n",
61f723
+                                    PRIu64 " remaining values "
61f723
+                                    "for range %s. (%" PRIu64 " values remain)\n",
61f723
                                     config_entry->threshold, config_entry->dn,
61f723
                                     config_entry->remaining);
61f723
                     dna_fix_maxval(config_entry, 0);
61f723
@@ -4411,8 +4403,8 @@ static int dna_extend_exop(Slapi_PBlock *pb)
61f723
         char highstr[16];
61f723
 
61f723
         /* Create the exop response */
61f723
-        snprintf(lowstr, sizeof(lowstr), "%" NSPRIu64, lower);
61f723
-        snprintf(highstr, sizeof(highstr), "%" NSPRIu64, upper);
61f723
+        snprintf(lowstr, sizeof(lowstr), "%" PRIu64, lower);
61f723
+        snprintf(highstr, sizeof(highstr), "%" PRIu64, upper);
61f723
         range_low.bv_val = lowstr;
61f723
         range_low.bv_len = strlen(range_low.bv_val);
61f723
         range_high.bv_val = highstr;
61f723
@@ -4445,7 +4437,7 @@ static int dna_extend_exop(Slapi_PBlock *pb)
61f723
         ber_bvfree(respdata);
61f723
 
61f723
         slapi_log_err(SLAPI_LOG_PLUGIN, DNA_PLUGIN_SUBSYSTEM,
61f723
-                        "dna_extend_exop - Released range %" NSPRIu64 "-%" NSPRIu64 ".\n",
61f723
+                        "dna_extend_exop - Released range %" PRIu64 "-%" PRIu64 ".\n",
61f723
                         lower, upper);
61f723
     }
61f723
 
61f723
@@ -4588,7 +4580,7 @@ dna_release_range(char *range_dn, PRUint64 *lower, PRUint64 *upper)
61f723
                 *lower = *upper - release + 1;
61f723
 
61f723
                 /* try to set the new maxval in the config entry */
61f723
-                snprintf(max_value, sizeof(max_value),"%" NSPRIu64, (*lower - 1));
61f723
+                snprintf(max_value, sizeof(max_value),"%" PRIu64, (*lower - 1));
61f723
 
61f723
                 /* set up our replace modify operation */
61f723
                 replace_val[0] = max_value;
61f723
diff --git a/ldap/servers/plugins/posix-winsync/posix-winsync.c b/ldap/servers/plugins/posix-winsync/posix-winsync.c
61f723
index 63444e5..21e4ad0 100644
61f723
--- a/ldap/servers/plugins/posix-winsync/posix-winsync.c
61f723
+++ b/ldap/servers/plugins/posix-winsync/posix-winsync.c
61f723
@@ -270,7 +270,7 @@ sync_acct_disable(void *cbdata, /* the usual domain config data */
61f723
         if (update_entry) {
61f723
             slapi_entry_attr_set_ulong(update_entry, "userAccountControl", adval);
61f723
             slapi_log_err(SLAPI_LOG_PLUGIN, posix_winsync_plugin_name,
61f723
-                "<-- sync_acct_disable - %s AD account [%s] - new value is [%" NSPRIu64 "]\n",
61f723
+                "<-- sync_acct_disable - %s AD account [%s] - new value is [%" PRIu64 "]\n",
61f723
 				(ds_is_enabled) ? "enabled" : "disabled", slapi_entry_get_dn_const(update_entry), adval);
61f723
         } else {
61f723
             /* iterate through the mods - if there is already a mod
61f723
@@ -326,7 +326,7 @@ sync_acct_disable(void *cbdata, /* the usual domain config data */
61f723
                 mod_bval->bv_len = strlen(acctvalstr);
61f723
             }
61f723
             slapi_log_err(SLAPI_LOG_PLUGIN, posix_winsync_plugin_name,
61f723
-                "<-- sync_acct_disable - %s AD account [%s] - new value is [%" NSPRIu64 "]\n",
61f723
+                "<-- sync_acct_disable - %s AD account [%s] - new value is [%" PRIu64 "]\n",
61f723
 				(ds_is_enabled) ? "enabled" : "disabled", slapi_entry_get_dn_const(ad_entry), adval);
61f723
         }
61f723
     }
61f723
diff --git a/ldap/servers/plugins/replication/repl.h b/ldap/servers/plugins/replication/repl.h
61f723
index 89ad481..9460ca9 100644
61f723
--- a/ldap/servers/plugins/replication/repl.h
61f723
+++ b/ldap/servers/plugins/replication/repl.h
61f723
@@ -15,21 +15,8 @@
61f723
 #ifndef _REPL_H_
61f723
 #define _REPL_H_
61f723
 
61f723
-/* Required to get portable printf/scanf format macros */
61f723
-#ifdef HAVE_INTTYPES_H
61f723
-#include <inttypes.h>
61f723
-
61f723
-/* NSPR uses the print macros a bit differently than ANSI C.  We
61f723
- * need to use ll for a 64-bit integer, even when a long is 64-bit.
61f723
- */
61f723
-#undef PRIu64
61f723
-#define PRIu64  "llu"
61f723
-#undef PRI64
61f723
-#define PRI64   "ll"
61f723
-
61f723
-#else
61f723
-#error Need to define portable format macros such as PRIu64
61f723
-#endif /* HAVE_INTTYPES_H */
61f723
+/* Provides our int types and platform specific requirements. */
61f723
+#include <slapi_pal.h>
61f723
 
61f723
 #include <limits.h>
61f723
 #include <time.h>
61f723
diff --git a/ldap/servers/plugins/replication/repl5_inc_protocol.c b/ldap/servers/plugins/replication/repl5_inc_protocol.c
61f723
index a5ae885..36c279e 100644
61f723
--- a/ldap/servers/plugins/replication/repl5_inc_protocol.c
61f723
+++ b/ldap/servers/plugins/replication/repl5_inc_protocol.c
61f723
@@ -2104,7 +2104,7 @@ repl5_inc_stop(Private_Repl_Protocol *prp)
61f723
 		/* Isn't listening. Do something drastic. */
61f723
 		return_value = -1;
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
-				"repl5_inc_stop - %s: Protocol does not stop after %" NSPRIu64 " seconds\n",
61f723
+				"repl5_inc_stop - %s: Protocol does not stop after %" PRIu64 " seconds\n",
61f723
 				agmt_get_long_name(prp->agmt), timeout);
61f723
 	}
61f723
 	else
61f723
diff --git a/ldap/servers/plugins/replication/repl5_init.c b/ldap/servers/plugins/replication/repl5_init.c
61f723
index 9549dcf..edffb84 100644
61f723
--- a/ldap/servers/plugins/replication/repl5_init.c
61f723
+++ b/ldap/servers/plugins/replication/repl5_init.c
61f723
@@ -208,7 +208,7 @@ get_repl_session_id (Slapi_PBlock *pb, char *idstr, CSN **csn)
61f723
 		/* Avoid "Connection is NULL and hence cannot access SLAPI_CONN_ID" */
61f723
 		if (opid) {
61f723
 			slapi_pblock_get (pb, SLAPI_CONN_ID, &connid);
61f723
-			snprintf (idstr, REPL_SESSION_ID_SIZE, "conn=%" NSPRIu64 " op=%d",
61f723
+			snprintf (idstr, REPL_SESSION_ID_SIZE, "conn=%" PRIu64 " op=%d",
61f723
 					connid, opid);
61f723
 		}
61f723
 
61f723
diff --git a/ldap/servers/plugins/replication/repl5_plugins.c b/ldap/servers/plugins/replication/repl5_plugins.c
61f723
index 357c093..ebcc230 100644
61f723
--- a/ldap/servers/plugins/replication/repl5_plugins.c
61f723
+++ b/ldap/servers/plugins/replication/repl5_plugins.c
61f723
@@ -1335,7 +1335,7 @@ process_postop (Slapi_PBlock *pb)
61f723
 			{
61f723
 				slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name,
61f723
 					"process_postop - Failed to apply update (%s) error (%d).  "
61f723
-					"Aborting replication session(conn=%" NSPRIu64 " op=%d)\n",
61f723
+					"Aborting replication session(conn=%" PRIu64 " op=%d)\n",
61f723
 					csn_as_string(opcsn, PR_FALSE, csn_str), retval,
61f723
 					connid, opid);
61f723
 				/*
61f723
diff --git a/ldap/servers/plugins/replication/repl5_replica.c b/ldap/servers/plugins/replication/repl5_replica.c
61f723
index 5718a98..a106f8b 100644
61f723
--- a/ldap/servers/plugins/replication/repl5_replica.c
61f723
+++ b/ldap/servers/plugins/replication/repl5_replica.c
61f723
@@ -596,7 +596,7 @@ replica_get_exclusive_access(Replica *r, PRBool *isInc, PRUint64 connid, int opi
61f723
 
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"replica_get_exclusive_access - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"Replica in use locking_purl=%s\n",
61f723
 				connid, opid,
61f723
 				slapi_sdn_get_dn(r->repl_root),
61f723
@@ -620,7 +620,7 @@ replica_get_exclusive_access(Replica *r, PRBool *isInc, PRUint64 connid, int opi
61f723
 	{
61f723
         slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
         		"replica_get_exclusive_access - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": Acquired replica\n",
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": Acquired replica\n",
61f723
 				connid, opid,
61f723
 				slapi_sdn_get_dn(r->repl_root));
61f723
 		r->repl_state_flags |= REPLICA_IN_USE;
61f723
@@ -664,13 +664,13 @@ replica_relinquish_exclusive_access(Replica *r, PRUint64 connid, int opid)
61f723
 	{
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"replica_relinquish_exclusive_access - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"Replica not in use\n",
61f723
 				connid, opid, slapi_sdn_get_dn(r->repl_root));
61f723
 	} else {
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"replica_relinquish_exclusive_access - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"Released replica held by locking_purl=%s\n",
61f723
 				connid, opid,
61f723
 				slapi_sdn_get_dn(r->repl_root),	r->locking_purl);
61f723
diff --git a/ldap/servers/plugins/replication/repl5_total.c b/ldap/servers/plugins/replication/repl5_total.c
61f723
index af570a8..064a099 100644
61f723
--- a/ldap/servers/plugins/replication/repl5_total.c
61f723
+++ b/ldap/servers/plugins/replication/repl5_total.c
61f723
@@ -853,7 +853,7 @@ multimaster_extop_NSDS50ReplicationEntry(Slapi_PBlock  *pb)
61f723
            const char *dn = slapi_entry_get_dn_const(e);
61f723
            slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
                    "multimaster_extop_NSDS50ReplicationEntry - "
61f723
-                   "Error %d: could not import entry dn %s for total update operation conn=%" NSPRIu64 " op=%d\n",
61f723
+                   "Error %d: could not import entry dn %s for total update operation conn=%" PRIu64 " op=%d\n",
61f723
                    rc, dn, connid, opid);
61f723
 		   rc = -1;
61f723
 	   }
61f723
@@ -864,7 +864,7 @@ multimaster_extop_NSDS50ReplicationEntry(Slapi_PBlock  *pb)
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_NSDS50ReplicationEntry - "
61f723
 				"Error %d: could not decode the total update extop "
61f723
-				"for total update operation conn=%" NSPRIu64 " op=%d\n",
61f723
+				"for total update operation conn=%" PRIu64 " op=%d\n",
61f723
 				rc, connid, opid);
61f723
 	}
61f723
    
61f723
diff --git a/ldap/servers/plugins/replication/repl_connext.c b/ldap/servers/plugins/replication/repl_connext.c
61f723
index 29dc2a7..ba0fa15 100644
61f723
--- a/ldap/servers/plugins/replication/repl_connext.c
61f723
+++ b/ldap/servers/plugins/replication/repl_connext.c
61f723
@@ -84,7 +84,7 @@ void consumer_connection_extension_destructor (void *ext, void *object, void *pa
61f723
 					slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 							"consumer_connection_extension_destructor - "
61f723
 							"Aborting total update in progress for replicated "
61f723
-							"area %s connid=%" NSPRIu64 "\n", slapi_sdn_get_dn(repl_root_sdn), connid);
61f723
+							"area %s connid=%" PRIu64 "\n", slapi_sdn_get_dn(repl_root_sdn), connid);
61f723
 					slapi_stop_bulk_import(pb);
61f723
 				}
61f723
 				else
61f723
@@ -156,7 +156,7 @@ consumer_connection_extension_acquire_exclusive_access(void* conn, PRUint64 conn
61f723
             ret = connext;
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_acquire_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Acquired consumer connection extension\n",
61f723
+                    "conn=%" PRIu64 " op=%d Acquired consumer connection extension\n",
61f723
                     connid, opid);
61f723
         }
61f723
         else if (opid == connext->in_use_opid)
61f723
@@ -164,14 +164,14 @@ consumer_connection_extension_acquire_exclusive_access(void* conn, PRUint64 conn
61f723
             ret = connext;
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_acquire_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Reacquired consumer connection extension\n",
61f723
+                    "conn=%" PRIu64 " op=%d Reacquired consumer connection extension\n",
61f723
                     connid, opid);
61f723
         }
61f723
         else
61f723
         {
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_acquire_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Could not acquire consumer connection extension; it is in use by op=%d\n",
61f723
+                    "conn=%" PRIu64 " op=%d Could not acquire consumer connection extension; it is in use by op=%d\n",
61f723
                     connid, opid, connext->in_use_opid);
61f723
         }
61f723
 
61f723
@@ -182,7 +182,7 @@ consumer_connection_extension_acquire_exclusive_access(void* conn, PRUint64 conn
61f723
     {
61f723
         slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
         		"consumer_connection_extension_acquire_exclusive_access - "
61f723
-                "conn=%" NSPRIu64 " op=%d Could not acquire consumer extension, it is NULL!\n",
61f723
+                "conn=%" PRIu64 " op=%d Could not acquire consumer extension, it is NULL!\n",
61f723
                 connid, opid);
61f723
     }
61f723
     
61f723
@@ -221,7 +221,7 @@ consumer_connection_extension_relinquish_exclusive_access(void* conn, PRUint64 c
61f723
         {
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_relinquish_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Consumer connection extension is not in use\n",
61f723
+                    "conn=%" PRIu64 " op=%d Consumer connection extension is not in use\n",
61f723
                     connid, opid);
61f723
             ret = 2;
61f723
         }
61f723
@@ -230,7 +230,7 @@ consumer_connection_extension_relinquish_exclusive_access(void* conn, PRUint64 c
61f723
             /* step 4, relinquish it (normal) */
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_relinquish_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Relinquishing consumer connection extension\n",
61f723
+                    "conn=%" PRIu64 " op=%d Relinquishing consumer connection extension\n",
61f723
                     connid, opid);
61f723
             connext->in_use_opid = -1;
61f723
             ret = 1;
61f723
@@ -240,7 +240,7 @@ consumer_connection_extension_relinquish_exclusive_access(void* conn, PRUint64 c
61f723
             /* step 4, relinquish it (forced) */
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_relinquish_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Forced to relinquish consumer connection extension held by op=%d\n",
61f723
+                    "conn=%" PRIu64 " op=%d Forced to relinquish consumer connection extension held by op=%d\n",
61f723
                     connid, opid, connext->in_use_opid);
61f723
             connext->in_use_opid = -1;
61f723
             ret = 1;
61f723
@@ -249,7 +249,7 @@ consumer_connection_extension_relinquish_exclusive_access(void* conn, PRUint64 c
61f723
         {
61f723
             slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
             		"consumer_connection_extension_relinquish_exclusive_access - "
61f723
-                    "conn=%" NSPRIu64 " op=%d Not relinquishing consumer connection extension, it is held by op=%d!\n",
61f723
+                    "conn=%" PRIu64 " op=%d Not relinquishing consumer connection extension, it is held by op=%d!\n",
61f723
                     connid, opid, connext->in_use_opid);
61f723
         }
61f723
         
61f723
@@ -260,7 +260,7 @@ consumer_connection_extension_relinquish_exclusive_access(void* conn, PRUint64 c
61f723
     {
61f723
         slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
         		"consumer_connection_extension_relinquish_exclusive_access - "
61f723
-                "conn=%" NSPRIu64 " op=%d Could not relinquish consumer extension, it is NULL!\n",
61f723
+                "conn=%" PRIu64 " op=%d Could not relinquish consumer extension, it is NULL!\n",
61f723
                 connid, opid);
61f723
     }
61f723
     
61f723
diff --git a/ldap/servers/plugins/replication/repl_extop.c b/ldap/servers/plugins/replication/repl_extop.c
61f723
index 80580f9..412caec 100644
61f723
--- a/ldap/servers/plugins/replication/repl_extop.c
61f723
+++ b/ldap/servers/plugins/replication/repl_extop.c
61f723
@@ -668,7 +668,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		connext->repl_protocol_version = REPL_PROTOCOL_50_INCREMENTAL;
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 			"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-			"conn=%" NSPRIu64 " op=%d repl=\"%s\": Begin incremental protocol\n",
61f723
+			"conn=%" PRIu64 " op=%d repl=\"%s\": Begin incremental protocol\n",
61f723
 			connid, opid, repl_root);
61f723
 		isInc = PR_TRUE;
61f723
 	}
61f723
@@ -695,7 +695,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		}
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": Begin total protocol\n",
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": Begin total protocol\n",
61f723
 				connid, opid, repl_root);
61f723
 		isInc = PR_FALSE;
61f723
 	}
61f723
@@ -705,7 +705,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		connext->repl_protocol_version = REPL_PROTOCOL_50_INCREMENTAL;
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 			"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-			"conn=%" NSPRIu64 " op=%d repl=\"%s\": Begin 7.1 incremental protocol\n",
61f723
+			"conn=%" PRIu64 " op=%d repl=\"%s\": Begin 7.1 incremental protocol\n",
61f723
 			connid, opid, repl_root);
61f723
 		isInc = PR_TRUE;
61f723
 	}
61f723
@@ -718,7 +718,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		}
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": Begin 7.1 total protocol\n",
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": Begin 7.1 total protocol\n",
61f723
 				connid, opid, repl_root);
61f723
 		isInc = PR_FALSE;
61f723
 	}
61f723
@@ -741,7 +741,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 	{
61f723
         slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
         		"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d replica=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d replica=\"%s\": "
61f723
 				"Replica is being configured: try again later\n",
61f723
 				connid, opid, repl_root);
61f723
 		response = NSDS50_REPL_REPLICA_BUSY;
61f723
@@ -814,7 +814,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 				{
61f723
 					slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name,
61f723
 							"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-							"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+							"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 							"Excessive clock skew from supplier RUV\n",
61f723
 							connid, opid, repl_root);
61f723
 					response = NSDS50_REPL_EXCESSIVE_CLOCK_SKEW;
61f723
@@ -852,7 +852,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 	if (check_replica_id_uniqueness(replica, supplier_ruv) != 0){
61f723
         slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
         		"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"Replica has same replicaID %d as supplier\n",
61f723
 				connid, opid, repl_root, replica_get_rid(replica));
61f723
 		response = NSDS50_REPL_REPLICAID_ERROR;
61f723
@@ -865,7 +865,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 	 * the session's conn id and op id to identify the the supplier.
61f723
 	 */
61f723
 	/* junkrc = ruv_get_first_id_and_purl(supplier_ruv, &junkrid, &locking_purl); */
61f723
-	snprintf(locking_session, sizeof(locking_session), "conn=%" NSPRIu64 " id=%d",
61f723
+	snprintf(locking_session, sizeof(locking_session), "conn=%" PRIu64 " id=%d",
61f723
 			connid, opid);
61f723
 	locking_purl = &locking_session[0];
61f723
 	if (replica_get_exclusive_access(replica, &isInc, connid, opid,
61f723
@@ -892,7 +892,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		int max = 480 * 5;
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"374 - Starting sleep: connext->repl_protocol_version == %d\n",
61f723
 				connid, opid, repl_root, connext->repl_protocol_version);
61f723
         
61f723
@@ -902,7 +902,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
         
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"374 - Finished sleep: connext->repl_protocol_version == %d\n",
61f723
 				connid, opid, repl_root, connext->repl_protocol_version);
61f723
 	}
61f723
@@ -997,7 +997,7 @@ multimaster_extop_StartNSDS50ReplicationRequest(Slapi_PBlock *pb)
61f723
 		response = NSDS50_REPL_INTERNAL_ERROR;
61f723
 		slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 				"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-				"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+				"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 				"Unexpected update protocol received: %d.  "
61f723
 				"Expected incremental or total.\n",
61f723
 				connid, opid, repl_root, connext->repl_protocol_version);
61f723
@@ -1039,7 +1039,7 @@ send_response:
61f723
 		slapi_log_err (resp_log_level,
61f723
 			repl_plugin_name,
61f723
 			"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-			"conn=%" NSPRIu64 " op=%d replica=\"%s\": "
61f723
+			"conn=%" PRIu64 " op=%d replica=\"%s\": "
61f723
 			"Unable to acquire replica: error: %s%s\n",
61f723
 			connid, opid,
61f723
 			(replica ? slapi_sdn_get_dn(replica_get_root(replica)) : "unknown"),
61f723
@@ -1092,7 +1092,7 @@ send_response:
61f723
 	slapi_pblock_set(pb, SLAPI_EXT_OP_RET_VALUE, resp_bval);
61f723
 	slapi_log_err(SLAPI_LOG_REPL, repl_plugin_name,
61f723
 			"multimaster_extop_StartNSDS50ReplicationRequest - "
61f723
-			"conn=%" NSPRIu64 " op=%d repl=\"%s\": "
61f723
+			"conn=%" PRIu64 " op=%d repl=\"%s\": "
61f723
 			"%s: response=%d rc=%d\n",
61f723
 			connid, opid, repl_root,
61f723
 			is90 ? "StartNSDS90ReplicationRequest" :
61f723
diff --git a/ldap/servers/plugins/sync/sync_persist.c b/ldap/servers/plugins/sync/sync_persist.c
61f723
index 667a529..bd856cb 100644
61f723
--- a/ldap/servers/plugins/sync/sync_persist.c
61f723
+++ b/ldap/servers/plugins/sync/sync_persist.c
61f723
@@ -548,14 +548,14 @@ sync_send_results( void *arg )
61f723
 	slapi_pblock_get(req->req_pblock, SLAPI_CONNECTION, &conn;;
61f723
 	if (NULL == conn) {
61f723
 		slapi_log_err(SLAPI_LOG_ERR, SYNC_PLUGIN_SUBSYSTEM,
61f723
-			"sync_send_results - conn=%" NSPRIu64 " op=%d Null connection - aborted\n",
61f723
+			"sync_send_results - conn=%" PRIu64 " op=%d Null connection - aborted\n",
61f723
 			connid, opid);
61f723
 		goto done;
61f723
 	}
61f723
 	conn_acq_flag = sync_acquire_connection (conn);
61f723
 	if (conn_acq_flag) {
61f723
 		slapi_log_err(SLAPI_LOG_ERR, SYNC_PLUGIN_SUBSYSTEM,
61f723
-			"sync_send_results - conn=%" NSPRIu64 " op=%d Could not acquire the connection - aborted\n",
61f723
+			"sync_send_results - conn=%" PRIu64 " op=%d Could not acquire the connection - aborted\n",
61f723
 			connid, opid);
61f723
 		goto done;
61f723
 	}
61f723
@@ -566,7 +566,7 @@ sync_send_results( void *arg )
61f723
 		/* Check for an abandoned operation */
61f723
 		if ( op == NULL || slapi_is_operation_abandoned( op ) ) {
61f723
 			slapi_log_err(SLAPI_LOG_PLUGIN, SYNC_PLUGIN_SUBSYSTEM,
61f723
-						"sync_send_results - conn=%" NSPRIu64 " op=%d Operation no longer active - terminating\n",
61f723
+						"sync_send_results - conn=%" PRIu64 " op=%d Operation no longer active - terminating\n",
61f723
 						connid, opid);
61f723
 			break;
61f723
 		}
61f723
diff --git a/ldap/servers/plugins/syntaxes/validate_task.c b/ldap/servers/plugins/syntaxes/validate_task.c
61f723
index eae2d2a..c051573 100644
61f723
--- a/ldap/servers/plugins/syntaxes/validate_task.c
61f723
+++ b/ldap/servers/plugins/syntaxes/validate_task.c
61f723
@@ -201,12 +201,12 @@ syntax_validate_task_thread(void *arg)
61f723
 	slapi_pblock_destroy(search_pb);
61f723
 
61f723
 	/* Log finished message. */
61f723
-	slapi_task_log_notice(task, "Syntax validate task complete.  Found %" NSPRIu64
61f723
+	slapi_task_log_notice(task, "Syntax validate task complete.  Found %" PRIu64
61f723
 	                " invalid entries.\n", slapi_counter_get_value(td->invalid_entries));
61f723
-	slapi_task_log_status(task, "Syntax validate task complete.  Found %" NSPRIu64
61f723
+	slapi_task_log_status(task, "Syntax validate task complete.  Found %" PRIu64
61f723
 	                " invalid entries.\n", slapi_counter_get_value(td->invalid_entries));
61f723
 	slapi_log_err(SLAPI_LOG_ERR, SYNTAX_PLUGIN_SUBSYSTEM, "syntax_validate_task_thread - Complete."
61f723
-	                "  Found %" NSPRIu64 " invalid entries.\n",
61f723
+	                "  Found %" PRIu64 " invalid entries.\n",
61f723
 	                slapi_counter_get_value(td->invalid_entries));
61f723
 	slapi_task_inc_progress(task);
61f723
 
61f723
diff --git a/ldap/servers/plugins/usn/usn.c b/ldap/servers/plugins/usn/usn.c
61f723
index 5e67e0a..54ebc31 100644
61f723
--- a/ldap/servers/plugins/usn/usn.c
61f723
+++ b/ldap/servers/plugins/usn/usn.c
61f723
@@ -320,7 +320,7 @@ _usn_add_next_usn(Slapi_Entry *e, Slapi_Backend *be)
61f723
                     "--> _usn_add_next_usn\n");
61f723
 
61f723
     /* add next USN to the entry; "be" contains the usn counter */
61f723
-    usn_berval.bv_val = slapi_ch_smprintf("%" NSPRIu64, 
61f723
+    usn_berval.bv_val = slapi_ch_smprintf("%" PRIu64, 
61f723
                                           slapi_counter_get_value(be->be_usn_counter));
61f723
     usn_berval.bv_len = strlen(usn_berval.bv_val);
61f723
     slapi_entry_attr_find(e, SLAPI_ATTR_ENTRYUSN, &attr);
61f723
@@ -360,7 +360,7 @@ _usn_mod_next_usn(LDAPMod ***mods, Slapi_Backend *be)
61f723
 
61f723
     /* add next USN to the mods; "be" contains the usn counter */
61f723
     usn_berval.bv_val = counter_buf;
61f723
-    snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRIu64,
61f723
+    snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" PRIu64,
61f723
                 slapi_counter_get_value(be->be_usn_counter));
61f723
     usn_berval.bv_len = strlen(usn_berval.bv_val);
61f723
     bvals[0] = &usn_berval;
61f723
@@ -681,7 +681,7 @@ usn_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter,
61f723
             /* get a next USN counter from be_usn_counter; 
61f723
              * then minus 1 from it (except if be_usn_counter has value 0) */
61f723
             if (slapi_counter_get_value(be->be_usn_counter)) {
61f723
-                snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRIu64,
61f723
+                snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" PRIu64,
61f723
                             slapi_counter_get_value(be->be_usn_counter)-1);
61f723
             } else {
61f723
                 snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "-1");
61f723
@@ -704,7 +704,7 @@ usn_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter,
61f723
             /* get a next USN counter from be_usn_counter; 
61f723
              * then minus 1 from it (except if be_usn_counter has value 0) */
61f723
             if (slapi_counter_get_value(be->be_usn_counter)) {
61f723
-                snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRIu64,
61f723
+                snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" PRIu64,
61f723
                             slapi_counter_get_value(be->be_usn_counter)-1);
61f723
             } else {
61f723
                 snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "-1");
61f723
diff --git a/ldap/servers/slapd/abandon.c b/ldap/servers/slapd/abandon.c
61f723
index 18ff8ce..0485006 100644
61f723
--- a/ldap/servers/slapd/abandon.c
61f723
+++ b/ldap/servers/slapd/abandon.c
61f723
@@ -119,19 +119,19 @@ do_abandon( Slapi_PBlock *pb )
61f723
 	}
61f723
 
61f723
 	if ( 0 == pagedresults_free_one_msgid_nolock(pb->pb_conn, id) ) {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 
61f723
 		    " op=%d ABANDON targetop=Simple Paged Results msgid=%d\n",
61f723
 		    pb->pb_conn->c_connid, pb->pb_op->o_opid, id );
61f723
 	} else if ( NULL == o ) {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d ABANDON"
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d ABANDON"
61f723
 			" targetop=NOTFOUND msgid=%d\n",
61f723
 			pb->pb_conn->c_connid, pb->pb_op->o_opid, id );
61f723
 	} else if ( suppressed_by_plugin ) {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d ABANDON"
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d ABANDON"
61f723
 			" targetop=SUPPRESSED-BY-PLUGIN msgid=%d\n",
61f723
 			pb->pb_conn->c_connid, pb->pb_op->o_opid, id );
61f723
 	} else {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d ABANDON"
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d ABANDON"
61f723
 			" targetop=%d msgid=%d nentries=%d etime=%ld\n",
61f723
 			pb->pb_conn->c_connid, pb->pb_op->o_opid, o->o_opid, id,
61f723
 			o->o_results.r.r_search.nentries, current_time() - o->o_time );
61f723
diff --git a/ldap/servers/slapd/add.c b/ldap/servers/slapd/add.c
61f723
index 1b994a0..9c4001e 100644
61f723
--- a/ldap/servers/slapd/add.c
61f723
+++ b/ldap/servers/slapd/add.c
61f723
@@ -168,7 +168,7 @@ do_add( Slapi_PBlock *pb )
61f723
 			if (( rc = slapi_entry_add_values( e, normtype, vals ))
61f723
 				!= LDAP_SUCCESS ) {
61f723
 				slapi_log_access( LDAP_DEBUG_STATS, 
61f723
-					"conn=%" NSPRIu64 " op=%d ADD dn=\"%s\", add values for type %s failed\n",
61f723
+					"conn=%" PRIu64 " op=%d ADD dn=\"%s\", add values for type %s failed\n",
61f723
 					pb->pb_conn->c_connid, operation->o_opid,
61f723
 					slapi_entry_get_dn_const(e), normtype );
61f723
 				send_ldap_result( pb, rc, NULL, NULL, 0, NULL );
61f723
@@ -460,7 +460,7 @@ static void op_shared_add (Slapi_PBlock *pb)
61f723
 
61f723
 		if ( !internal_op )
61f723
 		{
61f723
-			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d ADD dn=\"%s\"%s\n",
61f723
+			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d ADD dn=\"%s\"%s\n",
61f723
 							 pb->pb_conn->c_connid,
61f723
 							 operation->o_opid,
61f723
 							 slapi_entry_get_dn_const(e),
61f723
diff --git a/ldap/servers/slapd/auth.c b/ldap/servers/slapd/auth.c
61f723
index c787dd4..da1b586 100644
61f723
--- a/ldap/servers/slapd/auth.c
61f723
+++ b/ldap/servers/slapd/auth.c
61f723
@@ -366,7 +366,7 @@ handle_bad_certificate (void* clientData, PRFileDesc *prfd)
61f723
     char* subject = subject_of (clientCert);
61f723
     char* issuer  = issuer_of  (clientCert);
61f723
     slapi_log_access( LDAP_DEBUG_STATS,
61f723
-	       "conn=%" NSPRIu64 " " SLAPI_COMPONENT_NAME_NSPR " error %i (%s); unauthenticated client %s; issuer %s\n",
61f723
+	       "conn=%" PRIu64 " " SLAPI_COMPONENT_NAME_NSPR " error %i (%s); unauthenticated client %s; issuer %s\n",
61f723
 	       conn->c_connid, errorCode, slapd_pr_strerror(errorCode),
61f723
 	       subject ? escape_string( subject, sbuf ) : "NULL",
61f723
 	       issuer  ? escape_string( issuer,  ibuf ) : "NULL" );
61f723
@@ -402,7 +402,7 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
 	if ( (slapd_ssl_getChannelInfo (prfd, &channelInfo, sizeof(channelInfo))) != SECSuccess ) {
61f723
 		PRErrorCode errorCode = PR_GetError();
61f723
 		slapi_log_access (LDAP_DEBUG_STATS,
61f723
-			"conn=%" NSPRIu64 " SSL failed to obtain channel info; "
61f723
+			"conn=%" PRIu64 " SSL failed to obtain channel info; "
61f723
 			SLAPI_COMPONENT_NAME_NSPR " error %i (%s)\n",
61f723
 			conn->c_connid, errorCode, slapd_pr_strerror(errorCode));
61f723
 		goto done;
61f723
@@ -411,7 +411,7 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
 			!= SECSuccess) {
61f723
 		PRErrorCode errorCode = PR_GetError();
61f723
 		slapi_log_access (LDAP_DEBUG_STATS,
61f723
-			"conn=%" NSPRIu64 " SSL failed to obtain cipher info; "
61f723
+			"conn=%" PRIu64 " SSL failed to obtain cipher info; "
61f723
 			SLAPI_COMPONENT_NAME_NSPR " error %i (%s)\n",
61f723
 			conn->c_connid, errorCode, slapd_pr_strerror(errorCode));
61f723
 		goto done;
61f723
@@ -432,14 +432,14 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
 
61f723
     if (config_get_SSLclientAuth() == SLAPD_SSLCLIENTAUTH_OFF ) {
61f723
         (void) slapi_getSSLVersion_str(channelInfo.protocolVersion, sslversion, sizeof(sslversion));
61f723
-        slapi_log_access (LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " %s %i-bit %s\n",
61f723
+        slapi_log_access (LDAP_DEBUG_STATS, "conn=%" PRIu64 " %s %i-bit %s\n",
61f723
                 conn->c_connid, 
61f723
                 sslversion, keySize, cipher ? cipher : "NULL" );
61f723
         goto done;
61f723
     }
61f723
     if (clientCert == NULL) {
61f723
         (void) slapi_getSSLVersion_str(channelInfo.protocolVersion, sslversion, sizeof(sslversion));
61f723
-        slapi_log_access (LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " %s %i-bit %s\n",
61f723
+        slapi_log_access (LDAP_DEBUG_STATS, "conn=%" PRIu64 " %s %i-bit %s\n",
61f723
                 conn->c_connid, 
61f723
                 sslversion, keySize, cipher ? cipher : "NULL" );
61f723
     } else {
61f723
@@ -448,7 +448,7 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
             (void) slapi_getSSLVersion_str(channelInfo.protocolVersion,
61f723
                                                  sslversion, sizeof(sslversion));
61f723
             slapi_log_access( LDAP_DEBUG_STATS,
61f723
-                       "conn=%" NSPRIu64 " %s %i-bit %s; missing subject\n",
61f723
+                       "conn=%" PRIu64 " %s %i-bit %s; missing subject\n",
61f723
                        conn->c_connid, 
61f723
                        sslversion, keySize, cipher ? cipher : "NULL");
61f723
             goto done;
61f723
@@ -459,7 +459,7 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
             (void) slapi_getSSLVersion_str(channelInfo.protocolVersion,
61f723
                                                  sslversion, sizeof(sslversion));
61f723
             slapi_log_access( LDAP_DEBUG_STATS,
61f723
-                        "conn=%" NSPRIu64 " %s %i-bit %s; client %s; issuer %s\n",
61f723
+                        "conn=%" PRIu64 " %s %i-bit %s; client %s; issuer %s\n",
61f723
                         conn->c_connid,
61f723
                         sslversion, keySize, cipher ? cipher : "NULL",
61f723
                         subject ? escape_string( subject, sbuf ) : "NULL",
61f723
@@ -503,14 +503,14 @@ handle_handshake_done (PRFileDesc *prfd, void* clientData)
61f723
         (void) slapi_getSSLVersion_str(channelInfo.protocolVersion,
61f723
                                              sslversion, sizeof(sslversion));
61f723
         slapi_log_access (LDAP_DEBUG_STATS, 
61f723
-                          "conn=%" NSPRIu64 " %s client bound as %s\n",
61f723
+                          "conn=%" PRIu64 " %s client bound as %s\n",
61f723
                           conn->c_connid,
61f723
                           sslversion, clientDN);
61f723
     } else if (clientCert != NULL) {
61f723
         (void) slapi_getSSLVersion_str(channelInfo.protocolVersion,
61f723
                                              sslversion, sizeof(sslversion));
61f723
         slapi_log_access (LDAP_DEBUG_STATS,
61f723
-                          "conn=%" NSPRIu64 " %s failed to map client "
61f723
+                          "conn=%" PRIu64 " %s failed to map client "
61f723
                           "certificate to LDAP DN (%s)\n",
61f723
                           conn->c_connid,
61f723
                           sslversion, extraErrorMsg);
61f723
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
61f723
index a5fc540..0bb15e3 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
61f723
+++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
61f723
@@ -28,21 +28,8 @@
61f723
 #endif
61f723
 #endif
61f723
 
61f723
-/* Required to get portable printf/scanf format macros */
61f723
-#ifdef HAVE_INTTYPES_H
61f723
-#include <inttypes.h>
61f723
-
61f723
-/* NSPR uses the print macros a bit differently than ANSI C.  We
61f723
- * need to use ll for a 64-bit integer, even when a long is 64-bit.
61f723
- */
61f723
-#undef PRIu64
61f723
-#define PRIu64  "llu"
61f723
-#undef PRI64
61f723
-#define PRI64   "ll"
61f723
-
61f723
-#else
61f723
-#error Need to define portable format macros such as PRIu64
61f723
-#endif /* HAVE_INTTYPES_H */
61f723
+/* Provides our int types and platform specific requirements. */
61f723
+#include <slapi_pal.h>
61f723
 
61f723
 /* A bunch of random system headers taken from all the source files, no source file should #include
61f723
    any system headers now */
61f723
@@ -162,11 +149,11 @@ typedef unsigned short u_int16_t;
61f723
 #define    DBVERSION_FILENAME    "DBVERSION"
61f723
 /* 0 here means to let the autotuning reset the value on first run */
61f723
 /* cache can't get any smaller than this (in bytes) */
61f723
-#define MINCACHESIZE             (size_t)512000
61f723
-#define DEFAULT_CACHE_SIZE       (size_t)0
61f723
+#define MINCACHESIZE             (uint64_t)512000
61f723
+#define DEFAULT_CACHE_SIZE       (uint64_t)0
61f723
 #define DEFAULT_CACHE_SIZE_STR   "0"
61f723
 #define DEFAULT_CACHE_ENTRIES    -1        /* no limit */
61f723
-#define DEFAULT_DNCACHE_SIZE     (size_t)16777216
61f723
+#define DEFAULT_DNCACHE_SIZE     (uint64_t)16777216
61f723
 #define DEFAULT_DNCACHE_SIZE_STR "16777216"
61f723
 #define DEFAULT_DNCACHE_MAXCOUNT -1        /* no limit */
61f723
 #define DEFAULT_DBCACHE_SIZE     33554432
61f723
diff --git a/ldap/servers/slapd/back-ldbm/cache.c b/ldap/servers/slapd/back-ldbm/cache.c
61f723
index ade2240..0f0cf3b 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/cache.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/cache.c
61f723
@@ -649,7 +649,7 @@ void cache_set_max_size(struct cache *cache, size_t bytes, int type)
61f723
     }
61f723
 }
61f723
 
61f723
-static void entrycache_set_max_size(struct cache *cache, size_t bytes)
61f723
+static void entrycache_set_max_size(struct cache *cache, uint64_t bytes)
61f723
 {
61f723
     struct backentry *eflush = NULL;
61f723
     struct backentry *eflushtemp = NULL;
61f723
@@ -659,16 +659,17 @@ static void entrycache_set_max_size(struct cache *cache, size_t bytes)
61f723
          * to happen. In that case, suppress this warning.
61f723
          */
61f723
         if (bytes > 0) {
61f723
-            slapi_log_err(SLAPI_LOG_WARNING, "entrycache_set_max_size", "Minimum cache size is %lu -- rounding up\n", MINCACHESIZE);
61f723
+            slapi_log_err(SLAPI_LOG_WARNING, "entrycache_set_max_size", "Minimum cache size is %"PRIu64" -- rounding up\n", MINCACHESIZE);
61f723
         }
61f723
         bytes = MINCACHESIZE;
61f723
     }
61f723
     cache_lock(cache);
61f723
     cache->c_maxsize = bytes;
61f723
-    LOG("entry cache size set to %lu\n", bytes);
61f723
+    LOG("entry cache size set to %"PRIu64"\n", bytes);
61f723
     /* check for full cache, and clear out if necessary */
61f723
-    if (CACHE_FULL(cache))
61f723
+    if (CACHE_FULL(cache)) {
61f723
        eflush = entrycache_flush(cache);
61f723
+    }
61f723
     while (eflush)
61f723
     {
61f723
         eflushtemp = BACK_LRU_NEXT(eflush, struct backentry *);
61f723
@@ -686,12 +687,11 @@ static void entrycache_set_max_size(struct cache *cache, size_t bytes)
61f723
     /* This may already have been called by one of the functions in
61f723
      * ldbm_instance_config
61f723
      */
61f723
-    if (! util_is_cachesize_sane(&bytes)) {
61f723
-       slapi_log_err(SLAPI_LOG_WARNING,
61f723
-                "entrycache_set_max_size", "Possible CONFIGURATION ERROR -- cachesize "
61f723
-                "(%lu) may be configured to use more than the available "
61f723
-                "physical memory.\n", bytes);
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    if (util_is_cachesize_sane(mi, &bytes) != UTIL_CACHESIZE_VALID) {
61f723
+       slapi_log_err(SLAPI_LOG_WARNING, "entrycache_set_max_size", "Cachesize (%"PRIu64") may use more than the available physical memory.\n", bytes);
61f723
     }
61f723
+    spal_meminfo_destroy(mi);
61f723
 }
61f723
 
61f723
 void cache_set_max_entries(struct cache *cache, long entries)
61f723
@@ -1597,7 +1597,7 @@ dn_same_id(const void *bdn, const void *k)
61f723
 }
61f723
 
61f723
 static void
61f723
-dncache_set_max_size(struct cache *cache, size_t bytes)
61f723
+dncache_set_max_size(struct cache *cache, uint64_t bytes)
61f723
 {
61f723
     struct backdn *dnflush = NULL;
61f723
     struct backdn *dnflushtemp = NULL;
61f723
@@ -1609,12 +1609,12 @@ dncache_set_max_size(struct cache *cache, size_t bytes)
61f723
     if (bytes < MINCACHESIZE) {
61f723
        bytes = MINCACHESIZE;
61f723
        slapi_log_err(SLAPI_LOG_WARNING,
61f723
-                "dncache_set_max_size", "Minimum cache size is %lu -- rounding up\n",
61f723
+                "dncache_set_max_size", "Minimum cache size is %"PRIu64" -- rounding up\n",
61f723
                 MINCACHESIZE);
61f723
     }
61f723
     cache_lock(cache);
61f723
     cache->c_maxsize = bytes;
61f723
-    LOG("entry cache size set to %lu\n", bytes);
61f723
+    LOG("entry cache size set to %"PRIu64"\n", bytes);
61f723
     /* check for full cache, and clear out if necessary */
61f723
     if (CACHE_FULL(cache)) {
61f723
        dnflush = dncache_flush(cache);
61f723
@@ -1636,12 +1636,12 @@ dncache_set_max_size(struct cache *cache, size_t bytes)
61f723
     /* This may already have been called by one of the functions in
61f723
      * ldbm_instance_config
61f723
      */
61f723
-    if (! util_is_cachesize_sane(&bytes)) {
61f723
-       slapi_log_err(SLAPI_LOG_WARNING,
61f723
-                "dncache_set_max_size", "Possible CONFIGURATION ERROR -- cachesize "
61f723
-                "(%lu) may be configured to use more than the available "
61f723
-                "physical memory.\n", bytes);
61f723
+
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    if (util_is_cachesize_sane(mi, &bytes) != UTIL_CACHESIZE_VALID) {
61f723
+       slapi_log_err(SLAPI_LOG_WARNING, "dncache_set_max_size", "Cachesize (%"PRIu64") may use more than the available physical memory.\n", bytes);
61f723
     }
61f723
+    spal_meminfo_destroy(mi);
61f723
 }
61f723
 
61f723
 /* remove a dn from the cache */
61f723
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c b/ldap/servers/slapd/back-ldbm/dblayer.c
61f723
index 507a3cc..3c1fbb0 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
61f723
@@ -1386,14 +1386,16 @@ dblayer_start(struct ldbminfo *li, int dbmode)
61f723
 
61f723
     /* Sanity check on cache size on platforms which allow us to figure out
61f723
      * the available phys mem */
61f723
-    if (!util_is_cachesize_sane(&(priv->dblayer_cachesize))) {
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    if (!util_is_cachesize_sane(mi, &(priv->dblayer_cachesize))) {
61f723
         /* Oops---looks like the admin misconfigured, let's warn them */
61f723
         slapi_log_err(SLAPI_LOG_WARNING,"dblayer_start", "Likely CONFIGURATION ERROR -"
61f723
                   "dbcachesize is configured to use more than the available "
61f723
-                  "physical memory, decreased to the largest available size (%lu bytes).\n",
61f723
+                  "physical memory, decreased to the largest available size (%"PRIu64" bytes).\n",
61f723
                   priv->dblayer_cachesize);
61f723
         li->li_dbcachesize = priv->dblayer_cachesize;
61f723
     }
61f723
+    spal_meminfo_destroy(mi);
61f723
 
61f723
     /* fill in DB_ENV stuff from the common configuration */
61f723
     return_value = dblayer_make_env(&pEnv, li);
61f723
@@ -1690,9 +1692,6 @@ dblayer_start(struct ldbminfo *li, int dbmode)
61f723
  *    nsslapd-import-cache-autosize: 0
61f723
  * get the nsslapd-import-cachesize.
61f723
  * Calculate the memory size left after allocating the import cache size.
61f723
- * If the size is less than the hard limit, it issues an error and quit.
61f723
- * If the size is greater than the hard limit and less than the soft limit,
61f723
- * it issues a warning, but continues the import task.
61f723
  *
61f723
  * Note: this function is called only if the import is executed as a stand
61f723
  * alone command line (ldif2db).
61f723
@@ -1700,27 +1699,17 @@ dblayer_start(struct ldbminfo *li, int dbmode)
61f723
 int
61f723
 check_and_set_import_cache(struct ldbminfo *li)
61f723
 {
61f723
-    size_t import_pages = 0;
61f723
-    size_t pagesize, pages, procpages, availpages;
61f723
-    size_t soft_limit = 0;
61f723
-    size_t hard_limit = 0;
61f723
-    size_t page_delta = 0;
61f723
+    uint64_t import_cache = 0;
61f723
     char s[64];   /* big enough to hold %ld */
61f723
+    /* Get our platform memory values. */
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
 
61f723
-    if (util_info_sys_pages(&pagesize, &pages, &procpages, &availpages) != 0 || 0 == pagesize || 0 == pages) {
61f723
-        slapi_log_err(SLAPI_LOG_ERR, "check_and_set_import_cache",
61f723
-                       "Failed to get pagesize: %ld or pages: %ld\n",
61f723
-                       pagesize, pages);
61f723
+    if (mi == NULL) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "check_and_set_import_cache", "Failed to get system memory infomation\n");
61f723
         return ENOENT;
61f723
     }
61f723
-    slapi_log_err(SLAPI_LOG_INFO, "check_and_set_import_cache",
61f723
-                  "pagesize: %ld, pages: %ld, procpages: %ld\n",
61f723
-                  pagesize, pages, procpages);
61f723
+    slapi_log_err(SLAPI_LOG_INFO, "check_and_set_import_cache", "pagesize: %"PRIu64", available bytes %"PRIu64", process usage %"PRIu64" \n", mi->pagesize_bytes, mi->system_available_bytes, mi->process_consumed_bytes);
61f723
 
61f723
-    /* Soft limit: pages equivalent to 1GB (defined in dblayer.h) */
61f723
-    soft_limit = (DBLAYER_IMPORTCACHESIZE_SL*1024) / (pagesize/1024);
61f723
-    /* Hard limit: pages equivalent to 100MB (defined in dblayer.h) */
61f723
-    hard_limit = (DBLAYER_IMPORTCACHESIZE_HL*1024) / (pagesize/1024);
61f723
     /*
61f723
      * default behavior for ldif2db import cache,
61f723
      * nsslapd-import-cache-autosize==-1,
61f723
@@ -1741,48 +1730,29 @@ check_and_set_import_cache(struct ldbminfo *li)
61f723
 
61f723
     if (li->li_import_cache_autosize == 0) {
61f723
         /* user specified importCache */
61f723
-        import_pages = li->li_import_cachesize / pagesize;
61f723
+        import_cache = li->li_import_cachesize;
61f723
 
61f723
     } else {
61f723
         /* autosizing importCache */
61f723
         /* ./125 instead of ./100 is for adjusting the BDB overhead. */
61f723
-#ifdef LINUX
61f723
-        /* On linux, availpages is correct so we should use it! */
61f723
-        import_pages = (li->li_import_cache_autosize * availpages) / 125;
61f723
-#else
61f723
-        import_pages = (li->li_import_cache_autosize * pages) / 125;
61f723
-#endif
61f723
+        import_cache = (li->li_import_cache_autosize * mi->system_available_bytes) / 125;
61f723
     }
61f723
 
61f723
-    page_delta = pages - import_pages;
61f723
-    if (page_delta < hard_limit) {
61f723
-        slapi_log_err(SLAPI_LOG_ERR, 
61f723
-            "check_and_set_import_cache", "After allocating import cache %ldKB, "
61f723
-            "the available memory is %ldKB, "
61f723
-            "which is less than the hard limit %ldKB. "
61f723
-            "Please decrease the import cache size and rerun import.\n",
61f723
-            import_pages*(pagesize/1024), page_delta*(pagesize/1024),
61f723
-            hard_limit*(pagesize/1024));
61f723
+    if (util_is_cachesize_sane(mi, &import_cache) == UTIL_CACHESIZE_ERROR) {
61f723
+
61f723
+        slapi_log_err(SLAPI_LOG_INFO, "check_and_set_import_cache", "Import failed to run: unable to validate system memory limits.\n");
61f723
+        spal_meminfo_destroy(mi);
61f723
         return ENOMEM;
61f723
     }
61f723
-    if (page_delta < soft_limit) {
61f723
-        slapi_log_err(SLAPI_LOG_WARNING, 
61f723
-            "check_and_set_import_cache", "After allocating import cache %ldKB, "
61f723
-            "the available memory is %ldKB, "
61f723
-            "which is less than the soft limit %ldKB. "
61f723
-            "You may want to decrease the import cache size and "
61f723
-            "rerun import.\n",
61f723
-            import_pages*(pagesize/1024), page_delta*(pagesize/1024),
61f723
-            soft_limit*(pagesize/1024));
61f723
-    }
61f723
 
61f723
-    slapi_log_err(SLAPI_LOG_INFO, "check_and_set_import_cache", "Import allocates %ldKB import cache.\n", 
61f723
-                  import_pages*(pagesize/1024));
61f723
-    if (li->li_import_cache_autosize > 0) { /* import cache autosizing */
61f723
+    slapi_log_err(SLAPI_LOG_INFO, "check_and_set_import_cache", "Import allocates %"PRIu64"KB import cache.\n", import_cache / 1024);
61f723
+    if (li->li_import_cache_autosize > 0) {
61f723
+        /* import cache autosizing */
61f723
         /* set the calculated import cache size to the config */
61f723
-        sprintf(s, "%lu", (unsigned long)(import_pages * pagesize));
61f723
+        sprintf(s, "%"PRIu64, import_cache);
61f723
         ldbm_config_internal_set(li, CONFIG_IMPORT_CACHESIZE, s);
61f723
     }
61f723
+    spal_meminfo_destroy(mi);
61f723
     return 0;
61f723
 }
61f723
 
61f723
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.h b/ldap/servers/slapd/back-ldbm/dblayer.h
61f723
index e4307fc..816c943 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/dblayer.h
61f723
+++ b/ldap/servers/slapd/back-ldbm/dblayer.h
61f723
@@ -68,14 +68,6 @@
61f723
 #define	DB_REGION_NAME	25		/* DB: named regions, no backing file. */
61f723
 #endif
61f723
 
61f723
-/* Used in check_and_set_import_cache */
61f723
-/* After allocating the import cache, free memory must be left more than
61f723
- * the hard limit to run import. */
61f723
-/* If the free memory size left is greater than hard limit and less than
61f723
- * soft limit, the import utility issues a warning, but it runs */
61f723
-#define DBLAYER_IMPORTCACHESIZE_HL 100  /* import cache hard limit 100MB */
61f723
-#define DBLAYER_IMPORTCACHESIZE_SL 1024 /* import cache soft limit 1GB */
61f723
-
61f723
 struct dblayer_private_env {
61f723
 	DB_ENV	*dblayer_DB_ENV;
61f723
 	Slapi_RWLock * dblayer_env_lock;
61f723
diff --git a/ldap/servers/slapd/back-ldbm/import-threads.c b/ldap/servers/slapd/back-ldbm/import-threads.c
61f723
index 087103b..ab32e0a 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/import-threads.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/import-threads.c
61f723
@@ -3979,7 +3979,7 @@ _get_import_entryusn(ImportJob *job, Slapi_Value **usn_value)
61f723
              * Use the counter which stores the old DB's
61f723
              * next entryusn. */
61f723
             PR_snprintf(counter_buf, sizeof(counter_buf),
61f723
-                    "%" NSPRIu64, slapi_counter_get_value(be->be_usn_counter));
61f723
+                    "%" PRIu64, slapi_counter_get_value(be->be_usn_counter));
61f723
         } else {
61f723
             /* import_init value is digit.
61f723
              * Initialize the entryusn values with the digit */
61f723
diff --git a/ldap/servers/slapd/back-ldbm/import.c b/ldap/servers/slapd/back-ldbm/import.c
61f723
index d0cef1a..7161bac 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/import.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/import.c
61f723
@@ -84,17 +84,19 @@ static int import_fifo_init(ImportJob *job)
61f723
 int import_fifo_validate_capacity_or_expand(ImportJob *job, size_t entrysize) {
61f723
     int result = 1;
61f723
     /* We shoot for four times as much to start with. */
61f723
-    size_t request = entrysize * 4;
61f723
-    int sane = 0;
61f723
+    uint64_t request = entrysize * 4;
61f723
+    util_cachesize_result sane;
61f723
 
61f723
     if (entrysize > job->fifo.bsize) {
61f723
         /* Check the amount of memory on the system */
61f723
-        sane = util_is_cachesize_sane(&request);
61f723
-        if (!sane && entrysize <= request) {
61f723
+        slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+        sane = util_is_cachesize_sane(mi, &request);
61f723
+        spal_meminfo_destroy(mi);
61f723
+        if (sane == UTIL_CACHESIZE_REDUCED && entrysize <= request) {
61f723
             /* Did the amount cachesize set still exceed entrysize? It'll do ... */
61f723
             job->fifo.bsize = request;
61f723
             result = 0;
61f723
-        } else if (!sane) {
61f723
+        } else if (sane != UTIL_CACHESIZE_VALID) {
61f723
             /* Can't allocate! No!!! */
61f723
             result = 1;
61f723
         } else {
61f723
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_config.c b/ldap/servers/slapd/back-ldbm/ldbm_config.c
61f723
index dfe7a13..d5120d3 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/ldbm_config.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/ldbm_config.c
61f723
@@ -403,8 +403,8 @@ static int ldbm_config_dbcachesize_set(void *arg, void *value, char *errorbuf, i
61f723
 {
61f723
     struct ldbminfo *li = (struct ldbminfo *) arg;
61f723
     int retval = LDAP_SUCCESS;
61f723
-    size_t val = (size_t)value;
61f723
-    size_t delta = (size_t)value;
61f723
+    uint64_t val = (size_t)value;
61f723
+    uint64_t delta = (size_t)value;
61f723
 
61f723
     /* There is an error here. We check the new val against our current mem-alloc 
61f723
      * Issue is that we already are using system pages, so while our value *might*
61f723
@@ -430,7 +430,13 @@ static int ldbm_config_dbcachesize_set(void *arg, void *value, char *errorbuf, i
61f723
             val = DBDEFMINSIZ;
61f723
         } else if (val > li->li_dbcachesize) {
61f723
             delta = val - li->li_dbcachesize;
61f723
-            if (!util_is_cachesize_sane(&delta)){
61f723
+
61f723
+            util_cachesize_result sane;
61f723
+            slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+            sane = util_is_cachesize_sane(mi, &delta);
61f723
+            spal_meminfo_destroy(mi);
61f723
+
61f723
+            if (sane != UTIL_CACHESIZE_VALID){
61f723
                 slapi_create_errormsg(errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, "Error: nsslapd-dbcachesize value is too large.");
61f723
                 slapi_log_err(SLAPI_LOG_ERR, "ldbm_config_dbcachesize_set",
61f723
                         "nsslapd-dbcachesize value is too large.\n");
61f723
@@ -1086,7 +1092,7 @@ static int ldbm_config_db_cache_set(void *arg, void *value, char *errorbuf, int
61f723
     struct ldbminfo *li = (struct ldbminfo *) arg;
61f723
     int retval = LDAP_SUCCESS;
61f723
     int val = ((uintptr_t)value);
61f723
-    size_t delta = 0;
61f723
+    uint64_t delta = 0;
61f723
 
61f723
     /* There is an error here. We check the new val against our current mem-alloc 
61f723
      * Issue is that we already are using system pages, so while our value *might*
61f723
@@ -1101,7 +1107,13 @@ static int ldbm_config_db_cache_set(void *arg, void *value, char *errorbuf, int
61f723
     if (apply) {
61f723
         if (val > li->li_dblayer_private->dblayer_cache_config) {
61f723
             delta = val - li->li_dblayer_private->dblayer_cache_config;
61f723
-            if (!util_is_cachesize_sane(&delta)){
61f723
+            util_cachesize_result sane;
61f723
+
61f723
+            slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+            sane = util_is_cachesize_sane(mi, &delta);
61f723
+            spal_meminfo_destroy(mi);
61f723
+
61f723
+            if (sane != UTIL_CACHESIZE_VALID){
61f723
                 slapi_create_errormsg(errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, "Error: db cachesize value is too large");
61f723
                 slapi_log_err(SLAPI_LOG_ERR,"ldbm_config_db_cache_set", "db cachesize value is too large.\n");
61f723
                 return LDAP_UNWILLING_TO_PERFORM;
61f723
@@ -1219,7 +1231,7 @@ static int ldbm_config_import_cachesize_set(void *arg, void *value, char *errorb
61f723
 {
61f723
     struct ldbminfo *li = (struct ldbminfo *)arg;
61f723
     size_t val = (size_t)value;
61f723
-    size_t delta = (size_t)value;
61f723
+    uint64_t delta = (size_t)value;
61f723
     /* There is an error here. We check the new val against our current mem-alloc 
61f723
      * Issue is that we already are using system pages, so while our value *might*
61f723
      * be valid, we may reject it here due to the current procs page usage.
61f723
@@ -1232,7 +1244,13 @@ static int ldbm_config_import_cachesize_set(void *arg, void *value, char *errorb
61f723
     if (apply){
61f723
         if (val > li->li_import_cachesize) {
61f723
             delta = val - li->li_import_cachesize;
61f723
-            if (!util_is_cachesize_sane(&delta)){
61f723
+
61f723
+            util_cachesize_result sane;
61f723
+            slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+            sane = util_is_cachesize_sane(mi, &delta);
61f723
+            spal_meminfo_destroy(mi);
61f723
+
61f723
+            if (sane != UTIL_CACHESIZE_VALID){
61f723
                 slapi_create_errormsg(errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, "Error: import cachesize value is too large.");
61f723
                 slapi_log_err(SLAPI_LOG_ERR,"ldbm_config_import_cachesize_set",
61f723
                         "Import cachesize value is too large.\n");
61f723
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
61f723
index 92d982e..0b0b37e 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
61f723
@@ -107,7 +107,7 @@ ldbm_back_delete( Slapi_PBlock *pb )
61f723
 
61f723
 	if (pb->pb_conn)
61f723
 	{
61f723
-		slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_delete", "Enter conn=%" NSPRIu64 " op=%d\n",
61f723
+		slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_delete", "Enter conn=%" PRIu64 " op=%d\n",
61f723
 				pb->pb_conn->c_connid, operation->o_opid);
61f723
 	}
61f723
 
61f723
@@ -1493,7 +1493,7 @@ diskfull_return:
61f723
 	slapi_sdn_done(&parentsdn);
61f723
 	if (pb->pb_conn)
61f723
 	{
61f723
-		slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_delete", "leave conn=%" NSPRIu64 " op=%d\n",
61f723
+		slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_delete", "leave conn=%" PRIu64 " op=%d\n",
61f723
 				pb->pb_conn->c_connid, operation->o_opid);
61f723
 	}
61f723
 
61f723
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
61f723
index e03954d..62cdbc3 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/ldbm_instance_config.c
61f723
@@ -92,7 +92,7 @@ ldbm_instance_config_cachememsize_set(void *arg, void *value, char *errorbuf, in
61f723
     ldbm_instance *inst = (ldbm_instance *) arg;
61f723
     int retval = LDAP_SUCCESS;
61f723
     size_t val = (size_t) value;
61f723
-    size_t delta = 0;
61f723
+    uint64_t delta = 0;
61f723
 
61f723
     /* Do whatever we can to make sure the data is ok. */
61f723
     /* There is an error here. We check the new val against our current mem-alloc 
61f723
@@ -108,7 +108,13 @@ ldbm_instance_config_cachememsize_set(void *arg, void *value, char *errorbuf, in
61f723
     if (apply) {
61f723
         if (val > inst->inst_cache.c_maxsize) {
61f723
             delta = val - inst->inst_cache.c_maxsize;
61f723
-            if (!util_is_cachesize_sane(&delta)){
61f723
+
61f723
+            util_cachesize_result sane;
61f723
+            slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+            sane = util_is_cachesize_sane(mi, &delta);
61f723
+            spal_meminfo_destroy(mi);
61f723
+
61f723
+            if (sane != UTIL_CACHESIZE_VALID){
61f723
                 slapi_create_errormsg(errorbuf, SLAPI_DSE_RETURNTEXT_SIZE, "Error: cachememsize value is too large.");
61f723
                 slapi_log_err(SLAPI_LOG_ERR, "ldbm_instance_config_cachememsize_set", "cachememsize value is too large.\n");
61f723
                 return LDAP_UNWILLING_TO_PERFORM;
61f723
@@ -134,7 +140,7 @@ ldbm_instance_config_dncachememsize_set(void *arg, void *value, char *errorbuf,
61f723
     ldbm_instance *inst = (ldbm_instance *) arg;
61f723
     int retval = LDAP_SUCCESS;
61f723
     size_t val = (size_t)value;
61f723
-    size_t delta = 0;
61f723
+    uint64_t delta = 0;
61f723
 
61f723
     /* Do whatever we can to make sure the data is ok. */
61f723
     /* There is an error here. We check the new val against our current mem-alloc 
61f723
@@ -150,7 +156,13 @@ ldbm_instance_config_dncachememsize_set(void *arg, void *value, char *errorbuf,
61f723
     if (apply) {
61f723
         if (val > inst->inst_dncache.c_maxsize) {
61f723
             delta = val - inst->inst_dncache.c_maxsize;
61f723
-            if (!util_is_cachesize_sane(&delta)){
61f723
+
61f723
+            util_cachesize_result sane;
61f723
+            slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+            sane = util_is_cachesize_sane(mi, &delta);
61f723
+            spal_meminfo_destroy(mi);
61f723
+
61f723
+            if (sane != UTIL_CACHESIZE_VALID){
61f723
                 slapi_create_errormsg(errorbuf, SLAPI_DSE_RETURNTEXT_SIZE,
61f723
                     "Error: dncachememsize value is too large.");
61f723
                 slapi_log_err(SLAPI_LOG_ERR,"ldbm_instance_config_dncachememsize_set",
61f723
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
61f723
index a78d850..533273b 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
61f723
@@ -142,7 +142,7 @@ ldbm_back_modrdn( Slapi_PBlock *pb )
61f723
 
61f723
     if (pb->pb_conn)
61f723
     {
61f723
-        slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_modrdn", "enter conn=%" NSPRIu64 " op=%d\n",
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_modrdn", "enter conn=%" PRIu64 " op=%d\n",
61f723
                 pb->pb_conn->c_connid, operation->o_opid);
61f723
     }
61f723
 
61f723
@@ -1539,7 +1539,7 @@ common_return:
61f723
     if (pb->pb_conn)
61f723
     {
61f723
         slapi_log_err(SLAPI_LOG_TRACE, "ldbm_back_modrdn",
61f723
-                "leave conn=%" NSPRIu64 " op=%d\n",
61f723
+                "leave conn=%" PRIu64 " op=%d\n",
61f723
                 pb->pb_conn->c_connid, operation->o_opid);
61f723
     }
61f723
     return retval;
61f723
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_search.c b/ldap/servers/slapd/back-ldbm/ldbm_search.c
61f723
index a6c3b74..cfb0d6b 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/ldbm_search.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/ldbm_search.c
61f723
@@ -407,7 +407,7 @@ ldbm_back_search( Slapi_PBlock *pb )
61f723
                     slapi_pblock_get(pb, SLAPI_OPERATION_ID, &op_id);
61f723
 
61f723
                     slapi_log_err(SLAPI_LOG_WARNING,
61f723
-                            "ldbm_back_search", "Sort control ignored for conn=%" NSPRIu64 " op=%d\n",
61f723
+                            "ldbm_back_search", "Sort control ignored for conn=%" PRIu64 " op=%d\n",
61f723
                             conn_id, op_id);                    
61f723
                 }
61f723
             } else {
61f723
@@ -442,7 +442,7 @@ ldbm_back_search( Slapi_PBlock *pb )
61f723
                         slapi_pblock_get(pb, SLAPI_OPERATION_ID, &op_id);
61f723
 
61f723
                         slapi_log_err(SLAPI_LOG_WARNING,
61f723
-                                "ldbm_back_search", "VLV control ignored for conn=%" NSPRIu64 " op=%d\n",
61f723
+                                "ldbm_back_search", "VLV control ignored for conn=%" PRIu64 " op=%d\n",
61f723
                                 conn_id, op_id);             
61f723
                     }
61f723
 
61f723
diff --git a/ldap/servers/slapd/back-ldbm/misc.c b/ldap/servers/slapd/back-ldbm/misc.c
61f723
index 5268087..7192b3a 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/misc.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/misc.c
61f723
@@ -54,7 +54,7 @@ void ldbm_log_access_message(Slapi_PBlock *pblock,char *string)
61f723
         return;
61f723
     }
61f723
     operation_id = operation->o_opid;
61f723
-    slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d %s\n",
61f723
+    slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d %s\n",
61f723
                      connection_id, operation_id, string);
61f723
 }
61f723
 
61f723
diff --git a/ldap/servers/slapd/back-ldbm/monitor.c b/ldap/servers/slapd/back-ldbm/monitor.c
61f723
index 757792b..c58b069 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/monitor.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/monitor.c
61f723
@@ -101,9 +101,9 @@ int ldbm_back_monitor_instance_search(Slapi_PBlock *pb, Slapi_Entry *e,
61f723
         /* fetch cache statistics */
61f723
         cache_get_stats(&(inst->inst_dncache), &hits, &tries, 
61f723
                         &nentries, &maxentries, &size, &maxsize);
61f723
-        sprintf(buf, "%" NSPRIu64, hits);
61f723
+        sprintf(buf, "%" PRIu64, hits);
61f723
         MSET("dnCacheHits");
61f723
-        sprintf(buf, "%" NSPRIu64, tries);
61f723
+        sprintf(buf, "%" PRIu64, tries);
61f723
         MSET("dnCacheTries");
61f723
         sprintf(buf, "%lu", (unsigned long)(100.0*(double)hits / (double)(tries > 0 ? tries : 1)));
61f723
         MSET("dnCacheHitRatio");
61f723
@@ -119,11 +119,11 @@ int ldbm_back_monitor_instance_search(Slapi_PBlock *pb, Slapi_Entry *e,
61f723
     /* normalized dn cache stats */
61f723
     if(ndn_cache_started()){
61f723
         ndn_cache_get_stats(&hits, &tries, &size, &maxsize, &count);
61f723
-        sprintf(buf, "%" NSPRIu64, tries);
61f723
+        sprintf(buf, "%" PRIu64, tries);
61f723
         MSET("normalizedDnCacheTries");
61f723
-        sprintf(buf, "%" NSPRIu64, hits);
61f723
+        sprintf(buf, "%" PRIu64, hits);
61f723
         MSET("normalizedDnCacheHits");
61f723
-        sprintf(buf, "%" NSPRIu64, (tries - hits));
61f723
+        sprintf(buf, "%" PRIu64, (tries - hits));
61f723
         MSET("normalizedDnCacheMisses");
61f723
         sprintf(buf, "%lu", (unsigned long)(100.0*(double)hits / (double)(tries > 0 ? tries : 1)));
61f723
         MSET("normalizedDnCacheHitRatio");
61f723
diff --git a/ldap/servers/slapd/back-ldbm/perfctrs.h b/ldap/servers/slapd/back-ldbm/perfctrs.h
61f723
index 57be1d1..64c79e1 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/perfctrs.h
61f723
+++ b/ldap/servers/slapd/back-ldbm/perfctrs.h
61f723
@@ -11,7 +11,7 @@
61f723
 #  include <config.h>
61f723
 #endif
61f723
 
61f723
-#include <inttypes.h>
61f723
+#include <slapi_pal.h>
61f723
 
61f723
 /* Structure definition for performance data */
61f723
 /* This stuff goes in shared memory, so make sure the packing is consistent */
61f723
diff --git a/ldap/servers/slapd/back-ldbm/start.c b/ldap/servers/slapd/back-ldbm/start.c
61f723
index 1ae9858..a207bd8 100644
61f723
--- a/ldap/servers/slapd/back-ldbm/start.c
61f723
+++ b/ldap/servers/slapd/back-ldbm/start.c
61f723
@@ -32,34 +32,25 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
     Object *inst_obj = NULL;
61f723
     ldbm_instance *inst = NULL;
61f723
     /* size_t is a platform unsigned int, IE uint64_t */
61f723
-    size_t total_cache_size = 0;
61f723
-    size_t pagesize = 0;
61f723
-    size_t pages = 0;
61f723
-    size_t procpages __attribute__((unused)) = 0;
61f723
-    size_t availpages = 0;
61f723
-    size_t cache_size_to_configure = 0;
61f723
-    size_t zone_pages = 0;
61f723
-    size_t db_pages = 0;
61f723
-    size_t entry_pages = 0;
61f723
-    size_t import_pages = 0;
61f723
-    size_t zone_size = 0;
61f723
-    size_t import_size = 0;
61f723
-    size_t cache_size = 0;
61f723
-    size_t db_size = 0;
61f723
+    uint64_t total_cache_size = 0;
61f723
+    uint64_t entry_size = 0;
61f723
+    uint64_t zone_size = 0;
61f723
+    uint64_t import_size = 0;
61f723
+    uint64_t cache_size = 0;
61f723
+    uint64_t db_size = 0;
61f723
     /* For clamping the autotune value to a 64Mb boundary */
61f723
-    size_t clamp_pages = 0;
61f723
-    size_t clamp_div = 0;
61f723
-    size_t clamp_mod = 0;
61f723
+    uint64_t clamp_div = 0;
61f723
     /* Backend count */
61f723
-    size_t backend_count = 0;
61f723
+    uint64_t backend_count = 0;
61f723
 
61f723
     int_fast32_t autosize_percentage = 0;
61f723
     int_fast32_t autosize_db_percentage_split = 0;
61f723
     int_fast32_t import_percentage = 0;
61f723
-    int32_t issane = 0;
61f723
+    util_cachesize_result issane;
61f723
     char *msg = ""; /* This will be set by one of the two cache sizing paths below. */
61f723
     char size_to_str[32];    /* big enough to hold %ld */
61f723
 
61f723
+
61f723
     /* == Begin autotune == */
61f723
 
61f723
     /*
61f723
@@ -120,42 +111,34 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
         return SLAPI_FAIL_GENERAL;
61f723
     }
61f723
 
61f723
-    if (util_info_sys_pages(&pagesize, &pages, &procpages, &availpages) != 0) {
61f723
+    /* Get our platform memory values. */
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    if (mi == NULL) {
61f723
         slapi_log_err(SLAPI_LOG_CRIT, "ldbm_back_start", "Unable to determine system page limits\n");
61f723
         return SLAPI_FAIL_GENERAL;
61f723
     }
61f723
 
61f723
-    if (pagesize == 0) {
61f723
-        /* If this happens, we are in a very bad state indeed... */
61f723
-        slapi_log_err(SLAPI_LOG_CRIT, "ldbm_back_start", "Unable to determine system page size\n");
61f723
-        return SLAPI_FAIL_GENERAL;
61f723
-    }
61f723
-
61f723
     /* calculate the needed values */
61f723
-    zone_pages = (autosize_percentage * pages) / 100;
61f723
-    zone_size = zone_pages * pagesize;
61f723
+    zone_size = (autosize_percentage * mi->system_total_bytes) / 100;
61f723
     /* This is how much we "might" use, lets check it's sane. */
61f723
     /* In the case it is not, this will *reduce* the allocation */
61f723
-    issane = util_is_cachesize_sane(&zone_size);
61f723
-    if (!issane) {
61f723
+    issane = util_is_cachesize_sane(mi, &zone_size);
61f723
+    if (issane == UTIL_CACHESIZE_REDUCED) {
61f723
         slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "Your autosized cache values have been reduced. Likely your nsslapd-cache-autosize percentage is too high.\n");
61f723
         slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "%s", msg);
61f723
     }
61f723
     /* It's valid, lets divide it up and set according to user prefs */
61f723
-    zone_pages = zone_size / pagesize;
61f723
-    db_pages = (autosize_db_percentage_split * zone_pages) / 100;
61f723
+    db_size = (autosize_db_percentage_split * zone_size) / 100;
61f723
 
61f723
     /* Cap the DB size at 512MB, as this doesn't help perf much more (lkrispen's advice) */
61f723
-    if ((db_pages * pagesize) > (512 * MEGABYTE)) {
61f723
-        db_pages = (512 * MEGABYTE) / pagesize;
61f723
+    if (db_size > (512 * MEGABYTE)) {
61f723
+        db_size = (512 * MEGABYTE);
61f723
     }
61f723
 
61f723
     if (backend_count > 0 ) {
61f723
         /* Number of entry cache pages per backend. */
61f723
-        entry_pages = (zone_pages - db_pages) / backend_count;
61f723
+        entry_size = (zone_size - db_size) / backend_count;
61f723
         /* Now, clamp this value to a 64mb boundary. */
61f723
-        /* How many pages are in 64mb? */
61f723
-        clamp_pages = (64 * MEGABYTE) / pagesize;
61f723
         /* Now divide the entry pages by this, and also mod. If mod != 0, we need
61f723
          * to add 1 to the diveded number. This should give us:
61f723
          * 510 * 1024 * 1024 == 510MB
61f723
@@ -166,17 +149,15 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
          * 130560 % 16384 = 15872 which is != 0
61f723
          * therfore 7 + 1, aka 8 * 16384 = 131072 pages = 536870912 bytes = 512MB.
61f723
          */
61f723
-        clamp_div = entry_pages / clamp_pages;
61f723
-        clamp_mod = entry_pages % clamp_pages;
61f723
-        if (clamp_mod != 0) {
61f723
-            /* If we want to clamp down, remove this line. This would change the above from 510mb -> 448mb. */
61f723
-            clamp_div += 1;
61f723
-            entry_pages = clamp_div * clamp_pages;
61f723
+        if (entry_size % (64 * MEGABYTE) != 0) {
61f723
+            /* If we want to clamp down, remove the "+1". This would change the above from 510mb -> 448mb. */
61f723
+            clamp_div = (entry_size / (64 * MEGABYTE)) + 1;
61f723
+            entry_size = clamp_div * (64 * MEGABYTE);
61f723
         }
61f723
     }
61f723
 
61f723
-    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "found %luk physical memory\n", pages*(pagesize/1024));
61f723
-    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "found %luk avaliable\n", zone_pages*(pagesize/1024));
61f723
+    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "found %luk physical memory\n", mi->system_total_bytes / 1024);
61f723
+    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "found %luk avaliable\n", mi->system_available_bytes / 1024);
61f723
 
61f723
     /* We've now calculated the autotuning values. Do we need to apply it?
61f723
      * we use the logic of "if size is 0, or autosize is > 0. This way three
61f723
@@ -191,13 +172,12 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
 
61f723
     /* First, check the dbcache */
61f723
     if (li->li_dbcachesize == 0 || li->li_cache_autosize > 0) {
61f723
-        slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: db cache: %luk\n", db_pages*(pagesize/1024));
61f723
-        cache_size_to_configure = (unsigned long)(db_pages * pagesize);
61f723
-        if (cache_size_to_configure < (500 * MEGABYTE)) {
61f723
-            cache_size_to_configure = (unsigned long)((db_pages * pagesize) / 1.25);
61f723
+        slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: db cache: %luk\n", db_size / 1024);
61f723
+        if (db_size < (500 * MEGABYTE)) {
61f723
+            db_size = db_size / 1.25;
61f723
         }
61f723
         /* Have to set this value through text. */
61f723
-        sprintf(size_to_str, "%lu", cache_size_to_configure);
61f723
+        sprintf(size_to_str, "%" PRIu64 , db_size);
61f723
         ldbm_config_internal_set(li, CONFIG_DBCACHESIZE, size_to_str);
61f723
     }
61f723
     total_cache_size += li->li_dbcachesize;
61f723
@@ -205,7 +185,7 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
     /* For each backend */
61f723
     /*   apply the appropriate cache size if 0 */
61f723
     if (backend_count > 0 ) {
61f723
-        li->li_cache_autosize_ec = (unsigned long)entry_pages * pagesize;
61f723
+        li->li_cache_autosize_ec = entry_size;
61f723
     }
61f723
 
61f723
     for (inst_obj = objset_first_obj(li->li_instance_set); inst_obj;
61f723
@@ -220,7 +200,7 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
          * it's highly unlikely.
61f723
          */
61f723
         if (cache_size == 0 || cache_size == MINCACHESIZE || li->li_cache_autosize > 0) {
61f723
-            slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: %s entry cache (%lu total): %luk\n", inst->inst_name, backend_count, entry_pages*(pagesize/1024));
61f723
+            slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: %s entry cache (%lu total): %luk\n", inst->inst_name, backend_count, entry_size / 1024);
61f723
             cache_set_max_entries(&(inst->inst_cache), -1);
61f723
             cache_set_max_size(&(inst->inst_cache), li->li_cache_autosize_ec, CACHE_TYPE_ENTRY);
61f723
         }
61f723
@@ -229,8 +209,8 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
         db_size = dblayer_get_id2entry_size(inst);
61f723
         if (cache_size < db_size) {
61f723
             slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start",
61f723
-                  "%s: entry cache size %lu B is "
61f723
-                  "less than db size %lu B; "
61f723
+                  "%s: entry cache size %"PRIu64" B is "
61f723
+                  "less than db size %"PRIu64" B; "
61f723
                   "We recommend to increase the entry cache size "
61f723
                   "nsslapd-cachememsize.\n",
61f723
                   inst->inst_name, cache_size, db_size);
61f723
@@ -244,37 +224,36 @@ ldbm_back_start_autotune(struct ldbminfo *li) {
61f723
     /* autosizing importCache */
61f723
     if (li->li_import_cache_autosize > 0) {
61f723
         /* Use import percentage here, as it's been corrected for -1 behaviour */
61f723
-        import_pages = (import_percentage * pages) / 100;
61f723
-        import_size = import_pages * pagesize;
61f723
-        issane = util_is_cachesize_sane(&import_size);
61f723
-        if (!issane) {
61f723
+        import_size = (import_percentage * mi->system_total_bytes) / 100;
61f723
+        issane = util_is_cachesize_sane(mi, &import_size);
61f723
+        if (issane == UTIL_CACHESIZE_REDUCED) {
61f723
             slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "Your autosized import cache values have been reduced. Likely your nsslapd-import-cache-autosize percentage is too high.\n");
61f723
         }
61f723
         /* We just accept the reduced allocation here. */
61f723
-        import_pages = import_size / pagesize;
61f723
-        slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: import cache: %luk\n",
61f723
-        import_pages*(pagesize/1024));
61f723
+        slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "cache autosizing: import cache: %"PRIu64"k\n", import_size / 1024);
61f723
 
61f723
-        sprintf(size_to_str, "%lu", (unsigned long)(import_pages * pagesize));
61f723
+        sprintf(size_to_str, "%"PRIu64, import_size);
61f723
         ldbm_config_internal_set(li, CONFIG_IMPORT_CACHESIZE, size_to_str);
61f723
     }
61f723
 
61f723
     /* Finally, lets check that the total result is sane. */
61f723
-    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "total cache size: %lu B; \n", total_cache_size);
61f723
+    slapi_log_err(SLAPI_LOG_NOTICE, "ldbm_back_start", "total cache size: %"PRIu64" B; \n", total_cache_size);
61f723
 
61f723
-    issane = util_is_cachesize_sane(&total_cache_size);
61f723
-    if (!issane) {
61f723
+    issane = util_is_cachesize_sane(mi, &total_cache_size);
61f723
+    if (issane != UTIL_CACHESIZE_VALID) {
61f723
         /* Right, it's time to panic */
61f723
         slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "It is highly likely your memory configuration of all backends will EXCEED your systems memory.\n");
61f723
         slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "In a future release this WILL prevent server start up. You MUST alter your configuration.\n");
61f723
-        slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "Total entry cache size: %lu B; dbcache size: %lu B; available memory size: %lu B; \n",
61f723
-                  (PRUint64)total_cache_size, (PRUint64)li->li_dbcachesize, availpages * pagesize
61f723
+        slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "Total entry cache size: %"PRIu64" B; dbcache size: %"PRIu64" B; available memory size: %"PRIu64" B; \n",
61f723
+                    total_cache_size, (uint64_t)li->li_dbcachesize, mi->system_available_bytes
61f723
         );
61f723
         slapi_log_err(SLAPI_LOG_WARNING, "ldbm_back_start", "%s\n", msg);
61f723
         /* WB 2016 - This should be UNCOMMENTED in a future release */
61f723
         /* return SLAPI_FAIL_GENERAL; */
61f723
     }
61f723
 
61f723
+    spal_meminfo_destroy(mi);
61f723
+
61f723
     /* == End autotune == */
61f723
     return 0;
61f723
 }
61f723
diff --git a/ldap/servers/slapd/bind.c b/ldap/servers/slapd/bind.c
61f723
index f83df7d..648a0f9 100644
61f723
--- a/ldap/servers/slapd/bind.c
61f723
+++ b/ldap/servers/slapd/bind.c
61f723
@@ -853,25 +853,25 @@ log_bind_access (
61f723
 {
61f723
     if (method == LDAP_AUTH_SASL && saslmech && msg) {
61f723
         slapi_log_access( LDAP_DEBUG_STATS, 
61f723
-                          "conn=%" NSPRIu64 " op=%d BIND dn=\"%s\" "
61f723
+                          "conn=%" PRIu64 " op=%d BIND dn=\"%s\" "
61f723
                           "method=sasl version=%d mech=%s, %s\n",
61f723
                           pb->pb_conn->c_connid, pb->pb_op->o_opid, dn,
61f723
                           version, saslmech, msg );
61f723
     } else if (method == LDAP_AUTH_SASL && saslmech) {
61f723
         slapi_log_access( LDAP_DEBUG_STATS, 
61f723
-                          "conn=%" NSPRIu64 " op=%d BIND dn=\"%s\" "
61f723
+                          "conn=%" PRIu64 " op=%d BIND dn=\"%s\" "
61f723
                           "method=sasl version=%d mech=%s\n",
61f723
                           pb->pb_conn->c_connid, pb->pb_op->o_opid, dn,
61f723
                           version, saslmech );
61f723
     } else if (msg) {
61f723
         slapi_log_access( LDAP_DEBUG_STATS, 
61f723
-                          "conn=%" NSPRIu64 " op=%d BIND dn=\"%s\" "
61f723
+                          "conn=%" PRIu64 " op=%d BIND dn=\"%s\" "
61f723
                           "method=%" BERTAG_T " version=%d, %s\n",
61f723
                           pb->pb_conn->c_connid, pb->pb_op->o_opid, dn,
61f723
                           method, version, msg );
61f723
     } else {
61f723
         slapi_log_access( LDAP_DEBUG_STATS, 
61f723
-                          "conn=%" NSPRIu64 " op=%d BIND dn=\"%s\" "
61f723
+                          "conn=%" PRIu64 " op=%d BIND dn=\"%s\" "
61f723
                           "method=%" BERTAG_T " version=%d\n",
61f723
                           pb->pb_conn->c_connid, pb->pb_op->o_opid, dn,
61f723
                           method, version );
61f723
diff --git a/ldap/servers/slapd/compare.c b/ldap/servers/slapd/compare.c
61f723
index 07ded98..3c03053 100644
61f723
--- a/ldap/servers/slapd/compare.c
61f723
+++ b/ldap/servers/slapd/compare.c
61f723
@@ -111,7 +111,7 @@ do_compare( Slapi_PBlock *pb )
61f723
 	    rawdn, ava.ava_type, 0 );
61f723
 
61f723
 	slapi_log_access( LDAP_DEBUG_STATS,
61f723
-	    "conn=%" NSPRIu64 " op=%d CMP dn=\"%s\" attr=\"%s\"\n",
61f723
+	    "conn=%" PRIu64 " op=%d CMP dn=\"%s\" attr=\"%s\"\n",
61f723
 	    pb->pb_conn->c_connid, pb->pb_op->o_opid, dn, ava.ava_type );
61f723
 
61f723
 	/*
61f723
diff --git a/ldap/servers/slapd/connection.c b/ldap/servers/slapd/connection.c
61f723
index 7c83c66..359b59a 100644
61f723
--- a/ldap/servers/slapd/connection.c
61f723
+++ b/ldap/servers/slapd/connection.c
61f723
@@ -411,7 +411,7 @@ connection_reset(Connection* conn, int ns, PRNetAddr * from, int fromLen, int is
61f723
 
61f723
     /* log useful stuff to our access log */
61f723
     slapi_log_access( LDAP_DEBUG_STATS,
61f723
-        "conn=%" NSPRIu64 " fd=%d slot=%d %sconnection from %s to %s\n",
61f723
+        "conn=%" PRIu64 " fd=%d slot=%d %sconnection from %s to %s\n",
61f723
         conn->c_connid, conn->c_sd, ns, pTmp, str_ip, str_destip );
61f723
 
61f723
     /* initialize the remaining connection fields */
61f723
@@ -511,7 +511,7 @@ connection_need_new_password(const Connection *conn, const Operation *op, Slapi_
61f723
 		op->o_tag != LDAP_REQ_ABANDON && op->o_tag != LDAP_REQ_EXTENDED)
61f723
 	{
61f723
 		slapi_add_pwd_control ( pb, LDAP_CONTROL_PWEXPIRED, 0);	
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d %s\n",
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d %s\n",
61f723
 			pb->pb_conn->c_connid, pb->pb_op->o_opid,
61f723
 			"UNPROCESSED OPERATION - need new password" );
61f723
 		send_ldap_result( pb, LDAP_UNWILLING_TO_PERFORM, 
61f723
@@ -562,7 +562,7 @@ connection_dispatch_operation(Connection *conn, Operation *op, Slapi_PBlock *pb)
61f723
 	    (op->o_tag != LDAP_REQ_EXTENDED) && (op->o_tag != LDAP_REQ_UNBIND) &&
61f723
 	    (op->o_tag != LDAP_REQ_ABANDON)) {
61f723
 		slapi_log_access( LDAP_DEBUG_STATS,
61f723
-			"conn=%" NSPRIu64 " op=%d UNPROCESSED OPERATION"
61f723
+			"conn=%" PRIu64 " op=%d UNPROCESSED OPERATION"
61f723
 			" - Insufficient SSF (local_ssf=%d sasl_ssf=%d ssl_ssf=%d)\n",
61f723
 			conn->c_connid, op->o_opid, conn->c_local_ssf,
61f723
 			conn->c_sasl_ssf, conn->c_ssl_ssf );
61f723
@@ -591,7 +591,7 @@ connection_dispatch_operation(Connection *conn, Operation *op, Slapi_PBlock *pb)
61f723
 	    (op->o_tag != LDAP_REQ_ABANDON) && (op->o_tag != LDAP_REQ_SEARCH))))
61f723
 	{
61f723
 		slapi_log_access( LDAP_DEBUG_STATS,
61f723
-			"conn=%" NSPRIu64 " op=%d UNPROCESSED OPERATION"
61f723
+			"conn=%" PRIu64 " op=%d UNPROCESSED OPERATION"
61f723
 			" - Anonymous access not allowed\n",
61f723
 			conn->c_connid, op->o_opid );
61f723
 
61f723
@@ -650,7 +650,7 @@ connection_dispatch_operation(Connection *conn, Operation *op, Slapi_PBlock *pb)
61f723
 			int ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i));
61f723
 			if (ret < 0) {
61f723
 				slapi_log_err(SLAPI_LOG_ERR, "connection_dispatch_operation",
61f723
-					"Failed to set TCP_CORK on connection %" NSPRIu64 "\n",conn->c_connid);
61f723
+					"Failed to set TCP_CORK on connection %" PRIu64 "\n",conn->c_connid);
61f723
 			}
61f723
 			pop_cork = 1;
61f723
 		}
61f723
@@ -664,7 +664,7 @@ connection_dispatch_operation(Connection *conn, Operation *op, Slapi_PBlock *pb)
61f723
 			int ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i));
61f723
 			if (ret < 0) {
61f723
 				slapi_log_err(SLAPI_LOG_ERR, "connection_dispatch_operation",
61f723
-					"Failed to clear TCP_CORK on connection %" NSPRIu64 "\n",conn->c_connid);
61f723
+					"Failed to clear TCP_CORK on connection %" PRIu64 "\n",conn->c_connid);
61f723
 			}
61f723
 		}
61f723
 #endif
61f723
@@ -690,7 +690,7 @@ connection_dispatch_operation(Connection *conn, Operation *op, Slapi_PBlock *pb)
61f723
 
61f723
 	default:
61f723
 		slapi_log_err(SLAPI_LOG_ERR,
61f723
-		    "connection_dispatch_operation", "Ignoring unknown LDAP request (conn=%" NSPRIu64 ", tag=0x%lx)\n",
61f723
+		    "connection_dispatch_operation", "Ignoring unknown LDAP request (conn=%" PRIu64 ", tag=0x%lx)\n",
61f723
 		    conn->c_connid, op->o_tag);
61f723
 		break;
61f723
 	}
61f723
@@ -702,7 +702,7 @@ int connection_release_nolock_ext (Connection *conn, int release_only)
61f723
     if (conn->c_refcnt <= 0)
61f723
     {
61f723
         slapi_log_err(SLAPI_LOG_ERR, "connection_release_nolock_ext",
61f723
-		                "conn=%" NSPRIu64 " fd=%d Attempt to release connection that is not acquired\n",
61f723
+		                "conn=%" PRIu64 " fd=%d Attempt to release connection that is not acquired\n",
61f723
 		                conn->c_connid, conn->c_sd);
61f723
         PR_ASSERT (PR_FALSE);
61f723
         return -1;
61f723
@@ -734,7 +734,7 @@ int connection_acquire_nolock_ext (Connection *conn, int allow_when_closing)
61f723
     {
61f723
 	/* This may happen while other threads are still working on this connection */
61f723
         slapi_log_err(SLAPI_LOG_ERR, "connection_acquire_nolock_ext",
61f723
-		                "conn=%" NSPRIu64 " fd=%d Attempt to acquire connection in the closing state\n",
61f723
+		                "conn=%" PRIu64 " fd=%d Attempt to acquire connection in the closing state\n",
61f723
 		                conn->c_connid, conn->c_sd);
61f723
         return -1;
61f723
     }
61f723
@@ -1070,7 +1070,7 @@ get_next_from_buffer( void *buffer, size_t buffer_size, ber_len_t *lenp,
61f723
 		syserr = errno;
61f723
 		/* Bad stuff happened, like the client sent us some junk */
61f723
 		slapi_log_err(SLAPI_LOG_CONNS, "get_next_from_buffer",
61f723
-			"ber_get_next failed for connection %" NSPRIu64 "\n", conn->c_connid);
61f723
+			"ber_get_next failed for connection %" PRIu64 "\n", conn->c_connid);
61f723
 		/* reset private buffer */
61f723
 		conn->c_private->c_buffer_bytes = conn->c_private->c_buffer_offset = 0;
61f723
 
61f723
@@ -1232,7 +1232,7 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 						/* Otherwise we loop, unless we exceeded the ioblock timeout */
61f723
 						if (waits_done > ioblocktimeout_waits) {
61f723
 							slapi_log_err(SLAPI_LOG_CONNS,"connection_read_operation",
61f723
-								"ioblocktimeout expired on connection %" NSPRIu64 "\n", conn->c_connid);
61f723
+								"ioblocktimeout expired on connection %" PRIu64 "\n", conn->c_connid);
61f723
 							disconnect_server_nomutex( conn, conn->c_connid, -1,
61f723
 									SLAPD_DISCONNECT_IO_TIMEOUT, 0 );
61f723
 							ret = CONN_DONE;
61f723
@@ -1253,19 +1253,19 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 					err = PR_GetError();
61f723
 					syserr = PR_GetOSError();
61f723
 					slapi_log_err(SLAPI_LOG_ERR, "connection_read_operation",
61f723
-						"PR_Poll for connection %" NSPRIu64 " returns %d (%s)\n", conn->c_connid, err, slapd_pr_strerror( err ) );
61f723
+						"PR_Poll for connection %" PRIu64 " returns %d (%s)\n", conn->c_connid, err, slapd_pr_strerror( err ) );
61f723
 					/* If this happens we should close the connection */
61f723
 					disconnect_server_nomutex( conn, conn->c_connid, -1, err, syserr );
61f723
 					ret = CONN_DONE;
61f723
 					goto done;
61f723
 				}
61f723
 				slapi_log_err(SLAPI_LOG_CONNS,
61f723
-					   "connection_read_operation", "connection %" NSPRIu64 " waited %d times for read to be ready\n", conn->c_connid, waits_done);
61f723
+					   "connection_read_operation", "connection %" PRIu64 " waited %d times for read to be ready\n", conn->c_connid, waits_done);
61f723
 			} else {
61f723
 				/* Some other error, typically meaning bad stuff */
61f723
 					syserr = PR_GetOSError();
61f723
 					slapi_log_err(SLAPI_LOG_CONNS, "connection_read_operation",
61f723
-						"PR_Recv for connection %" NSPRIu64 " returns %d (%s)\n", conn->c_connid, err, slapd_pr_strerror( err ) );
61f723
+						"PR_Recv for connection %" PRIu64 " returns %d (%s)\n", conn->c_connid, err, slapd_pr_strerror( err ) );
61f723
 					/* If this happens we should close the connection */
61f723
 					disconnect_server_nomutex( conn, conn->c_connid, -1, err, syserr );
61f723
 					ret = CONN_DONE;
61f723
@@ -1286,7 +1286,7 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 				}
61f723
 			}
61f723
 			slapi_log_err(SLAPI_LOG_CONNS,
61f723
-				   "connection_read_operation", "connection %" NSPRIu64 " read %d bytes\n", conn->c_connid, ret);
61f723
+				   "connection_read_operation", "connection %" PRIu64 " read %d bytes\n", conn->c_connid, ret);
61f723
 
61f723
 			new_operation = 0;
61f723
 			ret = CONN_FOUND_WORK_TO_DO;
61f723
@@ -1307,7 +1307,7 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 		 * We received a non-LDAP message.  Log and close connection.
61f723
 		 */
61f723
 		slapi_log_err(SLAPI_LOG_ERR,
61f723
-			"connection_read_operation", "conn=%" NSPRIu64 " received a non-LDAP message (tag 0x%lx, expected 0x%lx)\n",
61f723
+			"connection_read_operation", "conn=%" PRIu64 " received a non-LDAP message (tag 0x%lx, expected 0x%lx)\n",
61f723
 			conn->c_connid, *tag, LDAP_TAG_MESSAGE );
61f723
 		disconnect_server_nomutex( conn, conn->c_connid, -1,
61f723
 			SLAPD_DISCONNECT_BAD_BER_TAG, EPROTO );
61f723
@@ -1319,7 +1319,7 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 		!= LDAP_TAG_MSGID ) {
61f723
 		/* log, close and send error */
61f723
 		slapi_log_err(SLAPI_LOG_ERR,
61f723
-			"connection_read_operation", "conn=%" NSPRIu64 " unable to read tag for incoming request\n", conn->c_connid);
61f723
+			"connection_read_operation", "conn=%" PRIu64 " unable to read tag for incoming request\n", conn->c_connid);
61f723
 		disconnect_server_nomutex( conn, conn->c_connid, -1, SLAPD_DISCONNECT_BAD_BER_TAG, EPROTO );
61f723
 		ret = CONN_DONE;
61f723
 		goto done;
61f723
@@ -1337,7 +1337,7 @@ int connection_read_operation(Connection *conn, Operation *op, ber_tag_t *tag, i
61f723
 	  case LDAP_TAG_LDAPDN: /* optional username, for CLDAP */
61f723
 		/* log, close and send error */
61f723
 		slapi_log_err(SLAPI_LOG_ERR,
61f723
-			"connection_read_operation", "conn=%" NSPRIu64 " ber_peek_tag returns 0x%lx\n", conn->c_connid, *tag);
61f723
+			"connection_read_operation", "conn=%" PRIu64 " ber_peek_tag returns 0x%lx\n", conn->c_connid, *tag);
61f723
 		disconnect_server_nomutex( conn, conn->c_connid, -1, SLAPD_DISCONNECT_BER_PEEK, EPROTO );
61f723
 		ret = CONN_DONE;
61f723
 		goto done;
61f723
@@ -1361,7 +1361,7 @@ void connection_make_readable(Connection *conn)
61f723
 void connection_make_readable_nolock(Connection *conn)
61f723
 {
61f723
 	conn->c_gettingber = 0;
61f723
-	slapi_log_err(SLAPI_LOG_CONNS, "connection_make_readable_nolock", "making readable conn %" NSPRIu64 " fd=%d\n",
61f723
+	slapi_log_err(SLAPI_LOG_CONNS, "connection_make_readable_nolock", "making readable conn %" PRIu64 " fd=%d\n",
61f723
 		       conn->c_connid, conn->c_sd);
61f723
 	if (!(conn->c_flags & CONN_FLAG_CLOSING)) {
61f723
 		/* if the connection is closing, try the close in connection_release_nolock */
61f723
@@ -1388,7 +1388,7 @@ void connection_check_activity_level(Connection *conn)
61f723
 	/* update the last checked time */
61f723
 	conn->c_private->previous_count_check_time = current_time();
61f723
 	PR_ExitMonitor(conn->c_mutex);
61f723
-	slapi_log_err(SLAPI_LOG_CONNS,"connection_check_activity_level", "conn %" NSPRIu64 " activity level = %d\n",conn->c_connid,delta_count); 
61f723
+	slapi_log_err(SLAPI_LOG_CONNS,"connection_check_activity_level", "conn %" PRIu64 " activity level = %d\n",conn->c_connid,delta_count); 
61f723
 }
61f723
 
61f723
 typedef struct table_iterate_info_struct {
61f723
@@ -1450,7 +1450,7 @@ void connection_enter_leave_turbo(Connection *conn, int current_turbo_flag, int
61f723
 	  double activet = 0.0;
61f723
 	  connection_find_our_rank(conn,&connection_count, &our_rank);
61f723
 	  slapi_log_err(SLAPI_LOG_CONNS,"connection_enter_leave_turbo",
61f723
-	      "conn %" NSPRIu64 " turbo rank = %d out of %d conns\n",conn->c_connid,our_rank,connection_count); 
61f723
+	      "conn %" PRIu64 " turbo rank = %d out of %d conns\n",conn->c_connid,our_rank,connection_count); 
61f723
 	  activet = (double)g_get_active_threadcnt();
61f723
 	  threshold_rank = (int)(activet * ((double)CONN_TURBO_PERCENTILE / 100.0));
61f723
 
61f723
@@ -1491,9 +1491,9 @@ void connection_enter_leave_turbo(Connection *conn, int current_turbo_flag, int
61f723
 	PR_ExitMonitor(conn->c_mutex);
61f723
 	if (current_mode != new_mode) {
61f723
 		if (current_mode) {
61f723
-			slapi_log_err(SLAPI_LOG_CONNS,"connection_enter_leave_turbo", "conn %" NSPRIu64 " leaving turbo mode\n",conn->c_connid); 
61f723
+			slapi_log_err(SLAPI_LOG_CONNS,"connection_enter_leave_turbo", "conn %" PRIu64 " leaving turbo mode\n",conn->c_connid); 
61f723
 		} else {
61f723
-			slapi_log_err(SLAPI_LOG_CONNS,"connection_enter_leave_turbo", "conn %" NSPRIu64 " entering turbo mode\n",conn->c_connid); 
61f723
+			slapi_log_err(SLAPI_LOG_CONNS,"connection_enter_leave_turbo", "conn %" PRIu64 " entering turbo mode\n",conn->c_connid); 
61f723
 		}
61f723
 	}
61f723
 	*new_turbo_flag = new_mode;
61f723
@@ -1617,12 +1617,12 @@ connection_threadmain()
61f723
 		ret = connection_read_operation(conn, op, &tag, &more_data);
61f723
 		if ((ret == CONN_DONE) || (ret == CONN_TIMEDOUT)) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "connection_threadmain",
61f723
-					"conn %" NSPRIu64 " read not ready due to %d - thread_turbo_flag %d more_data %d "
61f723
+					"conn %" PRIu64 " read not ready due to %d - thread_turbo_flag %d more_data %d "
61f723
 					"ops_initiated %d refcnt %d flags %d\n", conn->c_connid, ret, thread_turbo_flag, more_data,
61f723
 					conn->c_opsinitiated, conn->c_refcnt, conn->c_flags);
61f723
 		} else if (ret == CONN_FOUND_WORK_TO_DO) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "connection_threadmain",
61f723
-					"conn %" NSPRIu64 " read operation successfully - thread_turbo_flag %d more_data %d "
61f723
+					"conn %" PRIu64 " read operation successfully - thread_turbo_flag %d more_data %d "
61f723
 					"ops_initiated %d refcnt %d flags %d\n", conn->c_connid, thread_turbo_flag, more_data,
61f723
 					conn->c_opsinitiated, conn->c_refcnt, conn->c_flags);
61f723
 		}
61f723
@@ -1648,7 +1648,7 @@ connection_threadmain()
61f723
 		if (thread_turbo_flag && !WORK_Q_EMPTY) {
61f723
 			thread_turbo_flag = 0;
61f723
 			slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain",
61f723
-				"conn %" NSPRIu64 " leaving turbo mode - pb_q is not empty %d\n",
61f723
+				"conn %" PRIu64 " leaving turbo mode - pb_q is not empty %d\n",
61f723
 			    conn->c_connid,work_q_size);
61f723
 		}
61f723
 #endif
61f723
@@ -1675,7 +1675,7 @@ connection_threadmain()
61f723
 				 * connection_make_readable(conn);
61f723
 				 */
61f723
 				slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain",
61f723
-					"conn %" NSPRIu64 " leaving turbo mode due to %d\n",
61f723
+					"conn %" PRIu64 " leaving turbo mode due to %d\n",
61f723
 					conn->c_connid,ret);
61f723
 				goto done;
61f723
 			case CONN_SHUTDOWN:
61f723
@@ -1732,7 +1732,7 @@ connection_threadmain()
61f723
 					 */
61f723
 					conn->c_idlesince = curtime;
61f723
 					connection_activity(conn, maxthreads);
61f723
-					slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain", "conn %" NSPRIu64 " queued because more_data\n",
61f723
+					slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain", "conn %" PRIu64 " queued because more_data\n",
61f723
 					          conn->c_connid);
61f723
 				} else {
61f723
 					/* keep count of how many times maxthreads has blocked an operation */
61f723
@@ -1814,7 +1814,7 @@ done:
61f723
 			/* If we're in turbo mode, we keep our reference to the connection alive */
61f723
 			/* can't use the more_data var because connection could have changed in another thread */
61f723
 			more_data = conn_buffered_data_avail_nolock(conn, &conn_closed) ? 1 : 0;
61f723
-			slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain", "conn %" NSPRIu64 " check more_data %d thread_turbo_flag %d\n",
61f723
+			slapi_log_err(SLAPI_LOG_CONNS,"connection_threadmain", "conn %" PRIu64 " check more_data %d thread_turbo_flag %d\n",
61f723
 			          conn->c_connid,more_data,thread_turbo_flag);
61f723
 			if (!more_data) {
61f723
 				if (!thread_turbo_flag) {
61f723
@@ -1863,7 +1863,7 @@ connection_activity(Connection *conn, int maxthreads)
61f723
 
61f723
 	if (connection_acquire_nolock (conn) == -1) {
61f723
 		slapi_log_err(SLAPI_LOG_CONNS,
61f723
-		          "connection_activity", "Could not acquire lock in connection_activity as conn %" NSPRIu64 " closing fd=%d\n",
61f723
+		          "connection_activity", "Could not acquire lock in connection_activity as conn %" PRIu64 " closing fd=%d\n",
61f723
 		          conn->c_connid,conn->c_sd);
61f723
 		/* XXX how to handle this error? */
61f723
 		/* MAB: 25 Jan 01: let's return on error and pray this won't leak */
61f723
@@ -2046,7 +2046,7 @@ connection_remove_operation( Connection *conn, Operation *op )
61f723
 
61f723
 	if ( *tmp == NULL )
61f723
 	{
61f723
-		slapi_log_err(SLAPI_LOG_ERR, "connection_remove_operation", "Can't find op %d for conn %" NSPRIu64 "\n",
61f723
+		slapi_log_err(SLAPI_LOG_ERR, "connection_remove_operation", "Can't find op %d for conn %" PRIu64 "\n",
61f723
 		    (int)op->o_msgid, conn->c_connid);
61f723
 	}
61f723
 	else
61f723
@@ -2187,13 +2187,13 @@ log_ber_too_big_error(const Connection *conn, ber_len_t ber_len,
61f723
 	}
61f723
 	if (0 == ber_len) {
61f723
 		slapi_log_err(SLAPI_LOG_ERR, "log_ber_too_big_error",
61f723
-			"conn=%" NSPRIu64 " fd=%d Incoming BER Element was too long, max allowable"
61f723
+			"conn=%" PRIu64 " fd=%d Incoming BER Element was too long, max allowable"
61f723
 			" is %" BERLEN_T " bytes. Change the nsslapd-maxbersize attribute in"
61f723
 			" cn=config to increase.\n",
61f723
 			conn->c_connid, conn->c_sd, maxbersize );
61f723
 	} else {
61f723
 		slapi_log_err(SLAPI_LOG_ERR, "log_ber_too_big_error",
61f723
-			"conn=%" NSPRIu64 " fd=%d Incoming BER Element was %" BERLEN_T " bytes, max allowable"
61f723
+			"conn=%" PRIu64 " fd=%d Incoming BER Element was %" BERLEN_T " bytes, max allowable"
61f723
 			" is %" BERLEN_T " bytes. Change the nsslapd-maxbersize attribute in"
61f723
 			" cn=config to increase.\n",
61f723
 			conn->c_connid, conn->c_sd, ber_len, maxbersize );
61f723
@@ -2224,7 +2224,7 @@ disconnect_server_nomutex_ext( Connection *conn, PRUint64 opconnid, int opid, PR
61f723
     if ( ( conn->c_sd != SLAPD_INVALID_SOCKET &&
61f723
 	    conn->c_connid == opconnid ) && !(conn->c_flags & CONN_FLAG_CLOSING) )
61f723
 	{
61f723
-		slapi_log_err(SLAPI_LOG_CONNS, "disconnect_server_nomutex_ext", "Setting conn %" NSPRIu64 " fd=%d "
61f723
+		slapi_log_err(SLAPI_LOG_CONNS, "disconnect_server_nomutex_ext", "Setting conn %" PRIu64 " fd=%d "
61f723
 			  "to be disconnected: reason %d\n", conn->c_connid, conn->c_sd, reason);
61f723
 		/*
61f723
 		 * PR_Close must be called before anything else is done because
61f723
@@ -2248,13 +2248,13 @@ disconnect_server_nomutex_ext( Connection *conn, PRUint64 opconnid, int opid, PR
61f723
 		 */
61f723
 		if (error && (EPIPE != error) ) {
61f723
 			slapi_log_access( LDAP_DEBUG_STATS,
61f723
-			  "conn=%" NSPRIu64 " op=%d fd=%d closed error %d (%s) - %s\n",
61f723
+			  "conn=%" PRIu64 " op=%d fd=%d closed error %d (%s) - %s\n",
61f723
 			  conn->c_connid, opid, conn->c_sd, error,
61f723
 			  slapd_system_strerror(error),
61f723
 			  slapd_pr_strerror(reason));
61f723
 		} else {
61f723
 			slapi_log_access( LDAP_DEBUG_STATS,
61f723
-			  "conn=%" NSPRIu64 " op=%d fd=%d closed - %s\n",
61f723
+			  "conn=%" PRIu64 " op=%d fd=%d closed - %s\n",
61f723
 			  conn->c_connid, opid, conn->c_sd,
61f723
 			  slapd_pr_strerror(reason));
61f723
 		}
61f723
diff --git a/ldap/servers/slapd/conntable.c b/ldap/servers/slapd/conntable.c
61f723
index bcafa4e..30da055 100644
61f723
--- a/ldap/servers/slapd/conntable.c
61f723
+++ b/ldap/servers/slapd/conntable.c
61f723
@@ -395,7 +395,7 @@ connection_table_as_entry(Connection_Table *ct, Slapi_Entry *e)
61f723
 			 * 3 = The number of operations attempted that were blocked
61f723
 			 *     by max threads.
61f723
 			 */
61f723
-			snprintf(maxthreadbuf, sizeof(maxthreadbuf), "%d:%"NSPRIu64":%"NSPRIu64"",
61f723
+			snprintf(maxthreadbuf, sizeof(maxthreadbuf), "%d:%"PRIu64":%"PRIu64"",
61f723
 				maxthreadstate, ct->c[i].c_maxthreadscount,
61f723
 				ct->c[i].c_maxthreadsblocked);
61f723
 
61f723
@@ -431,17 +431,17 @@ connection_table_as_entry(Connection_Table *ct, Slapi_Entry *e)
61f723
 	val.bv_len = strlen( buf );
61f723
 	attrlist_replace( &e->e_attrs, "currentconnections", vals );
61f723
 
61f723
-	snprintf( buf, sizeof(buf), "%" NSPRIu64, slapi_counter_get_value(num_conns));
61f723
+	snprintf( buf, sizeof(buf), "%" PRIu64, slapi_counter_get_value(num_conns));
61f723
 	val.bv_val = buf;
61f723
 	val.bv_len = strlen( buf );
61f723
 	attrlist_replace( &e->e_attrs, "totalconnections", vals );
61f723
 
61f723
-	snprintf( buf, sizeof(buf), "%" NSPRIu64, slapi_counter_get_value(conns_in_maxthreads));
61f723
+	snprintf( buf, sizeof(buf), "%" PRIu64, slapi_counter_get_value(conns_in_maxthreads));
61f723
 	val.bv_val = buf;
61f723
 	val.bv_len = strlen( buf );
61f723
 	attrlist_replace( &e->e_attrs, "currentconnectionsatmaxthreads", vals );
61f723
 
61f723
-	snprintf( buf, sizeof(buf), "%" NSPRIu64, slapi_counter_get_value(max_threads_count));
61f723
+	snprintf( buf, sizeof(buf), "%" PRIu64, slapi_counter_get_value(max_threads_count));
61f723
 	val.bv_val = buf;
61f723
 	val.bv_len = strlen( buf );
61f723
 	attrlist_replace( &e->e_attrs, "maxthreadsperconnhits", vals );
61f723
diff --git a/ldap/servers/slapd/control.c b/ldap/servers/slapd/control.c
61f723
index 8f9e74e..52f2519 100644
61f723
--- a/ldap/servers/slapd/control.c
61f723
+++ b/ldap/servers/slapd/control.c
61f723
@@ -335,7 +335,7 @@ get_ldapmessage_controls_ext(
61f723
                 slapi_pblock_set(pb, SLAPI_REQCONTROLS, NULL);
61f723
                 slapi_pblock_set(pb, SLAPI_MANAGEDSAIT, &ctrl_not_found);
61f723
                 slapi_pblock_set(pb, SLAPI_PWPOLICY, &ctrl_not_found);
61f723
-                slapi_log_err(SLAPI_LOG_CONNS, "get_ldapmessage_controls_ext", "Warning: conn=%" NSPRIu64 " op=%d contains an empty list of controls\n",
61f723
+                slapi_log_err(SLAPI_LOG_CONNS, "get_ldapmessage_controls_ext", "Warning: conn=%" PRIu64 " op=%d contains an empty list of controls\n",
61f723
                         pb->pb_conn->c_connid, pb->pb_op->o_opid);
61f723
         } else {
61f723
                 /* len, ber_len_t is uint, not int, cannot be != -1, may be better to remove this check.  */
61f723
diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c
61f723
index a4ea4c0..5f2471e 100644
61f723
--- a/ldap/servers/slapd/daemon.c
61f723
+++ b/ldap/servers/slapd/daemon.c
61f723
@@ -616,7 +616,7 @@ disk_monitoring_thread(void *nothing)
61f723
          */
61f723
         if(disk_space < 4096){ /* 4 k */
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is critically low on disk (%s), "
61f723
-            	"remaining space: %" NSPRIu64 " Kb.  Signaling slapd for shutdown...\n", dirstr , (disk_space / 1024));
61f723
+            	"remaining space: %" PRIu64 " Kb.  Signaling slapd for shutdown...\n", dirstr , (disk_space / 1024));
61f723
             g_set_shutdown( SLAPI_SHUTDOWN_EXIT );
61f723
             return;
61f723
         }
61f723
@@ -626,7 +626,7 @@ disk_monitoring_thread(void *nothing)
61f723
          */
61f723
         if(verbose_logging != 0 && verbose_logging != LDAP_DEBUG_ANY){
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is low on disk (%s), remaining space: "
61f723
-            	"%" NSPRIu64 " Kb, temporarily setting error loglevel to the default level(%d).\n", dirstr,
61f723
+            	"%" PRIu64 " Kb, temporarily setting error loglevel to the default level(%d).\n", dirstr,
61f723
                 (disk_space / 1024), SLAPD_DEFAULT_ERRORLOG_LEVEL);
61f723
             /* Setting the log level back to zero, actually sets the value to LDAP_DEBUG_ANY */
61f723
             config_set_errorlog_level(CONFIG_LOGLEVEL_ATTRIBUTE,
61f723
@@ -640,7 +640,7 @@ disk_monitoring_thread(void *nothing)
61f723
          */
61f723
         if(!logs_disabled && !logging_critical){
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is too low on disk (%s), remaining "
61f723
-            	"space: %" NSPRIu64 " Kb, disabling access and audit logging.\n", dirstr, (disk_space / 1024));
61f723
+            	"space: %" PRIu64 " Kb, disabling access and audit logging.\n", dirstr, (disk_space / 1024));
61f723
             config_set_accesslog_enabled(LOGGING_OFF);
61f723
             config_set_auditlog_enabled(LOGGING_OFF);
61f723
             config_set_auditfaillog_enabled(LOGGING_OFF);
61f723
@@ -653,7 +653,7 @@ disk_monitoring_thread(void *nothing)
61f723
          */
61f723
         if(!deleted_rotated_logs && !logging_critical){
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is too low on disk (%s), remaining "
61f723
-            	"space: %" NSPRIu64 " Kb, deleting rotated logs.\n", dirstr, (disk_space / 1024));
61f723
+            	"space: %" PRIu64 " Kb, deleting rotated logs.\n", dirstr, (disk_space / 1024));
61f723
             log__delete_rotated_logs();
61f723
             deleted_rotated_logs = 1;
61f723
             continue;
61f723
@@ -663,7 +663,7 @@ disk_monitoring_thread(void *nothing)
61f723
          */
61f723
         if(disk_space < previous_mark){
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is too low on disk (%s), remaining "
61f723
-            	"space: %" NSPRIu64 " Kb\n", dirstr, (disk_space / 1024));
61f723
+            	"space: %" PRIu64 " Kb\n", dirstr, (disk_space / 1024));
61f723
         }
61f723
         /*
61f723
          *
61f723
@@ -674,7 +674,7 @@ disk_monitoring_thread(void *nothing)
61f723
          *
61f723
          */
61f723
         if(disk_space < halfway){
61f723
-            slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space on (%s) is too far below the threshold(%" NSPRIu64 " bytes).  "
61f723
+            slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space on (%s) is too far below the threshold(%" PRIu64 " bytes).  "
61f723
                 "Waiting %d minutes for disk space to be cleaned up before shutting slapd down...\n",
61f723
                 dirstr, threshold, (grace_period / 60));
61f723
             time(&start;;
61f723
@@ -697,7 +697,7 @@ disk_monitoring_thread(void *nothing)
61f723
                      *  Excellent, we are back to acceptable levels, reset everything...
61f723
                      */
61f723
                     slapi_log_err(SLAPI_LOG_INFO, "disk_monitoring_thread", "Available disk space is now "
61f723
-                    	"acceptable (%" NSPRIu64 " bytes).  Aborting shutdown, and restoring the log settings.\n",
61f723
+                    	"acceptable (%" PRIu64 " bytes).  Aborting shutdown, and restoring the log settings.\n",
61f723
                     	disk_space);
61f723
                     if(logs_disabled && using_accesslog){
61f723
                         config_set_accesslog_enabled(LOGGING_ON);
61f723
@@ -721,7 +721,7 @@ disk_monitoring_thread(void *nothing)
61f723
                      *  Disk space is critical, log an error, and shut it down now!
61f723
                      */
61f723
                     slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is critically low "
61f723
-                    	"on disk (%s), remaining space: %" NSPRIu64 " Kb.  Signaling slapd for shutdown...\n", 
61f723
+                    	"on disk (%s), remaining space: %" PRIu64 " Kb.  Signaling slapd for shutdown...\n", 
61f723
                     	dirstr, (disk_space / 1024));
61f723
                     g_set_shutdown( SLAPI_SHUTDOWN_DISKFULL );
61f723
                     return;
61f723
@@ -739,7 +739,7 @@ disk_monitoring_thread(void *nothing)
61f723
              *  If disk space was freed up we would of detected in the above while loop.  So shut it down.
61f723
              */
61f723
             slapi_log_err(SLAPI_LOG_ALERT, "disk_monitoring_thread", "Disk space is still too low "
61f723
-            	"(%" NSPRIu64 " Kb).  Signaling slapd for shutdown...\n", (disk_space / 1024));
61f723
+            	"(%" PRIu64 " Kb).  Signaling slapd for shutdown...\n", (disk_space / 1024));
61f723
             g_set_shutdown( SLAPI_SHUTDOWN_DISKFULL );
61f723
 
61f723
             return;
61f723
@@ -1785,7 +1785,7 @@ handle_pr_read_ready(Connection_Table *ct, PRIntn num_poll)
61f723
 						 * trying to acquire a closing connection
61f723
 						 */
61f723
 						slapi_log_err(SLAPI_LOG_ERR,
61f723
-							"handle_pr_read_ready", "connection_activity: abandoning conn %" NSPRIu64 " as "
61f723
+							"handle_pr_read_ready", "connection_activity: abandoning conn %" PRIu64 " as "
61f723
 							"fd=%d is already closing\n", c->c_connid,c->c_sd);
61f723
 						/* The call disconnect_server should do nothing,
61f723
 						 * as the connection c should be already set to CLOSING */
61f723
@@ -1843,7 +1843,7 @@ ns_handle_closure(struct ns_job_t *job)
61f723
 #else
61f723
     /* This doesn't actually confirm it's in the event loop thread, but it's a start */
61f723
 	if (NS_JOB_IS_THREAD(ns_job_get_type(job)) != 0) {
61f723
-		slapi_log_err(SLAPI_LOG_ERR, "ns_handle_closure", "Attempt to close outside of event loop thread %" NSPRIu64 " for fd=%d\n",
61f723
+		slapi_log_err(SLAPI_LOG_ERR, "ns_handle_closure", "Attempt to close outside of event loop thread %" PRIu64 " for fd=%d\n",
61f723
 			c->c_connid, c->c_sd);
61f723
 		return;
61f723
 	}
61f723
@@ -1883,7 +1883,7 @@ ns_connection_post_io_or_closing(Connection *conn)
61f723
 		PR_ASSERT((conn->c_ns_close_jobs == 0) || (conn->c_ns_close_jobs == 1));
61f723
 		if (conn->c_ns_close_jobs) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_connection_post_io_or_closing", "Already a close "
61f723
-				"job in progress on conn %" NSPRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
+				"job in progress on conn %" PRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
 			return;
61f723
 		} else {
61f723
 			/* just make sure we schedule the event to be closed in a timely manner */
61f723
@@ -1898,10 +1898,10 @@ ns_connection_post_io_or_closing(Connection *conn)
61f723
 #endif
61f723
 			if (job_result != PR_SUCCESS) {
61f723
 				slapi_log_err(SLAPI_LOG_WARNING, "ns_connection_post_io_or_closing", "post closure job "
61f723
-					"for conn %" NSPRIu64 " for fd=%d failed to be added to event queue\n", conn->c_connid, conn->c_sd);
61f723
+					"for conn %" PRIu64 " for fd=%d failed to be added to event queue\n", conn->c_connid, conn->c_sd);
61f723
 			} else {
61f723
 				slapi_log_err(SLAPI_LOG_CONNS, "ns_connection_post_io_or_closing", "post closure job "
61f723
-					"for conn %" NSPRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
+					"for conn %" PRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
 			}
61f723
 			
61f723
 		}
61f723
@@ -1938,10 +1938,10 @@ ns_connection_post_io_or_closing(Connection *conn)
61f723
 #endif
61f723
 		if (job_result != PR_SUCCESS) {
61f723
 			slapi_log_err(SLAPI_LOG_WARNING, "ns_connection_post_io_or_closing", "post I/O job for "
61f723
-				"conn %" NSPRIu64 " for fd=%d failed to be added to event queue\n", conn->c_connid, conn->c_sd);
61f723
+				"conn %" PRIu64 " for fd=%d failed to be added to event queue\n", conn->c_connid, conn->c_sd);
61f723
 		} else {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_connection_post_io_or_closing", "post I/O job for "
61f723
-				"conn %" NSPRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
+				"conn %" PRIu64 " for fd=%d\n", conn->c_connid, conn->c_sd);
61f723
 		}
61f723
 	}
61f723
 #endif
61f723
@@ -1964,14 +1964,14 @@ ns_handle_pr_read_ready(struct ns_job_t *job)
61f723
 #else
61f723
     /* This doesn't actually confirm it's in the event loop thread, but it's a start */
61f723
 	if (NS_JOB_IS_THREAD(ns_job_get_type(job)) != 0) {
61f723
-		slapi_log_err(SLAPI_LOG_ERR, "ns_handle_pr_read_ready", "Attempt to handle read ready outside of event loop thread %" NSPRIu64 " for fd=%d\n",
61f723
+		slapi_log_err(SLAPI_LOG_ERR, "ns_handle_pr_read_ready", "Attempt to handle read ready outside of event loop thread %" PRIu64 " for fd=%d\n",
61f723
 			c->c_connid, c->c_sd);
61f723
 		return;
61f723
 	}
61f723
 #endif
61f723
 
61f723
 	PR_EnterMonitor(c->c_mutex);
61f723
-	slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "activity on conn %" NSPRIu64 " for fd=%d\n",
61f723
+	slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "activity on conn %" PRIu64 " for fd=%d\n",
61f723
 		       c->c_connid, c->c_sd);
61f723
 	/* if we were called due to some i/o event, see what the state of the socket is */
61f723
 	if (slapi_is_loglevel_set(SLAPI_LOG_CONNS) && !NS_JOB_IS_TIMER(ns_job_get_output_type(job)) && c && c->c_sd) {
61f723
@@ -1980,16 +1980,16 @@ ns_handle_pr_read_ready(struct ns_job_t *job)
61f723
 		ssize_t rc = recv(c->c_sd, buf, sizeof(buf), MSG_PEEK);
61f723
 		if (!rc) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "socket is closed conn"
61f723
-				" %" NSPRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
+				" %" PRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
 		} else if (rc > 0) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "socket read data available"
61f723
-				" for conn %" NSPRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
+				" for conn %" PRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
 		} else if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "socket has no data available"
61f723
-				" conn %" NSPRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
+				" conn %" PRIu64 " for fd=%d\n", c->c_connid, c->c_sd);
61f723
 		} else {
61f723
 			slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "socket has error [%d] "
61f723
-				"conn %" NSPRIu64 " for fd=%d\n", errno, c->c_connid, c->c_sd);
61f723
+				"conn %" PRIu64 " for fd=%d\n", errno, c->c_connid, c->c_sd);
61f723
 		}
61f723
 	}
61f723
 	connection_release_nolock_ext(c, 1); /* release ref acquired when job was added */
61f723
@@ -2013,7 +2013,7 @@ ns_handle_pr_read_ready(struct ns_job_t *job)
61f723
 		 * trying to acquire a closing connection
61f723
 		 */
61f723
 		slapi_log_err(SLAPI_LOG_ERR, "ns_handle_pr_read_ready", "connection_activity: abandoning"
61f723
-			" conn %" NSPRIu64 " as fd=%d is already closing\n", c->c_connid, c->c_sd);
61f723
+			" conn %" PRIu64 " as fd=%d is already closing\n", c->c_connid, c->c_sd);
61f723
 		/* The call disconnect_server should do nothing,
61f723
 		 * as the connection c should be already set to CLOSING */
61f723
 		disconnect_server_nomutex_ext(c, c->c_connid, -1,
61f723
@@ -2021,7 +2021,7 @@ ns_handle_pr_read_ready(struct ns_job_t *job)
61f723
 				              0 /* do not schedule closure, do it next */);
61f723
 		ns_handle_closure_nomutex(c);
61f723
 	} else {
61f723
-		slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "queued conn %" NSPRIu64 " for fd=%d\n",
61f723
+		slapi_log_err(SLAPI_LOG_CONNS, "ns_handle_pr_read_ready", "queued conn %" PRIu64 " for fd=%d\n",
61f723
 			       c->c_connid, c->c_sd);
61f723
 	}
61f723
 	PR_ExitMonitor(c->c_mutex);
61f723
diff --git a/ldap/servers/slapd/delete.c b/ldap/servers/slapd/delete.c
61f723
index a16718a..e4e82a3 100644
61f723
--- a/ldap/servers/slapd/delete.c
61f723
+++ b/ldap/servers/slapd/delete.c
61f723
@@ -260,7 +260,7 @@ static void op_shared_delete (Slapi_PBlock *pb)
61f723
 
61f723
 		if (!internal_op )
61f723
 		{
61f723
-			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d DEL dn=\"%s\"%s\n",
61f723
+			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d DEL dn=\"%s\"%s\n",
61f723
 							pb->pb_conn->c_connid,
61f723
 							pb->pb_op->o_opid,
61f723
 							slapi_sdn_get_dn(sdn),
61f723
diff --git a/ldap/servers/slapd/entry.c b/ldap/servers/slapd/entry.c
61f723
index abacc57..b56e3da 100644
61f723
--- a/ldap/servers/slapd/entry.c
61f723
+++ b/ldap/servers/slapd/entry.c
61f723
@@ -3095,7 +3095,7 @@ slapi_entry_attr_set_ulong( Slapi_Entry* e, const char *type, uint64_t l)
61f723
 	struct berval *bvals[2];
61f723
 	bvals[0] = &bv;
61f723
 	bvals[1] = NULL;
61f723
-    sprintf(value,"%" NSPRIu64, l);
61f723
+    sprintf(value,"%" PRIu64, l);
61f723
 	bv.bv_val = value;
61f723
 	bv.bv_len = strlen( value );
61f723
     slapi_entry_attr_replace( e, type, bvals );
61f723
diff --git a/ldap/servers/slapd/extendop.c b/ldap/servers/slapd/extendop.c
61f723
index 7e41b8c..6a5d2e3 100644
61f723
--- a/ldap/servers/slapd/extendop.c
61f723
+++ b/ldap/servers/slapd/extendop.c
61f723
@@ -247,14 +247,14 @@ do_extended( Slapi_PBlock *pb )
61f723
     if ( NULL == ( name = extended_op_oid2string( extoid ))) {
61f723
         slapi_log_err(SLAPI_LOG_ARGS, "do_extended", "oid (%s)\n", extoid);
61f723
 
61f723
-        slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d EXT oid=\"%s\"\n",
61f723
+        slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d EXT oid=\"%s\"\n",
61f723
                 pb->pb_conn->c_connid, pb->pb_op->o_opid, extoid );
61f723
     } else {
61f723
         slapi_log_err(SLAPI_LOG_ARGS, "do_extended", "oid (%s-%s)\n",
61f723
                 extoid, name);
61f723
 
61f723
         slapi_log_access( LDAP_DEBUG_STATS,
61f723
-            "conn=%" NSPRIu64 " op=%d EXT oid=\"%s\" name=\"%s\"\n",
61f723
+            "conn=%" PRIu64 " op=%d EXT oid=\"%s\" name=\"%s\"\n",
61f723
             pb->pb_conn->c_connid, pb->pb_op->o_opid, extoid, name );
61f723
     }
61f723
 
61f723
diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c
61f723
index afedd5b..a63c6a6 100644
61f723
--- a/ldap/servers/slapd/log.c
61f723
+++ b/ldap/servers/slapd/log.c
61f723
@@ -2769,7 +2769,7 @@ log__open_accesslogfile(int logfile_state, int locked)
61f723
 	while ( logp) {
61f723
 		log_convert_time (logp->l_ctime, tbuf, 1 /*short*/);
61f723
 		PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%"
61f723
-			NSPRI64 "d)\n", PREVLOGFILE, loginfo.log_access_file, tbuf, 
61f723
+			PRId64 "d)\n", PREVLOGFILE, loginfo.log_access_file, tbuf, 
61f723
 			logp->l_ctime, logp->l_size);
61f723
 		LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
61f723
 		logp = logp->l_next;
61f723
@@ -2907,7 +2907,7 @@ log_rotate:
61f723
 		if (type == LOG_SIZE_EXCEEDED) {
61f723
 			slapi_log_err(SLAPI_LOG_TRACE, "log__needrotation",
61f723
 				"LOGINFO:End of Log because size exceeded(Max:%" 
61f723
-				NSPRI64 "d bytes) (Is:%" NSPRI64 "d bytes)\n",
61f723
+				PRId64 "d bytes) (Is:%" PRId64 "d bytes)\n",
61f723
 				maxlogsize, f_size);
61f723
 		} else  if ( type == LOG_EXPIRED) {
61f723
 			slapi_log_err(SLAPI_LOG_TRACE, "log__needrotation",
61f723
@@ -4636,7 +4636,7 @@ log__open_errorlogfile(int logfile_state, int locked)
61f723
 	while (logp) {
61f723
 		log_convert_time (logp->l_ctime, tbuf, 1 /*short */);
61f723
 		PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%" 
61f723
-			NSPRI64 "d)\n", PREVLOGFILE, loginfo.log_error_file, tbuf,
61f723
+			PRId64 "d)\n", PREVLOGFILE, loginfo.log_error_file, tbuf,
61f723
 			logp->l_ctime, logp->l_size);
61f723
 		LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
61f723
 		logp = logp->l_next;
61f723
@@ -4763,7 +4763,7 @@ log__open_auditlogfile(int logfile_state, int locked)
61f723
 	while ( logp) {
61f723
 		log_convert_time (logp->l_ctime, tbuf, 1 /*short */);	
61f723
 		PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%"
61f723
-			NSPRI64 "d)\n", PREVLOGFILE, loginfo.log_audit_file, tbuf, 
61f723
+			PRId64 "d)\n", PREVLOGFILE, loginfo.log_audit_file, tbuf, 
61f723
 			logp->l_ctime, logp->l_size);
61f723
 		LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
61f723
 		logp = logp->l_next;
61f723
@@ -4889,7 +4889,7 @@ log__open_auditfaillogfile(int logfile_state, int locked)
61f723
     while ( logp) {
61f723
         log_convert_time (logp->l_ctime, tbuf, 1 /*short */);   
61f723
         PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%"
61f723
-            NSPRI64 "d)\n", PREVLOGFILE, loginfo.log_auditfail_file, tbuf, 
61f723
+            PRId64 "d)\n", PREVLOGFILE, loginfo.log_auditfail_file, tbuf, 
61f723
             logp->l_ctime, logp->l_size);
61f723
         LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
61f723
         logp = logp->l_next;
61f723
diff --git a/ldap/servers/slapd/modify.c b/ldap/servers/slapd/modify.c
61f723
index e23fe67..da66b44 100644
61f723
--- a/ldap/servers/slapd/modify.c
61f723
+++ b/ldap/servers/slapd/modify.c
61f723
@@ -680,7 +680,7 @@ static void op_shared_modify (Slapi_PBlock *pb, int pw_change, char *old_pw)
61f723
 
61f723
 		if ( !internal_op )
61f723
 		{
61f723
-			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"%s\n",
61f723
+			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"%s\n",
61f723
 							 pb->pb_conn->c_connid,
61f723
 							 pb->pb_op->o_opid,
61f723
 							 slapi_sdn_get_dn(sdn),
61f723
@@ -1227,7 +1227,7 @@ static int op_shared_allow_pw_change (Slapi_PBlock *pb, LDAPMod *mod, char **old
61f723
 	{
61f723
 		if (operation_is_flag_set(operation,OP_FLAG_ACTION_LOG_ACCESS))
61f723
 		{
61f723
-			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"\n",
61f723
+			slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"\n",
61f723
 					pb->pb_conn->c_connid, pb->pb_op->o_opid,
61f723
 					slapi_sdn_get_dn(&sdn));
61f723
 		}
61f723
@@ -1267,7 +1267,7 @@ static int op_shared_allow_pw_change (Slapi_PBlock *pb, LDAPMod *mod, char **old
61f723
 				if (proxydn){
61f723
 					proxystr = slapi_ch_smprintf(" authzid=\"%s\"", proxydn);
61f723
 				}
61f723
-				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"%s\n",
61f723
+				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"%s\n",
61f723
 						pb->pb_conn->c_connid, pb->pb_op->o_opid,
61f723
 						slapi_sdn_get_dn(&sdn), proxystr ? proxystr : "");
61f723
 			}
61f723
@@ -1312,7 +1312,7 @@ static int op_shared_allow_pw_change (Slapi_PBlock *pb, LDAPMod *mod, char **old
61f723
 					proxystr = slapi_ch_smprintf(" authzid=\"%s\"", proxydn);
61f723
 				}
61f723
 
61f723
-				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
+				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
 						pb->pb_conn->c_connid, pb->pb_op->o_opid,
61f723
 						slapi_sdn_get_dn(&sdn),
61f723
 						proxystr ? proxystr : "",
61f723
@@ -1338,7 +1338,7 @@ static int op_shared_allow_pw_change (Slapi_PBlock *pb, LDAPMod *mod, char **old
61f723
 
61f723
 			if ( !internal_op )
61f723
 			{
61f723
-				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
+				slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
 								 pb->pb_conn->c_connid,
61f723
 								 pb->pb_op->o_opid,
61f723
 								 slapi_sdn_get_dn(&sdn),
61f723
@@ -1381,7 +1381,7 @@ static int op_shared_allow_pw_change (Slapi_PBlock *pb, LDAPMod *mod, char **old
61f723
 
61f723
 					if ( !internal_op )
61f723
 					{
61f723
-						slapi_log_access(LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
+						slapi_log_access(LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d MOD dn=\"%s\"%s, %s\n",
61f723
 										 pb->pb_conn->c_connid,
61f723
 										 pb->pb_op->o_opid,
61f723
 										 slapi_sdn_get_dn(&sdn),
61f723
diff --git a/ldap/servers/slapd/modrdn.c b/ldap/servers/slapd/modrdn.c
61f723
index 15f5210..69cca40 100644
61f723
--- a/ldap/servers/slapd/modrdn.c
61f723
+++ b/ldap/servers/slapd/modrdn.c
61f723
@@ -463,7 +463,7 @@ op_shared_rename(Slapi_PBlock *pb, int passin_args)
61f723
 		if ( !internal_op )
61f723
 		{
61f723
 			slapi_log_access(LDAP_DEBUG_STATS,
61f723
-					 "conn=%" NSPRIu64 " op=%d MODRDN dn=\"%s\" newrdn=\"%s\" newsuperior=\"%s\"%s\n",
61f723
+					 "conn=%" PRIu64 " op=%d MODRDN dn=\"%s\" newrdn=\"%s\" newsuperior=\"%s\"%s\n",
61f723
 					 pb->pb_conn->c_connid,
61f723
 					 pb->pb_op->o_opid,
61f723
 					 dn,
61f723
@@ -497,7 +497,7 @@ op_shared_rename(Slapi_PBlock *pb, int passin_args)
61f723
 	{
61f723
 		if ( !internal_op ) {
61f723
 			slapi_log_err(SLAPI_LOG_ARGS, "op_shared_rename", 
61f723
-				 "conn=%" NSPRIu64 " op=%d MODRDN invalid new RDN (\"%s\")\n",
61f723
+				 "conn=%" PRIu64 " op=%d MODRDN invalid new RDN (\"%s\")\n",
61f723
 				 pb->pb_conn->c_connid,
61f723
 				 pb->pb_op->o_opid,
61f723
 				 (NULL == newrdn) ? "(null)" : newrdn);
61f723
@@ -531,7 +531,7 @@ op_shared_rename(Slapi_PBlock *pb, int passin_args)
61f723
 			"Syntax check of newSuperior failed\n");
61f723
 		if (!internal_op) {
61f723
 			slapi_log_err(SLAPI_LOG_ARGS, "op_shared_rename",
61f723
-				 "conn=%" NSPRIu64 " op=%d MODRDN invalid new superior (\"%s\")",
61f723
+				 "conn=%" PRIu64 " op=%d MODRDN invalid new superior (\"%s\")",
61f723
 				 pb->pb_conn->c_connid,
61f723
 				 pb->pb_op->o_opid,
61f723
 				 newsuperior ? newsuperior : "(null)");
61f723
diff --git a/ldap/servers/slapd/monitor.c b/ldap/servers/slapd/monitor.c
61f723
index f1fb38f..8d1788f 100644
61f723
--- a/ldap/servers/slapd/monitor.c
61f723
+++ b/ldap/servers/slapd/monitor.c
61f723
@@ -60,19 +60,19 @@ monitor_info(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter, int *ret
61f723
 
61f723
 	connection_table_as_entry(the_connection_table, e);
61f723
 
61f723
-	val.bv_len = snprintf( buf, sizeof(buf), "%" NSPRIu64, slapi_counter_get_value(ops_initiated) );
61f723
+	val.bv_len = snprintf( buf, sizeof(buf), "%" PRIu64, slapi_counter_get_value(ops_initiated) );
61f723
 	val.bv_val = buf;
61f723
 	attrlist_replace( &e->e_attrs, "opsinitiated", vals );
61f723
 
61f723
-	val.bv_len = snprintf( buf, sizeof(buf), "%" NSPRIu64, slapi_counter_get_value(ops_completed) );
61f723
+	val.bv_len = snprintf( buf, sizeof(buf), "%" PRIu64, slapi_counter_get_value(ops_completed) );
61f723
 	val.bv_val = buf;
61f723
 	attrlist_replace( &e->e_attrs, "opscompleted", vals );
61f723
 
61f723
-	val.bv_len = snprintf ( buf, sizeof(buf), "%" NSPRIu64, g_get_num_entries_sent() );
61f723
+	val.bv_len = snprintf ( buf, sizeof(buf), "%" PRIu64, g_get_num_entries_sent() );
61f723
 	val.bv_val = buf;
61f723
 	attrlist_replace( &e->e_attrs, "entriessent", vals );
61f723
 
61f723
-	val.bv_len = snprintf ( buf, sizeof(buf), "%" NSPRIu64, g_get_num_bytes_sent() );
61f723
+	val.bv_len = snprintf ( buf, sizeof(buf), "%" PRIu64, g_get_num_bytes_sent() );
61f723
 	val.bv_val = buf;
61f723
 	attrlist_replace( &e->e_attrs, "bytessent", vals );
61f723
 
61f723
diff --git a/ldap/servers/slapd/operation.c b/ldap/servers/slapd/operation.c
61f723
index ccbc549..00fb9b8 100644
61f723
--- a/ldap/servers/slapd/operation.c
61f723
+++ b/ldap/servers/slapd/operation.c
61f723
@@ -580,7 +580,7 @@ int slapi_connection_acquire(Slapi_Connection *conn)
61f723
     {
61f723
 	/* This may happen while other threads are still working on this connection */
61f723
         slapi_log_err(SLAPI_LOG_ERR, "slapi_connection_acquire",
61f723
-		                "conn=%" NSPRIu64 " fd=%d Attempt to acquire connection in the closing state\n",
61f723
+		                "conn=%" PRIu64 " fd=%d Attempt to acquire connection in the closing state\n",
61f723
 		                conn->c_connid, conn->c_sd);
61f723
         rc = -1;
61f723
     }
61f723
@@ -606,7 +606,7 @@ slapi_connection_remove_operation( Slapi_PBlock *pb, Slapi_Connection *conn, Sla
61f723
 	if ( *tmp == NULL ) {
61f723
 		if (op) {
61f723
 			slapi_log_err(SLAPI_LOG_ERR, "slapi_connection_remove_operation",
61f723
-				"Can't find op %d for conn %" NSPRIu64 "\n",
61f723
+				"Can't find op %d for conn %" PRIu64 "\n",
61f723
 			    (int)op->o_msgid, conn->c_connid);
61f723
 		} else {
61f723
 			slapi_log_err(SLAPI_LOG_ERR, "slapi_connection_remove_operation",
61f723
@@ -620,7 +620,7 @@ slapi_connection_remove_operation( Slapi_PBlock *pb, Slapi_Connection *conn, Sla
61f723
 		/* connection_release_nolock(conn); */
61f723
 		if (conn->c_refcnt <= 0) {
61f723
 			slapi_log_err(SLAPI_LOG_ERR, "slapi_connection_remove_operation",
61f723
-			                "conn=%" NSPRIu64 " fd=%d Attempt to release connection that is not acquired\n",
61f723
+			                "conn=%" PRIu64 " fd=%d Attempt to release connection that is not acquired\n",
61f723
 			                conn->c_connid, conn->c_sd);
61f723
 			rc = -1;
61f723
 		} else {
61f723
diff --git a/ldap/servers/slapd/opshared.c b/ldap/servers/slapd/opshared.c
61f723
index 3ce7970..4682a73 100644
61f723
--- a/ldap/servers/slapd/opshared.c
61f723
+++ b/ldap/servers/slapd/opshared.c
61f723
@@ -289,7 +289,7 @@ op_shared_search (Slapi_PBlock *pb, int send_result)
61f723
   {
61f723
       char *fmtstr;
61f723
         
61f723
-#define SLAPD_SEARCH_FMTSTR_BASE "conn=%" NSPRIu64 " op=%d SRCH base=\"%s\" scope=%d "
61f723
+#define SLAPD_SEARCH_FMTSTR_BASE "conn=%" PRIu64 " op=%d SRCH base=\"%s\" scope=%d "
61f723
 #define SLAPD_SEARCH_FMTSTR_BASE_INT "conn=%s op=%d SRCH base=\"%s\" scope=%d "
61f723
 #define SLAPD_SEARCH_FMTSTR_REMAINDER " attrs=%s%s%s\n"
61f723
 
61f723
@@ -1744,7 +1744,7 @@ void op_shared_log_error_access (Slapi_PBlock *pb, const char *type, const char
61f723
         proxystr = slapi_ch_smprintf(" authzid=\"%s\"", proxydn);
61f723
     }
61f723
 
61f723
-    slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d %s dn=\"%s\"%s, %s\n",
61f723
+    slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d %s dn=\"%s\"%s, %s\n",
61f723
                       ( pb->pb_conn ? pb->pb_conn->c_connid : 0),
61f723
                       ( pb->pb_op ? pb->pb_op->o_opid : 0), 
61f723
                       type, 
61f723
diff --git a/ldap/servers/slapd/pagedresults.c b/ldap/servers/slapd/pagedresults.c
61f723
index a30e2fa..e8c80e7 100644
61f723
--- a/ldap/servers/slapd/pagedresults.c
61f723
+++ b/ldap/servers/slapd/pagedresults.c
61f723
@@ -310,7 +310,7 @@ pagedresults_free_one( Connection *conn, Operation *op, int index )
61f723
         PR_EnterMonitor(conn->c_mutex);
61f723
         if (conn->c_pagedresults.prl_count <= 0) {
61f723
             slapi_log_err(SLAPI_LOG_TRACE, "pagedresults_free_one",
61f723
-                           "conn=%" NSPRIu64 " paged requests list count is %d\n",
61f723
+                           "conn=%" PRIu64 " paged requests list count is %d\n",
61f723
                            conn->c_connid, conn->c_pagedresults.prl_count);
61f723
         } else if (index < conn->c_pagedresults.prl_maxlen) {
61f723
             PagedResults *prp = conn->c_pagedresults.prl_list + index;
61f723
diff --git a/ldap/servers/slapd/psearch.c b/ldap/servers/slapd/psearch.c
61f723
index 793bea3..2d0badc 100644
61f723
--- a/ldap/servers/slapd/psearch.c
61f723
+++ b/ldap/servers/slapd/psearch.c
61f723
@@ -283,7 +283,7 @@ ps_send_results( void *arg )
61f723
 
61f723
 	if (conn_acq_flag) {
61f723
 		slapi_log_err(SLAPI_LOG_CONNS, "ps_send_results",
61f723
-				"conn=%" NSPRIu64 " op=%d Could not acquire the connection - psearch aborted\n",
61f723
+				"conn=%" PRIu64 " op=%d Could not acquire the connection - psearch aborted\n",
61f723
 				ps->ps_pblock->pb_conn->c_connid, ps->ps_pblock->pb_op->o_opid);
61f723
 	}
61f723
 
61f723
@@ -293,7 +293,7 @@ ps_send_results( void *arg )
61f723
 	/* Check for an abandoned operation */
61f723
 	if ( ps->ps_pblock->pb_op == NULL || slapi_op_abandoned( ps->ps_pblock ) ) {
61f723
 		slapi_log_err(SLAPI_LOG_CONNS, "ps_send_results",
61f723
-				"conn=%" NSPRIu64 " op=%d The operation has been abandoned\n",
61f723
+				"conn=%" PRIu64 " op=%d The operation has been abandoned\n",
61f723
 				ps->ps_pblock->pb_conn->c_connid, ps->ps_pblock->pb_op->o_opid);
61f723
 	    break;
61f723
 	}
61f723
@@ -351,7 +351,7 @@ ps_send_results( void *arg )
61f723
 										 ectrls, attrs, attrsonly );
61f723
 			if (rc) {
61f723
 				slapi_log_err(SLAPI_LOG_CONNS, "ps_send_results",
61f723
-								"conn=%" NSPRIu64 " op=%d Error %d sending entry %s with op status %d\n",
61f723
+								"conn=%" PRIu64 " op=%d Error %d sending entry %s with op status %d\n",
61f723
 								ps->ps_pblock->pb_conn->c_connid, ps->ps_pblock->pb_op->o_opid,
61f723
 								rc, slapi_entry_get_dn_const(ec), ps->ps_pblock->pb_op->o_status);
61f723
 			}
61f723
@@ -400,7 +400,7 @@ ps_send_results( void *arg )
61f723
     PR_EnterMonitor(conn->c_mutex);
61f723
 
61f723
 	slapi_log_err(SLAPI_LOG_CONNS, "ps_send_results",
61f723
-					"conn=%" NSPRIu64 " op=%d Releasing the connection and operation\n",
61f723
+					"conn=%" PRIu64 " op=%d Releasing the connection and operation\n",
61f723
 					conn->c_connid, ps->ps_pblock->pb_op->o_opid);
61f723
     /* Delete this op from the connection's list */
61f723
     connection_remove_operation_ext( ps->ps_pblock, conn, ps->ps_pblock->pb_op );
61f723
@@ -535,7 +535,7 @@ ps_service_persistent_searches( Slapi_Entry *e, Slapi_Entry *eprev, ber_int_t ch
61f723
 		}
61f723
 
61f723
 		slapi_log_err(SLAPI_LOG_CONNS, "ps_service_persistent_searches",
61f723
-						"conn=%" NSPRIu64 " op=%d entry %s with chgtype %d "
61f723
+						"conn=%" PRIu64 " op=%d entry %s with chgtype %d "
61f723
 						"matches the ps changetype %d\n",
61f723
 						ps->ps_pblock->pb_conn->c_connid,
61f723
 						ps->ps_pblock->pb_op->o_opid,
61f723
diff --git a/ldap/servers/slapd/result.c b/ldap/servers/slapd/result.c
61f723
index 5c38bae..56257c3 100644
61f723
--- a/ldap/servers/slapd/result.c
61f723
+++ b/ldap/servers/slapd/result.c
61f723
@@ -1980,7 +1980,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, ber_tag_t tag, int nentrie
61f723
 		if ( !internal_op )
61f723
 		{
61f723
 			slapi_log_access( LDAP_DEBUG_STATS,
61f723
-							  "conn=%" NSPRIu64 " op=%d RESULT err=%d"
61f723
+							  "conn=%" PRIu64 " op=%d RESULT err=%d"
61f723
 							  " tag=%" BERTAG_T " nentries=%d etime=%s%s%s"
61f723
 							  ", SASL bind in progress\n",
61f723
 							  op->o_connid,
61f723
@@ -2012,7 +2012,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, ber_tag_t tag, int nentrie
61f723
 		if ( !internal_op )
61f723
 		{
61f723
 			slapi_log_access( LDAP_DEBUG_STATS,
61f723
-							  "conn=%" NSPRIu64 " op=%d RESULT err=%d"
61f723
+							  "conn=%" PRIu64 " op=%d RESULT err=%d"
61f723
 							  " tag=%" BERTAG_T " nentries=%d etime=%s%s%s"
61f723
 							  " dn=\"%s\"\n",
61f723
 							  op->o_connid,
61f723
@@ -2040,7 +2040,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, ber_tag_t tag, int nentrie
61f723
 			if ( !internal_op )
61f723
 			{
61f723
 				slapi_log_access( LDAP_DEBUG_STATS,
61f723
-								  "conn=%" NSPRIu64 " op=%d RESULT err=%d"
61f723
+								  "conn=%" PRIu64 " op=%d RESULT err=%d"
61f723
 								  " tag=%" BERTAG_T " nentries=%d etime=%s%s%s"
61f723
 								  " pr_idx=%d pr_cookie=%d\n",
61f723
 								  op->o_connid, 
61f723
@@ -2073,7 +2073,7 @@ log_result( Slapi_PBlock *pb, Operation *op, int err, ber_tag_t tag, int nentrie
61f723
 				ext_str = "";
61f723
 			}
61f723
 			slapi_log_access( LDAP_DEBUG_STATS,
61f723
-							  "conn=%" NSPRIu64 " op=%d RESULT err=%d"
61f723
+							  "conn=%" PRIu64 " op=%d RESULT err=%d"
61f723
 							  " tag=%" BERTAG_T " nentries=%d etime=%s%s%s%s\n",
61f723
 							  op->o_connid,
61f723
 							  op->o_opid,
61f723
@@ -2142,7 +2142,7 @@ log_entry( Operation *op, Slapi_Entry *e )
61f723
 
61f723
 	if ( !internal_op )
61f723
 	{
61f723
-		slapi_log_access( LDAP_DEBUG_STATS2, "conn=%" NSPRIu64 " op=%d ENTRY dn=\"%s\"\n",
61f723
+		slapi_log_access( LDAP_DEBUG_STATS2, "conn=%" PRIu64 " op=%d ENTRY dn=\"%s\"\n",
61f723
 			op->o_connid, op->o_opid,
61f723
 			slapi_entry_get_dn_const(e));
61f723
 	}
61f723
@@ -2167,7 +2167,7 @@ log_referral( Operation *op )
61f723
 
61f723
 	if ( !internal_op )
61f723
 	{
61f723
-		slapi_log_access( LDAP_DEBUG_STATS2, "conn=%" NSPRIu64 " op=%d REFERRAL\n",
61f723
+		slapi_log_access( LDAP_DEBUG_STATS2, "conn=%" PRIu64 " op=%d REFERRAL\n",
61f723
 			op->o_connid, op->o_opid );
61f723
 	}
61f723
 	else
61f723
diff --git a/ldap/servers/slapd/sasl_io.c b/ldap/servers/slapd/sasl_io.c
61f723
index 1337e1c..9458083 100644
61f723
--- a/ldap/servers/slapd/sasl_io.c
61f723
+++ b/ldap/servers/slapd/sasl_io.c
61f723
@@ -198,17 +198,17 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
     /* first we need the length bytes */
61f723
     ret = PR_Recv(fd->lower, buffer, amount, flags, timeout);
61f723
     slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet",
61f723
-            "Read sasl packet length returned %d on connection %" NSPRIu64 "\n",
61f723
+            "Read sasl packet length returned %d on connection %" PRIu64 "\n",
61f723
             ret, c->c_connid);
61f723
     if (ret <= 0) {
61f723
         *err = PR_GetError();
61f723
         if (ret == 0) {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet",
61f723
-                    "Connection closed while reading sasl packet length on connection %" NSPRIu64 "\n",
61f723
+                    "Connection closed while reading sasl packet length on connection %" PRIu64 "\n",
61f723
                     c->c_connid );
61f723
         } else {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet",
61f723
-                    "Error reading sasl packet length on connection %" NSPRIu64 " %d:%s\n",
61f723
+                    "Error reading sasl packet length on connection %" PRIu64 " %d:%s\n",
61f723
                     c->c_connid, *err, slapd_pr_strerror(*err) );
61f723
         }
61f723
         return ret;
61f723
@@ -226,7 +226,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
     if (sp->encrypted_buffer_offset < sizeof(buffer)) {
61f723
         slapi_log_err(SLAPI_LOG_CONNS,
61f723
                "sasl_io_start_packet", "Read only %d bytes of sasl packet "
61f723
-               "length on connection %" NSPRIu64 "\n", ret, c->c_connid );
61f723
+               "length on connection %" PRIu64 "\n", ret, c->c_connid );
61f723
 #if defined(EWOULDBLOCK)
61f723
         errno = EWOULDBLOCK;
61f723
 #elif defined(EAGAIN)
61f723
@@ -251,7 +251,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
         ber_len_t ber_len = 0;
61f723
         ber_tag_t tag = 0;
61f723
 
61f723
-        slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" NSPRIu64 " fd=%d "
61f723
+        slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" PRIu64 " fd=%d "
61f723
                 "Sent an LDAP message that was not encrypted.\n", c->c_connid,
61f723
                 c->c_sd);
61f723
 
61f723
@@ -265,7 +265,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
         /* Is the ldap operation too large? */
61f723
         if(ber_len > maxbersize){
61f723
             slapi_log_err(SLAPI_LOG_ERR, "sasl_io_start_packet",
61f723
-                    "conn=%" NSPRIu64 " fd=%d Incoming BER Element was too long, max allowable "
61f723
+                    "conn=%" PRIu64 " fd=%d Incoming BER Element was too long, max allowable "
61f723
                     "is %" BERLEN_T " bytes. Change the nsslapd-maxbersize attribute in "
61f723
                     "cn=config to increase.\n",
61f723
                     c->c_connid, c->c_sd, maxbersize );
61f723
@@ -305,7 +305,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
             } else if (ret > 0) {
61f723
                 slapi_log_err(SLAPI_LOG_CONNS,
61f723
                         "sasl_io_start_packet",
61f723
-                        "Continued: read sasl packet length returned %d on connection %" NSPRIu64 "\n",
61f723
+                        "Continued: read sasl packet length returned %d on connection %" PRIu64 "\n",
61f723
                         ret, c->c_connid);
61f723
                 if((ret + sp->encrypted_buffer_offset) > sp->encrypted_buffer_size){
61f723
                 	sasl_io_resize_encrypted_buffer(sp, ret + sp->encrypted_buffer_offset);
61f723
@@ -316,7 +316,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
                 *err = PR_GetError();
61f723
                 slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet",
61f723
                 		"Error reading sasl packet length on connection "
61f723
-                        "%" NSPRIu64 " %d:%s\n", c->c_connid, *err, slapd_pr_strerror(*err) );
61f723
+                        "%" PRIu64 " %d:%s\n", c->c_connid, *err, slapd_pr_strerror(*err) );
61f723
                 return ret;
61f723
             }
61f723
         }
61f723
@@ -360,7 +360,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
                 tag = *ber->ber_ptr++;
61f723
                 if (*ber->ber_ptr == LDAP_REQ_UNBIND){
61f723
 #endif
61f723
-                    slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" NSPRIu64 " fd=%d "
61f723
+                    slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" PRIu64 " fd=%d "
61f723
                             "Received unencrypted UNBIND operation.\n", c->c_connid,
61f723
                             c->c_sd);
61f723
                     sp->encrypted_buffer_count = sp->encrypted_buffer_offset;
61f723
@@ -368,7 +368,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
                     ber_free(ber, 1);
61f723
                     return SASL_IO_BUFFER_NOT_ENCRYPTED;
61f723
                 }
61f723
-                slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" NSPRIu64 " fd=%d "
61f723
+                slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" PRIu64 " fd=%d "
61f723
                         "Error: received an LDAP message (tag 0x%lx) that was not encrypted.\n",
61f723
 #ifdef USE_OPENLDAP
61f723
                         c->c_connid, c->c_sd, (long unsigned int)tag);
61f723
@@ -380,7 +380,7 @@ sasl_io_start_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt
61f723
 
61f723
 done:
61f723
         /* If we got here we have garbage, or a denied LDAP operation */
61f723
-        slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" NSPRIu64 " fd=%d "
61f723
+        slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet", "conn=%" PRIu64 " fd=%d "
61f723
                 "Error: received an invalid message that was not encrypted.\n",
61f723
                 c->c_connid, c->c_sd);
61f723
 
61f723
@@ -399,7 +399,7 @@ done:
61f723
     packet_length += sizeof(uint32_t);
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_start_packet",
61f723
-                    "read sasl packet length %ld on connection %" NSPRIu64 "\n", 
61f723
+                    "read sasl packet length %ld on connection %" PRIu64 "\n", 
61f723
                     packet_length, c->c_connid );
61f723
 
61f723
     /* Check if the packet length is larger than our max allowed.  A
61f723
@@ -432,17 +432,17 @@ sasl_io_read_packet(PRFileDesc *fd, PRIntn flags, PRIntervalTime timeout, PRInt3
61f723
     size_t bytes_remaining_to_read = sp->encrypted_buffer_count - sp->encrypted_buffer_offset;
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONNS,
61f723
-               "sasl_io_read_packet", "Reading %lu bytes for connection %" NSPRIu64 "\n",
61f723
+               "sasl_io_read_packet", "Reading %lu bytes for connection %" PRIu64 "\n",
61f723
                bytes_remaining_to_read, c->c_connid );
61f723
     ret = PR_Recv(fd->lower, sp->encrypted_buffer + sp->encrypted_buffer_offset, bytes_remaining_to_read, flags, timeout);
61f723
     if (ret <= 0) {
61f723
         *err = PR_GetError();
61f723
         if (ret == 0) {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_read_packet",
61f723
-                    "Connection closed while reading sasl packet on connection %" NSPRIu64 "\n", c->c_connid );
61f723
+                    "Connection closed while reading sasl packet on connection %" PRIu64 "\n", c->c_connid );
61f723
         } else {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_read_packet",
61f723
-                    "Error reading sasl packet on connection %" NSPRIu64 " %d:%s\n",
61f723
+                    "Error reading sasl packet on connection %" PRIu64 " %d:%s\n",
61f723
                     c->c_connid, *err, slapd_pr_strerror(*err) );
61f723
         }
61f723
         return ret;
61f723
@@ -464,10 +464,10 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
     /* Do we have decrypted data buffered from 'before' ? */
61f723
     bytes_in_buffer = sp->decrypted_buffer_count - sp->decrypted_buffer_offset;
61f723
     slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-            "Connection %" NSPRIu64 " len %d bytes_in_buffer %lu\n",
61f723
+            "Connection %" PRIu64 " len %d bytes_in_buffer %lu\n",
61f723
             c->c_connid, len, bytes_in_buffer );
61f723
     slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-            "Connection %" NSPRIu64 " len %d encrypted buffer count %lu\n",
61f723
+            "Connection %" PRIu64 " len %d encrypted buffer count %lu\n",
61f723
             c->c_connid, len, sp->encrypted_buffer_count );
61f723
     if (0 == bytes_in_buffer) {
61f723
         /* If there wasn't buffered decrypted data, we need to get some... */
61f723
@@ -502,7 +502,7 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
          */
61f723
         if (!sasl_io_finished_packet(sp)) {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-                    "Connection %" NSPRIu64 " - not finished reading packet yet\n", c->c_connid);
61f723
+                    "Connection %" PRIu64 " - not finished reading packet yet\n", c->c_connid);
61f723
 #if defined(EWOULDBLOCK)
61f723
             errno = EWOULDBLOCK;
61f723
 #elif defined(EAGAIN)
61f723
@@ -516,7 +516,7 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
             const char *output_buffer = NULL;
61f723
             unsigned int output_length = 0;
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-                    "Finished reading packet for connection %" NSPRIu64 "\n", c->c_connid );
61f723
+                    "Finished reading packet for connection %" PRIu64 "\n", c->c_connid );
61f723
             /* Now decode it */
61f723
             ret = sasl_decode(c->c_sasl_conn,sp->encrypted_buffer,sp->encrypted_buffer_count,&output_buffer,&output_length);
61f723
             /* even if decode fails, need re-initialize the encrypted_buffer */
61f723
@@ -524,7 +524,7 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
             sp->encrypted_buffer_count = 0;
61f723
             if (SASL_OK == ret) {
61f723
                 slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-                        "Decoded packet length %u for connection %" NSPRIu64 "\n", output_length, c->c_connid );
61f723
+                        "Decoded packet length %u for connection %" PRIu64 "\n", output_length, c->c_connid );
61f723
                 if (output_length) {
61f723
                     sasl_io_resize_decrypted_buffer(sp,output_length);
61f723
                     memcpy(sp->decrypted_buffer,output_buffer,output_length);
61f723
@@ -534,7 +534,7 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
                 }
61f723
             } else {
61f723
                 slapi_log_err(SLAPI_LOG_ERR, "sasl_io_recv",
61f723
-                        "Failed to decode packet for connection %" NSPRIu64 "\n", c->c_connid );
61f723
+                        "Failed to decode packet for connection %" PRIu64 "\n", c->c_connid );
61f723
                 PR_SetError(PR_IO_ERROR, 0);
61f723
                 return PR_FAILURE;
61f723
             }
61f723
@@ -552,11 +552,11 @@ sasl_io_recv(PRFileDesc *fd, void *buf, PRInt32 len, PRIntn flags,
61f723
             sp->decrypted_buffer_offset = 0;
61f723
             sp->decrypted_buffer_count = 0;
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-                    "All decrypted data returned for connection %" NSPRIu64 "\n", c->c_connid );
61f723
+                    "All decrypted data returned for connection %" PRIu64 "\n", c->c_connid );
61f723
         } else {
61f723
             sp->decrypted_buffer_offset += bytes_to_return;
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_recv",
61f723
-                    "Returning %lu bytes to caller %lu bytes left to return for connection %" NSPRIu64 "\n",
61f723
+                    "Returning %lu bytes to caller %lu bytes left to return for connection %" PRIu64 "\n",
61f723
                     bytes_to_return, sp->decrypted_buffer_count - sp->decrypted_buffer_offset, c->c_connid );
61f723
         }
61f723
         ret = bytes_to_return;
61f723
@@ -772,11 +772,11 @@ sasl_io_enable(Connection *c, void *data /* UNUSED */)
61f723
         rv = PR_PushIOLayer(c->c_prfd, PR_TOP_IO_LAYER, layer);
61f723
         if (rv) {
61f723
             slapi_log_err(SLAPI_LOG_ERR, "sasl_io_enable",
61f723
-                    "Error enabling sasl io on connection %" NSPRIu64 " %d:%s\n",
61f723
+                    "Error enabling sasl io on connection %" PRIu64 " %d:%s\n",
61f723
                     c->c_connid, rv, slapd_pr_strerror(rv) );
61f723
         } else {
61f723
             slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_enable",
61f723
-                    "Enabled sasl io on connection %" NSPRIu64 " \n", c->c_connid);
61f723
+                    "Enabled sasl io on connection %" PRIu64 " \n", c->c_connid);
61f723
             debug_print_layers(c->c_prfd);
61f723
         }
61f723
     }
61f723
@@ -794,7 +794,7 @@ sasl_io_cleanup(Connection *c, void *data /* UNUSED */)
61f723
     int ret = 0;
61f723
 
61f723
     slapi_log_err(SLAPI_LOG_CONNS, "sasl_io_cleanup",
61f723
-            "Connection %" NSPRIu64 "\n", c->c_connid);
61f723
+            "Connection %" PRIu64 "\n", c->c_connid);
61f723
 
61f723
     ret = sasl_pop_IO_layer(c->c_prfd, 0 /* do not close */);
61f723
 
61f723
diff --git a/ldap/servers/slapd/saslbind.c b/ldap/servers/slapd/saslbind.c
61f723
index 9e5d1f0..2d6fb64 100644
61f723
--- a/ldap/servers/slapd/saslbind.c
61f723
+++ b/ldap/servers/slapd/saslbind.c
61f723
@@ -929,7 +929,7 @@ void ids_sasl_check_bind(Slapi_PBlock *pb)
61f723
         Slapi_Operation *operation;
61f723
         slapi_pblock_get( pb, SLAPI_OPERATION, &operation);
61f723
         slapi_log_err(SLAPI_LOG_CONNS, "ids_sasl_check_bind",
61f723
-                        "cleaning up sasl IO conn=%" NSPRIu64 " op=%d complete=%d continuing=%d\n",
61f723
+                        "cleaning up sasl IO conn=%" PRIu64 " op=%d complete=%d continuing=%d\n",
61f723
                         pb->pb_conn->c_connid, operation->o_opid,
61f723
                         (pb->pb_conn->c_flags & CONN_FLAG_SASL_COMPLETE), continuing);
61f723
         /* reset flag */
61f723
diff --git a/ldap/servers/slapd/search.c b/ldap/servers/slapd/search.c
61f723
index 670347e..ea8b479 100644
61f723
--- a/ldap/servers/slapd/search.c
61f723
+++ b/ldap/servers/slapd/search.c
61f723
@@ -380,7 +380,7 @@ free_and_return:;
61f723
 static void log_search_access (Slapi_PBlock *pb, const char *base, int scope, const char *fstr, const char *msg)
61f723
 {
61f723
 	slapi_log_access(LDAP_DEBUG_STATS,
61f723
-					 "conn=%" NSPRIu64 " op=%d SRCH base=\"%s\" scope=%d filter=\"%s\", %s\n",
61f723
+					 "conn=%" PRIu64 " op=%d SRCH base=\"%s\" scope=%d filter=\"%s\", %s\n",
61f723
 					 pb->pb_conn->c_connid, pb->pb_op->o_opid,
61f723
 					 base, scope, fstr, msg ? msg : "");
61f723
 
61f723
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
61f723
index 5871bf0..abfad20 100644
61f723
--- a/ldap/servers/slapd/slap.h
61f723
+++ b/ldap/servers/slapd/slap.h
61f723
@@ -72,13 +72,8 @@ static char ptokPBE[34] = "Internal (Software) Token        ";
61f723
 #include <sys/socket.h>
61f723
 #include <netinet/in.h>
61f723
 
61f723
-/* Required to get portable printf/scanf format macros */
61f723
-#ifdef HAVE_INTTYPES_H
61f723
-#include <inttypes.h>
61f723
-
61f723
-#else
61f723
-#error Need to define portable format macros such as PRIu64
61f723
-#endif /* HAVE_INTTYPES_H */
61f723
+/* Provides our int types and platform specific requirements. */
61f723
+#include <slapi_pal.h>
61f723
 
61f723
 #define LOG_INTERNAL_OP_CON_ID      "Internal"
61f723
 #define LOG_INTERNAL_OP_OP_ID       -1
61f723
diff --git a/ldap/servers/slapd/slapi-plugin.h b/ldap/servers/slapd/slapi-plugin.h
61f723
index 725fa1c..ec8917d 100644
61f723
--- a/ldap/servers/slapd/slapi-plugin.h
61f723
+++ b/ldap/servers/slapd/slapi-plugin.h
61f723
@@ -27,6 +27,9 @@
61f723
 extern "C" {
61f723
 #endif
61f723
 
61f723
+/* Provides our int types and platform specific requirements. */
61f723
+#include <slapi_pal.h>
61f723
+
61f723
 #include "prtypes.h"
61f723
 #include "ldap.h"
61f723
 #include "prprf.h"
61f723
@@ -57,17 +60,6 @@ NSPR_API(PRUint32) PR_fprintf(struct PRFileDesc* fd, const char *fmt, ...)
61f723
         ;
61f723
 #endif
61f723
 
61f723
-/* NSPR uses the print macros a bit differently than ANSI C.  We
61f723
- * need to use ll for a 64-bit integer, even when a long is 64-bit.
61f723
- */
61f723
-#if defined(HAVE_LONG_LONG) && PR_BYTES_PER_LONG == 8 && !defined(PR_ALTERNATE_INT64_TYPEDEF)
61f723
-#define NSPRIu64	"lu"
61f723
-#define NSPRI64	"l"
61f723
-#else /* just assume long long is used */
61f723
-#define NSPRIu64	"llu"
61f723
-#define NSPRI64	"ll"
61f723
-#endif
61f723
-
61f723
 /* OpenLDAP uses unsigned long for ber_tag_t and ber_len_t but mozldap uses unsigned int */
61f723
 /* use this macro for printf statements for ber_tag_t and ber_len_t */
61f723
 #if defined(USE_OPENLDAP)
61f723
diff --git a/ldap/servers/slapd/slapi-private.h b/ldap/servers/slapd/slapi-private.h
61f723
index dd180a7..0c76580 100644
61f723
--- a/ldap/servers/slapd/slapi-private.h
61f723
+++ b/ldap/servers/slapd/slapi-private.h
61f723
@@ -30,6 +30,9 @@ extern "C" {
61f723
  */
61f723
 #include "slapi-plugin-compat4.h"
61f723
 
61f723
+/* slapi platform abstraction functions. */
61f723
+#include <slapi_pal.h>
61f723
+
61f723
 /* Define our internal logging macro */
61f723
 #define slapi_log_err(level, subsystem, fmt, ...)
61f723
 #ifdef LDAP_ERROR_LOGGING
61f723
@@ -1363,26 +1366,33 @@ long long slapi_parse_duration_longlong(const char *value);
61f723
 int slapi_is_duration_valid(const char *value);
61f723
 
61f723
 /**
61f723
- * Populate the pointers with the system memory information.
61f723
- * At this time, Linux is the only "reliable" system for returning these values
61f723
- *
61f723
- * \param pagesize Will return the system page size in bytes.
61f723
- * \param pages The total number of memory pages on the system. May include swap pages depending on OS.
61f723
- * \param procpages Number of memory pages our current process is consuming. May not be accurate on all platforms as this could be the VMSize rather than the actual number of consumed pages.
61f723
- * \param availpages Number of available pages of memory on the system. Not all operating systems set this correctly.
61f723
- *
61f723
- * \return 0 on success, non-zero on failure to determine memory sizings.
61f723
+ * Possible results of a cachesize check
61f723
  */
61f723
-int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size_t *availpages);
61f723
-
61f723
+typedef enum _util_cachesize_result {
61f723
+    /**
61f723
+     * The requested cachesize was valid and can be used.
61f723
+     */
61f723
+    UTIL_CACHESIZE_VALID = 0,
61f723
+    /**
61f723
+     * The requested cachesize may cause OOM and was reduced.
61f723
+     */
61f723
+    UTIL_CACHESIZE_REDUCED = 1,
61f723
+    /**
61f723
+     * An error occured resolving the cache size. You must stop processing.
61f723
+     */
61f723
+    UTIL_CACHESIZE_ERROR = 2,
61f723
+} util_cachesize_result;
61f723
 /**
61f723
- * Determine if the requested cachesize will exceed the system memory limits causing an out of memory condition
61f723
+ * Determine if the requested cachesize will exceed the system memory limits causing an out of memory condition. You must
61f723
+ * check the result before proceeding to correctly use the cache.
61f723
  *
61f723
+ * \param mi. The system memory infomation. You should retrieve this with spal_meminfo_get(), and destroy it after use.
61f723
  * \param cachesize. The requested allocation. If this value is greater than the memory available, this value will be REDUCED to be valid.
61f723
  *
61f723
- * \return 0 if the size is "sane". 1 if the value will cause OOM and has been REDUCED
61f723
+ * \return util_cachesize_result.
61f723
+ * \sa util_cachesize_result, spal_meminfo_get
61f723
  */
61f723
-int util_is_cachesize_sane(size_t *cachesize);
61f723
+util_cachesize_result util_is_cachesize_sane(slapi_pal_meminfo *mi, size_t *cachesize);
61f723
 
61f723
 /**
61f723
  * Retrieve the number of threads the server should run with based on this hardware.
61f723
diff --git a/ldap/servers/slapd/slapi_pal.c b/ldap/servers/slapd/slapi_pal.c
61f723
new file mode 100644
61f723
index 0000000..91576ca
61f723
--- /dev/null
61f723
+++ b/ldap/servers/slapd/slapi_pal.c
61f723
@@ -0,0 +1,311 @@
61f723
+/** BEGIN COPYRIGHT BLOCK
61f723
+ * Copyright (C) 2017 Red Hat, Inc.
61f723
+ * All rights reserved.
61f723
+ *
61f723
+ * License: GPL (version 3 or any later version).
61f723
+ * See LICENSE for details. 
61f723
+ * END COPYRIGHT BLOCK **/
61f723
+
61f723
+/*
61f723
+ * Implementation of functions to abstract from platform
61f723
+ * specific issues.
61f723
+ */
61f723
+
61f723
+/* Provide ch_malloc etc. */
61f723
+#include <slapi-plugin.h>
61f723
+/* Provide slapi_log_err macro wrapper */
61f723
+#include <slapi-private.h>
61f723
+#include <slapi_pal.h>
61f723
+
61f723
+/* Assert macros */
61f723
+#include <assert.h>
61f723
+/* Access errno */
61f723
+#include <errno.h>
61f723
+
61f723
+/* For getpagesize */
61f723
+#include <unistd.h>
61f723
+
61f723
+/* For rlimit */
61f723
+#include <sys/time.h>
61f723
+#include <sys/resource.h>
61f723
+
61f723
+#ifdef OS_solaris
61f723
+#include <sys/procfs.h>
61f723
+#endif
61f723
+
61f723
+#if defined ( hpux )
61f723
+#include <sys/pstat.h>
61f723
+#endif
61f723
+
61f723
+static int_fast32_t
61f723
+_spal_rlimit_get(int resource, uint64_t *soft_limit, uint64_t *hard_limit) {
61f723
+    struct rlimit rl = {0};
61f723
+
61f723
+    if (getrlimit(resource, &rl) != 0) {
61f723
+        int errsrv = errno;
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "_spal_rlimit_mem_get", "Failed to access system resource limits %d\n", errsrv);
61f723
+        return 1;
61f723
+    }
61f723
+
61f723
+    if (rl.rlim_cur != RLIM_INFINITY) {
61f723
+        *soft_limit = (uint64_t)rl.rlim_cur;
61f723
+    }
61f723
+    if (rl.rlim_max != RLIM_INFINITY) {
61f723
+        *hard_limit = (uint64_t)rl.rlim_max;
61f723
+    }
61f723
+
61f723
+    return 0;
61f723
+}
61f723
+
61f723
+
61f723
+#ifdef LINUX
61f723
+static int_fast32_t
61f723
+_spal_uint64_t_file_get(char *name, char *prefix, uint64_t *dest) {
61f723
+    FILE *f;
61f723
+    char s[40] = {0};
61f723
+    size_t prefix_len = 0;
61f723
+
61f723
+    if (prefix != NULL) {
61f723
+        prefix_len = strlen(prefix);
61f723
+    }
61f723
+
61f723
+    /* Make sure we can fit into our buffer */
61f723
+    assert((prefix_len + 20) < 39);
61f723
+
61f723
+    f = fopen(name, "r");
61f723
+    if (!f) {    /* fopen failed */
61f723
+        int errsrv = errno;
61f723
+        slapi_log_err(SLAPI_LOG_ERR,"_spal_get_uint64_t_file", "Unable to open file \"%s\". errno=%d\n", name, errsrv);
61f723
+        return 1;
61f723
+    }
61f723
+
61f723
+    int_fast32_t retval = 0;
61f723
+    while (! feof(f)) {
61f723
+        if (!fgets(s, 39, f)) {
61f723
+            retval = 1;
61f723
+            break; /* error or eof */
61f723
+        }
61f723
+        if (feof(f)) {
61f723
+            retval = 1;
61f723
+            break;
61f723
+        }
61f723
+        if (prefix_len > 0 && strncmp(s, prefix, prefix_len) == 0) {
61f723
+            sscanf(s + prefix_len, "%"SCNu64, dest);
61f723
+            break;
61f723
+        } else if (prefix_len == 0) {
61f723
+            sscanf(s, "%"SCNu64, dest);
61f723
+            break;
61f723
+        }
61f723
+    }
61f723
+    fclose(f);
61f723
+    return retval;
61f723
+}
61f723
+
61f723
+
61f723
+
61f723
+slapi_pal_meminfo *
61f723
+spal_meminfo_get() {
61f723
+    slapi_pal_meminfo *mi = (slapi_pal_meminfo *)slapi_ch_calloc(1, sizeof(slapi_pal_meminfo));
61f723
+
61f723
+    mi->pagesize_bytes = getpagesize();
61f723
+
61f723
+    /*
61f723
+     * We have to compare values from a number of sources to ensure we have
61f723
+     * the correct result.
61f723
+     */
61f723
+
61f723
+    char f_proc_status[30] = {0};
61f723
+    sprintf(f_proc_status, "/proc/%d/status", getpid());
61f723
+    char *p_vmrss = "VmRSS:";
61f723
+    uint64_t vmrss = 0;
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_proc_status, p_vmrss, &vmrss)) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "spal_meminfo_get", "Unable to retrieve vmrss\n");
61f723
+    }
61f723
+
61f723
+    /* vmrss is in kb, so convert to bytes */
61f723
+    vmrss = vmrss * 1024;
61f723
+
61f723
+    uint64_t rl_mem_soft = 0;
61f723
+    uint64_t rl_mem_hard = 0;
61f723
+    uint64_t rl_mem_soft_avail = 0;
61f723
+
61f723
+    if (_spal_rlimit_get(RLIMIT_AS, &rl_mem_soft, &rl_mem_hard)) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "spal_meminfo_get", "Unable to retrieve memory rlimit\n");
61f723
+    }
61f723
+
61f723
+    if (rl_mem_soft != 0 && vmrss != 0 && rl_mem_soft > vmrss) {
61f723
+        rl_mem_soft_avail = rl_mem_soft - vmrss;
61f723
+    }
61f723
+
61f723
+    char *f_meminfo = "/proc/meminfo";
61f723
+    char *p_memtotal = "MemTotal:";
61f723
+    char *p_memavail = "MemAvailable:";
61f723
+
61f723
+    uint64_t memtotal = 0;
61f723
+    uint64_t memavail = 0;
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_meminfo, p_memtotal, &memtotal)) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "spal_meminfo_get", "Unable to retrieve %s : %s\n", f_meminfo, p_memtotal);
61f723
+    }
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_meminfo, p_memavail, &memavail)) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "spal_meminfo_get", "Unable to retrieve %s : %s\n", f_meminfo, p_memavail);
61f723
+    }
61f723
+
61f723
+    /* Both memtotal and memavail are in kb */
61f723
+    memtotal = memtotal * 1024;
61f723
+    memavail = memavail * 1024;
61f723
+
61f723
+    /* If it's possible, get our cgroup info */
61f723
+    uint64_t cg_mem_soft = 0;
61f723
+    uint64_t cg_mem_hard = 0;
61f723
+    uint64_t cg_mem_usage = 0;
61f723
+    uint64_t cg_mem_soft_avail = 0;
61f723
+
61f723
+    char *f_cg_soft = "/sys/fs/cgroup/memory/memory.soft_limit_in_bytes";
61f723
+    char *f_cg_hard = "/sys/fs/cgroup/memory/memory.limit_in_bytes";
61f723
+    char *f_cg_usage = "/sys/fs/cgroup/memory/memory.usage_in_bytes";
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_cg_soft, NULL, &cg_mem_soft)) {
61f723
+        slapi_log_err(SLAPI_LOG_WARNING, "spal_meminfo_get", "Unable to retrieve %s. There may be no cgroup support on this platform\n", f_cg_soft);
61f723
+    }
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_cg_hard, NULL, &cg_mem_hard)) {
61f723
+        slapi_log_err(SLAPI_LOG_WARNING, "spal_meminfo_get", "Unable to retrieve %s. There may be no cgroup support on this platform\n", f_cg_hard);
61f723
+    }
61f723
+
61f723
+    if (_spal_uint64_t_file_get(f_cg_usage, NULL, &cg_mem_usage)) {
61f723
+        slapi_log_err(SLAPI_LOG_WARNING, "spal_meminfo_get", "Unable to retrieve %s. There may be no cgroup support on this platform\n", f_cg_hard);
61f723
+    }
61f723
+
61f723
+    /*
61f723
+     * In some conditions, like docker, we only have a *hard* limit set.
61f723
+     * This obviously breaks our logic, so we need to make sure we correct this
61f723
+     */
61f723
+
61f723
+    if (cg_mem_hard != 0 && cg_mem_soft != 0 && cg_mem_hard < cg_mem_soft) {
61f723
+        /* Right, we only have a hard limit. Impose a 10% watermark. */
61f723
+        cg_mem_soft = cg_mem_hard * 0.9;
61f723
+    }
61f723
+
61f723
+    if (cg_mem_soft != 0 && cg_mem_usage != 0 && cg_mem_soft > cg_mem_usage) {
61f723
+        cg_mem_soft_avail = cg_mem_soft - cg_mem_usage;
61f723
+    }
61f723
+
61f723
+
61f723
+    /* Now, compare the values and make a choice to which is provided */
61f723
+
61f723
+    /* Process consumed memory */
61f723
+    mi->process_consumed_bytes = vmrss;
61f723
+    mi->process_consumed_pages = vmrss / mi->pagesize_bytes;
61f723
+
61f723
+    /* System Total memory */
61f723
+    /*                       If we have a memtotal, OR if no memtotal but rlimit */
61f723
+    if (rl_mem_hard != 0 &&
61f723
+            ((memtotal != 0 && rl_mem_hard < memtotal) || memtotal == 0) &&
61f723
+            ((cg_mem_hard != 0 && rl_mem_hard < cg_mem_hard) || cg_mem_hard == 0)
61f723
+        )
61f723
+    {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_total_bytes - using rlimit\n");
61f723
+        mi->system_total_bytes = rl_mem_hard;
61f723
+        mi->system_total_pages = rl_mem_hard / mi->pagesize_bytes;
61f723
+    } else if (cg_mem_hard != 0 && ((memtotal != 0 && cg_mem_hard < memtotal) || memtotal == 0)) {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_total_bytes - using cgroup\n");
61f723
+        mi->system_total_bytes = cg_mem_hard;
61f723
+        mi->system_total_pages = cg_mem_hard / mi->pagesize_bytes;
61f723
+    } else if (memtotal != 0) {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_total_bytes - using memtotal\n");
61f723
+        mi->system_total_bytes = memtotal;
61f723
+        mi->system_total_pages = memtotal / mi->pagesize_bytes;
61f723
+    } else {
61f723
+        slapi_log_err(SLAPI_LOG_CRIT, "spal_meminfo_get", "Unable to determine system total memory!\n");
61f723
+        spal_meminfo_destroy(mi);
61f723
+        return NULL;
61f723
+    }
61f723
+
61f723
+    /* System Available memory */
61f723
+
61f723
+    if (rl_mem_soft_avail != 0 &&
61f723
+            ((memavail != 0 && (rl_mem_soft_avail) < memavail) || memavail == 0) &&
61f723
+            ((cg_mem_soft_avail != 0 && rl_mem_soft_avail < cg_mem_soft_avail) || cg_mem_soft_avail == 0)
61f723
+        )
61f723
+    {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_available_bytes - using rlimit\n");
61f723
+        mi->system_available_bytes = rl_mem_soft_avail;
61f723
+        mi->system_available_pages = rl_mem_soft_avail / mi->pagesize_bytes;
61f723
+    } else if (cg_mem_soft_avail != 0 && ((memavail != 0 && (cg_mem_soft_avail) < memavail) || memavail == 0)) {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_available_bytes - using cgroup\n");
61f723
+        mi->system_available_bytes = cg_mem_soft_avail;
61f723
+        mi->system_available_pages = cg_mem_soft_avail / mi->pagesize_bytes;
61f723
+    } else if (memavail != 0) {
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "system_available_bytes - using memavail\n");
61f723
+        mi->system_available_bytes = memavail;
61f723
+        mi->system_available_pages = memavail / mi->pagesize_bytes;
61f723
+    } else {
61f723
+        slapi_log_err(SLAPI_LOG_CRIT, "spal_meminfo_get", "Unable to determine system available memory!\n");
61f723
+        spal_meminfo_destroy(mi);
61f723
+        return NULL;
61f723
+    }
61f723
+
61f723
+    slapi_log_err(SLAPI_LOG_TRACE, "spal_meminfo_get", "{pagesize_bytes = %"PRIu64", system_total_pages = %"PRIu64", system_total_bytes = %"PRIu64", process_consumed_pages = %"PRIu64", process_consumed_bytes = %"PRIu64", system_available_pages = %"PRIu64", system_available_bytes = %"PRIu64"},\n",
61f723
+        mi->pagesize_bytes, mi->system_total_pages, mi->system_total_bytes, mi->process_consumed_pages, mi->process_consumed_bytes, mi->system_available_pages, mi->system_available_bytes);
61f723
+
61f723
+    return mi;
61f723
+}
61f723
+
61f723
+
61f723
+#endif
61f723
+
61f723
+#ifdef OS_solaris
61f723
+uint64_t
61f723
+_spal_solaris_resident_pages_get() {
61f723
+    uint64_t procpages = 0;
61f723
+    struct prpsinfo psi = {0};
61f723
+    char fn[40];
61f723
+    int fd;
61f723
+
61f723
+    sprintf(fn, "/proc/%d", getpid());
61f723
+    fd = open(fn, O_RDONLY);
61f723
+    if (fd >= 0) {
61f723
+        if (ioctl(fd, PIOCPSINFO, (void *)&psi) == 0) {
61f723
+            procpages = (uint64_t)psi.pr_size;
61f723
+        }
61f723
+        close(fd);
61f723
+    }
61f723
+    return procpages;
61f723
+}
61f723
+
61f723
+slapi_pal_meminfo *
61f723
+spal_meminfo_get() {
61f723
+    slapi_pal_meminfo *mi = (slapi_pal_meminfo *)slapi_ch_calloc(1, sizeof(slapi_pal_meminfo));
61f723
+
61f723
+    uint64_t rl_mem_soft = 0;
61f723
+    uint64_t rl_mem_hard = 0;
61f723
+
61f723
+    if (_spal_rlimit_get(RLIMIT_AS, &rl_mem_soft, &rl_mem_hard)) {
61f723
+        slapi_log_err(SLAPI_LOG_ERR, "spal_meminfo_get", "Unable to retrieve memory rlimit\n");
61f723
+    }
61f723
+
61f723
+    mi->pagesize_bytes = sysconf(_SC_PAGESIZE);
61f723
+    mi->system_total_pages = sysconf(_SC_PHYS_PAGES);
61f723
+    mi->system_total_bytes = mi->system_total_pages * mi->pagesize_bytes;
61f723
+    mi->system_available_bytes = rl_mem_soft;
61f723
+    if (rl_mem_soft != 0) {
61f723
+        mi->system_available_pages = rl_mem_soft / mi->pagesize_bytes;
61f723
+    }
61f723
+    mi->process_consumed_pages = _spal_solaris_resident_pages_get();
61f723
+    mi->process_consumed_bytes = mi->process_consumed_pages * mi->pagesize_bytes;
61f723
+
61f723
+    return mi;
61f723
+
61f723
+}
61f723
+#endif
61f723
+
61f723
+#ifdef HPUX
61f723
+#endif
61f723
+
61f723
+void
61f723
+spal_meminfo_destroy(slapi_pal_meminfo *mi) {
61f723
+    slapi_ch_free((void **)&mi);
61f723
+}
61f723
diff --git a/ldap/servers/slapd/slapi_pal.h b/ldap/servers/slapd/slapi_pal.h
61f723
new file mode 100644
61f723
index 0000000..cb61d84
61f723
--- /dev/null
61f723
+++ b/ldap/servers/slapd/slapi_pal.h
61f723
@@ -0,0 +1,62 @@
61f723
+/** BEGIN COPYRIGHT BLOCK
61f723
+ * Copyright (C) 2017 Red Hat, Inc.
61f723
+ * All rights reserved.
61f723
+ *
61f723
+ * License: GPL (version 3 or any later version).
61f723
+ * See LICENSE for details. 
61f723
+ * END COPYRIGHT BLOCK **/
61f723
+
61f723
+/*
61f723
+ * Header for the slapi platform abstraction layer.
61f723
+ *
61f723
+ * This implements a number of functions that help to provide vendor
61f723
+ * neutral requests. Candidates for this are memory, thread, disk size
61f723
+ * and other operations.
61f723
+ *
61f723
+ * Basically anywhere you see a "ifdef PLATFORM" is a candidate
61f723
+ * for this.
61f723
+ */
61f723
+
61f723
+#pragma once
61f723
+
61f723
+#include <config.h>
61f723
+
61f723
+#ifdef HAVE_INTTYPES_H
61f723
+#include <inttypes.h>
61f723
+#else
61f723
+#error Need to define portable format macros such as PRIu64
61f723
+#endif /* HAVE_INTTYPES_H */
61f723
+
61f723
+/**
61f723
+ * Structure that contains our system memory information in bytes and pages.
61f723
+ *
61f723
+ */
61f723
+typedef struct _slapi_pal_meminfo {
61f723
+    uint64_t pagesize_bytes;
61f723
+    uint64_t system_total_pages;
61f723
+    uint64_t system_total_bytes;
61f723
+    uint64_t process_consumed_pages;
61f723
+    uint64_t process_consumed_bytes;
61f723
+    /* This value may be limited by cgroup or others. */
61f723
+    uint64_t system_available_pages;
61f723
+    uint64_t system_available_bytes;
61f723
+} slapi_pal_meminfo;
61f723
+
61f723
+/**
61f723
+ * Allocate and returne a populated memory info structure. This will be NULL
61f723
+ * on error, or contain a structure populated with platform information on
61f723
+ * success. You should free this with spal_meminfo_destroy.
61f723
+ *
61f723
+ * \return slapi_pal_meminfo * pointer to structure containing data, or NULL.
61f723
+ */
61f723
+slapi_pal_meminfo * spal_meminfo_get();
61f723
+
61f723
+/**
61f723
+ * Destroy an allocated memory info structure. The caller is responsible for
61f723
+ * ensuring this is called.
61f723
+ *
61f723
+ * \param mi the allocated slapi_pal_meminfo structure from spal_meminfo_get();
61f723
+ */
61f723
+void spal_meminfo_destroy(slapi_pal_meminfo *mi);
61f723
+
61f723
+
61f723
diff --git a/ldap/servers/slapd/snmp_collator.c b/ldap/servers/slapd/snmp_collator.c
61f723
index b0c873d..21043d9 100644
61f723
--- a/ldap/servers/slapd/snmp_collator.c
61f723
+++ b/ldap/servers/slapd/snmp_collator.c
61f723
@@ -711,7 +711,7 @@ static void
61f723
 add_counter_to_value(Slapi_Entry *e, const char *type, PRUint64 countervalue)
61f723
 {
61f723
 	char value[40];
61f723
-	snprintf(value,sizeof(value),"%" NSPRIu64, countervalue);
61f723
+	snprintf(value,sizeof(value),"%" PRIu64, countervalue);
61f723
 	slapi_entry_attr_set_charptr( e, type, value);
61f723
 }
61f723
 
61f723
diff --git a/ldap/servers/slapd/unbind.c b/ldap/servers/slapd/unbind.c
61f723
index fd44249..92dd905 100644
61f723
--- a/ldap/servers/slapd/unbind.c
61f723
+++ b/ldap/servers/slapd/unbind.c
61f723
@@ -49,7 +49,7 @@ do_unbind( Slapi_PBlock *pb )
61f723
 	 *	UnBindRequest ::= NULL
61f723
 	 */
61f723
 	if ( ber_get_null( ber ) == LBER_ERROR ) {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d UNBIND,"
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d UNBIND,"
61f723
 				" decoding error: UnBindRequest not null\n",
61f723
 				pb->pb_conn->c_connid, operation->o_opid );
61f723
 		/* LDAPv3 does not allow a response to an unbind... so just return. */
61f723
@@ -64,7 +64,7 @@ do_unbind( Slapi_PBlock *pb )
61f723
 	 * MUST ignore the criticality field of controls
61f723
 	 */
61f723
 	if ( (err = get_ldapmessage_controls_ext( pb, ber, NULL, ignore_criticality )) != 0 ) {
61f723
-		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d UNBIND,"
61f723
+		slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d UNBIND,"
61f723
 				" error processing controls - error %d (%s)\n",
61f723
 				pb->pb_conn->c_connid, operation->o_opid,
61f723
 				err, ldap_err2string( err ));
61f723
@@ -79,7 +79,7 @@ do_unbind( Slapi_PBlock *pb )
61f723
 
61f723
 	/* ONREPL - plugins should be called and passed bind dn and, possibly, other data */
61f723
 
61f723
-	slapi_log_access( LDAP_DEBUG_STATS, "conn=%" NSPRIu64 " op=%d UNBIND\n",
61f723
+	slapi_log_access( LDAP_DEBUG_STATS, "conn=%" PRIu64 " op=%d UNBIND\n",
61f723
 			pb->pb_conn->c_connid, operation->o_opid );
61f723
 
61f723
 	/* pass the unbind to all backends */
61f723
diff --git a/ldap/servers/slapd/util.c b/ldap/servers/slapd/util.c
61f723
index 48fa3c4..012e83d 100644
61f723
--- a/ldap/servers/slapd/util.c
61f723
+++ b/ldap/servers/slapd/util.c
61f723
@@ -40,20 +40,8 @@
61f723
 #define FILTER_BUF 128 /* initial buffer size for attr value */
61f723
 #define BUF_INCR 16    /* the amount to increase the FILTER_BUF once it fills up */
61f723
 
61f723
-/* Used by our util_info_sys_pages function
61f723
- *
61f723
- * platforms supported so far:
61f723
- * Solaris, Linux, Windows
61f723
- */
61f723
-#ifdef OS_solaris
61f723
-#include <sys/procfs.h>
61f723
-#endif
61f723
-#ifdef LINUX
61f723
-#include <linux/kernel.h>
61f723
-#endif
61f723
-#if defined ( hpux )
61f723
-#include <sys/pstat.h>
61f723
-#endif
61f723
+/* slapi-private contains the pal. */
61f723
+#include <slapi-private.h>
61f723
 
61f723
 static int special_filename(unsigned char c)
61f723
 {
61f723
@@ -1471,361 +1459,25 @@ slapi_uniqueIDRdnSize(void)
61f723
 	return util_uniqueidlen;
61f723
 }
61f723
 
61f723
-
61f723
-/**
61f723
- * Get the virtual memory size as defined by system rlimits.
61f723
- *
61f723
- * \return size_t bytes available
61f723
- */
61f723
-static size_t util_getvirtualmemsize(void)
61f723
-{
61f723
-    struct rlimit rl;
61f723
-    /* the maximum size of a process's total available memory, in bytes */
61f723
-    if (getrlimit(RLIMIT_AS, &rl) != 0) {
61f723
-        /* We received an error condition. There are a number of possible 
61f723
-         * reasons we have have gotten here, but most likely is EINVAL, where
61f723
-         * rlim->rlim_cur was greater than rlim->rlim_max.
61f723
-         * As a result, we should return a 0, to tell the system we can't alloc
61f723
-         * memory.
61f723
-         */
61f723
-        int errsrv = errno;
61f723
-        slapi_log_err(SLAPI_LOG_ERR,"util_getvirtualmemsize",
61f723
-                "getrlimit returned non-zero. errno=%u\n", errsrv);
61f723
-        return 0;
61f723
-    }
61f723
-    return rl.rlim_cur;
61f723
-}
61f723
-
61f723
-/* pages = number of pages of physical ram on the machine (corrected for 32-bit build on 64-bit machine).
61f723
- * procpages = pages currently used by this process (or working set size, sometimes)
61f723
- * availpages = some notion of the number of pages 'free'. Typically this number is not useful.
61f723
- */
61f723
-int util_info_sys_pages(size_t *pagesize, size_t *pages, size_t *procpages, size_t *availpages)
61f723
-{
61f723
-    if ((NULL == pagesize) || (NULL == pages) || (NULL == procpages) || (NULL == availpages)) {
61f723
-        slapi_log_err(SLAPI_LOG_ERR, "util_info_sys_pages",
61f723
-                        "Null return variables are passed.  Skip getting the system info.\n");
61f723
-        return 1;
61f723
-    }
61f723
-    *pagesize = 0;
61f723
-    *pages = 0;
61f723
-    *availpages = 0;
61f723
-    *procpages = 0;
61f723
-
61f723
-#ifdef OS_solaris
61f723
-    *pagesize = (int)sysconf(_SC_PAGESIZE);
61f723
-    *pages = (int)sysconf(_SC_PHYS_PAGES);
61f723
-    *availpages = util_getvirtualmemsize() / *pagesize;
61f723
-    /* solaris has THE most annoying way to get this info */
61f723
-    {
61f723
-        struct prpsinfo psi = {0};
61f723
-        char fn[40];
61f723
-        int fd;
61f723
-
61f723
-        sprintf(fn, "/proc/%d", getpid());
61f723
-        fd = open(fn, O_RDONLY);
61f723
-        if (fd >= 0) {
61f723
-            if (ioctl(fd, PIOCPSINFO, (void *)&psi) == 0) {
61f723
-                *procpages = psi.pr_size;
61f723
-            }
61f723
-            close(fd);
61f723
-        }
61f723
-    }
61f723
-#endif
61f723
-
61f723
-#ifdef LINUX
61f723
-    {
61f723
-        /*
61f723
-         * On linux because of the way that the virtual memory system works, we
61f723
-         * don't really need to think about other processes, or fighting them.
61f723
-         * But that's not without quirks.
61f723
-         *
61f723
-         * We are given a virtual memory space, represented by vsize (man 5 proc)
61f723
-         * This space is a "funny number". It's a best effort based system
61f723
-         * where linux instead of telling us how much memory *actually* exists
61f723
-         * for us to use, gives us a virtual memory allocation which is the
61f723
-         * value of ram + swap.... sometimes. Depends on platform.
61f723
-         *
61f723
-         * But none of these pages even exist or belong to us on the real system
61f723
-         * until will malloc them AND write a non-zero to them.
61f723
-         *
61f723
-         * The biggest issue with this is that vsize does NOT consider the
61f723
-         * effect other processes have on the system. So a process can malloc
61f723
-         * 2 Gig from the host, and our vsize doesn't reflect that until we
61f723
-         * suddenly can't malloc anything.
61f723
-         *
61f723
-         * We can see exactly what we are using inside of the vmm by
61f723
-         * looking at rss (man 5 proc). This shows us the current actual
61f723
-         * allocation of memory we are using. This is a good thing.
61f723
-         *
61f723
-         * We obviously don't want to have any pages in swap, but sometimes we
61f723
-         * can't help that: And there is also no guarantee that while we have
61f723
-         * X bytes in vsize, that we can even allocate any of them. Plus, we
61f723
-         * don't know if we are about to allocate to swap or not .... or get us
61f723
-         * killed in a blaze of oom glory.
61f723
-         *
61f723
-         * So there are now two strategies avaliable in this function.
61f723
-         * The first is to blindly accept what the VMM tells us about vsize
61f723
-         * while we hope and pray that we don't get nailed because we used
61f723
-         * too much.
61f723
-         *
61f723
-         * The other is a more conservative approach: We check vsize from
61f723
-         * proc/pid/status, and we check /proc/meminfo for freemem
61f723
-         * Which ever value is "lower" is the upper bound on pages we could
61f723
-         * potentially allocate: generally, this will be MemAvailable.
61f723
-         */
61f723
-
61f723
-        size_t freesize = 0;
61f723
-        size_t rlimsize = 0;
61f723
-
61f723
-        *pagesize = getpagesize();
61f723
-
61f723
-        /* Get the amount of freeram, rss */
61f723
-
61f723
-        FILE *f;
61f723
-        char fn[40], s[80];
61f723
-
61f723
-        sprintf(fn, "/proc/%d/status", getpid());
61f723
-        f = fopen(fn, "r");
61f723
-        if (!f) {    /* fopen failed */
61f723
-            /* We should probably make noise here! */
61f723
-            int errsrv = errno;
61f723
-            slapi_log_err(SLAPI_LOG_ERR,"util_info_sys_pages", "Unable to open file /proc/%d/status. errno=%u\n", getpid(), errsrv);
61f723
-            return 1;
61f723
-        }
61f723
-        while (! feof(f)) {
61f723
-            if (!fgets(s, 79, f)) {
61f723
-                break; /* error or eof */
61f723
-            }
61f723
-            if (feof(f)) {
61f723
-                break;
61f723
-            }
61f723
-            /* VmRSS shows us what we are ACTUALLY using for proc pages
61f723
-             * Rather than "funny" pages.
61f723
-             */
61f723
-            if (strncmp(s, "VmRSS:", 6) == 0) {
61f723
-                sscanf(s+6, "%lu", (long unsigned int *)procpages);
61f723
-            }
61f723
-        }
61f723
-        fclose(f);
61f723
-
61f723
-        FILE *fm;
61f723
-        char *fmn = "/proc/meminfo";
61f723
-        fm = fopen(fmn, "r");
61f723
-        if (!fm) {
61f723
-            int errsrv = errno;
61f723
-            slapi_log_err(SLAPI_LOG_ERR,"util_info_sys_pages", "Unable to open file /proc/meminfo. errno=%u\n", errsrv);
61f723
-            return 1;
61f723
-        }
61f723
-        while (! feof(fm)) {
61f723
-            if (!fgets(s, 79, fm)) {
61f723
-                break; /* error or eof */
61f723
-            }
61f723
-            if (feof(fm)) {
61f723
-                break;
61f723
-            }
61f723
-            if (strncmp(s, "MemTotal:", 9) == 0) {
61f723
-                sscanf(s+9, "%lu", (long unsigned int *)pages);
61f723
-            }
61f723
-            if (strncmp(s, "MemAvailable:", 13) == 0) {
61f723
-                sscanf(s+13, "%lu", (long unsigned int *)&freesize);
61f723
-            }
61f723
-        }
61f723
-        fclose(fm);
61f723
-
61f723
-
61f723
-        *pages /= (*pagesize / 1024);
61f723
-        freesize /= (*pagesize / 1024);
61f723
-        /* procpages is now in kb not pages... */
61f723
-        *procpages /= (*pagesize / 1024);
61f723
-
61f723
-        rlimsize = util_getvirtualmemsize();
61f723
-        /* On a 64 bit system, this is uint64 max, but on 32 it's -1 */
61f723
-        /* Either way, we should be ignoring it at this point if it's infinite */
61f723
-        if (rlimsize != RLIM_INFINITY) {
61f723
-            /* This is in bytes, make it pages  */
61f723
-            rlimsize = rlimsize / *pagesize;
61f723
-        }
61f723
-
61f723
-        /* Pages is the total ram on the system. */
61f723
-        slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "pages=%lu, \n", 
61f723
-            (unsigned long) *pages);
61f723
-        slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "using pages for pages \n");
61f723
-
61f723
-        /* Availpages is how much we *could* alloc. We should take the smallest:
61f723
-         * - pages
61f723
-         * - getrlimit (availpages)
61f723
-         * - freesize
61f723
-         */
61f723
-        if (rlimsize == RLIM_INFINITY) {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "pages=%lu, getrlim=RLIM_INFINITY, freesize=%lu\n",
61f723
-                (unsigned long)*pages, (unsigned long)freesize);
61f723
-        } else {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "pages=%lu, getrlim=%lu, freesize=%lu\n",
61f723
-                (unsigned long)*pages, (unsigned long)*availpages, (unsigned long)freesize);
61f723
-        }
61f723
-
61f723
-        if (rlimsize != RLIM_INFINITY && rlimsize < freesize && rlimsize < *pages && rlimsize > 0) {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "using getrlim for availpages \n");
61f723
-            *availpages = rlimsize;
61f723
-        } else if (freesize < *pages && freesize > 0) {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "using freesize for availpages \n");
61f723
-            *availpages = freesize;
61f723
-        } else {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "using pages for availpages \n");
61f723
-            *availpages = *pages;
61f723
-        }
61f723
-
61f723
-    }
61f723
-#endif /* linux */
61f723
-
61f723
-
61f723
-
61f723
-#if defined ( hpux )
61f723
-    {
61f723
-        struct pst_static pst;
61f723
-        int rval = pstat_getstatic(&pst, sizeof(pst), (size_t)1, 0);
61f723
-        if (rval < 0) {   /* pstat_getstatic failed */
61f723
-            return 1;
61f723
-        }
61f723
-        *pagesize = pst.page_size;
61f723
-        *pages = pst.physical_memory;
61f723
-        *availpages = util_getvirtualmemsize() / *pagesize;
61f723
-        if (procpages)
61f723
-        {
61f723
-#define BURST (size_t)32        /* get BURST proc info at one time... */
61f723
-            struct pst_status psts[BURST];
61f723
-            int i, count;
61f723
-            int idx = 0; /* index within the context */
61f723
-            int mypid = getpid();
61f723
-
61f723
-            *procpages = 0;
61f723
-            /* loop until count == 0, will occur all have been returned */
61f723
-            while ((count = pstat_getproc(psts, sizeof(psts[0]), BURST, idx)) > 0) {
61f723
-                /* got count (max of BURST) this time.  process them */
61f723
-                for (i = 0; i < count; i++) {
61f723
-                    if (psts[i].pst_pid == mypid)
61f723
-                    {
61f723
-                        *procpages = (size_t)(psts[i].pst_dsize + psts[i].pst_tsize + psts[i].pst_ssize);
61f723
-                        break;
61f723
-                    }
61f723
-                }
61f723
-                if (i < count)
61f723
-                    break;
61f723
-
61f723
-                /*
61f723
-                 * now go back and do it again, using the next index after
61f723
-                 * the current 'burst'
61f723
-                 */
61f723
-                idx = psts[count-1].pst_idx + 1;
61f723
-            }
61f723
-        }
61f723
-    }
61f723
-#endif
61f723
-    /* If this is a 32-bit build, it might be running on a 64-bit machine,
61f723
-     * in which case, if the box has tons of ram, we can end up telling 
61f723
-     * the auto cache code to use more memory than the process can address.
61f723
-     * so we cap the number returned here.
61f723
-     */
61f723
-#if defined(__LP64__) || defined (_LP64)
61f723
-#else
61f723
-    {    
61f723
-#define GIGABYTE (1024*1024*1024)
61f723
-        size_t one_gig_pages = GIGABYTE / *pagesize;
61f723
-        if (*pages > (2 * one_gig_pages) ) {
61f723
-            slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages",
61f723
-                    "More than 2Gbytes physical memory detected. Since this is a 32-bit process, truncating memory size used for auto cache calculations to 2Gbytes\n");
61f723
-            *pages = (2 * one_gig_pages);
61f723
-        }
61f723
-    }
61f723
-#endif
61f723
-
61f723
-    /* This is stupid. If you set %u to %zu to print a size_t, you get literal %zu in your logs 
61f723
-     * So do the filthy cast instead.
61f723
-     */
61f723
-    slapi_log_err(SLAPI_LOG_TRACE,"util_info_sys_pages", "USING pages=%lu, procpages=%lu, availpages=%lu \n", 
61f723
-        (unsigned long)*pages, (unsigned long)*procpages, (unsigned long)*availpages);
61f723
-    return 0;
61f723
-
61f723
-}
61f723
-
61f723
-int util_is_cachesize_sane(size_t *cachesize)
61f723
+util_cachesize_result
61f723
+util_is_cachesize_sane(slapi_pal_meminfo *mi, uint64_t *cachesize)
61f723
 {
61f723
-    size_t pages = 0;
61f723
-    size_t pagesize = 0;
61f723
-    size_t procpages = 0;
61f723
-    size_t availpages = 0;
61f723
-
61f723
-    size_t cachepages = 0;
61f723
-
61f723
-    int issane = 1;
61f723
-
61f723
-    if (util_info_sys_pages(&pagesize, &pages, &procpages, &availpages) != 0) {
61f723
-        goto out;
61f723
-    }
61f723
-#ifdef LINUX
61f723
-    /* Linux we calculate availpages correctly, so USE IT */
61f723
-    if (!pagesize || !availpages) {
61f723
-        goto out;
61f723
-    }
61f723
-#else
61f723
-    if (!pagesize || !pages) {
61f723
-        goto out;
61f723
+    /* Check we have a valid meminfo struct */
61f723
+    if (mi->system_available_bytes == 0) {
61f723
+        slapi_log_err(SLAPI_LOG_CRIT, "util_is_cachesize_sane", "Invalid system memory info, can not proceed.");
61f723
+        return UTIL_CACHESIZE_ERROR;
61f723
     }
61f723
-#endif
61f723
-    /* do nothing when we can't get the avail mem */
61f723
-
61f723
-
61f723
-    /* If the requested cache size is larger than the remaining physical memory
61f723
-     * after the current working set size for this process has been subtracted,
61f723
-     * then we say that's insane and try to correct.
61f723
-     */
61f723
-
61f723
-    cachepages = *cachesize / pagesize;
61f723
-    slapi_log_err(SLAPI_LOG_TRACE,"util_is_cachesize_sane", "cachesize=%lu / pagesize=%lu \n",
61f723
-        (unsigned long)*cachesize,(unsigned long)pagesize);
61f723
-
61f723
-#ifdef LINUX
61f723
-    /* Linux we calculate availpages correctly, so USE IT */
61f723
-    issane = (int)(cachepages <= availpages);
61f723
-    slapi_log_err(SLAPI_LOG_TRACE,"util_is_cachesize_sane", "cachepages=%lu <= availpages=%lu\n",
61f723
-        (unsigned long)cachepages,(unsigned long)availpages);
61f723
 
61f723
-    if (!issane) {
61f723
+    slapi_log_err(SLAPI_LOG_TRACE, "util_is_cachesize_sane", "Available bytes %"PRIu64", requested bytes %"PRIu64"\n", mi->system_available_bytes, *cachesize);
61f723
+    if (*cachesize > mi->system_available_bytes) {
61f723
         /* Since we are ask for more than what's available, we give 3/4 of the remaining.
61f723
          * the remaining system mem to the cachesize instead, and log a warning
61f723
          */
61f723
-        *cachesize = (size_t)((availpages * 0.75 ) * pagesize);
61f723
-        /* These are now trace warnings, because it was to confusing to log this *then* kill the request anyway.
61f723
-         * Instead, we will let the caller worry about the notification, and we'll just use this in debugging and tracing.
61f723
-         */
61f723
-        slapi_log_err(SLAPI_LOG_TRACE, "util_is_cachesize_sane", 
61f723
-                "Available pages %lu, requested pages %lu, pagesize %lu\n", (unsigned long)availpages, (unsigned long)cachepages, (unsigned long)pagesize);
61f723
-        slapi_log_err(SLAPI_LOG_TRACE, "util_is_cachesize_sane",
61f723
-        		"WARNING adjusted cachesize to %lu\n", (unsigned long)*cachesize);
61f723
-    }
61f723
-#else
61f723
-    size_t freepages = 0;
61f723
-    freepages = pages - procpages;
61f723
-    slapi_log_err(SLAPI_LOG_TRACE,"util_is_cachesize_sane", "pages=%lu - procpages=%lu\n",
61f723
-        (unsigned long)pages,(unsigned long)procpages);
61f723
-
61f723
-    issane = (int)(cachepages <= freepages);
61f723
-    slapi_log_err(SLAPI_LOG_TRACE,"util_is_cachesize_sane", "cachepages=%lu <= freepages=%lu\n",
61f723
-        (unsigned long)cachepages,(unsigned long)freepages);
61f723
-
61f723
-    if (!issane) {
61f723
-        *cachesize = (size_t)((pages - procpages) * pagesize);
61f723
-        slapi_log_err(SLAPI_LOG_WARNING, "util_is_cachesize_sane", "WARNING adjusted cachesize to %lu\n",
61f723
-            (unsigned long )*cachesize);
61f723
+        *cachesize = (mi->system_available_bytes * 0.75);
61f723
+        slapi_log_err(SLAPI_LOG_TRACE, "util_is_cachesize_sane", "Adjusted cachesize to %"PRIu64"\n", *cachesize);
61f723
+        return UTIL_CACHESIZE_REDUCED;
61f723
     }
61f723
-#endif
61f723
-out:
61f723
-    if (!issane) {
61f723
-        slapi_log_err(SLAPI_LOG_TRACE,"util_is_cachesize_sane", "WARNING: Cachesize not sane \n");
61f723
-    }
61f723
-
61f723
-    return issane;
61f723
+    return UTIL_CACHESIZE_VALID;
61f723
 }
61f723
 
61f723
 long
61f723
diff --git a/test/libslapd/spal/meminfo.c b/test/libslapd/spal/meminfo.c
61f723
new file mode 100644
61f723
index 0000000..776141a
61f723
--- /dev/null
61f723
+++ b/test/libslapd/spal/meminfo.c
61f723
@@ -0,0 +1,54 @@
61f723
+/** BEGIN COPYRIGHT BLOCK
61f723
+ * Copyright (C) 2017 Red Hat, Inc.
61f723
+ * All rights reserved.
61f723
+ *
61f723
+ * License: GPL (version 3 or any later version).
61f723
+ * See LICENSE for details.
61f723
+ * END COPYRIGHT BLOCK **/
61f723
+
61f723
+#include "../../test_slapd.h"
61f723
+
61f723
+#include <slapi_pal.h>
61f723
+#include <slapi-private.h>
61f723
+
61f723
+/*
61f723
+ * Assert that our meminfo interface in slapi_pal works.
61f723
+ */
61f723
+
61f723
+void
61f723
+test_libslapd_pal_meminfo(void **state __attribute__((unused))) {
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    assert_true(mi->pagesize_bytes > 0);
61f723
+    assert_true(mi->system_total_pages > 0);
61f723
+    assert_true(mi->system_total_bytes > 0);
61f723
+    assert_true(mi->process_consumed_pages > 0);
61f723
+    assert_true(mi->process_consumed_bytes > 0);
61f723
+    assert_true(mi->system_available_pages > 0);
61f723
+    assert_true(mi->system_available_bytes > 0);
61f723
+    spal_meminfo_destroy(mi);
61f723
+}
61f723
+
61f723
+void
61f723
+test_libslapd_util_cachesane(void **state __attribute__((unused))) {
61f723
+    slapi_pal_meminfo *mi = spal_meminfo_get();
61f723
+    uint64_t request = 0;
61f723
+    mi->system_available_bytes = 0;
61f723
+    assert_true(util_is_cachesize_sane(mi, &request) == UTIL_CACHESIZE_ERROR);
61f723
+
61f723
+    // Set the values to known quantities
61f723
+    request = 50000;
61f723
+    mi->system_available_bytes = 99999;
61f723
+    assert_true(util_is_cachesize_sane(mi, &request) == UTIL_CACHESIZE_VALID);
61f723
+
61f723
+    request = 99999;
61f723
+    assert_true(util_is_cachesize_sane(mi, &request) == UTIL_CACHESIZE_VALID);
61f723
+
61f723
+    request = 100000;
61f723
+    assert_true(util_is_cachesize_sane(mi, &request) == UTIL_CACHESIZE_REDUCED);
61f723
+    assert_true(request <= 75000);
61f723
+
61f723
+    spal_meminfo_destroy(mi);
61f723
+}
61f723
+
61f723
+
61f723
+
61f723
diff --git a/test/libslapd/test.c b/test/libslapd/test.c
61f723
index 6e1171a..6fa7996 100644
61f723
--- a/test/libslapd/test.c
61f723
+++ b/test/libslapd/test.c
61f723
@@ -26,6 +26,8 @@ run_libslapd_tests (void) {
61f723
         cmocka_unit_test(test_libslapd_operation_v3c_target_spec),
61f723
         cmocka_unit_test(test_libslapd_counters_atomic_usage),
61f723
         cmocka_unit_test(test_libslapd_counters_atomic_overflow),
61f723
+        cmocka_unit_test(test_libslapd_pal_meminfo),
61f723
+        cmocka_unit_test(test_libslapd_util_cachesane),
61f723
     };
61f723
     return cmocka_run_group_tests(tests, NULL, NULL);
61f723
 }
61f723
diff --git a/test/test_slapd.h b/test/test_slapd.h
61f723
index b8f1aba..50de11b 100644
61f723
--- a/test/test_slapd.h
61f723
+++ b/test/test_slapd.h
61f723
@@ -42,3 +42,8 @@ void test_libslapd_operation_v3c_target_spec(void **state);
61f723
 void test_libslapd_counters_atomic_usage(void **state);
61f723
 void test_libslapd_counters_atomic_overflow(void **state);
61f723
 
61f723
+/* libslapd-pal-meminfo */
61f723
+
61f723
+void test_libslapd_pal_meminfo(void **state);
61f723
+void test_libslapd_util_cachesane(void **state);
61f723
+
61f723
-- 
61f723
2.9.3
61f723