18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file op_header.h 38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * various free function acting on a sample file header 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 OP_HEADER_H 138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define OP_HEADER_H 148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <iosfwd> 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string> 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "op_sample_file.h" 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param h1 sample file header 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param h2 sample file header 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param filename sample filename 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * check that the h1 and h2 are coherent (same size, same mtime etc.) 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * all error are fatal 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid op_check_header(opd_header const & h1, opd_header const & h2, 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd std::string const & filename); 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddbool is_jit_sample(std::string const & filename); 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * check mtime of samples file header against file 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * all error are fatal 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddvoid check_mtime(std::string const & file, opd_header const & header); 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param sample_filename the sample to open 418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Return the header of this sample file. Only the magic number is checked 438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * the version number is not checked. All error are fatal 448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddopd_header const read_header(std::string const & sample_filename); 468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * output a readable form of header, this don't include the cpu type 498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * and speed 508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const describe_header(opd_header const & header); 528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// output a readable form of cpu type and speed 548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const describe_cpu(opd_header const & header); 558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif // OP_HEADER_H 57