Cygwin: Pass file paths instead of file descriptors over UNIX sockets
[lttng-ust.git] / tests / ust-multi-test / ust-multi-test.c
index 2869b0e0c13d30f3d75d6900cb4762c2b5f15170..db62962689ae21f07a906011246ea04a01187083 100644 (file)
@@ -4,21 +4,22 @@
  * Copyright (C) 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
  *
- * 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; only version 2 of the License.
+ * 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; version 2 of the License only.
  *
- * 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.
+ * 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.
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #define _LARGEFILE64_SOURCE
+#define _GNU_SOURCE
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -27,6 +28,8 @@
 #include <unistd.h>
 #include <sys/wait.h>
 #include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <sys/mman.h>
@@ -36,7 +39,7 @@
 #include <assert.h>
 #include <sys/socket.h>
 
-#include <ust/lttng-ust-comm.h>
+#include <ust-comm.h>
 #include <../../libringbuffer/backend.h>
 #include <../../libringbuffer/frontend.h>
 
@@ -151,10 +154,10 @@ int close_streams(int sock, struct lttng_ust_object_data *stream_datas, int nr_c
 }
 
 static
-struct shm_handle *map_channel(struct lttng_ust_object_data *chan_data,
+struct lttng_ust_shm_handle *map_channel(struct lttng_ust_object_data *chan_data,
                struct lttng_ust_object_data *stream_datas, int nr_check)
 {
-       struct shm_handle *handle;
+       struct lttng_ust_shm_handle *handle;
        struct channel *chan;
        int k, ret;
 
@@ -195,7 +198,7 @@ error_destroy:
 }
 
 static
-void unmap_channel(struct shm_handle *handle)
+void unmap_channel(struct lttng_ust_shm_handle *handle)
 {
        struct channel *chan;
 
@@ -205,19 +208,23 @@ void unmap_channel(struct shm_handle *handle)
 }
 
 static
-int consume_stream(struct shm_handle *handle, int cpu, char *outfile)
+int consume_stream(struct lttng_ust_shm_handle *handle, int cpu, char *outfile)
 {
        struct channel *chan;
-       struct lib_ring_buffer *buf;
+       struct lttng_ust_lib_ring_buffer *buf;
        int outfd, ret;
-       int shm_fd, wait_fd;
-       uint64_t memory_map_size;
+       int *shm_fd, *wait_fd;
+       char *shm_path, *wait_pipe_path;
+       uint64_t *memory_map_size;
 
        chan = shmp(handle, handle->chan);
 
        /* open stream */
        buf = channel_get_ring_buffer(&chan->backend.config,
-               chan, cpu, handle, &shm_fd, &wait_fd, &memory_map_size);
+                                     chan, cpu, handle,
+                                     &shm_fd, &shm_path,
+                                     &wait_fd, &wait_pipe_path,
+                                     &memory_map_size);
        if (!buf)
                return -ENOENT;
        ret = lib_ring_buffer_open_read(buf, handle, 1);
@@ -226,7 +233,7 @@ int consume_stream(struct shm_handle *handle, int cpu, char *outfile)
        }
 
        /* copy */
-       outfd = open(outfile, O_WRONLY | O_CREAT | O_LARGEFILE | O_TRUNC,
+       outfd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC,
                        S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
        if (outfd < 0) {
                perror("open output");
@@ -259,7 +266,7 @@ int consume_stream(struct shm_handle *handle, int cpu, char *outfile)
                printf("WRITE: copy %lu bytes\n", read_size);
                copy_size = write(outfd, ptr, read_size);
                if (copy_size < read_size) {
-                       printf("write issue: copied %zd, expected %lu\n", copy_size, read_size);
+                       printf("write issue: copied %lu, expected %lu\n", copy_size, read_size);
                }
                lib_ring_buffer_put_next_subbuf(buf, handle);
        }
@@ -283,7 +290,7 @@ int consume_buffers(void)
 
        for (i = 0; i < NR_SESSIONS; i++) {
                char pathname[PATH_MAX];
-               struct shm_handle *handle;
+               struct lttng_ust_shm_handle *handle;
 
                snprintf(pathname, PATH_MAX - 1, "/tmp/testtrace%u", i);
                old_umask = umask(0);
This page took 0.025211 seconds and 4 git commands to generate.