.fill_column = nsfs_file_fill_column,
.handle_fdinfo = NULL,
};
+
+/*
+ * POSIX Mqueue
+ */
+bool is_mqueue_dev(dev_t dev)
+{
+ const char *fs = get_nodev_filesystem(minor(dev));
+
+ if (fs && (strcmp (fs, "mqueue") == 0))
+ return true;
+
+ return false;
+}
+
+static bool mqueue_file_fill_column(struct proc *proc __attribute__((__unused__)),
+ struct file *file __attribute__((__unused__)),
+ struct libscols_line *ln,
+ int column_id,
+ size_t column_index)
+{
+ switch (column_id) {
+ case COL_TYPE:
+ if (scols_line_set_data(ln, column_index, "mqueue"))
+ err(EXIT_FAILURE, _("failed to add output data"));
+ return true;
+ default:
+ return false;
+ }
+}
+
+const struct file_class mqueue_file_class = {
+ .super = &file_class,
+ .size = sizeof(struct file),
+ .fill_column = mqueue_file_fill_column,
+};
};
extern const struct file_class file_class, cdev_class, bdev_class, sock_class, unkn_class, fifo_class,
- nsfs_file_class;
+ nsfs_file_class, mqueue_file_class;
/*
* IPC
void load_sock_xinfo(struct path_cxt *pc, const char *name, ino_t netns);
bool is_nsfs_dev(dev_t dev);
+/*
+ * POSIX Mqueue
+ */
+/* 0 is assumed as the major dev for DEV. */
+bool is_mqueue_dev(dev_t dev);
+
#endif /* UTIL_LINUX_LSFD_H */