+int kernctl_filter(int fd, struct lttng_filter_bytecode *filter)
+{
+ struct lttng_kernel_filter_bytecode *kb;
+ uint32_t len;
+ int ret;
+
+ /* Translate bytecode to kernel bytecode */
+ kb = zmalloc(sizeof(*kb) + filter->len);
+ if (!kb)
+ return -ENOMEM;
+ kb->len = len = filter->len;
+ kb->reloc_offset = filter->reloc_table_offset;
+ kb->seqnum = filter->seqnum;
+ memcpy(kb->data, filter->data, len);
+ ret = LTTNG_IOCTL_CHECK(fd, LTTNG_KERNEL_FILTER, kb);
+ free(kb);
+ return ret;
+}
+