X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=trunk%2Fltt-control%2Fliblttctl%2Flttctl.h;fp=trunk%2Fltt-control%2Fliblttctl%2Flttctl.h;h=053c0f47b94005478f03c446edaf3988334c6f82;hb=f64efc67a081bb9013f5939ec9e4ca514cd94d0f;hp=0000000000000000000000000000000000000000;hpb=b7898ea36bca61bf37cc682ba5a92bc27189e8d5;p=ltt-control.git diff --git a/trunk/ltt-control/liblttctl/lttctl.h b/trunk/ltt-control/liblttctl/lttctl.h new file mode 100644 index 0000000..053c0f4 --- /dev/null +++ b/trunk/ltt-control/liblttctl/lttctl.h @@ -0,0 +1,99 @@ +/* libltt header file + * + * Copyright 2005- + * Mathieu Desnoyers + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * + * Inspired from iptables, by James Morris . + * + */ + +#ifndef _LIBLTT_H +#define _LIBLTT_H + +#include +#include +#include +#include + +#ifndef NETLINK_LTT +#define NETLINK_LTT 31 +#endif + + +enum trace_op { + OP_CREATE, + OP_DESTROY, + OP_START, + OP_STOP, + OP_NONE +}; + +enum trace_mode { + LTT_TRACE_NORMAL, + LTT_TRACE_FLIGHT, + LTT_TRACE_HYBRID +}; + +typedef struct lttctl_peer_msg { + char trace_name[NAME_MAX]; + char trace_type[NAME_MAX]; + enum trace_op op; + union { + struct { + enum trace_mode mode; + unsigned subbuf_size_low; + unsigned n_subbufs_low; + unsigned subbuf_size_med; + unsigned n_subbufs_med; + unsigned subbuf_size_high; + unsigned n_subbufs_high; + } new_trace; + } args; +} lttctl_peer_msg_t; + + +struct lttctl_handle +{ + int fd; + //u_int8_t blocking; + struct sockaddr_nl local; + struct sockaddr_nl peer; +}; + +typedef struct lttctl_resp_msg { + int err; +} lttctl_resp_msg_t; + +struct lttctl_handle *lttctl_create_handle(void); + +int lttctl_destroy_handle(struct lttctl_handle *h); + + +int lttctl_create_trace(const struct lttctl_handle *h, + char *name, enum trace_mode mode, char *trace_type, + unsigned subbuf_size_low, unsigned n_subbufs_low, + unsigned subbuf_size_med, unsigned n_subbufs_med, + unsigned subbuf_size_high, unsigned n_subbufs_high); + +int lttctl_destroy_trace(const struct lttctl_handle *handle, char *name); + +int lttctl_start(const struct lttctl_handle *handle, char *name); + +int lttctl_stop(const struct lttctl_handle *handle, char *name); + +#define LTTCTLM_BASE 0x10 +#define LTTCTLM_CONTROL (LTTCTLM_BASE + 1) /* LTT control message */ + +#endif //_LIBLTT_H