18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file opd_sample_files.h
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Management of sample files
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2002 OProfile authors
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#ifndef OPD_SAMPLE_FILES_H
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define OPD_SAMPLE_FILES_H
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "op_list.h"
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "odb.h"
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct opd_image;
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** one samples file when profiling on a 2.2/2.4 kernel */
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstruct opd_24_sfile {
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/** lru list of sample file */
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	struct list_head lru_next;
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/** the sample file itself */
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	odb_t sample_file;
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd};
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * sync all samples files
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid opd_sync_samples_files(void);
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param image  the image pointer to work on
358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * close all samples files belonging to this image
378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid opd_close_image_samples_files(struct opd_image * image);
398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * opd_open_24_sample_file - open an image sample file
428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param image  image to open file for
438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param counter  counter number
448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param cpu_nr  cpu number
458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Open image sample file for the image, counter
478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * counter and set up memory mappings for it.
488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * image->kernel and image->name must have meaningful
498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * values.
508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Returns 0 on success.
528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddint opd_open_24_sample_file(struct opd_image * image, int counter, int cpu_nr);
548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param sfile  sample file to act on
578cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
588cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * put sfile at the head of samples files lru list
598cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
608cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid opd_24_sfile_lru(struct opd_24_sfile * sfile);
618cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
628cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
638cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif /* OPD_SAMPLE_FILES_H */
64