#include "lttng/lttng-error.h"
#include <common/compat/string.h>
+#include <common/align.h>
#include <common/error.h>
#include <common/hashtable/hashtable.h>
#include <common/hashtable/utils.h>
#include <lttng/userspace-probe-internal.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <sys/unistd.h>
+#include <unistd.h>
static
int lttng_userspace_probe_location_function_set_binary_fd_handle(
return ret;
}
-LTTNG_HIDDEN
int lttng_userspace_probe_location_serialize(
const struct lttng_userspace_probe_location *location,
struct lttng_payload *payload)
probe_name = lttng_strndup(probe_name_src, LTTNG_SYMBOL_NAME_LEN);
if (!probe_name) {
- PERROR("lttng_strndup");
+ PERROR("Failed to allocate probe name");
+ ret = -LTTNG_ERR_INVALID;
goto end;
}
provider_name = lttng_strndup(provider_name_src, LTTNG_SYMBOL_NAME_LEN);
if (!provider_name) {
- PERROR("lttng_strndup");
+ PERROR("Failed to allocate provider name");
+ ret = -LTTNG_ERR_INVALID;
goto end;
}
binary_path = lttng_strndup(binary_path_src, LTTNG_PATH_MAX);
if (!binary_path) {
- PERROR("lttng_strndup");
+ PERROR("Failed to allocate binary path");
+ ret = -LTTNG_ERR_INVALID;
goto end;
}
return ret;
}
-LTTNG_HIDDEN
int lttng_userspace_probe_location_create_from_payload(
struct lttng_payload_view *view,
struct lttng_userspace_probe_location **location)
* the next structure in the buffer probably needs to be
* aligned too (depending on the arch).
*/
- padding_needed = ALIGN_TO(storage_needed, sizeof(uint64_t)) - storage_needed;
+ padding_needed = lttng_align_ceil(storage_needed, sizeof(uint64_t)) - storage_needed;
storage_needed += padding_needed;
if (location->lookup_method) {
* the next structure in the buffer probably needs to be
* aligned too (depending on the arch).
*/
- padding_needed = ALIGN_TO(storage_needed, sizeof(uint64_t)) - storage_needed;
+ padding_needed = lttng_align_ceil(storage_needed, sizeof(uint64_t)) - storage_needed;
storage_needed += padding_needed;
if (location->lookup_method) {
return ret;
}
-LTTNG_HIDDEN
int lttng_userspace_probe_location_flatten(
const struct lttng_userspace_probe_location *location,
struct lttng_dynamic_buffer *buffer)
return ret;
}
-LTTNG_HIDDEN
struct lttng_userspace_probe_location *lttng_userspace_probe_location_copy(
const struct lttng_userspace_probe_location *location)
{
return new_location;
}
-LTTNG_HIDDEN
bool lttng_userspace_probe_location_lookup_method_is_equal(
const struct lttng_userspace_probe_location_lookup_method *a,
const struct lttng_userspace_probe_location_lookup_method *b)
return is_equal;
}
-LTTNG_HIDDEN
bool lttng_userspace_probe_location_is_equal(
const struct lttng_userspace_probe_location *a,
const struct lttng_userspace_probe_location *b)
return is_equal;
}
-LTTNG_HIDDEN
unsigned long lttng_userspace_probe_location_hash(
const struct lttng_userspace_probe_location *location)
{
return location->hash(location);
}
-LTTNG_HIDDEN
enum lttng_error_code lttng_userspace_probe_location_mi_serialize(
const struct lttng_userspace_probe_location *location,
struct mi_writer *writer)