A system may simultaneously support multiple huge page sizes. Add a new API
function odp_sys_huge_page_size_all() which returns all supported page
sizes. odp_sys_huge_page_size() stays unmodified to maintain backward
compatibility.

Signed-off-by: Matias Elo <[email protected]>
---
 include/odp/api/spec/system_info.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/include/odp/api/spec/system_info.h 
b/include/odp/api/spec/system_info.h
index ca4dcdc..c41d3c5 100644
--- a/include/odp/api/spec/system_info.h
+++ b/include/odp/api/spec/system_info.h
@@ -27,10 +27,29 @@ extern "C" {
  * Default system huge page size in bytes
  *
  * @return Default huge page size in bytes
+ * @retval 0 on no huge pages
  */
 uint64_t odp_sys_huge_page_size(void);
 
 /**
+ * System huge page sizes in bytes
+ *
+ * Returns the number of huge page sizes supported by the system. Outputs up to
+ * 'num' sizes when the 'size' array pointer is not NULL. If return value is
+ * larger than 'num', there are more supported sizes than the function was
+ * allowed to output. If return value (N) is less than 'num', only sizes
+ * [0 ... N-1] have been written. Returned values are ordered from smallest to
+ * largest.
+ *
+ * @param[out] size     Points to an array of huge page sizes for output
+ * @param      num      Maximum number of huge page sizes to output
+ *
+ * @return Number of supported huge page sizes
+ * @retval 0 on no huge pages
+ */
+unsigned odp_sys_huge_page_size_all(uint64_t size[], unsigned num);
+
+/**
  * Page size in bytes
  *
  * @return Page size in bytes
-- 
2.7.4

Reply via email to