return dso->data.fd;
}
+bool dso__data_status_seen(struct dso *dso, enum dso_data_status_seen by)
+{
+ u32 flag = 1 << by;
+
+ if (dso->data.status_seen & flag)
+ return true;
+
+ dso->data.status_seen |= flag;
+
+ return false;
+}
+
static void
dso_cache__free(struct rb_root *root)
{
DSO_DATA_STATUS_OK = 1,
};
+enum dso_data_status_seen {
+ DSO_DATA_STATUS_SEEN_ITRACE,
+};
+
#define DSO__SWAP(dso, type, val) \
({ \
type ____r = val; \
struct rb_root cache;
int fd;
int status;
+ u32 status_seen;
size_t file_size;
struct list_head open_entry;
} data;
ssize_t dso__data_read_addr(struct dso *dso, struct map *map,
struct machine *machine, u64 addr,
u8 *data, ssize_t size);
+bool dso__data_status_seen(struct dso *dso, enum dso_data_status_seen by);
struct map *dso__new_map(const char *name);
struct dso *dso__kernel_findnew(struct machine *machine, const char *name,