X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=libkernelctl%2Fkernel-ioctl.h;fp=libkernelctl%2Fkernel-ioctl.h;h=bed6f593449f2e1d34e80f5cc17fd2af36c076ec;hp=0000000000000000000000000000000000000000;hb=16421f6edd83b37e777b55add8396a91afcbb08a;hpb=471d16937e160d99382c633db37d89605f483556 diff --git a/libkernelctl/kernel-ioctl.h b/libkernelctl/kernel-ioctl.h new file mode 100644 index 000000000..bed6f5934 --- /dev/null +++ b/libkernelctl/kernel-ioctl.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2011 - Julien Desfossez + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef _LTT_KERNEL_IOCTL_H +#define _LTT_KERNEL_IOCTL_H + +/* Get a snapshot of the current ring buffer producer and consumer positions */ +#define RING_BUFFER_SNAPSHOT _IO(0xF6, 0x00) +/* Get the consumer position (iteration start) */ +#define RING_BUFFER_SNAPSHOT_GET_CONSUMED _IOR(0xF6, 0x01, unsigned long) +/* Get the producer position (iteration end) */ +#define RING_BUFFER_SNAPSHOT_GET_PRODUCED _IOR(0xF6, 0x02, unsigned long) +/* Get exclusive read access to the specified sub-buffer position */ +#define RING_BUFFER_GET_SUBBUF _IOW(0xF6, 0x03, unsigned long) +/* Release exclusive sub-buffer access */ +#define RING_BUFFER_PUT_SUBBUF _IO(0xF6, 0x04) + +/* Get exclusive read access to the next sub-buffer that can be read. */ +#define RING_BUFFER_GET_NEXT_SUBBUF _IO(0xF6, 0x05) +/* Release exclusive sub-buffer access, move consumer forward. */ +#define RING_BUFFER_PUT_NEXT_SUBBUF _IO(0xF6, 0x06) +/* returns the size of the current sub-buffer, without padding (for mmap). */ +#define RING_BUFFER_GET_SUBBUF_SIZE _IOR(0xF6, 0x07, unsigned long) +/* returns the size of the current sub-buffer, with padding (for splice). */ +#define RING_BUFFER_GET_PADDED_SUBBUF_SIZE _IOR(0xF6, 0x08, unsigned long) +/* returns the maximum size for sub-buffers. */ +#define RING_BUFFER_GET_MAX_SUBBUF_SIZE _IOR(0xF6, 0x09, unsigned long) +/* returns the length to mmap. */ +#define RING_BUFFER_GET_MMAP_LEN _IOR(0xF6, 0x0A, unsigned long) +/* returns the offset of the subbuffer belonging to the mmap reader. */ +#define RING_BUFFER_GET_MMAP_READ_OFFSET _IOR(0xF6, 0x0B, unsigned long) + +/* Create session LTTNG_SESSION */ +#define KERNEL_IO_CREATE_SESSION _IO(0xF6, 0x40) +#define KERNEL_IO_SESSION_START _IO(0xF6, 0x41) +#define KERNEL_IO_SESSION_STOP _IO(0xF6, 0x42) + +/* Create channel LTTNG_CHANNEL */ +#define KERNEL_IO_CREATE_CHANNEL _IOW(0xF6, 0x43, struct lttng_channel) +#define KERNEL_IO_CREATE_STREAM _IO(0xF6, 0x44) +#define KERNEL_IO_CREATE_EVENT _IOW(0xF6, 0x45, struct lttng_event) + +#endif /* _LTT_KERNEL_IOCTL_H */