Blame view

kernel/linux-imx6_3.14.28/tools/lib/traceevent/kbuffer.h 2.16 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  /*
   * Copyright (C) 2012 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
   *
   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation;
   * version 2.1 of the License (not later!)
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public
   * License along with this program; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
   *
   * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   */
  #ifndef _KBUFFER_H
  #define _KBUFFER_H
  
  #ifndef TS_SHIFT
  #define TS_SHIFT		27
  #endif
  
  enum kbuffer_endian {
  	KBUFFER_ENDIAN_BIG,
  	KBUFFER_ENDIAN_LITTLE,
  };
  
  enum kbuffer_long_size {
  	KBUFFER_LSIZE_4,
  	KBUFFER_LSIZE_8,
  };
  
  enum {
  	KBUFFER_TYPE_PADDING		= 29,
  	KBUFFER_TYPE_TIME_EXTEND	= 30,
  	KBUFFER_TYPE_TIME_STAMP		= 31,
  };
  
  struct kbuffer;
  
  struct kbuffer *kbuffer_alloc(enum kbuffer_long_size size, enum kbuffer_endian endian);
  void kbuffer_free(struct kbuffer *kbuf);
  int kbuffer_load_subbuffer(struct kbuffer *kbuf, void *subbuffer);
  void *kbuffer_read_event(struct kbuffer *kbuf, unsigned long long *ts);
  void *kbuffer_next_event(struct kbuffer *kbuf, unsigned long long *ts);
  unsigned long long kbuffer_timestamp(struct kbuffer *kbuf);
  
  void *kbuffer_translate_data(int swap, void *data, unsigned int *size);
  
  void *kbuffer_read_at_offset(struct kbuffer *kbuf, int offset, unsigned long long *ts);
  
  int kbuffer_curr_index(struct kbuffer *kbuf);
  
  int kbuffer_curr_offset(struct kbuffer *kbuf);
  int kbuffer_curr_size(struct kbuffer *kbuf);
  int kbuffer_event_size(struct kbuffer *kbuf);
  int kbuffer_missed_events(struct kbuffer *kbuf);
  int kbuffer_subbuffer_size(struct kbuffer *kbuf);
  
  void kbuffer_set_old_format(struct kbuffer *kbuf);
  
  #endif /* _K_BUFFER_H */