From 67d4e8403fe12592f99cf6fc51e4f33684899d6b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Apr 2011 23:35:42 +0200 Subject: Warn once when part of the kernel is lacking memory * kern/printf.h (printf_once): New macro. * ipc/mach_port.c (mach_port_names, mach_port_get_set_status): Warn when returning KERN_RESOURCE_SHORTAGE. * vm/vm_kern.c: Include printf.h. (kmem_alloc, kmem_realloc, kmem_alloc_wired, kmem_alloc_aligned, kmem_alloc_pageable): Warn when failing. * vm/vm_resident.c (vm_page_grab_contiguous_pages): Warn when returning KERN_RESOURCE_SHORTAGE. --- kern/printf.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'kern') diff --git a/kern/printf.h b/kern/printf.h index 1383198..c5effe5 100644 --- a/kern/printf.h +++ b/kern/printf.h @@ -43,6 +43,15 @@ extern int sprintf (char *buf, const char *fmt, ...); extern int printf (const char *fmt, ...); +#define printf_once(fmt, ...) \ + MACRO_BEGIN \ + static int __once = 0; \ + if (!__once) { \ + printf(fmt, ##__VA_ARGS__); \ + __once = 1; \ + } \ + MACRO_END + extern int indent; extern void iprintf (const char *fmt, ...); -- cgit v1.2.3