-
Notifications
You must be signed in to change notification settings - Fork 1
/
imsgev.h
46 lines (40 loc) · 1.43 KB
/
imsgev.h
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
/*
* Copyright (c) 2021, 2024 Omar Polo <[email protected]>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
struct imsgev {
struct imsgbuf ibuf;
void (*handler)(int, int, void *);
short events;
};
#define IMSG_DATA_SIZE(imsg) ((imsg).hdr.len - IMSG_HEADER_SIZE)
enum imsg_type {
/* ui <-> net */
IMSG_GET, /* struct get_req, peerid is the tab id */
IMSG_ERR,
IMSG_CHECK_CERT,
IMSG_CERT_STATUS,
IMSG_FAULTY_GEMSERVER,
IMSG_REPLY, /* reply code (int) + meta string */
IMSG_PROCEED,
IMSG_STOP,
IMSG_BUF,
IMSG_EOF,
IMSG_QUIT,
/* ui <-> ctl */
IMSG_CTL_OPEN_URL,
};
void imsg_event_add(struct imsgev *);
int imsg_compose_event(struct imsgev *, uint16_t, uint32_t, pid_t, int, const void *, uint16_t);
int ibuf_borrow_str(struct ibuf *, char **);