i3
Main Page
Data Structures
Files
File List
Globals
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-2012 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 <stdint.h>
14
#include <pthread.h>
15
16
/* Default shmlog size if not set by user. */
17
extern
const
int
default_shmlog_size
;
18
19
/*
20
* Header of the shmlog file. Used by i3/src/log.c and i3/i3-dump-log/main.c.
21
*
22
*/
23
typedef
struct
i3_shmlog_header
{
24
/* Byte offset where the next line will be written to. */
25
uint32_t
offset_next_write
;
26
27
/* Byte offset where the last wrap occured. */
28
uint32_t
offset_last_wrap
;
29
30
/* The size of the logfile in bytes. Since the size is limited to 25 MiB
31
* an uint32_t is sufficient. */
32
uint32_t
size
;
33
34
/* wrap counter. We need it to reliably signal to clients that we just
35
* wrapped (clients cannot use offset_last_wrap because that might
36
* coincidentally be exactly the same as previously). Overflows can happen
37
* and don’t matter — clients use an equality check (==). */
38
uint32_t
wrap_count
;
39
40
/* pthread condvar which will be broadcasted whenever there is a new
41
* message in the log. i3-dump-log uses this to implement -f (follow, like
42
* tail -f) in an efficient way. */
43
pthread_cond_t
condvar
;
44
}
i3_shmlog_header
;
i3_shmlog_header::wrap_count
uint32_t wrap_count
Definition:
shmlog.h:38
i3_shmlog_header
Definition:
shmlog.h:23
i3_shmlog_header::size
uint32_t size
Definition:
shmlog.h:32
default_shmlog_size
const int default_shmlog_size
Definition:
main.c:77
i3_shmlog_header::offset_next_write
uint32_t offset_next_write
Definition:
shmlog.h:25
i3_shmlog_header::offset_last_wrap
uint32_t offset_last_wrap
Definition:
shmlog.h:28
i3_shmlog_header::condvar
pthread_cond_t condvar
Definition:
shmlog.h:43
i3_shmlog_header
struct i3_shmlog_header i3_shmlog_header
Generated by
1.8.6