File tree Expand file tree Collapse file tree 3 files changed +58
-0
lines changed
drivers/staging/vc04_services Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ What: /dev/vchiq
2
+ Date: October 2016
3
+ KernelVersion: 4.9
4
+
5
+ Description:
6
+ The ioctl interface for the VCHIQ character device.
7
+ Following actions are supported:
8
+
9
+ /* TODO: Please explain each IOCTL in short */
10
+
11
+ * VCHIQ_IOC_CONNECT:
12
+
13
+ * VCHIQ_IOC_SHUTDOWN:
14
+
15
+ * VCHIQ_IOC_CREATE_SERVICE:
16
+
17
+ * VCHIQ_IOC_REMOVE_SERVICE:
18
+
19
+ * VCHIQ_IOC_QUEUE_MESSAGE:
20
+
21
+ * VCHIQ_IOC_QUEUE_BULK_TRANSMIT:
22
+
23
+ * VCHIQ_IOC_QUEUE_BULK_RECEIVE:
24
+
25
+ * VCHIQ_IOC_AWAIT_COMPLETION:
26
+
27
+ * VCHIQ_IOC_DEQUEUE_MESSAGE:
28
+
29
+ * VCHIQ_IOC_GET_CLIENT_ID:
30
+
31
+ * VCHIQ_IOC_GET_CONFIG:
32
+
33
+ * VCHIQ_IOC_CLOSE_SERVICE:
34
+
35
+ * VCHIQ_IOC_USE_SERVICE:
36
+
37
+ * VCHIQ_IOC_RELEASE_SERVICE:
38
+
39
+ * VCHIQ_IOC_SET_SERVICE_OPTION:
40
+
41
+ * VCHIQ_IOC_DUMP_PHYS_MEM:
42
+
43
+ * VCHIQ_IOC_LIB_VERSION:
44
+
45
+ * VCHIQ_IOC_CLOSE_DELIVERED:
Original file line number Diff line number Diff line change @@ -83,6 +83,9 @@ static const struct vchiq_platform_info bcm2711_info = {
83
83
84
84
struct vchiq_arm_state {
85
85
/* Keepalive-related data */
86
+ /* TODO: Please elaborate the purpose of this thread
87
+ * What needs to be kept alive?
88
+ */
86
89
struct task_struct * ka_thread ;
87
90
struct completion ka_evt ;
88
91
atomic_t ka_use_count ;
Original file line number Diff line number Diff line change @@ -174,6 +174,7 @@ struct vchiq_slot_info {
174
174
short release_count ;
175
175
};
176
176
177
+ /* TODO: Please explain the meaning of "service" in the context of VCHIQ */
177
178
struct vchiq_service {
178
179
struct vchiq_service_base base ;
179
180
unsigned int handle ;
@@ -289,6 +290,10 @@ struct vchiq_shared_state {
289
290
int debug [DEBUG_MAX ];
290
291
};
291
292
293
+ /*
294
+ * TODO: Mark all structs which are shared with the VideoCore and must not
295
+ * be modified (ABI)
296
+ */
292
297
struct vchiq_slot_zero {
293
298
int magic ;
294
299
short version ;
@@ -325,12 +330,17 @@ struct vchiq_state {
325
330
struct vchiq_instance * * instance ;
326
331
327
332
/* Processes incoming messages */
333
+ /* TODO: This is the only thread which handles incoming messages
334
+ * or just asynchronous messages ?
335
+ */
328
336
struct task_struct * slot_handler_thread ;
329
337
330
338
/* Processes recycled slots */
339
+ /* TODO: Please elaborate more ... (purpose) */
331
340
struct task_struct * recycle_thread ;
332
341
333
342
/* Processes synchronous messages */
343
+ /* TODO: Please elaborate more ... (direction, purpose) */
334
344
struct task_struct * sync_thread ;
335
345
336
346
/* Local implementation of the trigger remote event */
You can’t perform that action at this time.
0 commit comments