summaryrefslogtreecommitdiff
path: root/kernel_drivers/v4_cleaned/notes.txt
blob: b90c672979ceb40e66961a2dbc3b4d2de24ce5c9 (plain)
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
gckMATH_ModuloInt: can be inlined, is used only in two places
gcoDUMP: can be removed


All gco functions can go, these are userspace.
Same for gcm (not gcmk)

gc_hal_profiler_internal.h, except for one #define

TODO

- Don't need the profileFileName (VIVANTE_PROFILER) and profileEnabled on
  _gckKERNEL.

  Used only by commands gcvHAL_GET_PROFILE_SETTING and gcvHAL_SET_PROFILE_SETTING,
  for the user space to store the profiling name and status inside the kernel.
 
- Semaphores/queues: could simply use Linux built-in objects instead of an
  abstraction.

- gckOS_QueryNeedCopy: can be replaced by TRUE or FALSE based on NO_USER_DIRECT_ACCESS_FROM_KERNEL
  Inlined?
  Doesn't need any of the argument validation

- gcdNULL_DRIVER: not needed

- Commented out code (#if 0) in gckCOMMAND_Commit

        /* Determine context entry and exit points. */

Bugs?
---------

- Unnecessary check in context update
Line 1419 in gckCONTEXT_Update:    if (j >= Context->stateCount)
Why? Seems wrong.
  ("more updates than states" ok, can't be logical)


Optimization
----------------
Cache settings

- gcdNONPAGED_MEMORY_CACHEABLE