#include <wrapper/random.h>
#include <wrapper/tracepoint.h>
#include <wrapper/list.h>
+#include <wrapper/types.h>
#include <lttng-kernel-version.h>
#include <lttng-events.h>
#include <lttng-tracer.h>
#include <lttng-abi-old.h>
#include <lttng-endian.h>
+#include <lttng-string-utils.h>
#include <wrapper/vzalloc.h>
#include <wrapper/ringbuffer/backend.h>
#include <wrapper/ringbuffer/frontend.h>
int i;
mutex_lock(&sessions_mutex);
- session = kzalloc(sizeof(struct lttng_session), GFP_KERNEL);
+ session = lttng_kvzalloc(sizeof(struct lttng_session), GFP_KERNEL);
if (!session)
goto err;
INIT_LIST_HEAD(&session->chan);
err_free_cache:
kfree(metadata_cache);
err_free_session:
- kfree(session);
+ lttng_kvfree(session);
err:
mutex_unlock(&sessions_mutex);
return NULL;
kref_put(&session->metadata_cache->refcount, metadata_cache_destroy);
list_del(&session->list);
mutex_unlock(&sessions_mutex);
- kfree(session);
+ lttng_kvfree(session);
}
int lttng_session_statedump(struct lttng_session *session)
* Enabler management.
*/
static
-int lttng_match_enabler_wildcard(const char *desc_name,
- const char *name)
+int lttng_match_enabler_star_glob(const char *desc_name,
+ const char *pattern)
{
- /* Compare excluding final '*' */
- if (strncmp(desc_name, name, strlen(name) - 1))
+ if (!strutils_star_glob_match(pattern, LTTNG_SIZE_MAX,
+ desc_name, LTTNG_SIZE_MAX))
return 0;
return 1;
}
return -EINVAL;
}
switch (enabler->type) {
- case LTTNG_ENABLER_WILDCARD:
- return lttng_match_enabler_wildcard(desc_name, enabler_name);
+ case LTTNG_ENABLER_STAR_GLOB:
+ return lttng_match_enabler_star_glob(desc_name, enabler_name);
case LTTNG_ENABLER_NAME:
return lttng_match_enabler_name(desc_name, enabler_name);
default: