PatchworkOS
Loading...
Searching...
No Matches
cmd.h
Go to the documentation of this file.
1#ifndef PATCHWORK_CMD_H
2#define PATCHWORK_CMD_H 1
3
4#include "event.h"
5#include "pixel.h"
6#include "point.h"
7#include "rect.h"
8#include "surface.h"
9
10#include <stdint.h>
11#include <sys/io.h>
12#include <sys/proc.h>
13
14#if defined(__cplusplus)
15extern "C"
16{
17#endif
18
19// Note: Commands will only let you access a surface owned by the client the command is called by unless that command
20// has a "bool isGlobal" member and that member is true.
21
37
38#define CMD_MAGIC 0xDEADC0DE
39
40typedef struct cmd_header
41{
46
52
60
66
73
74typedef enum
75{
77 TIMER_REPEAT = 1 << 0
79
87
94
101
109
116
122
128
129#define CMD_BUFFER_MAX_DATA (0x1000)
130
131#define CMD_BUFFER_FOR_EACH(buffer, cmd) \
132 for (uint8_t *_ptr = (buffer)->data, *_end = (uint8_t*)((uint64_t)(buffer) + (buffer)->size); _ptr < _end; \
133 _ptr += ((cmd_header_t*)_ptr)->size) \
134 for (cmd = (cmd_header_t*)_ptr; cmd; cmd = NULL)
135
136typedef struct cmd_buffer
137{
139 uint64_t size; // The entire used size of the cmd_buffer.
142
143#if defined(__cplusplus)
144}
145#endif
146
147#endif
#define MAX_NAME
Maximum length of names.
Definition MAX_NAME.h:11
cmd_type_t
Definition cmd.h:23
@ CMD_SUBSCRIBE
Definition cmd.h:33
@ CMD_UNSUBSCRIBE
Definition cmd.h:34
@ CMD_SURFACE_TIMER_SET
Definition cmd.h:28
@ CMD_SURFACE_MOVE
Definition cmd.h:27
@ CMD_SURFACE_NEW
Definition cmd.h:25
@ CMD_SURFACE_REPORT
Definition cmd.h:32
@ CMD_SURFACE_VISIBLE_SET
Definition cmd.h:31
@ CMD_SURFACE_FREE
Definition cmd.h:26
@ CMD_SURFACE_FOCUS_SET
Definition cmd.h:30
@ CMD_SURFACE_INVALIDATE
Definition cmd.h:29
@ CMD_TYPE_AMOUNT
Definition cmd.h:35
@ CMD_SCREEN_INFO
Definition cmd.h:24
timer_flags_t
Definition cmd.h:75
@ TIMER_NONE
Definition cmd.h:76
@ TIMER_REPEAT
Definition cmd.h:77
#define CMD_BUFFER_MAX_DATA
Definition cmd.h:129
static fd_t data
Definition dwm.c:21
uint16_t event_type_t
Event type.
Definition event.h:72
surface_type_t
Surface types.
Definition surface.h:33
uint64_t surface_id_t
Definition surface.h:53
__UINT64_TYPE__ clock_t
A nanosecond time.
Definition clock_t.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:15
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__UINT8_TYPE__ uint8_t
Definition stdint.h:11
uint64_t amount
Definition cmd.h:138
uint64_t size
Definition cmd.h:139
uint32_t magic
Definition cmd.h:42
cmd_type_t type
Definition cmd.h:43
uint64_t size
Definition cmd.h:44
uint64_t index
Definition cmd.h:50
cmd_header_t header
Definition cmd.h:49
event_type_t event
Definition cmd.h:120
cmd_header_t header
Definition cmd.h:119
surface_id_t target
Definition cmd.h:99
cmd_header_t header
Definition cmd.h:97
cmd_header_t header
Definition cmd.h:63
surface_id_t target
Definition cmd.h:64
surface_id_t target
Definition cmd.h:91
cmd_header_t header
Definition cmd.h:90
surface_id_t target
Definition cmd.h:70
cmd_header_t header
Definition cmd.h:69
rect_t rect
Definition cmd.h:71
cmd_header_t header
Definition cmd.h:55
rect_t rect
Definition cmd.h:57
surface_type_t type
Definition cmd.h:56
cmd_header_t header
Definition cmd.h:112
surface_id_t target
Definition cmd.h:114
cmd_header_t header
Definition cmd.h:82
surface_id_t target
Definition cmd.h:83
timer_flags_t flags
Definition cmd.h:84
cmd_header_t header
Definition cmd.h:104
surface_id_t target
Definition cmd.h:106
cmd_header_t header
Definition cmd.h:125
event_type_t event
Definition cmd.h:126
Definition rect.h:13