haiku/headers/private/kernel/vm_low_memory.h
Axel Dörfler b062823d81 * register_low_memory_handler() was called too early by several kernel
components - now, we divide the initialization of that service into two parts
  which allows this (before, most handlers were gone after boot).
* Added debugger command that dumps the low memory handlers.
* The slab allocator now registers its low memory handler with a higher
  priority, so that it'll run before the potentially heavier ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 15:46:40 +00:00

41 lines
917 B
C

/*
* Copyright 2005-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_VM_LOW_MEMORY_H
#define _KERNEL_VM_LOW_MEMORY_H
#include <SupportDefs.h>
/* warning levels for low memory handlers */
enum {
B_NO_LOW_MEMORY = 0,
B_LOW_MEMORY_NOTE,
B_LOW_MEMORY_WARNING,
B_LOW_MEMORY_CRITICAL,
};
typedef void (*low_memory_func)(void *data, int32 level);
#ifdef __cplusplus
extern "C" {
#endif
status_t vm_low_memory_init(void);
status_t vm_low_memory_init_post_thread(void);
int32 vm_low_memory_state(void);
void vm_low_memory(size_t requirements);
// these calls might get public some day
status_t register_low_memory_handler(low_memory_func function, void *data,
int32 priority);
status_t unregister_low_memory_handler(low_memory_func function, void *data);
#ifdef __cplusplus
}
#endif
#endif /* _KERNEL_VM_LOW_MEMORY_H */