#include "assert.h"
-#define P2ROUNDUP(_x, _a) \
- (-(-(_x) & -(_a)))
+#define P2ROUNDUP(_t, _x, _a) \
+ (-(-((_t)(_x)) & -(((_t)(_a)))))
static FORCEINLINE LONG
__ffs(
Size = sizeof (vcpu_info_t) * HVM_MAX_VCPUS;
Size += sizeof (BOOLEAN) * HVM_MAX_VCPUS;
- Size = P2ROUNDUP(Size, PAGE_SIZE);
+ Size = P2ROUNDUP(ULONG, Size, PAGE_SIZE);
Context->Mdl = DriverGetNamedPages("VCPU_INFO", Size >> PAGE_SHIFT);
LONG SlabCount;
NTSTATUS status;
- NumberOfBytes = P2ROUNDUP(FIELD_OFFSET(XENBUS_CACHE_SLAB, Buffer) +
+ NumberOfBytes = P2ROUNDUP(ULONG,
+ FIELD_OFFSET(XENBUS_CACHE_SLAB, Buffer) +
Cache->Size,
PAGE_SIZE);
Count = (NumberOfBytes - FIELD_OFFSET(XENBUS_CACHE_SLAB, Buffer)) /
Slab->Cache = Cache;
Slab->MaximumOccupancy = (USHORT)Count;
- Size = P2ROUNDUP(Count, BITS_PER_ULONG);
+ Size = P2ROUNDUP(ULONG, Count, BITS_PER_ULONG);
Size /= 8;
Slab->Mask = __CacheAllocate(Size);
ULONG Size;
ULONG Index;
- Size = P2ROUNDUP(Maximum, BITS_PER_ULONG);
+ Size = P2ROUNDUP(ULONG, Maximum, BITS_PER_ULONG);
Size /= sizeof (ULONG);
ASSERT(Size != 0);
if (!NT_SUCCESS(status))
goto fail2;
- Size = P2ROUNDUP(Size, sizeof (ULONG_PTR));
+ Size = P2ROUNDUP(ULONG, Size, sizeof (ULONG_PTR));
if (Cap == 0)
Cap = ULONG_MAX;