X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ffd-tracker%2Ffd-tracker.h;h=2ed385a2a0e4fc329ef833ff5e75dd6e39b53ffe;hb=875b29bfdafecb38a552264b0775478eaef0cae1;hp=b8082c9a7697f51eb9b2c7d30e3ef94610f6d450;hpb=9d16fc7fa401926b800c18124756d75b11b5b806;p=lttng-tools.git diff --git a/src/common/fd-tracker/fd-tracker.h b/src/common/fd-tracker/fd-tracker.h index b8082c9a7..2ed385a2a 100644 --- a/src/common/fd-tracker/fd-tracker.h +++ b/src/common/fd-tracker/fd-tracker.h @@ -18,6 +18,7 @@ #ifndef FD_TRACKER_H #define FD_TRACKER_H +#include #include #include @@ -52,8 +53,13 @@ typedef int (*fd_close_cb)(void *, int *in_fds); * Set the maximal number of fds that the process should be allowed to open at * any given time. This function must be called before any other of this * interface. + * + * The unlinked_file_path is an absolute path (which does not need to exist) + * under which unlinked files will be stored for as long as a reference to them + * is held. */ -struct fd_tracker *fd_tracker_create(unsigned int capacity); +struct fd_tracker *fd_tracker_create(const char *unlinked_file_path, + unsigned int capacity); /* Returns an error if file descriptors are leaked. */ int fd_tracker_destroy(struct fd_tracker *tracker); @@ -81,7 +87,10 @@ int fd_tracker_destroy(struct fd_tracker *tracker); * open. */ struct fs_handle *fd_tracker_open_fs_handle(struct fd_tracker *tracker, - const char *path, int flags, mode_t *mode); + struct lttng_directory_handle *directory, + const char *path, + int flags, + mode_t *mode); /* * Open a tracked unsuspendable file descriptor. @@ -106,8 +115,11 @@ struct fs_handle *fd_tracker_open_fs_handle(struct fd_tracker *tracker, * accomodate the request for a new unsuspendable entry. */ int fd_tracker_open_unsuspendable_fd(struct fd_tracker *tracker, - int *out_fds, const char **names, unsigned int fd_count, - fd_open_cb open, void *data); + int *out_fds, + const char **names, + unsigned int fd_count, + fd_open_cb open, + void *data); /* * Close a tracked unsuspendable file descriptor. @@ -125,7 +137,9 @@ int fd_tracker_open_unsuspendable_fd(struct fd_tracker *tracker, * allows the user to know which file descriptors are no longer being tracked. */ int fd_tracker_close_unsuspendable_fd(struct fd_tracker *tracker, - int *fds, unsigned int fd_count, fd_close_cb close, + int *fds, + unsigned int fd_count, + fd_close_cb close, void *data); /*