Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id2debf769299ee1d6624097b38e79f916b8c0f2b
*
* The @mmap_priv argument is a private data pointer passed to both
* @mmap_func and @munmap_func callbacks.
+ *
+ * Returns 0 on success, -1 with errno=EINVAL if arguments are invalid.
*/
-void rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr,
+int rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr,
void *(*mmap_func)(void *priv, size_t len),
int (*munmap_func)(void *priv, void *ptr, size_t len),
void *mmap_priv);
free(attr);
}
-void rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr,
+int rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr,
void *(*mmap_func)(void *priv, size_t len),
int (*munmap_func)(void *priv, void *ptr, size_t len),
void *mmap_priv)
{
+ if (!attr) {
+ errno = EINVAL;
+ return -1;
+ }
attr->mmap_set = true;
attr->mmap_func = mmap_func;
attr->munmap_func = munmap_func;
attr->mmap_priv = mmap_priv;
+ return 0;
}