i3
include
shmlog.h
Go to the documentation of this file.
1
/*
2
* vim:ts=4:sw=4:expandtab
3
*
4
* i3 - an improved dynamic tiling window manager
5
* © 2009 Michael Stapelberg and contributors (see also: LICENSE)
6
*
7
* The format of the shmlog data structure which i3 development versions use by
8
* default (ringbuffer for storing the debug log).
9
*
10
*/
11
#pragma once
12
13
#include <config.h>
14
15
#if !defined(__OpenBSD__)
16
#include <pthread.h>
17
#endif
18
19
/* Default shmlog size if not set by user. */
20
extern
const
int
default_shmlog_size
;
21
26
typedef
struct
i3_shmlog_header
{
27
/* Byte offset where the next line will be written to. */
28
uint32_t
offset_next_write
;
29
30
/* Byte offset where the last wrap occurred. */
31
uint32_t
offset_last_wrap
;
32
33
/* The size of the logfile in bytes. Since the size is limited to 25 MiB
34
* an uint32_t is sufficient. */
35
uint32_t
size
;
36
37
/* wrap counter. We need it to reliably signal to clients that we just
38
* wrapped (clients cannot use offset_last_wrap because that might
39
* coincidentally be exactly the same as previously). Overflows can happen
40
* and don’t matter — clients use an equality check (==). */
41
uint32_t
wrap_count
;
42
43
#if !defined(__OpenBSD__)
44
/* pthread condvar which will be broadcasted whenever there is a new
45
* message in the log. i3-dump-log uses this to implement -f (follow, like
46
* tail -f) in an efficient way. */
47
pthread_cond_t
condvar
;
48
#endif
49
}
i3_shmlog_header
;
default_shmlog_size
const int default_shmlog_size
Definition:
main.c:78
i3_shmlog_header
struct i3_shmlog_header i3_shmlog_header
Header of the shmlog file.
i3_shmlog_header
Header of the shmlog file.
Definition:
shmlog.h:26
i3_shmlog_header::offset_last_wrap
uint32_t offset_last_wrap
Definition:
shmlog.h:31
i3_shmlog_header::offset_next_write
uint32_t offset_next_write
Definition:
shmlog.h:28
i3_shmlog_header::wrap_count
uint32_t wrap_count
Definition:
shmlog.h:41
i3_shmlog_header::condvar
pthread_cond_t condvar
Definition:
shmlog.h:47
i3_shmlog_header::size
uint32_t size
Definition:
shmlog.h:35
Generated by
1.9.1