Difference between revisions of "Unit GlobalConst"

From Ultibo.org
Jump to: navigation, search
 
(165 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
''To be documented''
+
'''Ultibo Global Constant Definitions unit'''
  
 
=== Constants ===
 
=== Constants ===
Line 12: Line 12:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Universal error constants''' <code> ERROR_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Universal error''' <code> ERROR_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 204: Line 204:
 
|-
 
|-
 
| <code>ERROR_INVALID_SID = DWORD(1337);</code>   
 
| <code>ERROR_INVALID_SID = DWORD(1337);</code>   
| The security ID structure is invalid
+
| The security Id structure is invalid
 
|-
 
|-
 
| <code>ERROR_INVALID_SECURITY_DESCR = DWORD(1338);</code>   
 
| <code>ERROR_INVALID_SECURITY_DESCR = DWORD(1338);</code>   
Line 264: Line 264:
 
| <code>ERROR_CANCELLED = 1000014;</code>     
 
| <code>ERROR_CANCELLED = 1000014;</code>     
 
| The entry or operation has been cancelled
 
| The entry or operation has been cancelled
 +
|-
 +
| <code>ERROR_NOT_EXACT = 1000015;</code>   
 +
| The result of the operation is not exact
 +
|-
 +
| <code>ERROR_ALREADY_OWNER = 1000016;</code>   
 +
| The current thread is already the owner
 
|-
 
|-
 
|colspan="2"|&nbsp;
 
|colspan="2"|&nbsp;
Line 273: Line 279:
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
''To be documented''
+
<div style="font-size: 14px; padding-left: 12px;">'''Universal value''' <code> INVALID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>INVALID_HANDLE_VALUE = THandle(-1);</code>
 +
| DWORD(-1);
 +
|-
 +
| <code>INVALID_FILE_SIZE = DWORD($FFFFFFFF);</code>
 +
| &nbsp;
 +
|-
 +
| <code>INVALID_SET_FILE_POINTER = DWORD(-1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>INVALID_FILE_ATTRIBUTES = DWORD(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File position''' <code> FILE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FILE_BEGIN = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FILE_CURRENT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_END = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File open/create''' <code> CREATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CREATE_NEW = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CREATE_ALWAYS = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>OPEN_EXISTING = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>OPEN_ALWAYS = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>TRUNCATE_EXISTING = 5;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File creation flag''' <code> FILE_FLAG_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FILE_FLAG_WRITE_THROUGH = DWORD($80000000);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FILE_FLAG_OVERLAPPED = $40000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_NO_BUFFERING = $20000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_RANDOM_ACCESS = $10000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_SEQUENTIAL_SCAN = $08000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_DELETE_ON_CLOSE = $04000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_BACKUP_SEMANTICS = $02000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_POSIX_SEMANTICS = $01000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_OPEN_REPARSE_POINT = $00200000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_OPEN_NO_RECALL = $00100000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_FLAG_FIRST_PIPE_INSTANCE = $00080000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File attribute''' <code> FILE_ATTRIBUTE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FILE_ATTRIBUTE_READONLY = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_HIDDEN = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_SYSTEM = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_DIRECTORY = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_ARCHIVE = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_DEVICE = $00000040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_NORMAL = $00000080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_TEMPORARY = $00000100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_SPARSE_FILE = $00000200;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_REPARSE_POINT = $00000400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_COMPRESSED = $00000800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_OFFLINE = $00001000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_ATTRIBUTE_ENCRYPTED = $00004000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Filesystem attribute''' <code> FS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FS_CASE_SENSITIVE_SEARCH = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FS_CASE_PRESERVED_NAMES = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_UNICODE_ON_DISK = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_PERSISTENT_ACLS = $00000008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_FILE_COMPRESSION = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_VOLUME_QUOTAS = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_SUPPORTS_SPARSE_FILES = $00000040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_SUPPORTS_REPARSE_POINTS = $00000080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_SUPPORTS_REMOTE_STORAGE = $00000100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_VOLUME_IS_COMPRESSED = $00008000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_SUPPORTS_OBJECT_IDS = $00010000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_SUPPORTS_ENCRYPTION = $00020000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_NAMED_STREAMS = $00040000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FS_READ_ONLY_VOLUME = $00080000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File access''' <code> GENERIC_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GENERIC_READ = DWORD($80000000);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>GENERIC_WRITE = $40000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GENERIC_EXECUTE = $20000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GENERIC_ALL = $10000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''File share''' <code> FILE_SHARE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FILE_SHARE_READ = $00000001;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FILE_SHARE_WRITE = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILE_SHARE_DELETE = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Timeout''' <code> INFINITE =* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>INFINITE = LongWord(-1);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''TLS''' <code> TLS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TLS_OUT_OF_INDEXES = DWORD($FFFFFFFF);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Wait''' <code> WAIT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>WAIT_OBJECT_0 = ERROR_SUCCESS + 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WAIT_ABANDONED = $00000080 + 0;</code>
 +
| STATUS_ABANDONED_WAIT_0
 +
|-
 +
| <code>WAIT_ABANDONED_0 = $00000080 + 0;</code>
 +
| STATUS_ABANDONED_WAIT_0
 +
|-
 +
| <code>WAIT_TIMEOUT = ERROR_WAIT_TIMEOUT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>WAIT_FAILED = DWORD($FFFFFFFF);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>WAIT_IO_COMPLETION = $000000C0;</code>
 +
| STATUS_USER_APC
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MAXIMUM_WAIT_OBJECTS = 64;</code>
 +
| Maximum number of wait objects
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Thread state''' <code> STILL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>STILL_ACTIVE = ERROR_NO_MORE_ITEMS;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''TimeZone''' <code> TIME_ZONE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TIME_ZONE_ID_INVALID = DWORD($FFFFFFFF);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal key codes''' <code> KEY_CODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Keyboard key codes are based on the Unicode standard with each key code mapped to the code point for that character (See http://unicode.org or http://unicode-table.com)
 +
|-
 +
|colspan="2"|Keyboard keymaps map the scan code value to the key code value for the specific keyboard layout and include alternate mappings for Shift and AltGr
 +
|-
 +
|colspan="2"|Non character codes for keys like Home, End, Arrows, F1..F24, Shift, Caps Lock etc are mapped in the Unicode Private Use Area (E000-F8FF)
 +
|-
 +
|colspan="2"|These are the values reported in the KeyCode field of the TKeyboardData structure returned by the KeyboardRead function
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Control Characters (0000-001F)''
 +
|-
 +
| <code>KEY_CODE_NONE = $0000;</code>
 +
| 0
 +
|-
 +
| <code>KEY_CODE_BACKSPACE = $0008;</code>
 +
| 8
 +
|-
 +
| <code>KEY_CODE_TAB = $0009;</code>
 +
| 9
 +
|-
 +
| <code>KEY_CODE_ENTER = $000D;</code>
 +
| 13
 +
|-
 +
| <code>KEY_CODE_ESCAPE = $001B;</code>
 +
| 27
 +
|-
 +
| <code>KEY_CODE_DELETE = $007F;</code>
 +
| 127
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Basic Latin Characters (0020-007F)''
 +
|-
 +
|colspan="2"|''Punctuation''
 +
|-
 +
| <code>KEY_CODE_SPACE = $0020;</code>
 +
| 32
 +
|-
 +
| <code>KEY_CODE_EXCLAMATION = $0021;</code>
 +
| 33
 +
|-
 +
| <code>KEY_CODE_QUOTATION = $0022;</code>
 +
| 34
 +
|-
 +
| <code>KEY_CODE_NUMBER = $0023;</code>
 +
| 35 (Hash/Pound)
 +
|-
 +
| <code>KEY_CODE_DOLLAR = $0024;</code>
 +
| 36
 +
|-
 +
| <code>KEY_CODE_PERCENT = $0025;</code>
 +
| 37
 +
|-
 +
| <code>KEY_CODE_AMPERSAND = $0026;</code>
 +
| 38
 +
|-
 +
| <code>KEY_CODE_APOSTROPHE = $0027;</code>
 +
| 39
 +
|-
 +
| <code>KEY_CODE_LEFT_BRACKET = $0028;</code>
 +
| 40
 +
|-
 +
| <code>KEY_CODE_RIGHT_BRACKET = $0029;</code>
 +
| 41
 +
|-
 +
| <code>KEY_CODE_ASTERISK = $002A;</code>
 +
| 42
 +
|-
 +
| <code>KEY_CODE_PLUS = $002B;</code>
 +
| 43
 +
|-
 +
| <code>KEY_CODE_COMMA = $002C;</code>
 +
| 44
 +
|-
 +
| <code>KEY_CODE_MINUS = $002D;</code>
 +
| 45
 +
|-
 +
| <code>KEY_CODE_PERIOD = $002E;</code>
 +
| 46
 +
|-
 +
| <code>KEY_CODE_SLASH = $002F;</code>
 +
| 47
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Numerals''
 +
|-
 +
| <code>KEY_CODE_0 = $0030;</code>
 +
| 48
 +
|-
 +
| <code>KEY_CODE_1 = $0031;</code>
 +
| 49
 +
|-
 +
| <code>KEY_CODE_2 = $0032;</code>
 +
| 50
 +
|-
 +
| <code>KEY_CODE_3 = $0033;</code>
 +
| 51
 +
|-
 +
| <code>KEY_CODE_4 = $0034;</code>
 +
| 52
 +
|-
 +
| <code>KEY_CODE_5 = $0035;</code>
 +
| 53
 +
|-
 +
| <code>KEY_CODE_6 = $0036;</code>
 +
| 54
 +
|-
 +
| <code>KEY_CODE_7 = $0037;</code>
 +
| 55
 +
|-
 +
| <code>KEY_CODE_8 = $0038;</code>
 +
| 56
 +
|-
 +
| <code>KEY_CODE_9 = $0039;</code>
 +
| 57
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Punctuation''
 +
|-
 +
| <code>KEY_CODE_COLON = $003A;</code>
 +
| 58
 +
|-
 +
| <code>KEY_CODE_SEMICOLON = $003B;</code>
 +
| 59
 +
|-
 +
| <code>KEY_CODE_LESSTHAN = $003C;</code>
 +
| 60
 +
|-
 +
| <code>KEY_CODE_EQUALS = $003D;</code>
 +
| 61
 +
|-
 +
| <code>KEY_CODE_GREATERTHAN = $003E;</code>
 +
| 62
 +
|-
 +
| <code>KEY_CODE_QUESTION = $003F;</code>
 +
| 63
 +
|-
 +
| <code>KEY_CODE_AT = $0040;</code>
 +
| 64
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Capital Characters''
 +
|-
 +
| <code>KEY_CODE_CAPITAL_A = $0041;</code>
 +
| 65
 +
|-
 +
| <code>KEY_CODE_CAPITAL_B = $0042;</code>
 +
| 66
 +
|-
 +
| <code>KEY_CODE_CAPITAL_C = $0043;</code>
 +
| 67
 +
|-
 +
| <code>KEY_CODE_CAPITAL_D = $0044;</code>
 +
| 68
 +
|-
 +
| <code>KEY_CODE_CAPITAL_E = $0045;</code>
 +
| 69
 +
|-
 +
| <code>KEY_CODE_CAPITAL_F = $0046;</code>
 +
| 70
 +
|-
 +
| <code>KEY_CODE_CAPITAL_G = $0047;</code>
 +
| 71
 +
|-
 +
| <code>KEY_CODE_CAPITAL_H = $0048;</code>
 +
| 72
 +
|-
 +
| <code>KEY_CODE_CAPITAL_I = $0049;</code>
 +
| 73
 +
|-
 +
| <code>KEY_CODE_CAPITAL_J = $004A;</code>
 +
| 74
 +
|-
 +
| <code>KEY_CODE_CAPITAL_K = $004B;</code>
 +
| 75
 +
|-
 +
| <code>KEY_CODE_CAPITAL_L = $004C;</code>
 +
| 76
 +
|-
 +
| <code>KEY_CODE_CAPITAL_M = $004D;</code>
 +
| 77
 +
|-
 +
| <code>KEY_CODE_CAPITAL_N = $004E;</code>
 +
| 78
 +
|-
 +
| <code>KEY_CODE_CAPITAL_O = $004F;</code>
 +
| 79
 +
|-
 +
| <code>KEY_CODE_CAPITAL_P = $0050;</code>
 +
| 80
 +
|-
 +
| <code>KEY_CODE_CAPITAL_Q = $0051;</code>
 +
| 81
 +
|-
 +
| <code>KEY_CODE_CAPITAL_R= $0052;</code>
 +
| 82
 +
|-
 +
| <code>KEY_CODE_CAPITAL_S = $0053;</code>
 +
| 83
 +
|-
 +
| <code>KEY_CODE_CAPITAL_T = $0054;</code>
 +
| 84
 +
|-
 +
| <code>KEY_CODE_CAPITAL_U = $0055;</code>
 +
| 85
 +
|-
 +
| <code>KEY_CODE_CAPITAL_V = $0056;</code>
 +
| 86
 +
|-
 +
| <code>KEY_CODE_CAPITAL_W = $0057;</code>
 +
| 87
 +
|-
 +
| <code>KEY_CODE_CAPITAL_X = $0058;</code>
 +
| 88
 +
|-
 +
| <code>KEY_CODE_CAPITAL_Y = $0059;</code>
 +
| 89
 +
|-
 +
| <code>KEY_CODE_CAPITAL_Z = $005A;</code>
 +
| 90
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Punctuation''
 +
|-
 +
| <code>KEY_CODE_LEFT_SQUARE = $005B;</code>
 +
| 91
 +
|-
 +
| <code>KEY_CODE_BACKSLASH = $005C;</code>
 +
| 92
 +
|-
 +
| <code>KEY_CODE_RIGHT_SQUARE = $005D;</code>
 +
| 93
 +
|-
 +
| <code>KEY_CODE_CARET = $005E;</code>
 +
| 94 (Circumflex)
 +
|-
 +
| <code>KEY_CODE_UNDERSCORE = $005F;</code>
 +
| 95
 +
|-
 +
| <code>KEY_CODE_GRAVE = $0060;</code>
 +
| 96
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Lowercase Characters''
 +
|-
 +
| <code>KEY_CODE_A = $0061;</code>
 +
| 97
 +
|-
 +
| <code>KEY_CODE_B = $0062;</code>
 +
| 98
 +
|-
 +
| <code>KEY_CODE_C = $0063;</code>
 +
| 99
 +
|-
 +
| <code>KEY_CODE_D = $0064;</code>
 +
| 100
 +
|-
 +
| <code>KEY_CODE_E = $0065;</code>
 +
| 101
 +
|-
 +
| <code>KEY_CODE_F = $0066;</code>
 +
| 102
 +
|-
 +
| <code>KEY_CODE_G = $0067;</code>
 +
| 103
 +
|-
 +
| <code>KEY_CODE_H = $0068;</code>
 +
| 104
 +
|-
 +
| <code>KEY_CODE_I = $0069;</code>
 +
| 105
 +
|-
 +
| <code>KEY_CODE_J = $006A;</code>
 +
| 106
 +
|-
 +
| <code>KEY_CODE_K = $006B;</code>
 +
| 107
 +
|-
 +
| <code>KEY_CODE_L = $006C;</code>
 +
| 108
 +
|-
 +
| <code>KEY_CODE_M = $006D;</code>
 +
| 109
 +
|-
 +
| <code>KEY_CODE_N = $006E;</code>
 +
| 110
 +
|-
 +
| <code>KEY_CODE_O = $006F;</code>
 +
| 111
 +
|-
 +
| <code>KEY_CODE_P = $0070;</code>
 +
| 112
 +
|-
 +
| <code>KEY_CODE_Q = $0071;</code>
 +
| 113
 +
|-
 +
| <code>KEY_CODE_R = $0072;</code>
 +
| 114
 +
|-
 +
| <code>KEY_CODE_S = $0073;</code>
 +
| 115
 +
|-
 +
| <code>KEY_CODE_T = $0074;</code>
 +
| 116
 +
|-
 +
| <code>KEY_CODE_U = $0075;</code>
 +
| 117
 +
|-
 +
| <code>KEY_CODE_V = $0076;</code>
 +
| 118
 +
|-
 +
| <code>KEY_CODE_W = $0077;</code>
 +
| 119
 +
|-
 +
| <code>KEY_CODE_X = $0078;</code>
 +
| 120
 +
|-
 +
| <code>KEY_CODE_Y = $0079;</code>
 +
| 121
 +
|-
 +
| <code>KEY_CODE_Z = $007A;</code>
 +
| 122
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Punctuation''
 +
|-
 +
| <code>KEY_CODE_LEFT_BRACE = $007B;</code>
 +
| 123 (Curly Bracket)
 +
|-
 +
| <code>KEY_CODE_PIPE = $007C;</code>
 +
| 124 (Vertical Bar)
 +
|-
 +
| <code>KEY_CODE_RIGHT_BRACE = $007D;</code>
 +
| 125 (Curly Bracket)
 +
|-
 +
| <code>KEY_CODE_TILDE = $007E;</code>
 +
| 126
 +
|-
 +
| <code>KEY_CODE_DELETE </code>
 +
| (See above)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Latin-1 Supplement Characters (0080-00FF)''
 +
|-
 +
| <code>KEY_CODE_INVERTED_EXCLAMATION = $00A1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CENT = $00A2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_POUND = $00A3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CURRENCY = $00A4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_YEN = $00A5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_BROKEN_BAR = $00A6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SECTION = $00A7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS = $00A8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_COPYRIGHT = $00A9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_FEMININE = $00AA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LEFT_DOUBLE_ANGLE = $00AB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_NOT = $00AC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_REGISTERED = $00AE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MACRON = $00AF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DEGREE = $00B0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PLUS_MINUS = $00B1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SUPERSCRIPT_2 = $00B2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SUPERSCRIPT_3 = $00B3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE = $00B4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MICRO = $00B5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PILCROW = $00B6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MIDDLE_DOT = $00B7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CEDILLA = $00B8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SUPERSCRIPT_1 = $00B9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MASCULINE = $00BA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_RIGHT_DOUBLE_ANGLE = $00BB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ONE_QUARTER = $00BC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ONE_HALF = $00BD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_THREE_QUARTER = $00BE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INVERTED_QUESTION = $00BF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_GRAVE_A = $00C0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_A = $00C1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CIRCUMFLEX_A = $00C2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_TILDE_A = $00C3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_DIAERESIS_A = $00C4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_RING_A = $00C5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_AE = $00C6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CEDILLA_C = $00C7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_GRAVE_E = $00C8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_E = $00C9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CIRCUMFLEX_E = $00CA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_DIAERESIS_E  = $00CB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_GRAVE_I = $00CC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_I = $00CD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CIRCUMFLEX_I = $00CE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_DIAERESIS_I = $00CF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ETH = $00D0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_TILDE_N = $00D1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_GRAVE_O = $00D2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_O = $00D3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CIRCUMFLEX_O = $00D4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_TILDE_O = $00D5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_DIAERESIS_O = $00D6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MULTIPLY = $00D7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_STROKE_O = $00D8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_GRAVE_U = $00D9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_U = $00DA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_CIRCUMFLEX_U = $00DB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_DIAERESIS_U = $00DC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_ACUTE_Y = $00DD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CAPITAL_THORN = $00DE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SHARP_S = $00DF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GRAVE_A = $00E0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_A = $00E1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CIRCUMFLEX_A = $00E2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_TILDE_A = $00E3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_A = $00E4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_RING_A = $00E5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_AE = $00E6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CEDILLA_C = $00E7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GRAVE_E = $00E8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_E = $00E9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CIRCUMFLEX_E = $00EA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_E = $00EB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GRAVE_I = $00EC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_I = $00ED;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CIRCUMFLEX_I = $00EE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_I = $00EF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ETH = $00F0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_TILDE_N = $00F1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GRAVE_O = $00F2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_O = $00F3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CIRCUMFLEX_O = $00F4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_TILDE_O = $00F5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_O = $00F6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIVISION = $00F7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_STROKE_O = $00F8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GRAVE_U = $00F9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_U = $00FA;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CIRCUMFLEX_U = $00FB;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_U = $00FC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ACUTE_Y = $00FD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_THORN  = $00FE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DIAERESIS_Y = $00FF;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''General Punctuation (2000-206F)''
 +
|-
 +
| <code>KEY_CODE_LEFT_QUOTE = $2018;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_RIGHT_QUOTE = $2019;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Currency Symbols (20A0-20CF)''
 +
|-
 +
| <code>KEY_CODE_EURO = $20AC;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Private Area (E000-F8FF)''
 +
|-
 +
|colspan="2"|''Non Character Codes''
 +
|-
 +
| <code>KEY_CODE_CAPSLOCK = $E000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F1 = $E001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F2 = $E002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F3 = $E003;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F4 = $E004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F5  = $E005;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F6  = $E006; </code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F7 = $E007;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F8 = $E008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F9 = $E009;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F10 = $E00A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F11 = $E00B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F12 = $E00C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PRINTSCREEN = $E00D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SCROLLLOCK = $E00E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PAUSE = $E00F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INSERT = $E010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_HOME = $E011;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PAGEUP = $E012;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_END = $E013;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PAGEDN = $E014;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_RIGHT_ARROW = $E015;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LEFT_ARROW = $E016;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DOWN_ARROW = $E017;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_UP_ARROW = $E018;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_NUMLOCK = $E019;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_APPLICATION = $E01A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_POWER = $E01B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F13 = $E01C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F14 = $E01D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F15 = $E01E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F16 = $E01F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F17 = $E020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F18 = $E021;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F19 = $E022;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F20 = $E023;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F21 = $E024;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F22 = $E025;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F23 = $E026;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_F24 = $E027;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_EXECUTE = $E028;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_HELP = $E029;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MENU = $E02A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SELECT = $E02B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_STOP = $E02C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_AGAIN = $E02D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_UNDO = $E02E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CUT = $E02F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_COPY = $E030;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PASTE = $E031;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_FIND = $E032;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MUTE = $E033;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_VOLUMEUP = $E034;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_VOLUMEDOWN = $E035;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LOCKING_CAPSLOCK = $E036;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LOCKING_NUMLOCK = $E037;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LOCKING_SCROLLLOCK = $E038;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL1 = $E039;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL2 = $E03A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL3 = $E03B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL4 = $E03C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL5 = $E03D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL6 = $E03E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL7 = $E03F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL8 = $E040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_INTERNATIONAL9 = $E041;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG1 = $E042;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG2 = $E043;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG3 = $E044;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG4 = $E045;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG5 = $E046;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG6 = $E047;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG7 = $E048;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG8 = $E049;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_LANG9 = $E04A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ALT_ERASE = $E04B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SYSREQ = $E04C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CANCEL = $E04D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CLEAR = $E04E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_PRIOR = $E04F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_RETURN = $E050;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SEPARATOR = $E051;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_OUT = $E052;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_OPER = $E053;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CLEAR_AGAIN = $E054;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CRSEL_PROPS = $E055;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_EXSEL = $E056;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_00 = $E057;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_000 = $E058;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_THOUSANDS_SEPARATOR = $E059;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DECIMAL_SEPARATOR = $E05A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CURRENCY_UNIT = $E05B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CURRENCY_SUBUNIT = $E05C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_XOR = $E05D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_STORE = $E05E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_RECALL = $E05F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_CLEAR = $E060;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_ADD = $E061;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_SUBTRACT = $E062;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_MULTIPLY = $E063;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_MEM_DIVIDE = $E064;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CLEAR_ENTRY = $E065;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_BINARY = $E066;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_OCTAL = $E067;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DECIMAL = $E068;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_HEX = $E069;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CTRL = $E06A;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_SHIFT = $E06B;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_ALT = $E06C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_GUI = $E06D;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DOUBLE_AMPERSAND = $E06E;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_DOUBLE_PIPE = $E06F;</code>
 +
| &nbsp;
 +
|-
 +
| <code>KEY_CODE_CENTER = $E070;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>KEY_CODE_TRANSLATE_START = $0080;</code>
 +
| Key codes below this are direct characters in all code pages
 +
|-
 +
| <code>KEY_CODE_PRIVATE_START = $E000;</code>
 +
| Key codes in this range are private area mappings for non character keys
 +
|-
 +
| <code>KEY_CODE_PRIVATE_END = $F8FF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal scan codes''' <code> SCAN_CODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Keyboard scan codes are based on the USB HID Usages (See Section 10 of the Universal Serial Bus HID Usage Tables v1.12)
 +
|-
 +
|colspan="2"|These are the values reported in the ScanCode field of the TKeyboardData structure returned by the KeyboardRead function
 +
|-
 +
|colspan="2"|Any keyboard driver supporting legacy keyboards (eg PC/AT or PS/2) should translate the reported codes to be compatible with this set
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SCAN_CODE_NONE = 0;</code>
 +
| Reserved (no event indicated)
 +
|-
 +
| <code>SCAN_CODE_ROLLOVER = 1;</code>
 +
| Keyboard ErrorRollOver
 +
|-
 +
| <code>SCAN_CODE_POSTFAIL = 2;</code>
 +
| Keyboard POSTFail
 +
|-
 +
| <code>SCAN_CODE_ERROR = 3;</code>
 +
| Keyboard ErrorUndefined
 +
|-
 +
| <code>SCAN_CODE_A = 4;</code>
 +
| Keyboard a or A
 +
|-
 +
| <code>SCAN_CODE_B = 5;</code>
 +
| Keyboard b or B
 +
|-
 +
| <code>SCAN_CODE_C = 6;</code>
 +
| Keyboard c or C
 +
|-
 +
| <code>SCAN_CODE_D = 7;</code>
 +
| Keyboard d or D
 +
|-
 +
| <code>SCAN_CODE_E = 8;</code>
 +
| Keyboard e or E
 +
|-
 +
| <code>SCAN_CODE_F = 9;</code>
 +
| Keyboard f or F
 +
|-
 +
| <code>SCAN_CODE_G = 10;</code>
 +
| Keyboard g or G
 +
|-
 +
| <code>SCAN_CODE_H = 11;</code>
 +
| Keyboard h or H
 +
|-
 +
| <code>SCAN_CODE_I = 12;</code>
 +
| Keyboard i or I
 +
|-
 +
| <code>SCAN_CODE_J = 13;</code>
 +
| Keyboard j or J
 +
|-
 +
| <code>SCAN_CODE_K = 14;</code>
 +
| Keyboard k or K
 +
|-
 +
| <code>SCAN_CODE_L = 15;</code>
 +
| Keyboard l or L
 +
|-
 +
| <code>SCAN_CODE_M = 16;</code>
 +
| Keyboard m or M
 +
|-
 +
| <code>SCAN_CODE_N = 17;</code>
 +
| Keyboard n or N
 +
|-
 +
| <code>SCAN_CODE_O = 18;</code>
 +
| Keyboard o or O
 +
|-
 +
| <code>SCAN_CODE_P = 19;</code>
 +
| Keyboard p or P
 +
|-
 +
| <code>SCAN_CODE_Q = 20;</code>
 +
| Keyboard q or Q
 +
|-
 +
| <code>SCAN_CODE_R = 21;</code>
 +
| Keyboard r or R
 +
|-
 +
| <code>SCAN_CODE_S = 22;</code>
 +
| Keyboard s or S
 +
|-
 +
| <code>SCAN_CODE_T = 23;</code>
 +
| Keyboard t or T
 +
|-
 +
| <code>SCAN_CODE_U = 24;</code>
 +
| Keyboard u or U
 +
|-
 +
| <code>SCAN_CODE_V = 25;</code>
 +
| Keyboard v or V
 +
|-
 +
| <code>SCAN_CODE_W = 26;</code>
 +
| Keyboard w or W
 +
|-
 +
| <code>SCAN_CODE_X = 27;</code>
 +
| Keyboard x or X
 +
|-
 +
| <code>SCAN_CODE_Y = 28;</code>
 +
| Keyboard y or Y
 +
|-
 +
| <code>SCAN_CODE_Z = 29;</code>
 +
| Keyboard z or Z
 +
|-
 +
| <code>SCAN_CODE_1 = 30;</code>
 +
| Keyboard 1 or !
 +
|-
 +
| <code>SCAN_CODE_2 = 31;</code>
 +
| Keyboard 2 or @
 +
|-
 +
| <code>SCAN_CODE_3 = 32;</code>
 +
| Keyboard 3 or #
 +
|-
 +
| <code>SCAN_CODE_4 = 33;</code>
 +
| Keyboard 4 or $
 +
|-
 +
| <code>SCAN_CODE_5 = 34;</code>
 +
| Keyboard 5 or %
 +
|-
 +
| <code>SCAN_CODE_6 = 35;</code>
 +
| Keyboard 6 or ^
 +
|-
 +
| <code>SCAN_CODE_7 = 36;</code>
 +
| Keyboard 7 or &
 +
|-
 +
| <code>SCAN_CODE_8 = 37;</code>
 +
| Keyboard 8 or *
 +
|-
 +
| <code>SCAN_CODE_9 = 38;</code>
 +
| Keyboard 9 or (
 +
|-
 +
| <code>SCAN_CODE_0 = 39;</code>
 +
| Keyboard 0 or )
 +
|-
 +
| <code>SCAN_CODE_ENTER = 40;</code>
 +
| Keyboard Enter
 +
|-
 +
| <code>SCAN_CODE_ESCAPE = 41;</code>
 +
| Keyboard Escape
 +
|-
 +
| <code>SCAN_CODE_BACKSPACE = 42;</code>
 +
| Keyboard Backspace
 +
|-
 +
| <code>SCAN_CODE_TAB = 43;</code>
 +
| Keyboard Tab
 +
|-
 +
| <code>SCAN_CODE_SPACE = 44;</code>
 +
| Keyboard Spacebar
 +
|-
 +
| <code>SCAN_CODE_MINUS = 45;</code>
 +
| Keyboard - or _
 +
|-
 +
| <code>SCAN_CODE_EQUALS = 46;</code>
 +
| Keyboard = or +
 +
|-
 +
| <code>SCAN_CODE_LEFT_SQUARE = 47;</code>
 +
| Keyboard [ or Left Brace
 +
|-
 +
| <code>SCAN_CODE_RIGHT_SQUARE = 48;</code>
 +
| Keyboard ] or Right Brace
 +
|-
 +
| <code>SCAN_CODE_BACKSLASH = 49;</code>
 +
| Keyboard \ or Keypad Pipe
 +
|-
 +
| <code>SCAN_CODE_NONUS_NUMBER = 50;</code>
 +
| Keyboard Non-US # and ~
 +
|-
 +
| <code>SCAN_CODE_SEMICOLON = 51;</code>
 +
| Keyboard ; or :
 +
|-
 +
| <code>SCAN_CODE_APOSTROPHE = 52;</code>
 +
| Keyboard ' or "
 +
|-
 +
| <code>SCAN_CODE_GRAVE = 53;</code>
 +
| Keyboard ` or ~
 +
|-
 +
| <code>SCAN_CODE_COMMA = 54;</code>
 +
| Keyboard , or <
 +
|-
 +
| <code>SCAN_CODE_PERIOD = 55;</code>
 +
| Keyboard . or >
 +
|-
 +
| <code>SCAN_CODE_SLASH = 56;</code>
 +
| Keyboard / or ?
 +
|-
 +
| <code>SCAN_CODE_CAPSLOCK = 57;</code>
 +
| Keyboard Caps Lock
 +
|-
 +
| <code>SCAN_CODE_F1 = 58;</code>
 +
| Keyboard F1
 +
|-
 +
| <code>SCAN_CODE_F2 = 59;</code>
 +
| Keyboard F2
 +
|-
 +
| <code>SCAN_CODE_F3 = 60;</code>
 +
| Keyboard F3
 +
|-
 +
| <code>SCAN_CODE_F4 = 61;</code>
 +
| Keyboard F4
 +
|-
 +
| <code>SCAN_CODE_F5 = 62;</code>
 +
| Keyboard F5
 +
|-
 +
| <code>SCAN_CODE_F6 = 63;</code>
 +
| Keyboard F6
 +
|-
 +
| <code>SCAN_CODE_F7 = 64;</code>
 +
| Keyboard F7
 +
|-
 +
| <code>SCAN_CODE_F8 = 65;</code>
 +
| Keyboard F8
 +
|-
 +
| <code>SCAN_CODE_F9 = 66;</code>
 +
| Keyboard F9
 +
|-
 +
| <code>SCAN_CODE_F10 = 67;</code>
 +
| Keyboard F10
 +
|-
 +
| <code>SCAN_CODE_F11 = 68;</code>
 +
| Keyboard F11
 +
|-
 +
| <code>SCAN_CODE_F12 = 69;</code>
 +
| Keyboard F12
 +
|-
 +
| <code>SCAN_CODE_PRINTSCREEN = 70;</code>
 +
| Keyboard Print Screen
 +
|-
 +
| <code>SCAN_CODE_SCROLLLOCK = 71;</code>
 +
| Keyboard Scroll Lock
 +
|-
 +
| <code>SCAN_CODE_PAUSE = 72;</code>
 +
| Keyboard Pause
 +
|-
 +
| <code>SCAN_CODE_INSERT = 73;</code>
 +
| Keyboard Insert
 +
|-
 +
| <code>SCAN_CODE_HOME = 74;</code>
 +
| Keyboard Home
 +
|-
 +
| <code>SCAN_CODE_PAGEUP = 75;</code>
 +
| Keyboard PageUp
 +
|-
 +
| <code>SCAN_CODE_DELETE = 76;</code>
 +
| Keyboard Delete
 +
|-
 +
| <code>SCAN_CODE_END = 77;</code>
 +
| Keyboard End
 +
|-
 +
| <code>SCAN_CODE_PAGEDN = 78;</code>
 +
| Keyboard PageDn
 +
|-
 +
| <code>SCAN_CODE_RIGHT_ARROW = 79;</code>
 +
| Keyboard Right Arrow
 +
|-
 +
| <code>SCAN_CODE_LEFT_ARROW = 80;</code>
 +
| Keyboard Left Arrow
 +
|-
 +
| <code>SCAN_CODE_DOWN_ARROW = 81;</code>
 +
| Keyboard Down Arrow
 +
|-
 +
| <code>SCAN_CODE_UP_ARROW = 82;</code>
 +
| Keyboard Up Arrow
 +
|-
 +
| <code>SCAN_CODE_NUMLOCK = 83;</code>
 +
| Keyboard Num Lock
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_SLASH = 84;</code>
 +
| Keypad /
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_ASTERISK = 85;</code>
 +
| Keypad *
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MINUS = 86;</code>
 +
| Keypad -
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_PLUS = 87;</code>
 +
| Keypad +
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_ENTER = 88;</code>
 +
| Keypad Enter
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_1 = 89;</code>
 +
| Keypad 1 and End
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_2 = 90;</code>
 +
| Keypad 2 and Down Arrow
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_3 = 91;</code>
 +
| Keypad 3 and PageDn
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_4 = 92;</code>
 +
| Keypad 4 and Left Arrow
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_5 = 93;</code>
 +
| Keypad 5 and Center
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_6 = 94;</code>
 +
| Keypad 6 and Right Arrow
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_7 = 95;</code>
 +
| Keypad 7 and Home
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_8 = 96;</code>
 +
| Keypad 8 and Up Arrow
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_9 = 97;</code>
 +
| Keypad 9 and PageUp
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_0 = 98;</code>
 +
| Keypad 0 and Insert
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_PERIOD = 99;</code>
 +
| Keypad . and Delete
 +
|-
 +
| <code>SCAN_CODE_NONUS_BACKSLASH = 100;</code>
 +
| Keyboard Non-US \ and Keypad Pipe
 +
|-
 +
| <code>SCAN_CODE_APPLICATION = 101;</code>
 +
| Keyboard Application
 +
|-
 +
| <code>SCAN_CODE_POWER = 102;</code>
 +
| Keyboard Power
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_EQUALS = 103;</code>
 +
| Keypad =
 +
|-
 +
| <code>SCAN_CODE_F13 = 104;</code>
 +
| Keyboard F13
 +
|-
 +
| <code>SCAN_CODE_F14 = 105;</code>
 +
| Keyboard F14
 +
|-
 +
| <code>SCAN_CODE_F15 = 106;</code>
 +
| Keyboard F15
 +
|-
 +
| <code>SCAN_CODE_F16 = 107;</code>
 +
| Keyboard F16
 +
|-
 +
| <code>SCAN_CODE_F17 = 108;</code>
 +
| Keyboard F17
 +
|-
 +
| <code>SCAN_CODE_F18 = 109;</code>
 +
| Keyboard F18
 +
|-
 +
| <code>SCAN_CODE_F19 = 110;</code>
 +
| Keyboard F19
 +
|-
 +
| <code>SCAN_CODE_F20 = 111;</code>
 +
| Keyboard F20
 +
|-
 +
| <code>SCAN_CODE_F21 = 112;</code>
 +
| Keyboard F21
 +
|-
 +
| <code>SCAN_CODE_F22 = 113;</code>
 +
| Keyboard F22
 +
|-
 +
| <code>SCAN_CODE_F23 = 114;</code>
 +
| Keyboard F23
 +
|-
 +
| <code>SCAN_CODE_F24 = 115;</code>
 +
| Keyboard F24
 +
|-
 +
| <code>SCAN_CODE_EXECUTE = 116;</code>
 +
| Keyboard Execute
 +
|-
 +
| <code>SCAN_CODE_HELP = 117;</code>
 +
| Keyboard Help
 +
|-
 +
| <code>SCAN_CODE_MENU = 118;</code>
 +
| Keyboard Menu
 +
|-
 +
| <code>SCAN_CODE_SELECT = 119;</code>
 +
| Keyboard Select
 +
|-
 +
| <code>SCAN_CODE_STOP = 120;</code>
 +
| Keyboard Stop
 +
|-
 +
| <code>SCAN_CODE_AGAIN = 121;</code>
 +
| Keyboard Again
 +
|-
 +
| <code>SCAN_CODE_UNDO = 122;</code>
 +
| Keyboard Undo
 +
|-
 +
| <code>SCAN_CODE_CUT = 123;</code>
 +
| Keyboard Cut
 +
|-
 +
| <code>SCAN_CODE_COPY = 124;</code>
 +
| Keyboard Copy
 +
|-
 +
| <code>SCAN_CODE_PASTE = 125;</code>
 +
| Keyboard Paste
 +
|-
 +
| <code>SCAN_CODE_FIND = 126;</code>
 +
| Keyboard Find
 +
|-
 +
| <code>SCAN_CODE_MUTE = 127;</code>
 +
| Keyboard Mute
 +
|-
 +
| <code>SCAN_CODE_VOLUMEUP = 128;</code>
 +
| Keyboard Volume Up
 +
|-
 +
| <code>SCAN_CODE_VOLUMEDN = 129;</code>
 +
| Keyboard Volume Down
 +
|-
 +
| <code>SCAN_CODE_LOCKING_CAPSLOCK = 130;</code>
 +
| Keyboard Locking Caps Lock
 +
|-
 +
| <code>SCAN_CODE_LOCKING_NUMLOCK = 131;</code>
 +
| Keyboard Locking Num Lock
 +
|-
 +
| <code>SCAN_CODE_LOCKING_SCROLLLOCK = 132;</code>
 +
| Keyboard Locking Scroll Lock
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_COMMA = 133;</code>
 +
| Keypad Comma
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_EQUAL_SIGN = 134;</code>
 +
| Keypad Equal Sign
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL1 = 135;</code>
 +
| Keyboard International1
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL2 = 136;</code>
 +
| Keyboard International2
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL3 = 137;</code>
 +
| Keyboard International3
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL4 = 138;</code>
 +
| Keyboard International4
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL5 = 139;</code>
 +
| Keyboard International5
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL6 = 140;</code>
 +
| Keyboard International6
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL7 = 141;</code>
 +
| Keyboard International7
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL8 = 142;</code>
 +
| Keyboard International8
 +
|-
 +
| <code>SCAN_CODE_INTERNATIONAL9 = 143;</code>
 +
| Keyboard International9
 +
|-
 +
| <code>SCAN_CODE_LANG1 = 144;</code>
 +
| Keyboard LANG1
 +
|-
 +
| <code>SCAN_CODE_LANG2 = 145;</code>
 +
| Keyboard LANG2
 +
|-
 +
| <code>SCAN_CODE_LANG3 = 146;</code>
 +
| Keyboard LANG3
 +
|-
 +
| <code>SCAN_CODE_LANG4 = 147;</code>
 +
| Keyboard LANG4
 +
|-
 +
| <code>SCAN_CODE_LANG5 = 148;</code>
 +
| Keyboard LANG5
 +
|-
 +
| <code>SCAN_CODE_LANG6 = 149;</code>
 +
| Keyboard LANG6
 +
|-
 +
| <code>SCAN_CODE_LANG7 = 150;</code>
 +
| Keyboard LANG7
 +
|-
 +
| <code>SCAN_CODE_LANG8 = 151;</code>
 +
| Keyboard LANG8
 +
|-
 +
| <code>SCAN_CODE_LANG9 = 152;</code>
 +
| Keyboard LANG9
 +
|-
 +
| <code>SCAN_CODE_ALT_ERASE = 153;</code>
 +
| Keyboard Alternate Erase
 +
|-
 +
| <code>SCAN_CODE_SYSREQ = 154;</code>
 +
| Keyboard SysReq/Attention
 +
|-
 +
| <code>SCAN_CODE_CANCEL = 155;</code>
 +
| Keyboard Cancel
 +
|-
 +
| <code>SCAN_CODE_CLEAR = 156;</code>
 +
| Keyboard Clear
 +
|-
 +
| <code>SCAN_CODE_PRIOR = 157;</code>
 +
| Keyboard Prior
 +
|-
 +
| <code>SCAN_CODE_RETURN = 158;</code>
 +
| Keyboard Return
 +
|-
 +
| <code>SCAN_CODE_SEPARATOR = 159;</code>
 +
| Keyboard Separator
 +
|-
 +
| <code>SCAN_CODE_OUT = 160;</code>
 +
| Keyboard Out
 +
|-
 +
| <code>SCAN_CODE_OPER = 161;</code>
 +
| Keyboard Oper
 +
|-
 +
| <code>SCAN_CODE_CLEAR_AGAIN = 162;</code>
 +
| Keyboard Clear/Again
 +
|-
 +
| <code>SCAN_CODE_CRSEL_PROPS = 163;</code>
 +
| Keyboard CrSel/Props
 +
|-
 +
| <code>SCAN_CODE_EXSEL = 164;</code>
 +
| Keyboard ExSel
 +
|-
 +
|colspan="2"|''Codes 165 to 175 Reserved''
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_00 = 176;</code>
 +
| Keypad 00
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_000 = 177;</code>
 +
| Keypad 000
 +
|-
 +
| <code>SCAN_CODE_THOUSANDS_SEPARATOR = 178;</code>
 +
| Thousands Separator
 +
|-
 +
| <code>SCAN_CODE_DECIMAL_SEPARATOR = 179;</code>
 +
| Decimal Separator
 +
|-
 +
| <code>SCAN_CODE_CURRENCY_UNIT = 180;</code>
 +
| Currency Unit
 +
|-
 +
| <code>SCAN_CODE_CURRENCY_SUBUNIT = 181;</code>
 +
| Currenct Sub-unit
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_LEFT_BRACKET = 182;</code>
 +
| Keypad (
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_RIGHT_BRACKET = 183;</code>
 +
| Keypad )
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_LEFT_BRACE = 184;</code>
 +
| Keypad Left Brace
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_RIGHT_BRACE = 185;</code>
 +
| Keypad Right Brace
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_TAB = 186;</code>
 +
| Keypad Tab
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_BACKSPACE = 187;</code>
 +
| Keypad Backspace
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_A = 188;</code>
 +
| Keypad A
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_B = 189;</code>
 +
| Keypad B
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_C = 190;</code>
 +
| Keypad C
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_D = 191;</code>
 +
| Keypad D
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_E = 192;</code>
 +
| Keypad E
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_F = 193;</code>
 +
| Keypad F
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_XOR = 194;</code>
 +
| Keypad XOR
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_CARET = 195;</code>
 +
| Keypad ^
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_PERCENT = 196;</code>
 +
| Keypad %
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_LESSTHAN = 197;</code>
 +
| Keypad <
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_GREATERTHAN = 198;</code>
 +
| Keypad >
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_AMPERSAND = 199;</code>
 +
| Keypad &
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_DOUBLE_AMPERSAND = 200;</code>
 +
| Keypad &&
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_PIPE = 201;</code>
 +
| Keypad Pipe
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_DOUBLE_PIPE = 202;</code>
 +
| Keypad Double Pipe
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_COLON = 203;</code>
 +
| Keypad :
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_NUMBER = 204;</code>
 +
| Keypad #
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_SPACE = 205;</code>
 +
| Keypad Space
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_AT = 206;</code>
 +
| Keypad @
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_EXCLAMATION = 207;</code>
 +
| Keypad !
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_STORE = 208;</code>
 +
| Keypad Memory Store
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_RECALL = 209;</code>
 +
| Keypad Memory Recall
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_CLEAR = 210;</code>
 +
| Keypad Memory Clear
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_ADD = 211;</code>
 +
| Keypad Memory Add
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_SUB = 212;</code>
 +
| Keypad Memory Subtract
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_MULTIPLY = 213;</code>
 +
| Keypad Memory Multiply
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_MEM_DIVIDE = 214;</code>
 +
| Keypad Memory Divide
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_PLUS_MINUS = 215;</code>
 +
| Keypad +/-
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_CLEAR = 216;</code>
 +
| Keypad Clear
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_CLEAR_ENTRY = 217;</code>
 +
| Keypad Clear Entry
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_BINARY = 218;</code>
 +
| Keypad Binary
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_OCTAL = 219;</code>
 +
| Keypad Octal
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_DECIMAL = 220;</code>
 +
| Keypad Decimal
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_HEX = 221;</code>
 +
| Keypad Hexadecimal
 +
|-
 +
|colspan="2"|''Codes 222 to 223 Reserved''
 +
|-
 +
| <code>SCAN_CODE_LEFT_CTRL = 224;</code>
 +
| Keyboard LeftControl
 +
|-
 +
| <code>SCAN_CODE_LEFT_SHIFT = 225;</code>
 +
| Keyboard LeftShift
 +
|-
 +
| <code>SCAN_CODE_LEFT_ALT = 226;</code>
 +
| Keyboard LeftAlt
 +
|-
 +
| <code>SCAN_CODE_LEFT_GUI = 227;</code>
 +
| Keyboard Left GUI
 +
|-
 +
| <code>SCAN_CODE_RIGHT_CTRL = 228;</code>
 +
| Keyboard RightControl
 +
|-
 +
| <code>SCAN_CODE_RIGHT_SHIFT = 229;</code>
 +
| Keyboard RightShift
 +
|-
 +
| <code>SCAN_CODE_RIGHT_ALT = 230;</code>
 +
| Keyboard RightAlt
 +
|-
 +
| <code>SCAN_CODE_RIGHT_GUI = 231;</code>
 +
| Keyboard Right GUI
 +
|-
 +
|colspan="2"|''Codes 232 to 65535 Reserved''
 +
|-
 +
| <code>SCAN_CODE_RESERVED_255 = 255;</code>
 +
| Reserved
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Alternate names for above''
 +
|-
 +
| <code>SCAN_CODE_EXCLAMATION = 30;</code>
 +
| Keyboard 1 or !
 +
|-
 +
| <code>SCAN_CODE_AT = 31;</code>
 +
| Keyboard 2 or @
 +
|-
 +
| <code>SCAN_CODE_NUMBER = 32;</code>
 +
| Keyboard 3 or #
 +
|-
 +
| <code>SCAN_CODE_CURRENCY = 33;</code>
 +
| Keyboard 4 or $
 +
|-
 +
| <code>SCAN_CODE_PERCENT = 34;</code>
 +
| Keyboard 5 or %
 +
|-
 +
| <code>SCAN_CODE_CARET = 35;</code>
 +
| Keyboard 6 or ^
 +
|-
 +
| <code>SCAN_CODE_AMPERSAND = 36;</code>
 +
| Keyboard 7 or &
 +
|-
 +
| <code>SCAN_CODE_ASTERISK = 37;</code>
 +
| Keyboard 8 or *
 +
|-
 +
| <code>SCAN_CODE_LEFT_BRACKET = 38;</code>
 +
| Keyboard 9 or (
 +
|-
 +
| <code>SCAN_CODE_RIGHT_BRACKET = 39;</code>
 +
| Keyboard 0 or )
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SCAN_CODE_DASH = 45;</code>
 +
| Keyboard - or _
 +
|-
 +
| <code>SCAN_CODE_UNDERSCORE = 45;</code>
 +
| Keyboard - or _
 +
|-
 +
| <code>SCAN_CODE_PLUS = 46;</code>
 +
| Keyboard = or +
 +
|-
 +
| <code>SCAN_CODE_LEFT_BRACE = 47;</code>
 +
| Keyboard [ or Left Brace
 +
|-
 +
| <code>SCAN_CODE_RIGHT_BRACE = 48;</code>
 +
| Keyboard ] or Right Brace
 +
|-
 +
| <code>SCAN_CODE_PIPE = 49;</code>
 +
| Keyboard \ or Keypad Pipe
 +
|-
 +
| <code>SCAN_CODE_NONUS_TILDE = 50;</code>
 +
| Keyboard Non-US # and ~
 +
|-
 +
| <code>SCAN_CODE_COLON = 51;</code>
 +
| Keyboard ; or :
 +
|-
 +
| <code>SCAN_CODE_QUOTATION = 52;</code>
 +
| Keyboard ' or "
 +
|-
 +
| <code>SCAN_CODE_TILDE = 53;</code>
 +
| Keyboard ` or ~
 +
|-
 +
| <code>SCAN_CODE_LESSTHAN = 54;</code>
 +
| Keyboard , or <
 +
|-
 +
| <code>SCAN_CODE_GREATERTHAN = 55;</code>
 +
| Keyboard . or >
 +
|-
 +
| <code>SCAN_CODE_QUESTION = 56;</code>
 +
| Keyboard / or ?
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SCAN_CODE_ALTGR = SCAN_CODE_RIGHT_ALT;</code>
 +
| Keyboard RightAlt
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_FIRST = SCAN_CODE_NUMLOCK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SCAN_CODE_KEYPAD_LAST = SCAN_CODE_KEYPAD_PERIOD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal color''' <code> COLOR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Basic 32 bit RGB colors (8 bit Transparency, 8 bit Red, 8 bit Green, 8 bit Blue)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>COLOR_NONE = $00000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_BLACK = $FF000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_RED = $FFFF0000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_ORANGE = $FFFF8500;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_LEAFGREEN = $FF009900;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_GREEN = $FF00FF00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_YELLOW = $FFFFFF00;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_DARKGREEN = $FF254117;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_DARKGRAY = $FF595959;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_BROWN = $FF6F4E37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_INDIGO = $FF2E0854;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_RASPBERRY = $FFE30B5C;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_GRAY = $FF808080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_PURPLE = $FF4B0082;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_PINK = $FFFF0090;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_DARKBLUE = $FF0000A0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_SILVER = $FFC0C0C0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_BLUEIVY = $FF3090C7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_MIDGRAY = $FFE0E0E0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_LIGHTGRAY = $FFF7F7F7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_BLUE = $FF0000FF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_MAGENTA = $FFFF00FF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_CYAN = $FF00FFFF;</code>
 +
| &nbsp;
 +
|-
 +
| <code>COLOR_WHITE = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
|colspan="2"|''Color format constants''
 +
|-
 +
|colspan="2"|See: https://en.wikipedia.org/wiki/Color_depth and https://en.wikipedia.org/wiki/RGBA_color_space
 +
|-
 +
| <code>COLOR_FORMAT_ARGB32 = 0;</code>
 +
| 32 bits per pixel Alpha/Red/Green/Blue (ARGB8888)
 +
|-
 +
| <code>COLOR_FORMAT_ABGR32 = 1;</code>
 +
| 32 bits per pixel Alpha/Blue/Green/Red (ABGR8888)
 +
|-
 +
| <code>COLOR_FORMAT_RGBA32 = 2;</code>
 +
| 32 bits per pixel Red/Green/Blue/Alpha (RGBA8888)
 +
|-
 +
| <code>COLOR_FORMAT_BGRA32 = 3;</code>
 +
| 32 bits per pixel Blue/Green/Red/Alpha (BGRA8888)
 +
|-
 +
| <code>COLOR_FORMAT_URGB32 = 4;</code>
 +
| 32 bits per pixel Unused/Red/Green/Blue (URGB8888)
 +
|-
 +
| <code>COLOR_FORMAT_UBGR32 = 5;</code>
 +
| 32 bits per pixel Unused/Blue/Green/Red (UBGR8888)
 +
|-
 +
| <code>COLOR_FORMAT_RGBU32 = 6;</code>
 +
| 32 bits per pixel Red/Green/Blue/Unused (RGBU8888)
 +
|-
 +
| <code>COLOR_FORMAT_BGRU32 = 7;</code>
 +
| 32 bits per pixel Blue/Green/Red/Unused (BGRU8888)
 +
|-
 +
| <code>COLOR_FORMAT_RGB24 = 8;</code>
 +
| 24 bits per pixel Red/Green/Blue (RGB888)
 +
|-
 +
| <code>COLOR_FORMAT_BGR24 = 9;</code>
 +
| 24 bits per pixel Blue/Green/Red (BGR888)
 +
|-
 +
| <code>COLOR_FORMAT_RGB16 = 10;</code>
 +
| 16 bits per pixel Red/Green/Blue (RGB565)
 +
|-
 +
| <code>COLOR_FORMAT_BGR16 = 11;</code>
 +
| 16 bits per pixel Blue/Green/Red (BGR565)
 +
|-
 +
| <code>COLOR_FORMAT_RGB15 = 12;</code>
 +
| 15 bits per pixel Red/Green/Blue (RGB555)
 +
|-
 +
| <code>COLOR_FORMAT_BGR15 = 13;</code>
 +
| 15 bits per pixel Blue/Green/Red (BGR555)
 +
|-
 +
| <code>COLOR_FORMAT_RGB8 = 14;</code>
 +
| 8 bits per pixel Red/Green/Blue (RGB332)
 +
|-
 +
| <code>COLOR_FORMAT_BGR8 = 15;</code>
 +
| 8 bits per pixel Blue/Green/Red (BGR233)
 +
|-
 +
| <code>COLOR_FORMAT_GRAY16 = 16;</code>
 +
| 16 bits per pixel grayscale
 +
|-
 +
| <code>COLOR_FORMAT_GRAY8 = 17;</code>
 +
| 8 bits per pixel grayscale
 +
|-
 +
| <code>COLOR_FORMAT_INDEX16 = 18;</code>
 +
| 16 bits per pixel palette index
 +
|-
 +
| <code>COLOR_FORMAT_INDEX8 = 19;</code>
 +
| 8 bits per pixel palette index
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>COLOR_FORMAT_MAX = 19;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>COLOR_FORMAT_DEFAULT = COLOR_FORMAT_ARGB32;</code>
 +
| The default color format (Used for the COLOR_* constants above)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>COLOR_FORMAT_UNKNOWN = LongWord(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal size''' <code> SIZE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|From /include/linux/sizes.h
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIZE_0 = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SIZE_1 = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_2 = $00000002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_4 = $00000004;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_8 = $00000008;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_16 = $00000010;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_32 = $00000020;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_64 = $00000040;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_128 = $00000080;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_256 = $00000100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_512 = $00000200;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIZE_1K = $00000400;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_2K = $00000800;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_4K = $00001000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_8K = $00002000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_16K = $00004000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_32K = $00008000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_64K = $00010000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_128K = $00020000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_256K = $00040000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_512K = $00080000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIZE_1M = $00100000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_2M = $00200000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_4M = $00400000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_8M = $00800000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_16M = $01000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_32M = $02000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_64M = $04000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_128M = $08000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_256M = $10000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_512M = $20000000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIZE_1G = $40000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_2G = $80000000;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SIZE_4G = $100000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SIZE_8G = $200000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal frequency''' <code> FREQUENCY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FREQUENCY_KHZ = 1000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FREQUENCY_MHZ = 1000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FREQUENCY_GHZ = 1000000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal bit''' <code> BITS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BITS_PER_BYTE = 8;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>BITS_PER_WORD = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BITS_PER_LONG = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BITS_PER_LONG_LONG = 64;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal max''' <code> MAX_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MAX_BYTE = Byte(-1);</code>
 +
| style="width: 50%;"|0xFF
 +
|-
 +
| <code>MAX_WORD = Word(-1);</code>
 +
| 0xFFFF
 +
|-
 +
| <code>MAX_LONG = LongWord(-1);</code>
 +
| 0xFFFFFFFF
 +
|-
 +
| <code>MAX_LONG_LONG = UInt64(-1);</code>
 +
| 0xFFFFFFFFFFFFFFFF
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Universal time''' <code> MILLISECONDS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MILLISECONDS_PER_SECOND = 1000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MICROSECONDS_PER_SECOND = 1000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NANOSECONDS_PER_SECOND = 1000000000;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Ultibo time''' <code> TIME_TICKS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|100 nanosecond ticks since 1/1/1601
 +
|-
 +
|colspan="2"|Note: Nanoseconds is 10^9 so 100 nanosecond ticks is 10^7
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>TIME_TICKS_PER_MICROSECOND = 10;</code>
 +
| 10^7 / 10^6
 +
|-
 +
| <code>TIME_TICKS_PER_MILLISECOND = 10000;</code>
 +
| 10^7 / 10^3
 +
|-
 +
| <code>TIME_TICKS_PER_SECOND = 10000000;</code>
 +
| 10^7
 +
|-
 +
| <code>TIME_TICKS_PER_MINUTE = 600000000;</code>
 +
| 60 * 10^7
 +
|-
 +
| <code>TIME_TICKS_PER_HOUR = 36000000000;</code>
 +
| 60 * 60 * 10^7
 +
|-
 +
| <code>TIME_TICKS_PER_DAY = 864000000000;</code>
 +
| 24 * 60 * 60 * 10^7
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>TIME_TICKS_TO_1899 = 94353120000000000;</code>
 +
| Offset between 1/1/1601 (Ultibo) and 30/12/1899 (FreePascal)
 +
|-
 +
| <code>TIME_TICKS_TO_1970 = 116444736000000000;</code>
 +
| Offset between 1/1/1601 (Ultibo) and 1/1/1970 (Unix/Linux)
 +
|-
 +
| <code>TIME_TICKS_TO_1980 = 119600064000000000;</code>
 +
| Offset between 1/1/1601 (Ultibo) and 1/1/1980 (DOS)
 +
|-
 +
| <code>TIME_TICKS_TO_2001 = 126227808000000000;</code>
 +
| Offset between 1/1/1601 (Ultibo) and 1/1/2001 (Clock is assumed not set if time is less than this)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>TIME_TICKS_PER_10MILLISECONDS = 100000;</code>
 +
| 10^7 / 10^2
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Unix/Linux time''' <code> UNIX_TIME_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Seconds since 1/1/1970
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>UNIX_TIME_MILLISECONDS_PER_DAY = 86400000;</code>
 +
| 60*60*24*1000;
 +
|-
 +
| <code>UNIX_TIME_SECONDS_PER_DAY = 86400;</code>
 +
| 60*60*24;
 +
|-
 +
| <code>UNIX_TIME_DAYS_TO_1970 = 25569.0;</code>
 +
| Offset between 1899 (FreePascal) and 1970 (Unix/Linux)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''FreePascal time''' <code> PASCAL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|TDateTime starts at 30/12/1899
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>PASCAL_TIME_MILLISECONDS_PER_DAY = 86400000;</code>
 +
| 60*60*24*1000;
 +
|-
 +
| <code>PASCAL_TIME_SECONDS_PER_DAY = 86400;</code>
 +
| 60*60*24;
 +
|-
 +
| <code>PASCAL_TIME_DOS_TIME_START = 2162688;</code>
 +
| DOS date time value for start of DOS time (1/1/1980)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>PASCAL_DAY_OFFSET = 1.0;</code>
 +
| TDateTime value 1 day
 +
|-
 +
| <code>PASCAL_MINUTE_OFFSET = 0.000694444444444444;</code>
 +
| TDateTime value of 1 minute
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''System call''' <code> SYSTEM_CALL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SYSTEM_CALL_UNDEFINED = $00000000;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SYSTEM_CALL_CONTEXT_SWITCH = $00000001;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Machine type''' <code> MACHINE_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MACHINE_TYPE_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MACHINE_TYPE_BCM2708 = 1;</code>
 +
| Broadcom BCM2708 (Raspberry Pi)
 +
|-
 +
| <code>MACHINE_TYPE_BCM2709 = 2;</code>
 +
| Broadcom BCM2709 (Raspberry Pi 2)
 +
|-
 +
| <code>MACHINE_TYPE_BCM2710 = 3;</code>
 +
| Broadcom BCM2710 (Raspberry Pi 3)
 +
|-
 +
| <code>MACHINE_TYPE_VERSATILEPB = 4;</code>
 +
| ARM Versatile PB (QEMU)
 +
|-
 +
| <code>MACHINE_TYPE_BCM2711 = 5;</code>
 +
| Broadcom BCM2711 (Raspberry Pi 4)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Board type''' <code> BOARD_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>BOARD_TYPE_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>BOARD_TYPE_RPIA = 1;</code>
 +
| Raspberry Pi Model A
 +
|-
 +
| <code>BOARD_TYPE_RPIB = 2;</code>
 +
| Raspberry Pi Model B
 +
|-
 +
| <code>BOARD_TYPE_RPI_COMPUTE = 3;</code>
 +
| Raspberry Pi Compute Module
 +
|-
 +
| <code>BOARD_TYPE_RPIA_PLUS = 4;</code>
 +
| Raspberry Pi Model A+
 +
|-
 +
| <code>BOARD_TYPE_RPIB_PLUS = 5;</code>
 +
| Raspberry Pi Model B+
 +
|-
 +
| <code>BOARD_TYPE_RPI2B = 6;</code>
 +
| Raspberry Pi 2 Model B
 +
|-
 +
| <code>BOARD_TYPE_RPI_ZERO = 7;</code>
 +
| Raspberry Pi Model Zero
 +
|-
 +
| <code>BOARD_TYPE_PC_X86 = 22;</code>
 +
| PC x86
 +
|-
 +
| <code>BOARD_TYPE_PC_X86_64 = 23;</code>
 +
| PC x86 64bit
 +
|-
 +
| <code>BOARD_TYPE_RPI3B = 24;</code>
 +
| Raspberry Pi 3 Model B
 +
|-
 +
| <code>BOARD_TYPE_QEMUVPB = 25;</code>
 +
| QEMU Versatile PB
 +
|-
 +
| <code>BOARD_TYPE_RPI_COMPUTE3 = 26;</code>
 +
| Raspberry Pi Compute Module 3
 +
|-
 +
| <code>BOARD_TYPE_RPI_ZERO_W = 27;</code>
 +
| Raspberry Pi Model Zero W
 +
|-
 +
| <code>BOARD_TYPE_RPI3B_PLUS = 28;</code>
 +
| Raspberry Pi 3 Model B+
 +
|-
 +
| <code>BOARD_TYPE_RPI3A_PLUS = 29;</code>
 +
| Raspberry Pi 3 Model A+
 +
|-
 +
| <code>BOARD_TYPE_RPI_COMPUTE3_PLUS = 30;</code>
 +
| Raspberry Pi Compute Module 3+
 +
|-
 +
| <code>BOARD_TYPE_RPI4B = 31;</code>
 +
| Raspberry Pi 4 Model B
 +
|-
 +
| <code>BOARD_TYPE_RPI400 = 32;</code>
 +
| Raspberry Pi 400
 +
|-
 +
| <code>BOARD_TYPE_RPI_COMPUTE4 = 33;</code>
 +
| Raspberry Pi Compute Module 4
 +
|-
 +
| <code>BOARD_TYPE_RPI_ZERO2_W = 34;</code>
 +
| Raspberry Pi Model Zero 2 W
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU arch''' <code> CPU_ARCH_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_ARCH_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ARCH_ARM32 = 1;</code>
 +
| ARM Arch 32 (ARMv6/ARMv7)(ARMv8 in 32bit mode)
 +
|-
 +
| <code>CPU_ARCH_ARM64 = 2;</code>
 +
| ARM Arch 64 (ARMv8)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU type''' <code> CPU_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_TYPE_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_TYPE_ARMV6 = 1;</code>
 +
| ARMv6 (ARM1176 etc)
 +
|-
 +
| <code>CPU_TYPE_ARMV7 = 2;</code>
 +
| ARMv7 (Cortex A5/A7/A8/A9/A15/A17 etc)
 +
|-
 +
| <code>CPU_TYPE_ARMV8 = 3;</code>
 +
| ARMv8 (Cortex A53/A57/A72 etc)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU model''' <code> CPU_MODEL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_MODEL_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MODEL_ARM1176JZFS = 1;</code>
 +
| ARM1176JZF-S
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A5 = 2;</code>
 +
| ARM Cortex-A5
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A7 = 3;</code>
 +
| ARM Cortex-A7
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A8 = 4;</code>
 +
| ARM Cortex-A8
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A9 = 5;</code>
 +
| ARM Cortex-A9
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A15 = 6;</code>
 +
| ARM Cortex-A15
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A17 = 7;</code>
 +
| ARM Cortex-A17
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A53 = 8;</code>
 +
| ARM Cortex-A53
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A57 = 9;</code>
 +
| ARM Cortex-A57
 +
|-
 +
| <code>CPU_MODEL_CORTEX_A72 = 10;</code>
 +
| ARM Cortex-A72
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU description''' <code> CPU_DESCRIPTION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_DESCRIPTION_UNKNOWN = 'Unknown';</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_ARM1176JZFS = 'ARM1176JZF-S';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A5 = 'ARM Cortex-A5';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A5_MP = 'ARM Cortex-A5 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A7 = 'ARM Cortex-A7 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A8 = 'ARM Cortex-A8';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A9 = 'ARM Cortex-A9';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A9_MP = 'ARM Cortex-A9 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A15 = 'ARM Cortex-A15 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A17 = 'ARM Cortex-A17 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A53 = 'ARM Cortex-A53 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A57 = 'ARM Cortex-A57 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_DESCRIPTION_CORTEX_A72 = 'ARM Cortex-A72 MPCore';</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU state''' <code> CPU_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_STATE_NONE = (0 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_STATE_MMU_ENABLED = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_STATE_DATA_CACHE_ENABLED = (1 shl 1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_STATE_INSTRUCTION_CACHE_ENABLED = (1 shl 2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_STATE_BRANCH_PREDICTION_ENABLED = (1 shl 3);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU group''' <code> CPU_GROUP__* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_GROUP_0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_GROUP_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_4 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_5 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_6 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_7 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_8 = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_9 = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_10 = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_11 = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_12 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_13 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_14 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_15 = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_16 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_17 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_18 = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_19 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_20 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_21 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_22 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_23 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_24 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_25 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_26 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_27 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_28 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_29 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_30 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_GROUP_31 = 31;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_GROUP_ALL = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_GROUP_MAX = CPU_GROUP_31;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU Id''' <code> CPU_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_ID_0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_ID_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_4 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_5 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_6 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_7 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_8 = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_9 = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_10 = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_11 = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_12 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_13 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_14 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_15 = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_16 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_17 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_18 = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_19 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_20 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_21 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_22 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_23 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_24 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_25 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_26 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_27 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_28 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_29 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_30 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_ID_31 = 31;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_ID_ALL = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_ID_MAX = CPU_ID_31;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU mask''' <code> CPU_MASK_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_MASK_0 = (1 shl CPU_ID_0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_MASK_1 = (1 shl CPU_ID_1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_2 = (1 shl CPU_ID_2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_3 = (1 shl CPU_ID_3);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_4 = (1 shl CPU_ID_4);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_5 = (1 shl CPU_ID_5);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_6 = (1 shl CPU_ID_6);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_7 = (1 shl CPU_ID_7);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_8 = (1 shl CPU_ID_8);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_9 = (1 shl CPU_ID_9);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_10 = (1 shl CPU_ID_10);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_11 = (1 shl CPU_ID_11);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_12 = (1 shl CPU_ID_12);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_13 = (1 shl CPU_ID_13);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_14 = (1 shl CPU_ID_14);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_15 = (1 shl CPU_ID_15);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_16 = (1 shl CPU_ID_16);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_17 = (1 shl CPU_ID_17);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_18 = (1 shl CPU_ID_18);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_19 = (1 shl CPU_ID_19);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_20 = (1 shl CPU_ID_20);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_21 = (1 shl CPU_ID_21);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_22 = (1 shl CPU_ID_22);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_23 = (1 shl CPU_ID_23);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_24 = (1 shl CPU_ID_24);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_25 = (1 shl CPU_ID_25);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_26 = (1 shl CPU_ID_26);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_27 = (1 shl CPU_ID_27);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_28 = (1 shl CPU_ID_28);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_29 = (1 shl CPU_ID_29);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_30 = (1 shl CPU_ID_30);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_31 = (1 shl CPU_ID_31);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_MASK_NONE = $00000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_MASK_ALL = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''CPU affinity''' <code> CPU_AFFINITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CPU_AFFINITY_0 = (1 shl CPU_ID_0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_1 = (1 shl CPU_ID_1);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_2 = (1 shl CPU_ID_2);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_3 = (1 shl CPU_ID_3);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_4 = (1 shl CPU_ID_4);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_5 = (1 shl CPU_ID_5);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_6 = (1 shl CPU_ID_6);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_7 = (1 shl CPU_ID_7);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_8 = (1 shl CPU_ID_8);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_9 = (1 shl CPU_ID_9);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_10 = (1 shl CPU_ID_10);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_11 = (1 shl CPU_ID_11);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_12 = (1 shl CPU_ID_12);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_13 = (1 shl CPU_ID_13);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_14 = (1 shl CPU_ID_14);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_15 = (1 shl CPU_ID_15);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_16 = (1 shl CPU_ID_16);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_17 = (1 shl CPU_ID_17);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_18 = (1 shl CPU_ID_18);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_19 = (1 shl CPU_ID_19);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_20 = (1 shl CPU_ID_20);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_21 = (1 shl CPU_ID_21);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_22 = (1 shl CPU_ID_22);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_23 = (1 shl CPU_ID_23);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_24 = (1 shl CPU_ID_24);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_25 = (1 shl CPU_ID_25);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_26 = (1 shl CPU_ID_26);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_27 = (1 shl CPU_ID_27);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_28 = (1 shl CPU_ID_28);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_29 = (1 shl CPU_ID_29);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_30 = (1 shl CPU_ID_30);</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_31 = (1 shl CPU_ID_31);</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_NONE = $00000000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CPU_AFFINITY_ALL = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''FPU type''' <code> FPU_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FPU_TYPE_UNKNOWN = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FPU_TYPE_SOFT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FPU_TYPE_VFPV2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FPU_TYPE_VFPV3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FPU_TYPE_VFPV4 = 4;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''FPU state''' <code> FPU_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FPU_STATE_NONE = (0 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FPU_STATE_ENABLED = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPU type''' <code> GPU_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPU_TYPE_UNKNOWN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPU_TYPE_VC4 = 1;</code>
 +
| Broadcom VideoCore IV
 +
|-
 +
| <code>GPU_TYPE_MALI400 = 2;</code>
 +
| ARM Mali 400
 +
|-
 +
| <code>GPU_TYPE_MALI450 = 3;</code>
 +
| ARM Mali 450
 +
|-
 +
| <code>GPU_TYPE_GC880 = 4;</code>
 +
| Vivante GC880
 +
|-
 +
| <code>GPU_TYPE_GC2000 = 5;</code>
 +
| Vivante GC2000
 +
|-
 +
| <code>GPU_TYPE_VC6 = 6;</code>
 +
| Broadcom VideoCore VI
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPU state''' <code> GPU_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPU_STATE_NONE = (0 shl 0);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>GPU_STATE_ENABLED = (1 shl 0);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Cache type''' <code> CACHE_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CACHE_TYPE_NONE = 0;</code>
 +
| No Cache
 +
|-
 +
| <code>CACHE_TYPE_DATA = 1;</code>
 +
| Data Cache Only
 +
|-
 +
| <code>CACHE_TYPE_INSTRUCTION = 2;</code>
 +
| Instruction Cache Only
 +
|-
 +
| <code>CACHE_TYPE_SEPARATE = 3;</code>
 +
| Separate Data and Instruction Caches
 +
|-
 +
| <code>CACHE_TYPE_UNIFIED = 4;</code>
 +
| Unified Data and Instruction Cache
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''DMA direction''' <code> DMA_DIR_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DMA_DIR_NONE = 0;</code>
 +
| No direction (No special handling by controller)
 +
|-
 +
| <code>DMA_DIR_MEM_TO_MEM = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DIR_MEM_TO_DEV = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DIR_DEV_TO_MEM = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DIR_DEV_TO_DEV = 4;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''DMA DREQ Id''' <code> DMA_DREQ_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>DMA_DREQ_ID_NONE = 0;</code>
 +
| No peripheral gating (memory to memory transfer)
 +
|-
 +
| <code>DMA_DREQ_ID_UART_TX = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART_RX = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI_TX = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI_RX = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI_SLAVE_TX = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI_SLAVE_RX = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PCM_TX = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PCM_RX = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PWM = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_MMC = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SDHOST = 11;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|Additional and aliased constants (Where applicable)
 +
|-
 +
| <code>DMA_DREQ_ID_UART0_TX = DMA_DREQ_ID_UART_TX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART0_RX = DMA_DREQ_ID_UART_RX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART1_TX = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART1_RX = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART2_TX = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART2_RX = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART3_TX = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART3_RX = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART4_TX = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART4_RX = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART5_TX = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_UART5_RX = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI0_TX = DMA_DREQ_ID_SPI_TX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI0_RX = DMA_DREQ_ID_SPI_RX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI1_TX = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI1_RX = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI2_TX = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI2_RX = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI3_TX = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI3_RX = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI4_TX = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI4_RX = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI5_TX = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code> DMA_DREQ_ID_SPI5_RX = 31;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI6_TX = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_SPI6_RX = 33;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PCM0_TX = DMA_DREQ_ID_PCM_TX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PCM0_RX = DMA_DREQ_ID_PCM_RX;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PWM0 = DMA_DREQ_ID_PWM;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_PWM1 = 34;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_EMMC0 = DMA_DREQ_ID_MMC;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_EMMC1 = DMA_DREQ_ID_SDHOST;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DMA_DREQ_ID_EMMC2 = 35;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPIO pin''' <code> GPIO_PIN_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO_PIN_0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>GPIO_PIN_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_4 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_5 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_6 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_7 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_8 = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_9 = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_10 = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_11 = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_12 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_13 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_14 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_15 = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_16 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_17 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_18 = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_19 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_20 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_21 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_22 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_23 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_24 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_25 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_26 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_27 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_28 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_29 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_30 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_31 = 31;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_32 = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_33 = 33;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_34 = 34;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_35 = 35;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_36 = 36;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_37 = 37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_38 = 38;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_39 = 39;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_40 = 40;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_41 = 41;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_42 = 42;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_43 = 43;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_44 = 44;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_45 = 45;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_46 = 46;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_47 = 47;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_48 = 48;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_49 = 49;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_50 = 50;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_51 = 51;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_52 = 52;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_53 = 53;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_54 = 54;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_55 = 55;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_56 = 56;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_57 = 57;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_58 = 58;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_59 = 59;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PIN_60 = 60;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_PIN_MAX = 60;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_PIN_UNKNOWN = LongWord(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPIO function''' <code> GPIO_FUNCTION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO_FUNCTION_IN = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_OUT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT0 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT1 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT2 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT3 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT4 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_ALT5 = 7;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_FUNCTION_UNKNOWN = LongWord(-1);</code>
 +
| Returned by GPIOFunctionGet on error (eg device does not support reading the function state)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPIO level''' <code> GPIO_LEVEL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO_LEVEL_LOW = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_LEVEL_HIGH = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_LEVEL_UNKNOWN = LongWord(-1);</code>
 +
| Returned by GPIOInputGet/Wait on error (eg device does not exist)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPIO pull''' <code> GPIO_PULL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO_PULL_NONE = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PULL_UP = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_PULL_DOWN = 2;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_PULL_UNKNOWN = LongWord(-1);</code>
 +
| Returned by GPIOPullGet on error (eg device does not support reading the PullUp/Down state)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''GPIO trigger''' <code> GPIO_TRIGGER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>GPIO_TRIGGER_NONE = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_LOW = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_HIGH  = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_RISING = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_FALLING = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_ASYNC_RISING = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_ASYNC_FALLING = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_EDGE = 7;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>GPIO_TRIGGER_UNKNOWN = LongWord(-1);</code>
 +
| Passed to GPIO callback event when device does not support determining the trigger source
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Virtual GPIO pin''' <code> VIRTUAL_GPIO_PIN_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_0 = GPIO_PIN_0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_1 = GPIO_PIN_1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_2 = GPIO_PIN_2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_3 = GPIO_PIN_3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_4 = GPIO_PIN_4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_5 = GPIO_PIN_5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_6 = GPIO_PIN_6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_PIN_7 = GPIO_PIN_7;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Virtual GPIO function''' <code> VIRTUAL_GPIO_FUNCTION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>VIRTUAL_GPIO_FUNCTION_IN = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>VIRTUAL_GPIO_FUNCTION_OUT = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Serial baud rate''' <code> SERIAL_BAUD_RATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SERIAL_BAUD_RATE_DEFAULT = 0;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SERIAL_BAUD_RATE_STANDARD = 115200;</code>
 +
| If SERIAL_BAUD_RATE_DEFAULT is passed to SerialOpen then this is the baud rate to use
 +
|-
 +
| <code>SERIAL_BAUD_RATE_FALLBACK = 9600;</code>
 +
| The fallback baud rate if SERIAL_BAUD_RATE_STANDARD is not supported by the device
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Serial data bit''' <code> SERIAL_DATA_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SERIAL_DATA_8BIT = 8;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SERIAL_DATA_7BIT = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_DATA_6BIT = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_DATA_5BIT = 5;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Serial stop bit''' <code> SERIAL_STOP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SERIAL_STOP_1BIT = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_STOP_2BIT = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_STOP_1BIT5 = 3;</code>
 +
| 1.5 Stop bits
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Serial parity''' <code> SERIAL_PARITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SERIAL_PARITY_NONE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SERIAL_PARITY_ODD = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_PARITY_EVEN = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_PARITY_MARK = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_PARITY_SPACE = 4;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Serial flow control''' <code> SERIAL_FLOW_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SERIAL_FLOW_NONE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>SERIAL_FLOW_RTS_CTS = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SERIAL_FLOW_DSR_DTR = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''I2C address''' <code> I2C_ADDRESS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>I2C_ADDRESS_INVALID = Word(-1);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SPI mode''' <code> SPI_MODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SPI_MODE_4WIRE = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_MODE_3WIRE = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_MODE_LOSSI = 2;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_MODE_UNKNOWN = LongWord(-1);</code>
 +
| Returned by SPIGetMode on error (eg device does not exist)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SPI chip select''' <code> SPI_CS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SPI_CS_0 = 0;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_4 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_5 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_6 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_7 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_8 = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_9 = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_10 = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_11 = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_12 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_13 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_14 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SPI_CS_15 = 15;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_CS_MAX = 15;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_CS_NONE = LongWord(-1);</code>
 +
| Special value for No Chip Select to allow external control of additional CS lines
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SPI clock phase (CPHA)''' <code> SPI_CLOCK_PHASE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SPI_CLOCK_PHASE_LOW = 0;</code>
 +
| Clock edge rising or falling for data input/output
 +
|-
 +
| <code>SPI_CLOCK_PHASE_HIGH = 1;</code>
 +
| See https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus for more information
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_CLOCK_PHASE_UNKNOWN = LongWord(-1);</code>
 +
| Returned by SPIGetClockPhase on error (eg device does not exist)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SPI clock polarity (CPOL)''' <code> SPI_CLOCK_POLARITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SPI_CLOCK_POLARITY_LOW = 0;</code>
 +
| Clock is low when not transmitting
 +
|-
 +
| <code>SPI_CLOCK_POLARITY_HIGH = 1;</code>
 +
| Clock is high when not transmitting
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_CLOCK_POLARITY_UNKNOWN = LongWord(-1);</code>
 +
| Returned by SPIGetClockPolarity on error (eg device does not exist)
 +
|-
 +
|}
 +
</div></div>
 +
<br />   
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''SPI chip select polarity (CSPOL)''' <code> SPI_CS_POLARITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>SPI_CS_POLARITY_LOW = 0;</code>
 +
| Chip select is active low (Default)
 +
|-
 +
| <code>SPI_CS_POLARITY_HIGH = 1;</code>
 +
| Chip select is active high
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>SPI_CS_POLARITY_UNKNOWN = LongWord(-1);</code>
 +
| Returned by SPIGetSelectPolarity on error (eg device does not exist)
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Power Id''' <code> POWER_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>POWER_ID_MMC0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>POWER_ID_MMC1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_MMC2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_MMC3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART0 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART1 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART2 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART3 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_USB0 = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_USB1 = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_USB2 = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_USB3 = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C0 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C1 = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C2 = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C3 = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI0 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI1 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI2 = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI3 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_CCP2TX = 20;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|Additional constants (Where applicable)
 +
|-
 +
| <code>POWER_ID_UART4 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART5 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART6 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART7 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART8 = 25;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UART9 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C4 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C5 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C6 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C7 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C8 = 31;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_I2C9 = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI4 = 33;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI5 = 34;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI6 = 35;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI7 = 36;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI8 = 37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_SPI9 = 38;</code>
 +
| &nbsp;
 +
|-
 +
| <code>POWER_ID_UNKNOWN = LongWord(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Power state''' <code> POWER_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>POWER_STATE_OFF = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>POWER_STATE_ON = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Clock Id''' <code> CLOCK_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CLOCK_ID_MMC0 = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CLOCK_ID_MMC1 = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_MMC2 = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_MMC3 = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART0 = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART1 = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART2 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART3 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_CPU = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_CORE = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_GPU = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_V3D = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_H264 = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_ISP = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SDRAM = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_PIXEL = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_PWM0 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_PWM1 = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C0 = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C1 = 19;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C2 = 20;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C3 = 21;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI0 = 22;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI1 = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI2 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI3 = 25;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|Additional constants (Where applicable)
 +
|-
 +
| <code>CLOCK_ID_UART4 = 26;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART5 = 27;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART6 = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART7 = 29;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART8 = 30;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UART9 = 31;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C4 = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C5 = 33;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C6 = 34;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C7 = 35;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C8 = 36;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_I2C9 = 37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI4 = 38;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI5 = 39;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI6 = 40;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI7 = 41;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI8 = 42;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_SPI9 = 43;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CLOCK_ID_UNKNOWN = LongWord(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Clock state''' <code> CLOCK_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CLOCK_STATE_OFF = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>CLOCK_STATE_ON = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Turbo Id''' <code> TURBO_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TURBO_ID_SOC = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Voltage Id''' <code> VOLTAGE_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>VOLTAGE_ID_CORE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>VOLTAGE_ID_SDRAM_C = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VOLTAGE_ID_SDRAM_P = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>VOLTAGE_ID_SDRAM_I = 3;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Temperature Id''' <code> TEMPERATURE_ID_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>TEMPERATURE_ID_SOC = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Console direction''' <code> CONSOLE_DIRECTION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CONSOLE_DIRECTION_UP = 0;</code>
 +
| Scroll Console Up
 +
|-
 +
| <code>CONSOLE_DIRECTION_DOWN = 1;</code>
 +
| Scroll Console Down
 +
|-
 +
| <code>CONSOLE_DIRECTION_LEFT = 2;</code>
 +
| Scroll Console Left
 +
|-
 +
| <code>CONSOLE_DIRECTION_RIGHT = 3;</code>
 +
| Scroll Console Right
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Console position''' <code> CONSOLE_POSITION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>CONSOLE_POSITION_FULL = 0;</code>
 +
| Console Window will appear in the full console
 +
|-
 +
| <code>CONSOLE_POSITION_TOP = 1;</code>
 +
| Console Window will appear in the top half of the console
 +
|-
 +
| <code>CONSOLE_POSITION_BOTTOM = 2;</code>
 +
| Console Window will appear in the bottom half of the console
 +
|-
 +
| <code>CONSOLE_POSITION_LEFT = 3;</code>
 +
| Console Window will appear in the left half of the console
 +
|-
 +
| <code>CONSOLE_POSITION_RIGHT = 4;</code>
 +
| Console Window will appear in the right half of the console
 +
|-
 +
| <code>CONSOLE_POSITION_TOPLEFT = 5;</code>
 +
| Console Window will appear in the top left corner of the console
 +
|-
 +
| <code>CONSOLE_POSITION_TOPRIGHT = 6;</code>
 +
| Console Window will appear in the top right corner of the console
 +
|-
 +
| <code>CONSOLE_POSITION_BOTTOMLEFT = 7;</code>
 +
| Console Window will appear in the bottom left corner of the console
 +
|-
 +
| <code>CONSOLE_POSITION_BOTTOMRIGHT = 8;</code>
 +
| Console Window will appear in the bottom right corner of the console
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CONSOLE_POSITION_FULLSCREEN = 9;</code>
 +
| Console Window will occupy the entire screen (Without any border or desktop)(If supported)
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CONSOLE_POSITION_UNKNOWN = LongWord(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Framebuffer depth''' <code> FRAMEBUFFER_DEPTH_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FRAMEBUFFER_DEPTH_8 = 8;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FRAMEBUFFER_DEPTH_16 = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FRAMEBUFFER_DEPTH_24 = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FRAMEBUFFER_DEPTH_32 = 32;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Framebuffer pixel order''' <code> FRAMEBUFFER_ORDER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FRAMEBUFFER_ORDER_BGR = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FRAMEBUFFER_ORDER_RGB = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Framebuffer alpha mode''' <code> FRAMEBUFFER_MODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FRAMEBUFFER_MODE_ENABLED = 0;</code>
 +
| Alpha channel enabled (0 = Fully opaque)
 +
|-
 +
| <code>FRAMEBUFFER_MODE_REVERSED = 1;</code>
 +
| Alpha channel reversed (0 = Fully transparent)
 +
|-
 +
| <code>FRAMEBUFFER_MODE_IGNORED = 2;</code>
 +
| Alpha channel ignored
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Framebuffer rotation''' <code> FRAMEBUFFER_ROTATION_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FRAMEBUFFER_ROTATION_0 = 0;</code>
 +
| No rotation
 +
|-
 +
| <code>FRAMEBUFFER_ROTATION_90 = 1;</code>
 +
| 90 degree rotation
 +
|-
 +
| <code>FRAMEBUFFER_ROTATION_180 = 2;</code>
 +
| 180 degree rotation
 +
|-
 +
| <code>FRAMEBUFFER_ROTATION_270 = 3;</code>
 +
| 270 degree rotation
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Log level''' <code> LOG_LEVEL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LOG_LEVEL_DEBUG = 1;</code>
 +
| Debugging messages
 +
|-
 +
| <code>LOG_LEVEL_INFO = 2;</code>
 +
| Informational messages
 +
|-
 +
| <code>LOG_LEVEL_WARN = 3;</code>
 +
| Warning messages
 +
|-
 +
| <code>LOG_LEVEL_ERROR = 4;</code>
 +
| Error messages
 +
|-
 +
| <code>LOG_LEVEL_NONE = 5;</code>
 +
| No messages
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Logging protocol''' <code> LOGGING_PROTOCOL_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LOGGING_PROTOCOL_UDP = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>LOGGING_PROTOCOL_TCP = 1;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Logging facility''' <code> LOGGING_FACILITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LOGGING_FACILITY_KERNEL = 0;</code>
 +
| Core "kernel" log messages
 +
|-
 +
| <code>LOGGING_FACILITY_PLATFORM = 1;</code>
 +
| Platform log messages
 +
|-
 +
| <code>LOGGING_FACILITY_THREADS = 2;</code>
 +
| Thread log messages
 +
|-
 +
| <code>LOGGING_FACILITY_DEVICES = 3;</code>
 +
| Device log messages
 +
|-
 +
| <code>LOGGING_FACILITY_NETWORK = 4;</code>
 +
| Network log messages
 +
|-
 +
| <code>LOGGING_FACILITY_STORAGE = 5;</code>
 +
| Storage log messages
 +
|-
 +
| <code>LOGGING_FACILITY_FILESYSTEM = 6;</code>
 +
| Filesystem log messages
 +
|-
 +
| <code>LOGGING_FACILITY_KEYBOARD = 7;</code>
 +
| Keyboard log messages
 +
|-
 +
| <code>LOGGING_FACILITY_MOUSE = 8;</code>
 +
| Mouse log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SCSI = 9;</code>
 +
| SCSI log messages
 +
|-
 +
| <code>LOGGING_FACILITY_DMA = 10;</code>
 +
| DMA log messages
 +
|-
 +
| <code>LOGGING_FACILITY_GPIO = 11;</code>
 +
| GPIO log messages
 +
|-
 +
| <code>LOGGING_FACILITY_MMC = 12;</code>
 +
| MMC/SD log messages
 +
|-
 +
| <code>LOGGING_FACILITY_USB = 13;</code>
 +
| USB log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SERVICES = 14;</code>
 +
| Services log messages
 +
|-
 +
| <code>LOGGING_FACILITY_HTTP = 15;</code>
 +
| HTTP log messages
 +
|-
 +
| <code>LOGGING_FACILITY_IMAP = 16;</code>
 +
| IMAP4 log messages
 +
|-
 +
| <code>LOGGING_FACILITY_POP = 17;</code>
 +
| POP3 log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SMTP = 18;</code>
 +
| SMTP log messages
 +
|-
 +
| <code>LOGGING_FACILITY_TELNET = 19;</code>
 +
| Telnet log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SSH = 20;</code>
 +
| SSH log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SHELL = 21;</code>
 +
| Shell log messages
 +
|-
 +
| <code>LOGGING_FACILITY_NTP = 22;</code>
 +
| NTP log messages
 +
|-
 +
| <code>LOGGING_FACILITY_FTP = 23;</code>
 +
| FTP log messages
 +
|-
 +
| <code>LOGGING_FACILITY_RTC = 24;</code>
 +
| RTC log messages
 +
|-
 +
| <code>LOGGING_FACILITY_I2C = 25;</code>
 +
| I2C log messages
 +
|-
 +
| <code>LOGGING_FACILITY_I2S = 26;</code>
 +
| I2S log messages
 +
|-
 +
| <code>LOGGING_FACILITY_PWM = 27;</code>
 +
| PWM log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SERIAL = 28;</code>
 +
| Serial log messages
 +
|-
 +
| <code>LOGGING_FACILITY_SPI = 29;</code>
 +
| SPI log messages
 +
|-
 +
| <code>LOGGING_FACILITY_UART = 30;</code>
 +
| UART log messages
 +
|-
 +
| <code>LOGGING_FACILITY_AUDIO = 31;</code>
 +
| Audio log messages
 +
|-
 +
| <code>LOGGING_FACILITY_1WIRE = 32;</code>
 +
| 1-Wire log messages
 +
|-
 +
| <code>LOGGING_FACILITY_TOUCH = 33;</code>
 +
| Touch log messages
 +
|-
 +
| <code>LOGGING_FACILITY_VIDEO = 34;</code>
 +
| Video log messages
 +
|-
 +
| <code>LOGGING_FACILITY_CODEC = 35;</code>
 +
| Codec log messages
 +
|-
 +
| <code>LOGGING_FACILITY_NFS = 36;</code>
 +
| NFS log messages
 +
|-
 +
| <code>LOGGING_FACILITY_RPC = 37;</code>
 +
| RPC log messages
 +
|-
 +
| <code>LOGGING_FACILITY_PCI = 38;</code>
 +
| PCI log messages
 +
|-
 +
| <code>LOGGING_FACILITY_VIRTIO = 39;</code>
 +
| VIRTIO log messages
 +
|-
 +
| <code>LOGGING_FACILITY_BLUETOOTH = 40;</code>
 +
| Bluetooth log messages
 +
|-
 +
| <code>LOGGING_FACILITY_JOYSTICK = 41;</code>
 +
| Joystick log messages
 +
|-
 +
| <code>LOGGING_FACILITY_HID = 42;</code>
 +
| HID log messages
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>LOGGING_FACILITY_USER = 1000;</code>
 +
| User log messages
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>LOGGING_FACILITY_INVALID = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Logging severity''' <code> LOGGING_SEVERITY_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>LOGGING_SEVERITY_ERROR = 0;</code>
 +
| Error log messages
 +
|-
 +
| <code>LOGGING_SEVERITY_WARN  = 1;</code>
 +
| Warning log messages
 +
|-
 +
| <code>LOGGING_SEVERITY_INFO = 2;</code>
 +
| Informational log messages
 +
|-
 +
| <code>LOGGING_SEVERITY_DEBUG = 3;</code>
 +
| Debugging log messages
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>LOGGING_SEVERITY_INVALID = $FFFFFFFF;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Handle type''' <code> HANDLE_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>HANDLE_TYPE_SPIN = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_MUTEX = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_SECTION = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_SEMAPHORE = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_SYNCHRONIZER = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_CONDITION = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_COMPLETION = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_LIST = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_QUEUE = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_THREAD = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_MESSAGESLOT = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_MAILSLOT = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_BUFFER = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_EVENT = 14;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_TIMER = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_WORKER = 16;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_WINDOW = 17;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_FONT = 18;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_KEYMAP = 19;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_FILE = 100;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_PIPE = 101;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_SOCKET = 102;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_DEVICE = 103;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_FIRMWARE = 104;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>HANDLE_TYPE_USER_BASE = 1000;</code>
 +
| Base value for user or application defined handle types
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Filesystem cache mode''' <code> FILESYS_CACHE_MODE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>FILESYS_CACHE_MODE_NONE = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>FILESYS_CACHE_MODE_READONLY = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>FILESYS_CACHE_MODE_READWRITE = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 +
<div style="font-size: 14px; padding-left: 12px;">'''Cursor arrow''' <code> CURSOR_ARROW_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|Standard Arrow in 32 bit ARGB
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>CURSOR_ARROW_DEFAULT_WIDTH = 16;</code>
 +
| Must be >= 16 and <= 64 on Raspberry Pi
 +
|-
 +
| <code>CURSOR_ARROW_DEFAULT_HEIGHT = 18;</code>
 +
| Must be >= 16 and <= 64 on Raspberry Pi
 +
|-
 +
| <code>CURSOR_ARROW_DEFAULT_FORMAT = COLOR_FORMAT_DEFAULT;</code>
 +
| COLOR_FORMAT_ARGB32
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===

Latest revision as of 03:39, 23 March 2023

Return to Unit Reference


Description


Ultibo Global Constant Definitions unit

Constants



Universal error ERROR_*
ERROR_SUCCESS = 0; Success
NO_ERROR = 0; Success
 
ERROR_INVALID_FUNCTION = 1; Invalid function
ERROR_FILE_NOT_FOUND = 2; The file cannot be found
ERROR_PATH_NOT_FOUND = 3; The path cannot be found
ERROR_TOO_MANY_OPEN_FILES = 4; Too many open files
ERROR_ACCESS_DENIED = 5; Access is denied
ERROR_INVALID_HANDLE = 6; Invalid handle}
ERROR_NOT_ENOUGH_MEMORY = DWORD(8); Not enough storage is available to process this command
 
ERROR_INVALID_ACCESS = 12; Invalid access
ERROR_INVALID_DATA = 13; The data is invalid
ERROR_OUTOFMEMORY = 14; Not enough memory is available
ERROR_INVALID_DRIVE = 15; Cannot find the drive specified
ERROR_CURRENT_DIRECTORY = 16; Current directory cannot be removed
ERROR_NOT_SAME_DEVICE = 17; Cannot move the file to a different disk drive
ERROR_NO_MORE_FILES = 18; There are no more files
ERROR_WRITE_PROTECT = 19; Media is write protected
ERROR_BAD_UNIT = 20; Cannot find the device specified
ERROR_NOT_READY = 21; The device is not ready
ERROR_BAD_COMMAND = 22; The device does not recognise the command
 
ERROR_WRITE_FAULT = 29; The device cannot be written to
ERROR_READ_FAULT = 30; The device cannot be read from
ERROR_GEN_FAILURE = 31; The device has failed
 
ERROR_NOT_SUPPORTED = 50; The request is not supported
 
ERROR_DEV_NOT_EXIST = 55; The device does not exist
 
ERROR_BAD_DEV_TYPE = 66; Invalid device type
 
ERROR_ALREADY_ASSIGNED = 85; The device name is already in use
ERROR_INVALID_PASSWORD = 86; Invalid pasword
ERROR_INVALID_PARAMETER = 87; Invalid parameter
 
ERROR_SEM_IS_SET = 102; The semaphore is in use and cannot be closed
ERROR_OPEN_FAILED = 110; The file or device could not be opened
ERROR_CALL_NOT_IMPLEMENTED = 120; The function is not currently implemented
ERROR_INSUFFICIENT_BUFFER = 122; The buffer passed is too small for the requested data
ERROR_WAIT_NO_CHILDREN = 128; There are no child processes to wait for
 
ERROR_NOT_LOCKED = 158; The entry is not locked
 
ERROR_LOCK_FAILED = 167; The lock operation failed
 
ERROR_ALREADY_EXISTS = 183; The file or object already exists
 
ERROR_ENVVAR_NOT_FOUND = 203; The environment variable could not be found
 
ERROR_LOCKED = 212; The entry is already locked
 
ERROR_MORE_DATA = 234; More data is available than the provided buffer
 
ERROR_WAIT_TIMEOUT = 258; The operation timed out
ERROR_NO_MORE_ITEMS = 259; No more items available
 
ERROR_NOT_OWNER = 288; The current thread is not the owner
 
ERROR_OPERATION_ABORTED = DWORD(995); The I/O operation has been aborted because of either a thread exit or an application request
ERROR_IO_INCOMPLETE = DWORD(996); Overlapped I/O event is not in a signaled state
ERROR_IO_PENDING = DWORD(997); Overlapped I/O operation is in progress
 
ERROR_CAN_NOT_COMPLETE = 1003; Cannot complete the function
 
ERROR_NOT_FOUND = 1168; The entry or device was not found
 
ERROR_INVALID_ACL = DWORD(1336); The access control list (ACL) structure is invalid
ERROR_INVALID_SID = DWORD(1337); The security Id structure is invalid
ERROR_INVALID_SECURITY_DESCR = DWORD(1338); The security descriptor structure is invalid
 
ERROR_TIMEOUT = 1460; The operation returned because the timeout expired
 
ERROR_FUNCTION_FAILED = 1627; The function call failed
 
Errors below here have no compatibility equivalent
ERROR_NOT_VALID = 1000001; The entry or device is not valid
ERROR_NOT_ASSIGNED = 1000002; The device is not assigned
ERROR_IN_USE = 1000003; The device is in use
ERROR_OPERATION_FAILED = 1000004; The operation failed
ERROR_NOT_OPEN = 1000005; The file or device is not open
ERROR_ALREADY_OPEN = 1000006; The file or device is already open
ERROR_WAIT_ABANDONED = 1000007; The operation was abandoned
ERROR_IN_PROGRESS = 1000008; An operation is already in progress
ERROR_RUNTIME_ERROR = 1000009; A run time occurred
ERROR_EXCEPTION = 1000010; An exception occurred
ERROR_NOT_PROCESSED = 1000011; The entry has not been processed
ERROR_NOT_COMPLETED = 1000012; The entry or operation has not completed
ERROR_NOT_COMPATIBLE = 1000013; The entry is not compatible for the operation
ERROR_CANCELLED = 1000014; The entry or operation has been cancelled
ERROR_NOT_EXACT = 1000015; The result of the operation is not exact
ERROR_ALREADY_OWNER = 1000016; The current thread is already the owner
 
ERROR_UNKNOWN = $FFFFFFFF;  


Universal value INVALID_*
INVALID_HANDLE_VALUE = THandle(-1); DWORD(-1);
INVALID_FILE_SIZE = DWORD($FFFFFFFF);  
INVALID_SET_FILE_POINTER = DWORD(-1);  
INVALID_FILE_ATTRIBUTES = DWORD(-1);  


File position FILE_*
FILE_BEGIN = 0;  
FILE_CURRENT = 1;  
FILE_END = 2;  


File open/create CREATE_*
CREATE_NEW = 1;  
CREATE_ALWAYS = 2;  
OPEN_EXISTING = 3;  
OPEN_ALWAYS = 4;  
TRUNCATE_EXISTING = 5;  


File creation flag FILE_FLAG_*
FILE_FLAG_WRITE_THROUGH = DWORD($80000000);  
FILE_FLAG_OVERLAPPED = $40000000;  
FILE_FLAG_NO_BUFFERING = $20000000;  
FILE_FLAG_RANDOM_ACCESS = $10000000;  
FILE_FLAG_SEQUENTIAL_SCAN = $08000000;  
FILE_FLAG_DELETE_ON_CLOSE = $04000000;  
FILE_FLAG_BACKUP_SEMANTICS = $02000000;  
FILE_FLAG_POSIX_SEMANTICS = $01000000;  
FILE_FLAG_OPEN_REPARSE_POINT = $00200000;  
FILE_FLAG_OPEN_NO_RECALL = $00100000;  
FILE_FLAG_FIRST_PIPE_INSTANCE = $00080000;  


File attribute FILE_ATTRIBUTE_*
FILE_ATTRIBUTE_READONLY = $00000001;  
FILE_ATTRIBUTE_HIDDEN = $00000002;  
FILE_ATTRIBUTE_SYSTEM = $00000004;  
FILE_ATTRIBUTE_DIRECTORY = $00000010;  
FILE_ATTRIBUTE_ARCHIVE = $00000020;  
FILE_ATTRIBUTE_DEVICE = $00000040;  
FILE_ATTRIBUTE_NORMAL = $00000080;  
FILE_ATTRIBUTE_TEMPORARY = $00000100;  
FILE_ATTRIBUTE_SPARSE_FILE = $00000200;  
FILE_ATTRIBUTE_REPARSE_POINT = $00000400;  
FILE_ATTRIBUTE_COMPRESSED = $00000800;  
FILE_ATTRIBUTE_OFFLINE = $00001000;  
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = $00002000;  
FILE_ATTRIBUTE_ENCRYPTED = $00004000;  


Filesystem attribute FS_*
FS_CASE_SENSITIVE_SEARCH = $00000001;  
FS_CASE_PRESERVED_NAMES = $00000002;  
FS_UNICODE_ON_DISK = $00000004;  
FS_PERSISTENT_ACLS = $00000008;  
FS_FILE_COMPRESSION = $00000010;  
FS_VOLUME_QUOTAS = $00000020;  
FS_SUPPORTS_SPARSE_FILES = $00000040;  
FS_SUPPORTS_REPARSE_POINTS = $00000080;  
FS_SUPPORTS_REMOTE_STORAGE = $00000100;  
FS_VOLUME_IS_COMPRESSED = $00008000;  
FS_SUPPORTS_OBJECT_IDS = $00010000;  
FS_SUPPORTS_ENCRYPTION = $00020000;  
FS_NAMED_STREAMS = $00040000;  
FS_READ_ONLY_VOLUME = $00080000;  


File access GENERIC_*
GENERIC_READ = DWORD($80000000);  
GENERIC_WRITE = $40000000;  
GENERIC_EXECUTE = $20000000;  
GENERIC_ALL = $10000000;  


File share FILE_SHARE_*
FILE_SHARE_READ = $00000001;  
FILE_SHARE_WRITE = $00000002;  
FILE_SHARE_DELETE = $00000004;  


Timeout INFINITE =*
INFINITE = LongWord(-1);  


TLS TLS_*
TLS_OUT_OF_INDEXES = DWORD($FFFFFFFF);  


Wait WAIT_*
WAIT_OBJECT_0 = ERROR_SUCCESS + 0;  
WAIT_ABANDONED = $00000080 + 0; STATUS_ABANDONED_WAIT_0
WAIT_ABANDONED_0 = $00000080 + 0; STATUS_ABANDONED_WAIT_0
WAIT_TIMEOUT = ERROR_WAIT_TIMEOUT;  
WAIT_FAILED = DWORD($FFFFFFFF);  
 
WAIT_IO_COMPLETION = $000000C0; STATUS_USER_APC
 
MAXIMUM_WAIT_OBJECTS = 64; Maximum number of wait objects


Thread state STILL_*
STILL_ACTIVE = ERROR_NO_MORE_ITEMS;  


TimeZone TIME_ZONE_*
TIME_ZONE_ID_INVALID = DWORD($FFFFFFFF);  


Universal key codes KEY_CODE_*
Keyboard key codes are based on the Unicode standard with each key code mapped to the code point for that character (See http://unicode.org or http://unicode-table.com)
Keyboard keymaps map the scan code value to the key code value for the specific keyboard layout and include alternate mappings for Shift and AltGr
Non character codes for keys like Home, End, Arrows, F1..F24, Shift, Caps Lock etc are mapped in the Unicode Private Use Area (E000-F8FF)
These are the values reported in the KeyCode field of the TKeyboardData structure returned by the KeyboardRead function
 
Control Characters (0000-001F)
KEY_CODE_NONE = $0000; 0
KEY_CODE_BACKSPACE = $0008; 8
KEY_CODE_TAB = $0009; 9
KEY_CODE_ENTER = $000D; 13
KEY_CODE_ESCAPE = $001B; 27
KEY_CODE_DELETE = $007F; 127
 
Basic Latin Characters (0020-007F)
Punctuation
KEY_CODE_SPACE = $0020; 32
KEY_CODE_EXCLAMATION = $0021; 33
KEY_CODE_QUOTATION = $0022; 34
KEY_CODE_NUMBER = $0023; 35 (Hash/Pound)
KEY_CODE_DOLLAR = $0024; 36
KEY_CODE_PERCENT = $0025; 37
KEY_CODE_AMPERSAND = $0026; 38
KEY_CODE_APOSTROPHE = $0027; 39
KEY_CODE_LEFT_BRACKET = $0028; 40
KEY_CODE_RIGHT_BRACKET = $0029; 41
KEY_CODE_ASTERISK = $002A; 42
KEY_CODE_PLUS = $002B; 43
KEY_CODE_COMMA = $002C; 44
KEY_CODE_MINUS = $002D; 45
KEY_CODE_PERIOD = $002E; 46
KEY_CODE_SLASH = $002F; 47
 
Numerals
KEY_CODE_0 = $0030; 48
KEY_CODE_1 = $0031; 49
KEY_CODE_2 = $0032; 50
KEY_CODE_3 = $0033; 51
KEY_CODE_4 = $0034; 52
KEY_CODE_5 = $0035; 53
KEY_CODE_6 = $0036; 54
KEY_CODE_7 = $0037; 55
KEY_CODE_8 = $0038; 56
KEY_CODE_9 = $0039; 57
 
Punctuation
KEY_CODE_COLON = $003A; 58
KEY_CODE_SEMICOLON = $003B; 59
KEY_CODE_LESSTHAN = $003C; 60
KEY_CODE_EQUALS = $003D; 61
KEY_CODE_GREATERTHAN = $003E; 62
KEY_CODE_QUESTION = $003F; 63
KEY_CODE_AT = $0040; 64
 
Capital Characters
KEY_CODE_CAPITAL_A = $0041; 65
KEY_CODE_CAPITAL_B = $0042; 66
KEY_CODE_CAPITAL_C = $0043; 67
KEY_CODE_CAPITAL_D = $0044; 68
KEY_CODE_CAPITAL_E = $0045; 69
KEY_CODE_CAPITAL_F = $0046; 70
KEY_CODE_CAPITAL_G = $0047; 71
KEY_CODE_CAPITAL_H = $0048; 72
KEY_CODE_CAPITAL_I = $0049; 73
KEY_CODE_CAPITAL_J = $004A; 74
KEY_CODE_CAPITAL_K = $004B; 75
KEY_CODE_CAPITAL_L = $004C; 76
KEY_CODE_CAPITAL_M = $004D; 77
KEY_CODE_CAPITAL_N = $004E; 78
KEY_CODE_CAPITAL_O = $004F; 79
KEY_CODE_CAPITAL_P = $0050; 80
KEY_CODE_CAPITAL_Q = $0051; 81
KEY_CODE_CAPITAL_R= $0052; 82
KEY_CODE_CAPITAL_S = $0053; 83
KEY_CODE_CAPITAL_T = $0054; 84
KEY_CODE_CAPITAL_U = $0055; 85
KEY_CODE_CAPITAL_V = $0056; 86
KEY_CODE_CAPITAL_W = $0057; 87
KEY_CODE_CAPITAL_X = $0058; 88
KEY_CODE_CAPITAL_Y = $0059; 89
KEY_CODE_CAPITAL_Z = $005A; 90
 
Punctuation
KEY_CODE_LEFT_SQUARE = $005B; 91
KEY_CODE_BACKSLASH = $005C; 92
KEY_CODE_RIGHT_SQUARE = $005D; 93
KEY_CODE_CARET = $005E; 94 (Circumflex)
KEY_CODE_UNDERSCORE = $005F; 95
KEY_CODE_GRAVE = $0060; 96
 
Lowercase Characters
KEY_CODE_A = $0061; 97
KEY_CODE_B = $0062; 98
KEY_CODE_C = $0063; 99
KEY_CODE_D = $0064; 100
KEY_CODE_E = $0065; 101
KEY_CODE_F = $0066; 102
KEY_CODE_G = $0067; 103
KEY_CODE_H = $0068; 104
KEY_CODE_I = $0069; 105
KEY_CODE_J = $006A; 106
KEY_CODE_K = $006B; 107
KEY_CODE_L = $006C; 108
KEY_CODE_M = $006D; 109
KEY_CODE_N = $006E; 110
KEY_CODE_O = $006F; 111
KEY_CODE_P = $0070; 112
KEY_CODE_Q = $0071; 113
KEY_CODE_R = $0072; 114
KEY_CODE_S = $0073; 115
KEY_CODE_T = $0074; 116
KEY_CODE_U = $0075; 117
KEY_CODE_V = $0076; 118
KEY_CODE_W = $0077; 119
KEY_CODE_X = $0078; 120
KEY_CODE_Y = $0079; 121
KEY_CODE_Z = $007A; 122
 
Punctuation
KEY_CODE_LEFT_BRACE = $007B; 123 (Curly Bracket)
KEY_CODE_PIPE = $007C; 124 (Vertical Bar)
KEY_CODE_RIGHT_BRACE = $007D; 125 (Curly Bracket)
KEY_CODE_TILDE = $007E; 126
KEY_CODE_DELETE (See above)
 
Latin-1 Supplement Characters (0080-00FF)
KEY_CODE_INVERTED_EXCLAMATION = $00A1;  
KEY_CODE_CENT = $00A2;  
KEY_CODE_POUND = $00A3;  
KEY_CODE_CURRENCY = $00A4;  
KEY_CODE_YEN = $00A5;  
KEY_CODE_BROKEN_BAR = $00A6;  
KEY_CODE_SECTION = $00A7;  
KEY_CODE_DIAERESIS = $00A8;  
KEY_CODE_COPYRIGHT = $00A9;  
KEY_CODE_FEMININE = $00AA;  
KEY_CODE_LEFT_DOUBLE_ANGLE = $00AB;  
KEY_CODE_NOT = $00AC;  
KEY_CODE_REGISTERED = $00AE;  
KEY_CODE_MACRON = $00AF;  
KEY_CODE_DEGREE = $00B0;  
KEY_CODE_PLUS_MINUS = $00B1;  
KEY_CODE_SUPERSCRIPT_2 = $00B2;  
KEY_CODE_SUPERSCRIPT_3 = $00B3;  
KEY_CODE_ACUTE = $00B4;  
KEY_CODE_MICRO = $00B5;  
KEY_CODE_PILCROW = $00B6;  
KEY_CODE_MIDDLE_DOT = $00B7;  
KEY_CODE_CEDILLA = $00B8;  
KEY_CODE_SUPERSCRIPT_1 = $00B9;  
KEY_CODE_MASCULINE = $00BA;  
KEY_CODE_RIGHT_DOUBLE_ANGLE = $00BB;  
KEY_CODE_ONE_QUARTER = $00BC;  
KEY_CODE_ONE_HALF = $00BD;  
KEY_CODE_THREE_QUARTER = $00BE;  
KEY_CODE_INVERTED_QUESTION = $00BF;  
KEY_CODE_CAPITAL_GRAVE_A = $00C0;  
KEY_CODE_CAPITAL_ACUTE_A = $00C1;  
KEY_CODE_CAPITAL_CIRCUMFLEX_A = $00C2;  
KEY_CODE_CAPITAL_TILDE_A = $00C3;  
KEY_CODE_CAPITAL_DIAERESIS_A = $00C4;  
KEY_CODE_CAPITAL_RING_A = $00C5;  
KEY_CODE_CAPITAL_AE = $00C6;  
KEY_CODE_CAPITAL_CEDILLA_C = $00C7;  
KEY_CODE_CAPITAL_GRAVE_E = $00C8;  
KEY_CODE_CAPITAL_ACUTE_E = $00C9;  
KEY_CODE_CAPITAL_CIRCUMFLEX_E = $00CA;  
KEY_CODE_CAPITAL_DIAERESIS_E = $00CB;  
KEY_CODE_CAPITAL_GRAVE_I = $00CC;  
KEY_CODE_CAPITAL_ACUTE_I = $00CD;  
KEY_CODE_CAPITAL_CIRCUMFLEX_I = $00CE;  
KEY_CODE_CAPITAL_DIAERESIS_I = $00CF;  
KEY_CODE_CAPITAL_ETH = $00D0;  
KEY_CODE_CAPITAL_TILDE_N = $00D1;  
KEY_CODE_CAPITAL_GRAVE_O = $00D2;  
KEY_CODE_CAPITAL_ACUTE_O = $00D3;  
KEY_CODE_CAPITAL_CIRCUMFLEX_O = $00D4;  
KEY_CODE_CAPITAL_TILDE_O = $00D5;  
KEY_CODE_CAPITAL_DIAERESIS_O = $00D6;  
KEY_CODE_MULTIPLY = $00D7;  
KEY_CODE_CAPITAL_STROKE_O = $00D8;  
KEY_CODE_CAPITAL_GRAVE_U = $00D9;  
KEY_CODE_CAPITAL_ACUTE_U = $00DA;  
KEY_CODE_CAPITAL_CIRCUMFLEX_U = $00DB;  
KEY_CODE_CAPITAL_DIAERESIS_U = $00DC;  
KEY_CODE_CAPITAL_ACUTE_Y = $00DD;  
KEY_CODE_CAPITAL_THORN = $00DE;  
KEY_CODE_SHARP_S = $00DF;  
KEY_CODE_GRAVE_A = $00E0;  
KEY_CODE_ACUTE_A = $00E1;  
KEY_CODE_CIRCUMFLEX_A = $00E2;  
KEY_CODE_TILDE_A = $00E3;  
KEY_CODE_DIAERESIS_A = $00E4;  
KEY_CODE_RING_A = $00E5;  
KEY_CODE_AE = $00E6;  
KEY_CODE_CEDILLA_C = $00E7;  
KEY_CODE_GRAVE_E = $00E8;  
KEY_CODE_ACUTE_E = $00E9;  
KEY_CODE_CIRCUMFLEX_E = $00EA;  
KEY_CODE_DIAERESIS_E = $00EB;  
KEY_CODE_GRAVE_I = $00EC;  
KEY_CODE_ACUTE_I = $00ED;  
KEY_CODE_CIRCUMFLEX_I = $00EE;  
KEY_CODE_DIAERESIS_I = $00EF;  
KEY_CODE_ETH = $00F0;  
KEY_CODE_TILDE_N = $00F1;  
KEY_CODE_GRAVE_O = $00F2;  
KEY_CODE_ACUTE_O = $00F3;  
KEY_CODE_CIRCUMFLEX_O = $00F4;  
KEY_CODE_TILDE_O = $00F5;  
KEY_CODE_DIAERESIS_O = $00F6;  
KEY_CODE_DIVISION = $00F7;  
KEY_CODE_STROKE_O = $00F8;  
KEY_CODE_GRAVE_U = $00F9;  
KEY_CODE_ACUTE_U = $00FA;  
KEY_CODE_CIRCUMFLEX_U = $00FB;  
KEY_CODE_DIAERESIS_U = $00FC;  
KEY_CODE_ACUTE_Y = $00FD;  
KEY_CODE_THORN = $00FE;  
KEY_CODE_DIAERESIS_Y = $00FF;  
 
General Punctuation (2000-206F)
KEY_CODE_LEFT_QUOTE = $2018;  
KEY_CODE_RIGHT_QUOTE = $2019;  
 
Currency Symbols (20A0-20CF)
KEY_CODE_EURO = $20AC;  
 
Private Area (E000-F8FF)
Non Character Codes
KEY_CODE_CAPSLOCK = $E000;  
KEY_CODE_F1 = $E001;  
KEY_CODE_F2 = $E002;  
KEY_CODE_F3 = $E003;  
KEY_CODE_F4 = $E004;  
KEY_CODE_F5 = $E005;  
KEY_CODE_F6 = $E006;  
KEY_CODE_F7 = $E007;  
KEY_CODE_F8 = $E008;  
KEY_CODE_F9 = $E009;  
KEY_CODE_F10 = $E00A;  
KEY_CODE_F11 = $E00B;  
KEY_CODE_F12 = $E00C;  
KEY_CODE_PRINTSCREEN = $E00D;  
KEY_CODE_SCROLLLOCK = $E00E;  
KEY_CODE_PAUSE = $E00F;  
KEY_CODE_INSERT = $E010;  
KEY_CODE_HOME = $E011;  
KEY_CODE_PAGEUP = $E012;  
KEY_CODE_END = $E013;  
KEY_CODE_PAGEDN = $E014;  
KEY_CODE_RIGHT_ARROW = $E015;  
KEY_CODE_LEFT_ARROW = $E016;  
KEY_CODE_DOWN_ARROW = $E017;  
KEY_CODE_UP_ARROW = $E018;  
KEY_CODE_NUMLOCK = $E019;  
KEY_CODE_APPLICATION = $E01A;  
KEY_CODE_POWER = $E01B;  
KEY_CODE_F13 = $E01C;  
KEY_CODE_F14 = $E01D;  
KEY_CODE_F15 = $E01E;  
KEY_CODE_F16 = $E01F;  
KEY_CODE_F17 = $E020;  
KEY_CODE_F18 = $E021;  
KEY_CODE_F19 = $E022;  
KEY_CODE_F20 = $E023;  
KEY_CODE_F21 = $E024;  
KEY_CODE_F22 = $E025;  
KEY_CODE_F23 = $E026;  
KEY_CODE_F24 = $E027;  
KEY_CODE_EXECUTE = $E028;  
KEY_CODE_HELP = $E029;  
KEY_CODE_MENU = $E02A;  
KEY_CODE_SELECT = $E02B;  
KEY_CODE_STOP = $E02C;  
KEY_CODE_AGAIN = $E02D;  
KEY_CODE_UNDO = $E02E;  
KEY_CODE_CUT = $E02F;  
KEY_CODE_COPY = $E030;  
KEY_CODE_PASTE = $E031;  
KEY_CODE_FIND = $E032;  
KEY_CODE_MUTE = $E033;  
KEY_CODE_VOLUMEUP = $E034;  
KEY_CODE_VOLUMEDOWN = $E035;  
KEY_CODE_LOCKING_CAPSLOCK = $E036;  
KEY_CODE_LOCKING_NUMLOCK = $E037;  
KEY_CODE_LOCKING_SCROLLLOCK = $E038;  
KEY_CODE_INTERNATIONAL1 = $E039;  
KEY_CODE_INTERNATIONAL2 = $E03A;  
KEY_CODE_INTERNATIONAL3 = $E03B;  
KEY_CODE_INTERNATIONAL4 = $E03C;  
KEY_CODE_INTERNATIONAL5 = $E03D;  
KEY_CODE_INTERNATIONAL6 = $E03E;  
KEY_CODE_INTERNATIONAL7 = $E03F;  
KEY_CODE_INTERNATIONAL8 = $E040;  
KEY_CODE_INTERNATIONAL9 = $E041;  
KEY_CODE_LANG1 = $E042;  
KEY_CODE_LANG2 = $E043;  
KEY_CODE_LANG3 = $E044;  
KEY_CODE_LANG4 = $E045;  
KEY_CODE_LANG5 = $E046;  
KEY_CODE_LANG6 = $E047;  
KEY_CODE_LANG7 = $E048;  
KEY_CODE_LANG8 = $E049;  
KEY_CODE_LANG9 = $E04A;  
KEY_CODE_ALT_ERASE = $E04B;  
KEY_CODE_SYSREQ = $E04C;  
KEY_CODE_CANCEL = $E04D;  
KEY_CODE_CLEAR = $E04E;  
KEY_CODE_PRIOR = $E04F;  
KEY_CODE_RETURN = $E050;  
KEY_CODE_SEPARATOR = $E051;  
KEY_CODE_OUT = $E052;  
KEY_CODE_OPER = $E053;  
KEY_CODE_CLEAR_AGAIN = $E054;  
KEY_CODE_CRSEL_PROPS = $E055;  
KEY_CODE_EXSEL = $E056;  
KEY_CODE_00 = $E057;  
KEY_CODE_000 = $E058;  
KEY_CODE_THOUSANDS_SEPARATOR = $E059;  
KEY_CODE_DECIMAL_SEPARATOR = $E05A;  
KEY_CODE_CURRENCY_UNIT = $E05B;  
KEY_CODE_CURRENCY_SUBUNIT = $E05C;  
KEY_CODE_XOR = $E05D;  
KEY_CODE_MEM_STORE = $E05E;  
KEY_CODE_MEM_RECALL = $E05F;  
KEY_CODE_MEM_CLEAR = $E060;  
KEY_CODE_MEM_ADD = $E061;  
KEY_CODE_MEM_SUBTRACT = $E062;  
KEY_CODE_MEM_MULTIPLY = $E063;  
KEY_CODE_MEM_DIVIDE = $E064;  
KEY_CODE_CLEAR_ENTRY = $E065;  
KEY_CODE_BINARY = $E066;  
KEY_CODE_OCTAL = $E067;  
KEY_CODE_DECIMAL = $E068;  
KEY_CODE_HEX = $E069;  
KEY_CODE_CTRL = $E06A;  
KEY_CODE_SHIFT = $E06B;  
KEY_CODE_ALT = $E06C;  
KEY_CODE_GUI = $E06D;  
KEY_CODE_DOUBLE_AMPERSAND = $E06E;  
KEY_CODE_DOUBLE_PIPE = $E06F;  
KEY_CODE_CENTER = $E070;  
 
KEY_CODE_TRANSLATE_START = $0080; Key codes below this are direct characters in all code pages
KEY_CODE_PRIVATE_START = $E000; Key codes in this range are private area mappings for non character keys
KEY_CODE_PRIVATE_END = $F8FF;  


Universal scan codes SCAN_CODE_*
Keyboard scan codes are based on the USB HID Usages (See Section 10 of the Universal Serial Bus HID Usage Tables v1.12)
These are the values reported in the ScanCode field of the TKeyboardData structure returned by the KeyboardRead function
Any keyboard driver supporting legacy keyboards (eg PC/AT or PS/2) should translate the reported codes to be compatible with this set
 
SCAN_CODE_NONE = 0; Reserved (no event indicated)
SCAN_CODE_ROLLOVER = 1; Keyboard ErrorRollOver
SCAN_CODE_POSTFAIL = 2; Keyboard POSTFail
SCAN_CODE_ERROR = 3; Keyboard ErrorUndefined
SCAN_CODE_A = 4; Keyboard a or A
SCAN_CODE_B = 5; Keyboard b or B
SCAN_CODE_C = 6; Keyboard c or C
SCAN_CODE_D = 7; Keyboard d or D
SCAN_CODE_E = 8; Keyboard e or E
SCAN_CODE_F = 9; Keyboard f or F
SCAN_CODE_G = 10; Keyboard g or G
SCAN_CODE_H = 11; Keyboard h or H
SCAN_CODE_I = 12; Keyboard i or I
SCAN_CODE_J = 13; Keyboard j or J
SCAN_CODE_K = 14; Keyboard k or K
SCAN_CODE_L = 15; Keyboard l or L
SCAN_CODE_M = 16; Keyboard m or M
SCAN_CODE_N = 17; Keyboard n or N
SCAN_CODE_O = 18; Keyboard o or O
SCAN_CODE_P = 19; Keyboard p or P
SCAN_CODE_Q = 20; Keyboard q or Q
SCAN_CODE_R = 21; Keyboard r or R
SCAN_CODE_S = 22; Keyboard s or S
SCAN_CODE_T = 23; Keyboard t or T
SCAN_CODE_U = 24; Keyboard u or U
SCAN_CODE_V = 25; Keyboard v or V
SCAN_CODE_W = 26; Keyboard w or W
SCAN_CODE_X = 27; Keyboard x or X
SCAN_CODE_Y = 28; Keyboard y or Y
SCAN_CODE_Z = 29; Keyboard z or Z
SCAN_CODE_1 = 30; Keyboard 1 or !
SCAN_CODE_2 = 31; Keyboard 2 or @
SCAN_CODE_3 = 32; Keyboard 3 or #
SCAN_CODE_4 = 33; Keyboard 4 or $
SCAN_CODE_5 = 34; Keyboard 5 or %
SCAN_CODE_6 = 35; Keyboard 6 or ^
SCAN_CODE_7 = 36; Keyboard 7 or &
SCAN_CODE_8 = 37; Keyboard 8 or *
SCAN_CODE_9 = 38; Keyboard 9 or (
SCAN_CODE_0 = 39; Keyboard 0 or )
SCAN_CODE_ENTER = 40; Keyboard Enter
SCAN_CODE_ESCAPE = 41; Keyboard Escape
SCAN_CODE_BACKSPACE = 42; Keyboard Backspace
SCAN_CODE_TAB = 43; Keyboard Tab
SCAN_CODE_SPACE = 44; Keyboard Spacebar
SCAN_CODE_MINUS = 45; Keyboard - or _
SCAN_CODE_EQUALS = 46; Keyboard = or +
SCAN_CODE_LEFT_SQUARE = 47; Keyboard [ or Left Brace
SCAN_CODE_RIGHT_SQUARE = 48; Keyboard ] or Right Brace
SCAN_CODE_BACKSLASH = 49; Keyboard \ or Keypad Pipe
SCAN_CODE_NONUS_NUMBER = 50; Keyboard Non-US # and ~
SCAN_CODE_SEMICOLON = 51; Keyboard ; or :
SCAN_CODE_APOSTROPHE = 52; Keyboard ' or "
SCAN_CODE_GRAVE = 53; Keyboard ` or ~
SCAN_CODE_COMMA = 54; Keyboard , or <
SCAN_CODE_PERIOD = 55; Keyboard . or >
SCAN_CODE_SLASH = 56; Keyboard / or ?
SCAN_CODE_CAPSLOCK = 57; Keyboard Caps Lock
SCAN_CODE_F1 = 58; Keyboard F1
SCAN_CODE_F2 = 59; Keyboard F2
SCAN_CODE_F3 = 60; Keyboard F3
SCAN_CODE_F4 = 61; Keyboard F4
SCAN_CODE_F5 = 62; Keyboard F5
SCAN_CODE_F6 = 63; Keyboard F6
SCAN_CODE_F7 = 64; Keyboard F7
SCAN_CODE_F8 = 65; Keyboard F8
SCAN_CODE_F9 = 66; Keyboard F9
SCAN_CODE_F10 = 67; Keyboard F10
SCAN_CODE_F11 = 68; Keyboard F11
SCAN_CODE_F12 = 69; Keyboard F12
SCAN_CODE_PRINTSCREEN = 70; Keyboard Print Screen
SCAN_CODE_SCROLLLOCK = 71; Keyboard Scroll Lock
SCAN_CODE_PAUSE = 72; Keyboard Pause
SCAN_CODE_INSERT = 73; Keyboard Insert
SCAN_CODE_HOME = 74; Keyboard Home
SCAN_CODE_PAGEUP = 75; Keyboard PageUp
SCAN_CODE_DELETE = 76; Keyboard Delete
SCAN_CODE_END = 77; Keyboard End
SCAN_CODE_PAGEDN = 78; Keyboard PageDn
SCAN_CODE_RIGHT_ARROW = 79; Keyboard Right Arrow
SCAN_CODE_LEFT_ARROW = 80; Keyboard Left Arrow
SCAN_CODE_DOWN_ARROW = 81; Keyboard Down Arrow
SCAN_CODE_UP_ARROW = 82; Keyboard Up Arrow
SCAN_CODE_NUMLOCK = 83; Keyboard Num Lock
SCAN_CODE_KEYPAD_SLASH = 84; Keypad /
SCAN_CODE_KEYPAD_ASTERISK = 85; Keypad *
SCAN_CODE_KEYPAD_MINUS = 86; Keypad -
SCAN_CODE_KEYPAD_PLUS = 87; Keypad +
SCAN_CODE_KEYPAD_ENTER = 88; Keypad Enter
SCAN_CODE_KEYPAD_1 = 89; Keypad 1 and End
SCAN_CODE_KEYPAD_2 = 90; Keypad 2 and Down Arrow
SCAN_CODE_KEYPAD_3 = 91; Keypad 3 and PageDn
SCAN_CODE_KEYPAD_4 = 92; Keypad 4 and Left Arrow
SCAN_CODE_KEYPAD_5 = 93; Keypad 5 and Center
SCAN_CODE_KEYPAD_6 = 94; Keypad 6 and Right Arrow
SCAN_CODE_KEYPAD_7 = 95; Keypad 7 and Home
SCAN_CODE_KEYPAD_8 = 96; Keypad 8 and Up Arrow
SCAN_CODE_KEYPAD_9 = 97; Keypad 9 and PageUp
SCAN_CODE_KEYPAD_0 = 98; Keypad 0 and Insert
SCAN_CODE_KEYPAD_PERIOD = 99; Keypad . and Delete
SCAN_CODE_NONUS_BACKSLASH = 100; Keyboard Non-US \ and Keypad Pipe
SCAN_CODE_APPLICATION = 101; Keyboard Application
SCAN_CODE_POWER = 102; Keyboard Power
SCAN_CODE_KEYPAD_EQUALS = 103; Keypad =
SCAN_CODE_F13 = 104; Keyboard F13
SCAN_CODE_F14 = 105; Keyboard F14
SCAN_CODE_F15 = 106; Keyboard F15
SCAN_CODE_F16 = 107; Keyboard F16
SCAN_CODE_F17 = 108; Keyboard F17
SCAN_CODE_F18 = 109; Keyboard F18
SCAN_CODE_F19 = 110; Keyboard F19
SCAN_CODE_F20 = 111; Keyboard F20
SCAN_CODE_F21 = 112; Keyboard F21
SCAN_CODE_F22 = 113; Keyboard F22
SCAN_CODE_F23 = 114; Keyboard F23
SCAN_CODE_F24 = 115; Keyboard F24
SCAN_CODE_EXECUTE = 116; Keyboard Execute
SCAN_CODE_HELP = 117; Keyboard Help
SCAN_CODE_MENU = 118; Keyboard Menu
SCAN_CODE_SELECT = 119; Keyboard Select
SCAN_CODE_STOP = 120; Keyboard Stop
SCAN_CODE_AGAIN = 121; Keyboard Again
SCAN_CODE_UNDO = 122; Keyboard Undo
SCAN_CODE_CUT = 123; Keyboard Cut
SCAN_CODE_COPY = 124; Keyboard Copy
SCAN_CODE_PASTE = 125; Keyboard Paste
SCAN_CODE_FIND = 126; Keyboard Find
SCAN_CODE_MUTE = 127; Keyboard Mute
SCAN_CODE_VOLUMEUP = 128; Keyboard Volume Up
SCAN_CODE_VOLUMEDN = 129; Keyboard Volume Down
SCAN_CODE_LOCKING_CAPSLOCK = 130; Keyboard Locking Caps Lock
SCAN_CODE_LOCKING_NUMLOCK = 131; Keyboard Locking Num Lock
SCAN_CODE_LOCKING_SCROLLLOCK = 132; Keyboard Locking Scroll Lock
SCAN_CODE_KEYPAD_COMMA = 133; Keypad Comma
SCAN_CODE_KEYPAD_EQUAL_SIGN = 134; Keypad Equal Sign
SCAN_CODE_INTERNATIONAL1 = 135; Keyboard International1
SCAN_CODE_INTERNATIONAL2 = 136; Keyboard International2
SCAN_CODE_INTERNATIONAL3 = 137; Keyboard International3
SCAN_CODE_INTERNATIONAL4 = 138; Keyboard International4
SCAN_CODE_INTERNATIONAL5 = 139; Keyboard International5
SCAN_CODE_INTERNATIONAL6 = 140; Keyboard International6
SCAN_CODE_INTERNATIONAL7 = 141; Keyboard International7
SCAN_CODE_INTERNATIONAL8 = 142; Keyboard International8
SCAN_CODE_INTERNATIONAL9 = 143; Keyboard International9
SCAN_CODE_LANG1 = 144; Keyboard LANG1
SCAN_CODE_LANG2 = 145; Keyboard LANG2
SCAN_CODE_LANG3 = 146; Keyboard LANG3
SCAN_CODE_LANG4 = 147; Keyboard LANG4
SCAN_CODE_LANG5 = 148; Keyboard LANG5
SCAN_CODE_LANG6 = 149; Keyboard LANG6
SCAN_CODE_LANG7 = 150; Keyboard LANG7
SCAN_CODE_LANG8 = 151; Keyboard LANG8
SCAN_CODE_LANG9 = 152; Keyboard LANG9
SCAN_CODE_ALT_ERASE = 153; Keyboard Alternate Erase
SCAN_CODE_SYSREQ = 154; Keyboard SysReq/Attention
SCAN_CODE_CANCEL = 155; Keyboard Cancel
SCAN_CODE_CLEAR = 156; Keyboard Clear
SCAN_CODE_PRIOR = 157; Keyboard Prior
SCAN_CODE_RETURN = 158; Keyboard Return
SCAN_CODE_SEPARATOR = 159; Keyboard Separator
SCAN_CODE_OUT = 160; Keyboard Out
SCAN_CODE_OPER = 161; Keyboard Oper
SCAN_CODE_CLEAR_AGAIN = 162; Keyboard Clear/Again
SCAN_CODE_CRSEL_PROPS = 163; Keyboard CrSel/Props
SCAN_CODE_EXSEL = 164; Keyboard ExSel
Codes 165 to 175 Reserved
SCAN_CODE_KEYPAD_00 = 176; Keypad 00
SCAN_CODE_KEYPAD_000 = 177; Keypad 000
SCAN_CODE_THOUSANDS_SEPARATOR = 178; Thousands Separator
SCAN_CODE_DECIMAL_SEPARATOR = 179; Decimal Separator
SCAN_CODE_CURRENCY_UNIT = 180; Currency Unit
SCAN_CODE_CURRENCY_SUBUNIT = 181; Currenct Sub-unit
SCAN_CODE_KEYPAD_LEFT_BRACKET = 182; Keypad (
SCAN_CODE_KEYPAD_RIGHT_BRACKET = 183; Keypad )
SCAN_CODE_KEYPAD_LEFT_BRACE = 184; Keypad Left Brace
SCAN_CODE_KEYPAD_RIGHT_BRACE = 185; Keypad Right Brace
SCAN_CODE_KEYPAD_TAB = 186; Keypad Tab
SCAN_CODE_KEYPAD_BACKSPACE = 187; Keypad Backspace
SCAN_CODE_KEYPAD_A = 188; Keypad A
SCAN_CODE_KEYPAD_B = 189; Keypad B
SCAN_CODE_KEYPAD_C = 190; Keypad C
SCAN_CODE_KEYPAD_D = 191; Keypad D
SCAN_CODE_KEYPAD_E = 192; Keypad E
SCAN_CODE_KEYPAD_F = 193; Keypad F
SCAN_CODE_KEYPAD_XOR = 194; Keypad XOR
SCAN_CODE_KEYPAD_CARET = 195; Keypad ^
SCAN_CODE_KEYPAD_PERCENT = 196; Keypad %
SCAN_CODE_KEYPAD_LESSTHAN = 197; Keypad <
SCAN_CODE_KEYPAD_GREATERTHAN = 198; Keypad >
SCAN_CODE_KEYPAD_AMPERSAND = 199; Keypad &
SCAN_CODE_KEYPAD_DOUBLE_AMPERSAND = 200; Keypad &&
SCAN_CODE_KEYPAD_PIPE = 201; Keypad Pipe
SCAN_CODE_KEYPAD_DOUBLE_PIPE = 202; Keypad Double Pipe
SCAN_CODE_KEYPAD_COLON = 203; Keypad :
SCAN_CODE_KEYPAD_NUMBER = 204; Keypad #
SCAN_CODE_KEYPAD_SPACE = 205; Keypad Space
SCAN_CODE_KEYPAD_AT = 206; Keypad @
SCAN_CODE_KEYPAD_EXCLAMATION = 207; Keypad !
SCAN_CODE_KEYPAD_MEM_STORE = 208; Keypad Memory Store
SCAN_CODE_KEYPAD_MEM_RECALL = 209; Keypad Memory Recall
SCAN_CODE_KEYPAD_MEM_CLEAR = 210; Keypad Memory Clear
SCAN_CODE_KEYPAD_MEM_ADD = 211; Keypad Memory Add
SCAN_CODE_KEYPAD_MEM_SUB = 212; Keypad Memory Subtract
SCAN_CODE_KEYPAD_MEM_MULTIPLY = 213; Keypad Memory Multiply
SCAN_CODE_KEYPAD_MEM_DIVIDE = 214; Keypad Memory Divide
SCAN_CODE_KEYPAD_PLUS_MINUS = 215; Keypad +/-
SCAN_CODE_KEYPAD_CLEAR = 216; Keypad Clear
SCAN_CODE_KEYPAD_CLEAR_ENTRY = 217; Keypad Clear Entry
SCAN_CODE_KEYPAD_BINARY = 218; Keypad Binary
SCAN_CODE_KEYPAD_OCTAL = 219; Keypad Octal
SCAN_CODE_KEYPAD_DECIMAL = 220; Keypad Decimal
SCAN_CODE_KEYPAD_HEX = 221; Keypad Hexadecimal
Codes 222 to 223 Reserved
SCAN_CODE_LEFT_CTRL = 224; Keyboard LeftControl
SCAN_CODE_LEFT_SHIFT = 225; Keyboard LeftShift
SCAN_CODE_LEFT_ALT = 226; Keyboard LeftAlt
SCAN_CODE_LEFT_GUI = 227; Keyboard Left GUI
SCAN_CODE_RIGHT_CTRL = 228; Keyboard RightControl
SCAN_CODE_RIGHT_SHIFT = 229; Keyboard RightShift
SCAN_CODE_RIGHT_ALT = 230; Keyboard RightAlt
SCAN_CODE_RIGHT_GUI = 231; Keyboard Right GUI
Codes 232 to 65535 Reserved
SCAN_CODE_RESERVED_255 = 255; Reserved
 
Alternate names for above
SCAN_CODE_EXCLAMATION = 30; Keyboard 1 or !
SCAN_CODE_AT = 31; Keyboard 2 or @
SCAN_CODE_NUMBER = 32; Keyboard 3 or #
SCAN_CODE_CURRENCY = 33; Keyboard 4 or $
SCAN_CODE_PERCENT = 34; Keyboard 5 or %
SCAN_CODE_CARET = 35; Keyboard 6 or ^
SCAN_CODE_AMPERSAND = 36; Keyboard 7 or &
SCAN_CODE_ASTERISK = 37; Keyboard 8 or *
SCAN_CODE_LEFT_BRACKET = 38; Keyboard 9 or (
SCAN_CODE_RIGHT_BRACKET = 39; Keyboard 0 or )
 
SCAN_CODE_DASH = 45; Keyboard - or _
SCAN_CODE_UNDERSCORE = 45; Keyboard - or _
SCAN_CODE_PLUS = 46; Keyboard = or +
SCAN_CODE_LEFT_BRACE = 47; Keyboard [ or Left Brace
SCAN_CODE_RIGHT_BRACE = 48; Keyboard ] or Right Brace
SCAN_CODE_PIPE = 49; Keyboard \ or Keypad Pipe
SCAN_CODE_NONUS_TILDE = 50; Keyboard Non-US # and ~
SCAN_CODE_COLON = 51; Keyboard ; or :
SCAN_CODE_QUOTATION = 52; Keyboard ' or "
SCAN_CODE_TILDE = 53; Keyboard ` or ~
SCAN_CODE_LESSTHAN = 54; Keyboard , or <
SCAN_CODE_GREATERTHAN = 55; Keyboard . or >
SCAN_CODE_QUESTION = 56; Keyboard / or ?
 
SCAN_CODE_ALTGR = SCAN_CODE_RIGHT_ALT; Keyboard RightAlt
 
SCAN_CODE_KEYPAD_FIRST = SCAN_CODE_NUMLOCK;  
SCAN_CODE_KEYPAD_LAST = SCAN_CODE_KEYPAD_PERIOD;  


Universal color COLOR_*
Basic 32 bit RGB colors (8 bit Transparency, 8 bit Red, 8 bit Green, 8 bit Blue)
 
COLOR_NONE = $00000000;  
COLOR_BLACK = $FF000000;  
COLOR_RED = $FFFF0000;  
COLOR_ORANGE = $FFFF8500;  
COLOR_LEAFGREEN = $FF009900;  
COLOR_GREEN = $FF00FF00;  
COLOR_YELLOW = $FFFFFF00;  
COLOR_DARKGREEN = $FF254117;  
COLOR_DARKGRAY = $FF595959;  
COLOR_BROWN = $FF6F4E37;  
COLOR_INDIGO = $FF2E0854;  
COLOR_RASPBERRY = $FFE30B5C;  
COLOR_GRAY = $FF808080;  
COLOR_PURPLE = $FF4B0082;  
COLOR_PINK = $FFFF0090;  
COLOR_DARKBLUE = $FF0000A0;  
COLOR_SILVER = $FFC0C0C0;  
COLOR_BLUEIVY = $FF3090C7;  
COLOR_MIDGRAY = $FFE0E0E0;  
COLOR_LIGHTGRAY = $FFF7F7F7;  
COLOR_BLUE = $FF0000FF;  
COLOR_MAGENTA = $FFFF00FF;  
COLOR_CYAN = $FF00FFFF;  
COLOR_WHITE = $FFFFFFFF;  
 
Color format constants
See: https://en.wikipedia.org/wiki/Color_depth and https://en.wikipedia.org/wiki/RGBA_color_space
COLOR_FORMAT_ARGB32 = 0; 32 bits per pixel Alpha/Red/Green/Blue (ARGB8888)
COLOR_FORMAT_ABGR32 = 1; 32 bits per pixel Alpha/Blue/Green/Red (ABGR8888)
COLOR_FORMAT_RGBA32 = 2; 32 bits per pixel Red/Green/Blue/Alpha (RGBA8888)
COLOR_FORMAT_BGRA32 = 3; 32 bits per pixel Blue/Green/Red/Alpha (BGRA8888)
COLOR_FORMAT_URGB32 = 4; 32 bits per pixel Unused/Red/Green/Blue (URGB8888)
COLOR_FORMAT_UBGR32 = 5; 32 bits per pixel Unused/Blue/Green/Red (UBGR8888)
COLOR_FORMAT_RGBU32 = 6; 32 bits per pixel Red/Green/Blue/Unused (RGBU8888)
COLOR_FORMAT_BGRU32 = 7; 32 bits per pixel Blue/Green/Red/Unused (BGRU8888)
COLOR_FORMAT_RGB24 = 8; 24 bits per pixel Red/Green/Blue (RGB888)
COLOR_FORMAT_BGR24 = 9; 24 bits per pixel Blue/Green/Red (BGR888)
COLOR_FORMAT_RGB16 = 10; 16 bits per pixel Red/Green/Blue (RGB565)
COLOR_FORMAT_BGR16 = 11; 16 bits per pixel Blue/Green/Red (BGR565)
COLOR_FORMAT_RGB15 = 12; 15 bits per pixel Red/Green/Blue (RGB555)
COLOR_FORMAT_BGR15 = 13; 15 bits per pixel Blue/Green/Red (BGR555)
COLOR_FORMAT_RGB8 = 14; 8 bits per pixel Red/Green/Blue (RGB332)
COLOR_FORMAT_BGR8 = 15; 8 bits per pixel Blue/Green/Red (BGR233)
COLOR_FORMAT_GRAY16 = 16; 16 bits per pixel grayscale
COLOR_FORMAT_GRAY8 = 17; 8 bits per pixel grayscale
COLOR_FORMAT_INDEX16 = 18; 16 bits per pixel palette index
COLOR_FORMAT_INDEX8 = 19; 8 bits per pixel palette index
 
COLOR_FORMAT_MAX = 19;  
 
COLOR_FORMAT_DEFAULT = COLOR_FORMAT_ARGB32; The default color format (Used for the COLOR_* constants above)
 
COLOR_FORMAT_UNKNOWN = LongWord(-1);  


Universal size SIZE_*
From /include/linux/sizes.h
 
SIZE_0 = $00000000;  
SIZE_1 = $00000001;  
SIZE_2 = $00000002;  
SIZE_4 = $00000004;  
SIZE_8 = $00000008;  
SIZE_16 = $00000010;  
SIZE_32 = $00000020;  
SIZE_64 = $00000040;  
SIZE_128 = $00000080;  
SIZE_256 = $00000100;  
SIZE_512 = $00000200;  
 
SIZE_1K = $00000400;  
SIZE_2K = $00000800;  
SIZE_4K = $00001000;  
SIZE_8K = $00002000;  
SIZE_16K = $00004000;  
SIZE_32K = $00008000;  
SIZE_64K = $00010000;  
SIZE_128K = $00020000;  
SIZE_256K = $00040000;  
SIZE_512K = $00080000;  
 
SIZE_1M = $00100000;  
SIZE_2M = $00200000;  
SIZE_4M = $00400000;  
SIZE_8M = $00800000;  
SIZE_16M = $01000000;  
SIZE_32M = $02000000;  
SIZE_64M = $04000000;  
SIZE_128M = $08000000;  
SIZE_256M = $10000000;  
SIZE_512M = $20000000;  
 
SIZE_1G = $40000000;  
SIZE_2G = $80000000;  
 
SIZE_4G = $100000000;  
SIZE_8G = $200000000;  


Universal frequency FREQUENCY_*
FREQUENCY_KHZ = 1000;  
FREQUENCY_MHZ = 1000000;  
FREQUENCY_GHZ = 1000000000;  


Universal bit BITS_*
BITS_PER_BYTE = 8;  
BITS_PER_WORD = 16;  
BITS_PER_LONG = 32;  
BITS_PER_LONG_LONG = 64;  


Universal max MAX_*
MAX_BYTE = Byte(-1); 0xFF
MAX_WORD = Word(-1); 0xFFFF
MAX_LONG = LongWord(-1); 0xFFFFFFFF
MAX_LONG_LONG = UInt64(-1); 0xFFFFFFFFFFFFFFFF


Universal time MILLISECONDS_*
MILLISECONDS_PER_SECOND = 1000;  
MICROSECONDS_PER_SECOND = 1000000;  
NANOSECONDS_PER_SECOND = 1000000000;  


Ultibo time TIME_TICKS_*
100 nanosecond ticks since 1/1/1601
Note: Nanoseconds is 10^9 so 100 nanosecond ticks is 10^7
 
TIME_TICKS_PER_MICROSECOND = 10; 10^7 / 10^6
TIME_TICKS_PER_MILLISECOND = 10000; 10^7 / 10^3
TIME_TICKS_PER_SECOND = 10000000; 10^7
TIME_TICKS_PER_MINUTE = 600000000; 60 * 10^7
TIME_TICKS_PER_HOUR = 36000000000; 60 * 60 * 10^7
TIME_TICKS_PER_DAY = 864000000000; 24 * 60 * 60 * 10^7
 
TIME_TICKS_TO_1899 = 94353120000000000; Offset between 1/1/1601 (Ultibo) and 30/12/1899 (FreePascal)
TIME_TICKS_TO_1970 = 116444736000000000; Offset between 1/1/1601 (Ultibo) and 1/1/1970 (Unix/Linux)
TIME_TICKS_TO_1980 = 119600064000000000; Offset between 1/1/1601 (Ultibo) and 1/1/1980 (DOS)
TIME_TICKS_TO_2001 = 126227808000000000; Offset between 1/1/1601 (Ultibo) and 1/1/2001 (Clock is assumed not set if time is less than this)
 
TIME_TICKS_PER_10MILLISECONDS = 100000; 10^7 / 10^2


Unix/Linux time UNIX_TIME_*
Seconds since 1/1/1970
 
UNIX_TIME_MILLISECONDS_PER_DAY = 86400000; 60*60*24*1000;
UNIX_TIME_SECONDS_PER_DAY = 86400; 60*60*24;
UNIX_TIME_DAYS_TO_1970 = 25569.0; Offset between 1899 (FreePascal) and 1970 (Unix/Linux)


FreePascal time PASCAL_*
TDateTime starts at 30/12/1899
 
PASCAL_TIME_MILLISECONDS_PER_DAY = 86400000; 60*60*24*1000;
PASCAL_TIME_SECONDS_PER_DAY = 86400; 60*60*24;
PASCAL_TIME_DOS_TIME_START = 2162688; DOS date time value for start of DOS time (1/1/1980)
 
PASCAL_DAY_OFFSET = 1.0; TDateTime value 1 day
PASCAL_MINUTE_OFFSET = 0.000694444444444444; TDateTime value of 1 minute


System call SYSTEM_CALL_*
SYSTEM_CALL_UNDEFINED = $00000000;  
SYSTEM_CALL_CONTEXT_SWITCH = $00000001;  


Machine type MACHINE_TYPE_*
MACHINE_TYPE_UNKNOWN = 0;  
MACHINE_TYPE_BCM2708 = 1; Broadcom BCM2708 (Raspberry Pi)
MACHINE_TYPE_BCM2709 = 2; Broadcom BCM2709 (Raspberry Pi 2)
MACHINE_TYPE_BCM2710 = 3; Broadcom BCM2710 (Raspberry Pi 3)
MACHINE_TYPE_VERSATILEPB = 4; ARM Versatile PB (QEMU)
MACHINE_TYPE_BCM2711 = 5; Broadcom BCM2711 (Raspberry Pi 4)


Board type BOARD_TYPE_*
BOARD_TYPE_UNKNOWN = 0;  
BOARD_TYPE_RPIA = 1; Raspberry Pi Model A
BOARD_TYPE_RPIB = 2; Raspberry Pi Model B
BOARD_TYPE_RPI_COMPUTE = 3; Raspberry Pi Compute Module
BOARD_TYPE_RPIA_PLUS = 4; Raspberry Pi Model A+
BOARD_TYPE_RPIB_PLUS = 5; Raspberry Pi Model B+
BOARD_TYPE_RPI2B = 6; Raspberry Pi 2 Model B
BOARD_TYPE_RPI_ZERO = 7; Raspberry Pi Model Zero
BOARD_TYPE_PC_X86 = 22; PC x86
BOARD_TYPE_PC_X86_64 = 23; PC x86 64bit
BOARD_TYPE_RPI3B = 24; Raspberry Pi 3 Model B
BOARD_TYPE_QEMUVPB = 25; QEMU Versatile PB
BOARD_TYPE_RPI_COMPUTE3 = 26; Raspberry Pi Compute Module 3
BOARD_TYPE_RPI_ZERO_W = 27; Raspberry Pi Model Zero W
BOARD_TYPE_RPI3B_PLUS = 28; Raspberry Pi 3 Model B+
BOARD_TYPE_RPI3A_PLUS = 29; Raspberry Pi 3 Model A+
BOARD_TYPE_RPI_COMPUTE3_PLUS = 30; Raspberry Pi Compute Module 3+
BOARD_TYPE_RPI4B = 31; Raspberry Pi 4 Model B
BOARD_TYPE_RPI400 = 32; Raspberry Pi 400
BOARD_TYPE_RPI_COMPUTE4 = 33; Raspberry Pi Compute Module 4
BOARD_TYPE_RPI_ZERO2_W = 34; Raspberry Pi Model Zero 2 W


CPU arch CPU_ARCH_*
CPU_ARCH_UNKNOWN = 0;  
CPU_ARCH_ARM32 = 1; ARM Arch 32 (ARMv6/ARMv7)(ARMv8 in 32bit mode)
CPU_ARCH_ARM64 = 2; ARM Arch 64 (ARMv8)


CPU type CPU_TYPE_*
CPU_TYPE_UNKNOWN = 0;  
CPU_TYPE_ARMV6 = 1; ARMv6 (ARM1176 etc)
CPU_TYPE_ARMV7 = 2; ARMv7 (Cortex A5/A7/A8/A9/A15/A17 etc)
CPU_TYPE_ARMV8 = 3; ARMv8 (Cortex A53/A57/A72 etc)


CPU model CPU_MODEL_*
CPU_MODEL_UNKNOWN = 0;  
CPU_MODEL_ARM1176JZFS = 1; ARM1176JZF-S
CPU_MODEL_CORTEX_A5 = 2; ARM Cortex-A5
CPU_MODEL_CORTEX_A7 = 3; ARM Cortex-A7
CPU_MODEL_CORTEX_A8 = 4; ARM Cortex-A8
CPU_MODEL_CORTEX_A9 = 5; ARM Cortex-A9
CPU_MODEL_CORTEX_A15 = 6; ARM Cortex-A15
CPU_MODEL_CORTEX_A17 = 7; ARM Cortex-A17
CPU_MODEL_CORTEX_A53 = 8; ARM Cortex-A53
CPU_MODEL_CORTEX_A57 = 9; ARM Cortex-A57
CPU_MODEL_CORTEX_A72 = 10; ARM Cortex-A72


CPU description CPU_DESCRIPTION_*
CPU_DESCRIPTION_UNKNOWN = 'Unknown';  
CPU_DESCRIPTION_ARM1176JZFS = 'ARM1176JZF-S';  
CPU_DESCRIPTION_CORTEX_A5 = 'ARM Cortex-A5';  
CPU_DESCRIPTION_CORTEX_A5_MP = 'ARM Cortex-A5 MPCore';  
CPU_DESCRIPTION_CORTEX_A7 = 'ARM Cortex-A7 MPCore';  
CPU_DESCRIPTION_CORTEX_A8 = 'ARM Cortex-A8';  
CPU_DESCRIPTION_CORTEX_A9 = 'ARM Cortex-A9';  
CPU_DESCRIPTION_CORTEX_A9_MP = 'ARM Cortex-A9 MPCore';  
CPU_DESCRIPTION_CORTEX_A15 = 'ARM Cortex-A15 MPCore';  
CPU_DESCRIPTION_CORTEX_A17 = 'ARM Cortex-A17 MPCore';  
CPU_DESCRIPTION_CORTEX_A53 = 'ARM Cortex-A53 MPCore';  
CPU_DESCRIPTION_CORTEX_A57 = 'ARM Cortex-A57 MPCore';  
CPU_DESCRIPTION_CORTEX_A72 = 'ARM Cortex-A72 MPCore';  


CPU state CPU_STATE_*
CPU_STATE_NONE = (0 shl 0);  
CPU_STATE_MMU_ENABLED = (1 shl 0);  
CPU_STATE_DATA_CACHE_ENABLED = (1 shl 1);  
CPU_STATE_INSTRUCTION_CACHE_ENABLED = (1 shl 2);  
CPU_STATE_BRANCH_PREDICTION_ENABLED = (1 shl 3);  


CPU group CPU_GROUP__*
CPU_GROUP_0 = 0;  
CPU_GROUP_1 = 1;  
CPU_GROUP_2 = 2;  
CPU_GROUP_3 = 3;  
CPU_GROUP_4 = 4;  
CPU_GROUP_5 = 5;  
CPU_GROUP_6 = 6;  
CPU_GROUP_7 = 7;  
CPU_GROUP_8 = 8;  
CPU_GROUP_9 = 9;  
CPU_GROUP_10 = 10;  
CPU_GROUP_11 = 11;  
CPU_GROUP_12 = 12;  
CPU_GROUP_13 = 13;  
CPU_GROUP_14 = 14;  
CPU_GROUP_15 = 15;  
CPU_GROUP_16 = 16;  
CPU_GROUP_17 = 17;  
CPU_GROUP_18 = 18;  
CPU_GROUP_19 = 19;  
CPU_GROUP_20 = 20;  
CPU_GROUP_21 = 21;  
CPU_GROUP_22 = 22;  
CPU_GROUP_23 = 23;  
CPU_GROUP_24 = 24;  
CPU_GROUP_25 = 25;  
CPU_GROUP_26 = 26;  
CPU_GROUP_27 = 27;  
CPU_GROUP_28 = 28;  
CPU_GROUP_29 = 29;  
CPU_GROUP_30 = 30;  
CPU_GROUP_31 = 31;  
 
CPU_GROUP_ALL = $FFFFFFFF;  
 
CPU_GROUP_MAX = CPU_GROUP_31;  


CPU Id CPU_ID_*
CPU_ID_0 = 0;  
CPU_ID_1 = 1;  
CPU_ID_2 = 2;  
CPU_ID_3 = 3;  
CPU_ID_4 = 4;  
CPU_ID_5 = 5;  
CPU_ID_6 = 6;  
CPU_ID_7 = 7;  
CPU_ID_8 = 8;  
CPU_ID_9 = 9;  
CPU_ID_10 = 10;  
CPU_ID_11 = 11;  
CPU_ID_12 = 12;  
CPU_ID_13 = 13;  
CPU_ID_14 = 14;  
CPU_ID_15 = 15;  
CPU_ID_16 = 16;  
CPU_ID_17 = 17;  
CPU_ID_18 = 18;  
CPU_ID_19 = 19;  
CPU_ID_20 = 20;  
CPU_ID_21 = 21;  
CPU_ID_22 = 22;  
CPU_ID_23 = 23;  
CPU_ID_24 = 24;  
CPU_ID_25 = 25;  
CPU_ID_26 = 26;  
CPU_ID_27 = 27;  
CPU_ID_28 = 28;  
CPU_ID_29 = 29;  
CPU_ID_30 = 30;  
CPU_ID_31 = 31;  
 
CPU_ID_ALL = $FFFFFFFF;  
 
CPU_ID_MAX = CPU_ID_31;  


CPU mask CPU_MASK_*
CPU_MASK_0 = (1 shl CPU_ID_0);  
CPU_MASK_1 = (1 shl CPU_ID_1);  
CPU_MASK_2 = (1 shl CPU_ID_2);  
CPU_MASK_3 = (1 shl CPU_ID_3);  
CPU_MASK_4 = (1 shl CPU_ID_4);  
CPU_MASK_5 = (1 shl CPU_ID_5);  
CPU_MASK_6 = (1 shl CPU_ID_6);  
CPU_MASK_7 = (1 shl CPU_ID_7);  
CPU_MASK_8 = (1 shl CPU_ID_8);  
CPU_MASK_9 = (1 shl CPU_ID_9);  
CPU_MASK_10 = (1 shl CPU_ID_10);  
CPU_MASK_11 = (1 shl CPU_ID_11);  
CPU_MASK_12 = (1 shl CPU_ID_12);  
CPU_MASK_13 = (1 shl CPU_ID_13);  
CPU_MASK_14 = (1 shl CPU_ID_14);  
CPU_MASK_15 = (1 shl CPU_ID_15);  
CPU_MASK_16 = (1 shl CPU_ID_16);  
CPU_MASK_17 = (1 shl CPU_ID_17);  
CPU_MASK_18 = (1 shl CPU_ID_18);  
CPU_MASK_19 = (1 shl CPU_ID_19);  
CPU_MASK_20 = (1 shl CPU_ID_20);  
CPU_MASK_21 = (1 shl CPU_ID_21);  
CPU_MASK_22 = (1 shl CPU_ID_22);  
CPU_MASK_23 = (1 shl CPU_ID_23);  
CPU_MASK_24 = (1 shl CPU_ID_24);  
CPU_MASK_25 = (1 shl CPU_ID_25);  
CPU_MASK_26 = (1 shl CPU_ID_26);  
CPU_MASK_27 = (1 shl CPU_ID_27);  
CPU_MASK_28 = (1 shl CPU_ID_28);  
CPU_MASK_29 = (1 shl CPU_ID_29);  
CPU_MASK_30 = (1 shl CPU_ID_30);  
CPU_MASK_31 = (1 shl CPU_ID_31);  
 
CPU_MASK_NONE = $00000000;  
CPU_MASK_ALL = $FFFFFFFF;  


CPU affinity CPU_AFFINITY_*
CPU_AFFINITY_0 = (1 shl CPU_ID_0);  
CPU_AFFINITY_1 = (1 shl CPU_ID_1);  
CPU_AFFINITY_2 = (1 shl CPU_ID_2);  
CPU_AFFINITY_3 = (1 shl CPU_ID_3);  
CPU_AFFINITY_4 = (1 shl CPU_ID_4);  
CPU_AFFINITY_5 = (1 shl CPU_ID_5);  
CPU_AFFINITY_6 = (1 shl CPU_ID_6);  
CPU_AFFINITY_7 = (1 shl CPU_ID_7);  
CPU_AFFINITY_8 = (1 shl CPU_ID_8);  
CPU_AFFINITY_9 = (1 shl CPU_ID_9);  
CPU_AFFINITY_10 = (1 shl CPU_ID_10);  
CPU_AFFINITY_11 = (1 shl CPU_ID_11);  
CPU_AFFINITY_12 = (1 shl CPU_ID_12);  
CPU_AFFINITY_13 = (1 shl CPU_ID_13);  
CPU_AFFINITY_14 = (1 shl CPU_ID_14);  
CPU_AFFINITY_15 = (1 shl CPU_ID_15);  
CPU_AFFINITY_16 = (1 shl CPU_ID_16);  
CPU_AFFINITY_17 = (1 shl CPU_ID_17);  
CPU_AFFINITY_18 = (1 shl CPU_ID_18);  
CPU_AFFINITY_19 = (1 shl CPU_ID_19);  
CPU_AFFINITY_20 = (1 shl CPU_ID_20);  
CPU_AFFINITY_21 = (1 shl CPU_ID_21);  
CPU_AFFINITY_22 = (1 shl CPU_ID_22);  
CPU_AFFINITY_23 = (1 shl CPU_ID_23);  
CPU_AFFINITY_24 = (1 shl CPU_ID_24);  
CPU_AFFINITY_25 = (1 shl CPU_ID_25);  
CPU_AFFINITY_26 = (1 shl CPU_ID_26);  
CPU_AFFINITY_27 = (1 shl CPU_ID_27);  
CPU_AFFINITY_28 = (1 shl CPU_ID_28);  
CPU_AFFINITY_29 = (1 shl CPU_ID_29);  
CPU_AFFINITY_30 = (1 shl CPU_ID_30);  
CPU_AFFINITY_31 = (1 shl CPU_ID_31);  
 
CPU_AFFINITY_NONE = $00000000;  
CPU_AFFINITY_ALL = $FFFFFFFF;  


FPU type FPU_TYPE_*
FPU_TYPE_UNKNOWN = 0;  
FPU_TYPE_SOFT = 1;  
FPU_TYPE_VFPV2 = 2;  
FPU_TYPE_VFPV3 = 3;  
FPU_TYPE_VFPV4 = 4;  


FPU state FPU_STATE_*
FPU_STATE_NONE = (0 shl 0);  
FPU_STATE_ENABLED = (1 shl 0);  


GPU type GPU_TYPE_*
GPU_TYPE_UNKNOWN = 0;  
GPU_TYPE_VC4 = 1; Broadcom VideoCore IV
GPU_TYPE_MALI400 = 2; ARM Mali 400
GPU_TYPE_MALI450 = 3; ARM Mali 450
GPU_TYPE_GC880 = 4; Vivante GC880
GPU_TYPE_GC2000 = 5; Vivante GC2000
GPU_TYPE_VC6 = 6; Broadcom VideoCore VI


GPU state GPU_STATE_*
GPU_STATE_NONE = (0 shl 0);  
GPU_STATE_ENABLED = (1 shl 0);  


Cache type CACHE_TYPE_*
CACHE_TYPE_NONE = 0; No Cache
CACHE_TYPE_DATA = 1; Data Cache Only
CACHE_TYPE_INSTRUCTION = 2; Instruction Cache Only
CACHE_TYPE_SEPARATE = 3; Separate Data and Instruction Caches
CACHE_TYPE_UNIFIED = 4; Unified Data and Instruction Cache


DMA direction DMA_DIR_*
DMA_DIR_NONE = 0; No direction (No special handling by controller)
DMA_DIR_MEM_TO_MEM = 1;  
DMA_DIR_MEM_TO_DEV = 2;  
DMA_DIR_DEV_TO_MEM = 3;  
DMA_DIR_DEV_TO_DEV = 4;  


DMA DREQ Id DMA_DREQ_ID_*
DMA_DREQ_ID_NONE = 0; No peripheral gating (memory to memory transfer)
DMA_DREQ_ID_UART_TX = 1;  
DMA_DREQ_ID_UART_RX = 2;  
DMA_DREQ_ID_SPI_TX = 3;  
DMA_DREQ_ID_SPI_RX = 4;  
DMA_DREQ_ID_SPI_SLAVE_TX = 5;  
DMA_DREQ_ID_SPI_SLAVE_RX = 6;  
DMA_DREQ_ID_PCM_TX = 7;  
DMA_DREQ_ID_PCM_RX = 8;  
DMA_DREQ_ID_PWM = 9;  
DMA_DREQ_ID_MMC = 10;  
DMA_DREQ_ID_SDHOST = 11;  
Additional and aliased constants (Where applicable)
DMA_DREQ_ID_UART0_TX = DMA_DREQ_ID_UART_TX;  
DMA_DREQ_ID_UART0_RX = DMA_DREQ_ID_UART_RX;  
DMA_DREQ_ID_UART1_TX = 12;  
DMA_DREQ_ID_UART1_RX = 13;  
DMA_DREQ_ID_UART2_TX = 14;  
DMA_DREQ_ID_UART2_RX = 15;  
DMA_DREQ_ID_UART3_TX = 16;  
DMA_DREQ_ID_UART3_RX = 17;  
DMA_DREQ_ID_UART4_TX = 18;  
DMA_DREQ_ID_UART4_RX = 19;  
DMA_DREQ_ID_UART5_TX = 20;  
DMA_DREQ_ID_UART5_RX = 21;  
DMA_DREQ_ID_SPI0_TX = DMA_DREQ_ID_SPI_TX;  
DMA_DREQ_ID_SPI0_RX = DMA_DREQ_ID_SPI_RX;  
DMA_DREQ_ID_SPI1_TX = 22;  
DMA_DREQ_ID_SPI1_RX = 23;  
DMA_DREQ_ID_SPI2_TX = 24;  
DMA_DREQ_ID_SPI2_RX = 25;  
DMA_DREQ_ID_SPI3_TX = 26;  
DMA_DREQ_ID_SPI3_RX = 27;  
DMA_DREQ_ID_SPI4_TX = 28;  
DMA_DREQ_ID_SPI4_RX = 29;  
DMA_DREQ_ID_SPI5_TX = 30;  
DMA_DREQ_ID_SPI5_RX = 31;  
DMA_DREQ_ID_SPI6_TX = 32;  
DMA_DREQ_ID_SPI6_RX = 33;  
DMA_DREQ_ID_PCM0_TX = DMA_DREQ_ID_PCM_TX;  
DMA_DREQ_ID_PCM0_RX = DMA_DREQ_ID_PCM_RX;  
DMA_DREQ_ID_PWM0 = DMA_DREQ_ID_PWM;  
DMA_DREQ_ID_PWM1 = 34;  
DMA_DREQ_ID_EMMC0 = DMA_DREQ_ID_MMC;  
DMA_DREQ_ID_EMMC1 = DMA_DREQ_ID_SDHOST;  
DMA_DREQ_ID_EMMC2 = 35;  


GPIO pin GPIO_PIN_*
GPIO_PIN_0 = 0;  
GPIO_PIN_1 = 1;  
GPIO_PIN_2 = 2;  
GPIO_PIN_3 = 3;  
GPIO_PIN_4 = 4;  
GPIO_PIN_5 = 5;  
GPIO_PIN_6 = 6;  
GPIO_PIN_7 = 7;  
GPIO_PIN_8 = 8;  
GPIO_PIN_9 = 9;  
GPIO_PIN_10 = 10;  
GPIO_PIN_11 = 11;  
GPIO_PIN_12 = 12;  
GPIO_PIN_13 = 13;  
GPIO_PIN_14 = 14;  
GPIO_PIN_15 = 15;  
GPIO_PIN_16 = 16;  
GPIO_PIN_17 = 17;  
GPIO_PIN_18 = 18;  
GPIO_PIN_19 = 19;  
GPIO_PIN_20 = 20;  
GPIO_PIN_21 = 21;  
GPIO_PIN_22 = 22;  
GPIO_PIN_23 = 23;  
GPIO_PIN_24 = 24;  
GPIO_PIN_25 = 25;  
GPIO_PIN_26 = 26;  
GPIO_PIN_27 = 27;  
GPIO_PIN_28 = 28;  
GPIO_PIN_29 = 29;  
GPIO_PIN_30 = 30;  
GPIO_PIN_31 = 31;  
GPIO_PIN_32 = 32;  
GPIO_PIN_33 = 33;  
GPIO_PIN_34 = 34;  
GPIO_PIN_35 = 35;  
GPIO_PIN_36 = 36;  
GPIO_PIN_37 = 37;  
GPIO_PIN_38 = 38;  
GPIO_PIN_39 = 39;  
GPIO_PIN_40 = 40;  
GPIO_PIN_41 = 41;  
GPIO_PIN_42 = 42;  
GPIO_PIN_43 = 43;  
GPIO_PIN_44 = 44;  
GPIO_PIN_45 = 45;  
GPIO_PIN_46 = 46;  
GPIO_PIN_47 = 47;  
GPIO_PIN_48 = 48;  
GPIO_PIN_49 = 49;  
GPIO_PIN_50 = 50;  
GPIO_PIN_51 = 51;  
GPIO_PIN_52 = 52;  
GPIO_PIN_53 = 53;  
GPIO_PIN_54 = 54;  
GPIO_PIN_55 = 55;  
GPIO_PIN_56 = 56;  
GPIO_PIN_57 = 57;  
GPIO_PIN_58 = 58;  
GPIO_PIN_59 = 59;  
GPIO_PIN_60 = 60;  
 
GPIO_PIN_MAX = 60;  
 
GPIO_PIN_UNKNOWN = LongWord(-1);  


GPIO function GPIO_FUNCTION_*
GPIO_FUNCTION_IN = 0;  
GPIO_FUNCTION_OUT = 1;  
GPIO_FUNCTION_ALT0 = 2;  
GPIO_FUNCTION_ALT1 = 3;  
GPIO_FUNCTION_ALT2 = 4;  
GPIO_FUNCTION_ALT3 = 5;  
GPIO_FUNCTION_ALT4 = 6;  
GPIO_FUNCTION_ALT5 = 7;  
 
GPIO_FUNCTION_UNKNOWN = LongWord(-1); Returned by GPIOFunctionGet on error (eg device does not support reading the function state)


GPIO level GPIO_LEVEL_*
GPIO_LEVEL_LOW = 0;  
GPIO_LEVEL_HIGH = 1;  
 
GPIO_LEVEL_UNKNOWN = LongWord(-1); Returned by GPIOInputGet/Wait on error (eg device does not exist)


GPIO pull GPIO_PULL_*
GPIO_PULL_NONE = 0;  
GPIO_PULL_UP = 1;  
GPIO_PULL_DOWN = 2;  
 
GPIO_PULL_UNKNOWN = LongWord(-1); Returned by GPIOPullGet on error (eg device does not support reading the PullUp/Down state)


GPIO trigger GPIO_TRIGGER_*
GPIO_TRIGGER_NONE = 0;  
GPIO_TRIGGER_LOW = 1;  
GPIO_TRIGGER_HIGH = 2;  
GPIO_TRIGGER_RISING = 3;  
GPIO_TRIGGER_FALLING = 4;  
GPIO_TRIGGER_ASYNC_RISING = 5;  
GPIO_TRIGGER_ASYNC_FALLING = 6;  
GPIO_TRIGGER_EDGE = 7;  
 
GPIO_TRIGGER_UNKNOWN = LongWord(-1); Passed to GPIO callback event when device does not support determining the trigger source


Virtual GPIO pin VIRTUAL_GPIO_PIN_*
VIRTUAL_GPIO_PIN_0 = GPIO_PIN_0;  
VIRTUAL_GPIO_PIN_1 = GPIO_PIN_1;  
VIRTUAL_GPIO_PIN_2 = GPIO_PIN_2;  
VIRTUAL_GPIO_PIN_3 = GPIO_PIN_3;  
VIRTUAL_GPIO_PIN_4 = GPIO_PIN_4;  
VIRTUAL_GPIO_PIN_5 = GPIO_PIN_5;  
VIRTUAL_GPIO_PIN_6 = GPIO_PIN_6;  
VIRTUAL_GPIO_PIN_7 = GPIO_PIN_7;  


Virtual GPIO function VIRTUAL_GPIO_FUNCTION_*
VIRTUAL_GPIO_FUNCTION_IN = 0;  
VIRTUAL_GPIO_FUNCTION_OUT = 1;  


Serial baud rate SERIAL_BAUD_RATE_*
SERIAL_BAUD_RATE_DEFAULT = 0;  
 
SERIAL_BAUD_RATE_STANDARD = 115200; If SERIAL_BAUD_RATE_DEFAULT is passed to SerialOpen then this is the baud rate to use
SERIAL_BAUD_RATE_FALLBACK = 9600; The fallback baud rate if SERIAL_BAUD_RATE_STANDARD is not supported by the device


Serial data bit SERIAL_DATA_*
SERIAL_DATA_8BIT = 8;  
SERIAL_DATA_7BIT = 7;  
SERIAL_DATA_6BIT = 6;  
SERIAL_DATA_5BIT = 5;  


Serial stop bit SERIAL_STOP_*
SERIAL_STOP_1BIT = 1;  
SERIAL_STOP_2BIT = 2;  
SERIAL_STOP_1BIT5 = 3; 1.5 Stop bits


Serial parity SERIAL_PARITY_*
SERIAL_PARITY_NONE = 0;  
SERIAL_PARITY_ODD = 1;  
SERIAL_PARITY_EVEN = 2;  
SERIAL_PARITY_MARK = 3;  
SERIAL_PARITY_SPACE = 4;  


Serial flow control SERIAL_FLOW_*
SERIAL_FLOW_NONE = 0;  
SERIAL_FLOW_RTS_CTS = 1;  
SERIAL_FLOW_DSR_DTR = 2;  


I2C address I2C_ADDRESS_*
I2C_ADDRESS_INVALID = Word(-1);  


SPI mode SPI_MODE_*
SPI_MODE_4WIRE = 0;  
SPI_MODE_3WIRE = 1;  
SPI_MODE_LOSSI = 2;  
 
SPI_MODE_UNKNOWN = LongWord(-1); Returned by SPIGetMode on error (eg device does not exist)


SPI chip select SPI_CS_*
SPI_CS_0 = 0;  
SPI_CS_1 = 1;  
SPI_CS_2 = 2;  
SPI_CS_3 = 3;  
SPI_CS_4 = 4;  
SPI_CS_5 = 5;  
SPI_CS_6 = 6;  
SPI_CS_7 = 7;  
SPI_CS_8 = 8;  
SPI_CS_9 = 9;  
SPI_CS_10 = 10;  
SPI_CS_11 = 11;  
SPI_CS_12 = 12;  
SPI_CS_13 = 13;  
SPI_CS_14 = 14;  
SPI_CS_15 = 15;  
 
SPI_CS_MAX = 15;  
 
SPI_CS_NONE = LongWord(-1); Special value for No Chip Select to allow external control of additional CS lines


SPI clock phase (CPHA) SPI_CLOCK_PHASE_*
SPI_CLOCK_PHASE_LOW = 0; Clock edge rising or falling for data input/output
SPI_CLOCK_PHASE_HIGH = 1; See https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus for more information
 
SPI_CLOCK_PHASE_UNKNOWN = LongWord(-1); Returned by SPIGetClockPhase on error (eg device does not exist)


SPI clock polarity (CPOL) SPI_CLOCK_POLARITY_*
SPI_CLOCK_POLARITY_LOW = 0; Clock is low when not transmitting
SPI_CLOCK_POLARITY_HIGH = 1; Clock is high when not transmitting
 
SPI_CLOCK_POLARITY_UNKNOWN = LongWord(-1); Returned by SPIGetClockPolarity on error (eg device does not exist)


SPI chip select polarity (CSPOL) SPI_CS_POLARITY_*
SPI_CS_POLARITY_LOW = 0; Chip select is active low (Default)
SPI_CS_POLARITY_HIGH = 1; Chip select is active high
 
SPI_CS_POLARITY_UNKNOWN = LongWord(-1); Returned by SPIGetSelectPolarity on error (eg device does not exist)


Power Id POWER_ID_*
POWER_ID_MMC0 = 0;  
POWER_ID_MMC1 = 1;  
POWER_ID_MMC2 = 2;  
POWER_ID_MMC3 = 3;  
POWER_ID_UART0 = 4;  
POWER_ID_UART1 = 5;  
POWER_ID_UART2 = 6;  
POWER_ID_UART3 = 7;  
POWER_ID_USB0 = 8;  
POWER_ID_USB1 = 9;  
POWER_ID_USB2 = 10;  
POWER_ID_USB3 = 11;  
POWER_ID_I2C0 = 12;  
POWER_ID_I2C1 = 13;  
POWER_ID_I2C2 = 14;  
POWER_ID_I2C3 = 15;  
POWER_ID_SPI0 = 16;  
POWER_ID_SPI1 = 17;  
POWER_ID_SPI2 = 18;  
POWER_ID_SPI3 = 19;  
POWER_ID_CCP2TX = 20;  
Additional constants (Where applicable)
POWER_ID_UART4 = 21;  
POWER_ID_UART5 = 22;  
POWER_ID_UART6 = 23;  
POWER_ID_UART7 = 24;  
POWER_ID_UART8 = 25;  
POWER_ID_UART9 = 26;  
POWER_ID_I2C4 = 27;  
POWER_ID_I2C5 = 28;  
POWER_ID_I2C6 = 29;  
POWER_ID_I2C7 = 30;  
POWER_ID_I2C8 = 31;  
POWER_ID_I2C9 = 32;  
POWER_ID_SPI4 = 33;  
POWER_ID_SPI5 = 34;  
POWER_ID_SPI6 = 35;  
POWER_ID_SPI7 = 36;  
POWER_ID_SPI8 = 37;  
POWER_ID_SPI9 = 38;  
POWER_ID_UNKNOWN = LongWord(-1);  


Power state POWER_STATE_*
POWER_STATE_OFF = 0;  
POWER_STATE_ON = 1;  


Clock Id CLOCK_ID_*
CLOCK_ID_MMC0 = 0;  
CLOCK_ID_MMC1 = 1;  
CLOCK_ID_MMC2 = 2;  
CLOCK_ID_MMC3 = 3;  
CLOCK_ID_UART0 = 4;  
CLOCK_ID_UART1 = 5;  
CLOCK_ID_UART2 = 6;  
CLOCK_ID_UART3 = 7;  
CLOCK_ID_CPU = 8;  
CLOCK_ID_CORE = 9;  
CLOCK_ID_GPU = 10;  
CLOCK_ID_V3D = 11;  
CLOCK_ID_H264 = 12;  
CLOCK_ID_ISP = 13;  
CLOCK_ID_SDRAM = 14;  
CLOCK_ID_PIXEL = 15;  
CLOCK_ID_PWM0 = 16;  
CLOCK_ID_PWM1 = 17;  
CLOCK_ID_I2C0 = 18;  
CLOCK_ID_I2C1 = 19;  
CLOCK_ID_I2C2 = 20;  
CLOCK_ID_I2C3 = 21;  
CLOCK_ID_SPI0 = 22;  
CLOCK_ID_SPI1 = 23;  
CLOCK_ID_SPI2 = 24;  
CLOCK_ID_SPI3 = 25;  
Additional constants (Where applicable)
CLOCK_ID_UART4 = 26;  
CLOCK_ID_UART5 = 27;  
CLOCK_ID_UART6 = 28;  
CLOCK_ID_UART7 = 29;  
CLOCK_ID_UART8 = 30;  
CLOCK_ID_UART9 = 31;  
CLOCK_ID_I2C4 = 32;  
CLOCK_ID_I2C5 = 33;  
CLOCK_ID_I2C6 = 34;  
CLOCK_ID_I2C7 = 35;  
CLOCK_ID_I2C8 = 36;  
CLOCK_ID_I2C9 = 37;  
CLOCK_ID_SPI4 = 38;  
CLOCK_ID_SPI5 = 39;  
CLOCK_ID_SPI6 = 40;  
CLOCK_ID_SPI7 = 41;  
CLOCK_ID_SPI8 = 42;  
CLOCK_ID_SPI9 = 43;  
CLOCK_ID_UNKNOWN = LongWord(-1);  


Clock state CLOCK_STATE_*
CLOCK_STATE_OFF = 0;  
CLOCK_STATE_ON = 1;  


Turbo Id TURBO_ID_*
TURBO_ID_SOC = 0;  


Voltage Id VOLTAGE_ID_*
VOLTAGE_ID_CORE = 0;  
VOLTAGE_ID_SDRAM_C = 1;  
VOLTAGE_ID_SDRAM_P = 2;  
VOLTAGE_ID_SDRAM_I = 3;  


Temperature Id TEMPERATURE_ID_*
TEMPERATURE_ID_SOC = 0;  


Console direction CONSOLE_DIRECTION_*
CONSOLE_DIRECTION_UP = 0; Scroll Console Up
CONSOLE_DIRECTION_DOWN = 1; Scroll Console Down
CONSOLE_DIRECTION_LEFT = 2; Scroll Console Left
CONSOLE_DIRECTION_RIGHT = 3; Scroll Console Right


Console position CONSOLE_POSITION_*
CONSOLE_POSITION_FULL = 0; Console Window will appear in the full console
CONSOLE_POSITION_TOP = 1; Console Window will appear in the top half of the console
CONSOLE_POSITION_BOTTOM = 2; Console Window will appear in the bottom half of the console
CONSOLE_POSITION_LEFT = 3; Console Window will appear in the left half of the console
CONSOLE_POSITION_RIGHT = 4; Console Window will appear in the right half of the console
CONSOLE_POSITION_TOPLEFT = 5; Console Window will appear in the top left corner of the console
CONSOLE_POSITION_TOPRIGHT = 6; Console Window will appear in the top right corner of the console
CONSOLE_POSITION_BOTTOMLEFT = 7; Console Window will appear in the bottom left corner of the console
CONSOLE_POSITION_BOTTOMRIGHT = 8; Console Window will appear in the bottom right corner of the console
 
CONSOLE_POSITION_FULLSCREEN = 9; Console Window will occupy the entire screen (Without any border or desktop)(If supported)
 
CONSOLE_POSITION_UNKNOWN = LongWord(-1);  


Framebuffer depth FRAMEBUFFER_DEPTH_*
FRAMEBUFFER_DEPTH_8 = 8;  
FRAMEBUFFER_DEPTH_16 = 16;  
FRAMEBUFFER_DEPTH_24 = 24;  
FRAMEBUFFER_DEPTH_32 = 32;  


Framebuffer pixel order FRAMEBUFFER_ORDER_*
FRAMEBUFFER_ORDER_BGR = 0;  
FRAMEBUFFER_ORDER_RGB = 1;  


Framebuffer alpha mode FRAMEBUFFER_MODE_*
FRAMEBUFFER_MODE_ENABLED = 0; Alpha channel enabled (0 = Fully opaque)
FRAMEBUFFER_MODE_REVERSED = 1; Alpha channel reversed (0 = Fully transparent)
FRAMEBUFFER_MODE_IGNORED = 2; Alpha channel ignored


Framebuffer rotation FRAMEBUFFER_ROTATION_*
FRAMEBUFFER_ROTATION_0 = 0; No rotation
FRAMEBUFFER_ROTATION_90 = 1; 90 degree rotation
FRAMEBUFFER_ROTATION_180 = 2; 180 degree rotation
FRAMEBUFFER_ROTATION_270 = 3; 270 degree rotation


Log level LOG_LEVEL_*
LOG_LEVEL_DEBUG = 1; Debugging messages
LOG_LEVEL_INFO = 2; Informational messages
LOG_LEVEL_WARN = 3; Warning messages
LOG_LEVEL_ERROR = 4; Error messages
LOG_LEVEL_NONE = 5; No messages


Logging protocol LOGGING_PROTOCOL_*
LOGGING_PROTOCOL_UDP = 0;  
LOGGING_PROTOCOL_TCP = 1;  


Logging facility LOGGING_FACILITY_*
LOGGING_FACILITY_KERNEL = 0; Core "kernel" log messages
LOGGING_FACILITY_PLATFORM = 1; Platform log messages
LOGGING_FACILITY_THREADS = 2; Thread log messages
LOGGING_FACILITY_DEVICES = 3; Device log messages
LOGGING_FACILITY_NETWORK = 4; Network log messages
LOGGING_FACILITY_STORAGE = 5; Storage log messages
LOGGING_FACILITY_FILESYSTEM = 6; Filesystem log messages
LOGGING_FACILITY_KEYBOARD = 7; Keyboard log messages
LOGGING_FACILITY_MOUSE = 8; Mouse log messages
LOGGING_FACILITY_SCSI = 9; SCSI log messages
LOGGING_FACILITY_DMA = 10; DMA log messages
LOGGING_FACILITY_GPIO = 11; GPIO log messages
LOGGING_FACILITY_MMC = 12; MMC/SD log messages
LOGGING_FACILITY_USB = 13; USB log messages
LOGGING_FACILITY_SERVICES = 14; Services log messages
LOGGING_FACILITY_HTTP = 15; HTTP log messages
LOGGING_FACILITY_IMAP = 16; IMAP4 log messages
LOGGING_FACILITY_POP = 17; POP3 log messages
LOGGING_FACILITY_SMTP = 18; SMTP log messages
LOGGING_FACILITY_TELNET = 19; Telnet log messages
LOGGING_FACILITY_SSH = 20; SSH log messages
LOGGING_FACILITY_SHELL = 21; Shell log messages
LOGGING_FACILITY_NTP = 22; NTP log messages
LOGGING_FACILITY_FTP = 23; FTP log messages
LOGGING_FACILITY_RTC = 24; RTC log messages
LOGGING_FACILITY_I2C = 25; I2C log messages
LOGGING_FACILITY_I2S = 26; I2S log messages
LOGGING_FACILITY_PWM = 27; PWM log messages
LOGGING_FACILITY_SERIAL = 28; Serial log messages
LOGGING_FACILITY_SPI = 29; SPI log messages
LOGGING_FACILITY_UART = 30; UART log messages
LOGGING_FACILITY_AUDIO = 31; Audio log messages
LOGGING_FACILITY_1WIRE = 32; 1-Wire log messages
LOGGING_FACILITY_TOUCH = 33; Touch log messages
LOGGING_FACILITY_VIDEO = 34; Video log messages
LOGGING_FACILITY_CODEC = 35; Codec log messages
LOGGING_FACILITY_NFS = 36; NFS log messages
LOGGING_FACILITY_RPC = 37; RPC log messages
LOGGING_FACILITY_PCI = 38; PCI log messages
LOGGING_FACILITY_VIRTIO = 39; VIRTIO log messages
LOGGING_FACILITY_BLUETOOTH = 40; Bluetooth log messages
LOGGING_FACILITY_JOYSTICK = 41; Joystick log messages
LOGGING_FACILITY_HID = 42; HID log messages
 
LOGGING_FACILITY_USER = 1000; User log messages
 
LOGGING_FACILITY_INVALID = $FFFFFFFF;  


Logging severity LOGGING_SEVERITY_*
LOGGING_SEVERITY_ERROR = 0; Error log messages
LOGGING_SEVERITY_WARN = 1; Warning log messages
LOGGING_SEVERITY_INFO = 2; Informational log messages
LOGGING_SEVERITY_DEBUG = 3; Debugging log messages
 
LOGGING_SEVERITY_INVALID = $FFFFFFFF;  


Handle type HANDLE_TYPE_*
HANDLE_TYPE_SPIN = 1;  
HANDLE_TYPE_MUTEX = 2;  
HANDLE_TYPE_SECTION = 3;  
HANDLE_TYPE_SEMAPHORE = 4;  
HANDLE_TYPE_SYNCHRONIZER = 5;  
HANDLE_TYPE_CONDITION = 6;  
HANDLE_TYPE_COMPLETION = 7;  
HANDLE_TYPE_LIST = 8;  
HANDLE_TYPE_QUEUE = 9;  
HANDLE_TYPE_THREAD = 10;  
HANDLE_TYPE_MESSAGESLOT = 11;  
HANDLE_TYPE_MAILSLOT = 12;  
HANDLE_TYPE_BUFFER = 13;  
HANDLE_TYPE_EVENT = 14;  
 
HANDLE_TYPE_TIMER = 15;  
HANDLE_TYPE_WORKER = 16;  
HANDLE_TYPE_WINDOW = 17;  
HANDLE_TYPE_FONT = 18;  
HANDLE_TYPE_KEYMAP = 19;  
 
HANDLE_TYPE_FILE = 100;  
HANDLE_TYPE_PIPE = 101;  
HANDLE_TYPE_SOCKET = 102;  
HANDLE_TYPE_DEVICE = 103;  
HANDLE_TYPE_FIRMWARE = 104;  
 
HANDLE_TYPE_USER_BASE = 1000; Base value for user or application defined handle types


Filesystem cache mode FILESYS_CACHE_MODE_*
FILESYS_CACHE_MODE_NONE = 0;  
FILESYS_CACHE_MODE_READONLY = 1;  
FILESYS_CACHE_MODE_READWRITE = 2;  


Cursor arrow CURSOR_ARROW_*
Standard Arrow in 32 bit ARGB
 
CURSOR_ARROW_DEFAULT_WIDTH = 16; Must be >= 16 and <= 64 on Raspberry Pi
CURSOR_ARROW_DEFAULT_HEIGHT = 18; Must be >= 16 and <= 64 on Raspberry Pi
CURSOR_ARROW_DEFAULT_FORMAT = COLOR_FORMAT_DEFAULT; COLOR_FORMAT_ARGB32


Type definitions


None defined

Public variables


None defined

Function declarations


None defined


Return to Unit Reference