cnss_prealloc: Add cnss_prealloc driver

This is a snapshot of the cnss_prealloc driver and
associated files as of msm-4.4 commit:

commit 3c45c2a8a2a07a76e2d129d02561d061211e70c8
("Promotion of kernel.lnx.4.4-161119.")

CRs-Fixed: 1094870
Change-Id: Ic98572cf8b66ec936526facd372d04a25a930d75
Signed-off-by: Yuanyuan Liu <yuanliu@codeaurora.org>
diff --git a/include/net/cnss_prealloc.h b/include/net/cnss_prealloc.h
new file mode 100644
index 0000000..36de97b
--- /dev/null
+++ b/include/net/cnss_prealloc.h
@@ -0,0 +1,23 @@
+/* Copyright (c) 2015-2016 The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _NET_CNSS_PREALLOC_H_
+#define _NET_CNSS_PREALLOC_H_
+
+#define WCNSS_PRE_ALLOC_GET_THRESHOLD (4*1024)
+
+extern void *wcnss_prealloc_get(unsigned int size);
+extern int wcnss_prealloc_put(void *ptr);
+extern int wcnss_pre_alloc_reset(void);
+void wcnss_prealloc_check_memory_leak(void);
+
+#endif /* _NET_CNSS__PREALLOC_H_ */