linux/tools/perf/util/data.h
<<
>>
Prefs
   1#ifndef __PERF_DATA_H
   2#define __PERF_DATA_H
   3
   4#include <stdbool.h>
   5
   6enum perf_data_mode {
   7        PERF_DATA_MODE_WRITE,
   8        PERF_DATA_MODE_READ,
   9};
  10
  11struct perf_data_file {
  12        const char              *path;
  13        int                      fd;
  14        bool                     is_pipe;
  15        bool                     force;
  16        unsigned long            size;
  17        enum perf_data_mode      mode;
  18};
  19
  20static inline bool perf_data_file__is_read(struct perf_data_file *file)
  21{
  22        return file->mode == PERF_DATA_MODE_READ;
  23}
  24
  25static inline bool perf_data_file__is_write(struct perf_data_file *file)
  26{
  27        return file->mode == PERF_DATA_MODE_WRITE;
  28}
  29
  30static inline int perf_data_file__is_pipe(struct perf_data_file *file)
  31{
  32        return file->is_pipe;
  33}
  34
  35static inline int perf_data_file__fd(struct perf_data_file *file)
  36{
  37        return file->fd;
  38}
  39
  40static inline unsigned long perf_data_file__size(struct perf_data_file *file)
  41{
  42        return file->size;
  43}
  44
  45int perf_data_file__open(struct perf_data_file *file);
  46void perf_data_file__close(struct perf_data_file *file);
  47ssize_t perf_data_file__write(struct perf_data_file *file,
  48                              void *buf, size_t size);
  49/*
  50 * If at_exit is set, only rename current perf.data to
  51 * perf.data.<postfix>, continue write on original file.
  52 * Set at_exit when flushing the last output.
  53 *
  54 * Return value is fd of new output.
  55 */
  56int perf_data_file__switch(struct perf_data_file *file,
  57                           const char *postfix,
  58                           size_t pos, bool at_exit);
  59#endif /* __PERF_DATA_H */
  60