]>
Commit | Line | Data |
---|---|---|
8a0743cf AL |
1 | /* |
2 | * libqos malloc support | |
3 | * | |
4 | * Copyright IBM, Corp. 2012-2013 | |
5 | * | |
6 | * Authors: | |
7 | * Anthony Liguori <[email protected]> | |
8 | * | |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
10 | * See the COPYING file in the top-level directory. | |
11 | */ | |
12 | ||
13 | #ifndef LIBQOS_MALLOC_H | |
14 | #define LIBQOS_MALLOC_H | |
15 | ||
292be092 | 16 | #include "qemu/queue.h" |
8a0743cf | 17 | |
292be092 MM |
18 | typedef enum { |
19 | ALLOC_NO_FLAGS = 0x00, | |
20 | ALLOC_LEAK_WARN = 0x01, | |
21 | ALLOC_LEAK_ASSERT = 0x02, | |
22 | ALLOC_PARANOID = 0x04 | |
23 | } QAllocOpts; | |
24 | ||
f6f363c1 | 25 | typedef struct QGuestAllocator QGuestAllocator; |
292be092 | 26 | |
292be092 | 27 | void alloc_uninit(QGuestAllocator *allocator); |
8a0743cf AL |
28 | |
29 | /* Always returns page aligned values */ | |
292be092 MM |
30 | uint64_t guest_alloc(QGuestAllocator *allocator, size_t size); |
31 | void guest_free(QGuestAllocator *allocator, uint64_t addr); | |
085248ae | 32 | void migrate_allocator(QGuestAllocator *src, QGuestAllocator *dst); |
8a0743cf | 33 | |
af77f2cd | 34 | QGuestAllocator *alloc_init(uint64_t start, uint64_t end); |
fa02e608 JS |
35 | QGuestAllocator *alloc_init_flags(QAllocOpts flags, |
36 | uint64_t start, uint64_t end); | |
f6f363c1 | 37 | void alloc_set_page_size(QGuestAllocator *allocator, size_t page_size); |
259342d3 | 38 | void alloc_set_flags(QGuestAllocator *allocator, QAllocOpts opts); |
f6f363c1 | 39 | |
8a0743cf | 40 | #endif |