Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com> --- datapath-windows/ovsext/Util.c | 14 ++++++++++++++ datapath-windows/ovsext/Util.h | 1 + 2 files changed, 15 insertions(+)
diff --git a/datapath-windows/ovsext/Util.c b/datapath-windows/ovsext/Util.c index 65dd132..fdd0209 100644 --- a/datapath-windows/ovsext/Util.c +++ b/datapath-windows/ovsext/Util.c @@ -116,3 +116,17 @@ OvsCompareString(PVOID string1, PVOID string2) RtlInitString(&str2, string2); return RtlEqualString(&str1, &str2, FALSE); } + +VOID * +OvsAllocateMemoryPerCpu(size_t size, ULONG tag) +{ + VOID *ptr = NULL; + ULONG count = KeQueryActiveProcessorCount(NULL); + + ptr = OvsAllocateMemoryWithTag(count * size, tag); + if (ptr) { + RtlZeroMemory(ptr, count * size); + } + + return ptr; +} diff --git a/datapath-windows/ovsext/Util.h b/datapath-windows/ovsext/Util.h index a81c723..b2ec798 100644 --- a/datapath-windows/ovsext/Util.h +++ b/datapath-windows/ovsext/Util.h @@ -40,6 +40,7 @@ VOID *OvsAllocateMemory(size_t size); VOID *OvsAllocateMemoryWithTag(size_t size, ULONG tag); VOID *OvsAllocateAlignedMemory(size_t size, UINT16 align); +VOID *OvsAllocateMemoryPerCpu(size_t size, ULONG tag); VOID OvsFreeMemory(VOID *ptr); VOID OvsFreeMemoryWithTag(VOID *ptr, ULONG tag); VOID OvsFreeAlignedMemory(VOID *ptr); -- 1.9.0.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev