perf.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /* Copyright (c) 2010, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. *
  12. */
  13. /*
  14. perf.h
  15. DESCRIPTION: Reads and writes the performance monitoring registers in the ARM
  16. by using the MRC and MCR instructions.
  17. */
  18. #ifndef PERF_H
  19. #define PERF_H
  20. extern unsigned long perf_get_cycles(void);
  21. extern void perf_set_count1(unsigned long val);
  22. extern void perf_set_count0(unsigned long val);
  23. extern unsigned long perf_get_count1(void);
  24. extern unsigned long perf_get_count0(void);
  25. extern unsigned long perf_get_ctrl(void);
  26. extern void perf_set_ctrl(void);
  27. extern void perf_set_ctrl_with(unsigned long v);
  28. extern void perf_enable_counting(void);
  29. extern void perf_disable_counting(void);
  30. extern void perf_set_divider(int d);
  31. extern unsigned long perf_get_overflow(void);
  32. extern void perf_clear_overflow(unsigned long bit);
  33. extern void perf_export_event(unsigned long bit);
  34. extern void perf_reset_counts(void);
  35. extern int perf_set_event(unsigned long index, unsigned long val);
  36. extern unsigned long perf_get_count(unsigned long index);
  37. extern void perf_set_cycles(unsigned long c);
  38. extern void pm_stop_all(void);
  39. extern void l2_pm_stop_all(void);
  40. extern void pm_start_all(void);
  41. extern void l2_pm_start_all(void);
  42. extern void pm_reset_all(void);
  43. extern void l2_pm_reset_all(void);
  44. extern void pm_set_event(unsigned long monitorIndex, unsigned long eventIndex);
  45. extern void l2_pm_set_event(unsigned long monitorIndex,
  46. unsigned long eventIndex);
  47. extern unsigned long pm_get_count(unsigned long monitorIndex);
  48. extern unsigned long l2_pm_get_count(unsigned long monitorIndex);
  49. extern unsigned long pm_get_cycle_count(void);
  50. extern unsigned long l2_pm_get_cycle_count(void);
  51. extern char *pm_find_event_name(unsigned long index);
  52. extern void pm_set_local_iu(unsigned long events);
  53. extern void pm_set_local_xu(unsigned long events);
  54. extern void pm_set_local_su(unsigned long events);
  55. extern void pm_set_local_l2(unsigned long events);
  56. extern void pm_set_local_vu(unsigned long events);
  57. extern void pm_set_local_bu(unsigned long events);
  58. extern void pm_set_local_cb(unsigned long events);
  59. extern void pm_set_local_mp(unsigned long events);
  60. extern void pm_set_local_sp(unsigned long events);
  61. extern void pm_set_local_scu(unsigned long events);
  62. extern void pm_initialize(void);
  63. extern void pm_deinitialize(void);
  64. extern void l2_pm_initialize(void);
  65. extern void l2_pm_deinitialize(void);
  66. extern void pm_free_irq(void);
  67. extern void l2_pm_free_irq(void);
  68. extern int per_process_perf_init(void);
  69. extern void per_process_perf_exit(void);
  70. int per_process_read(char *page, char **start, off_t off, int count,
  71. int *eof, void *data);
  72. int per_process_write_hex(struct file *file, const char *buff,
  73. unsigned long cnt, void *data);
  74. int per_process_read_decimal(char *page, char **start, off_t off, int count,
  75. int *eof, void *data);
  76. int per_process_write_dec(struct file *file, const char *buff,
  77. unsigned long cnt, void *data);
  78. void perfmon_register_callback(void);
  79. void _per_process_switch(unsigned long oldPid, unsigned long newPid);
  80. extern unsigned int pp_loaded;
  81. extern atomic_t pm_op_lock;
  82. #endif /*PERF_H*/