Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/sys/driver_info.h b/sys/driver_info.h
new file mode 100644
index 0000000..336975c
--- /dev/null
+++ b/sys/driver_info.h
@@ -0,0 +1,237 @@
+#ifndef LPC_DRIVER_INFO_H_
+#define LPC_DRIVER_INFO_H_
+
+/* Definition of argument values for driver_info()
+ */
+
+#include "configuration.h"
+
+/* Driver Environment */
+#define DI_BOOT_TIME -1
+
+/* LPC Runtime status */
+#define DI_CURRENT_RUNTIME_LIMITS -10
+#define DI_EVAL_NUMBER -11
+
+/* Network configuration */
+#define DI_MUD_PORTS -20
+#define DI_UDP_PORT -21
+
+/* Memory management */
+#define DI_MEMORY_RESERVE_USER -30
+#define DI_MEMORY_RESERVE_MASTER -31
+#define DI_MEMORY_RESERVE_SYSTEM -32
+
+/* Traces */
+#define DI_TRACE_CURRENT -40
+#define DI_TRACE_CURRENT_DEPTH -41
+#define DI_TRACE_CURRENT_AS_STRING -42
+#define DI_TRACE_LAST_ERROR -43
+#define DI_TRACE_LAST_ERROR_AS_STRING -44
+#define DI_TRACE_LAST_UNCAUGHT_ERROR -45
+#define DI_TRACE_LAST_UNCAUGHT_ERROR_AS_STRING -46
+
+/* LPC Runtime statistics */
+#define DI_NUM_FUNCTION_NAME_CALLS -100
+#define DI_NUM_FUNCTION_NAME_CALL_HITS -101
+#define DI_NUM_FUNCTION_NAME_CALL_MISSES -102
+
+#define DI_NUM_OBJECTS_LAST_PROCESSED -103
+
+#define DI_NUM_HEARTBEAT_TOTAL_CYCLES -104
+#define DI_NUM_HEARTBEAT_ACTIVE_CYCLES -105
+#define DI_NUM_HEARTBEATS_LAST_PROCESSED -106
+
+#define DI_NUM_STRING_TABLE_STRINGS_ADDED -110
+#define DI_NUM_STRING_TABLE_STRINGS_REMOVED -111
+#define DI_NUM_STRING_TABLE_LOOKUPS_BY_VALUE -112
+#define DI_NUM_STRING_TABLE_LOOKUPS_BY_INDEX -113
+#define DI_NUM_STRING_TABLE_LOOKUP_STEPS_BY_VALUE -114
+#define DI_NUM_STRING_TABLE_LOOKUP_STEPS_BY_INDEX -115
+#define DI_NUM_STRING_TABLE_HITS_BY_VALUE -116
+#define DI_NUM_STRING_TABLE_HITS_BY_INDEX -117
+#define DI_NUM_STRING_TABLE_COLLISIONS -118
+
+#define DI_NUM_REGEX_LOOKUPS -120
+#define DI_NUM_REGEX_LOOKUP_HITS -121
+#define DI_NUM_REGEX_LOOKUP_MISSES -122
+#define DI_NUM_REGEX_LOOKUP_COLLISIONS -123
+
+/* Network statistics */
+#define DI_NUM_MESSAGES_OUT -200
+#define DI_NUM_PACKETS_OUT -201
+#define DI_NUM_PACKETS_IN -202
+#define DI_SIZE_PACKETS_OUT -203
+#define DI_SIZE_PACKETS_IN -204
+
+/* Load */
+#define DI_LOAD_AVERAGE_COMMANDS -300
+#define DI_LOAD_AVERAGE_LINES -301
+#define DI_LOAD_AVERAGE_PROCESSED_OBJECTS -302
+#define DI_LOAD_AVERAGE_PROCESSED_OBJECTS_RELATIVE -303
+#define DI_LOAD_AVERAGE_PROCESSED_HEARTBEATS_RELATIVE -304
+
+/* Memory use statistics */
+#define DI_NUM_ACTIONS -400
+#define DI_NUM_CALLOUTS -401
+#define DI_NUM_HEARTBEATS -402
+#define DI_NUM_SHADOWS -403
+#define DI_NUM_OBJECTS -404
+#define DI_NUM_OBJECTS_SWAPPED -405
+#define DI_NUM_OBJECTS_IN_LIST -406
+#define DI_NUM_OBJECTS_IN_TABLE -407
+#define DI_NUM_OBJECTS_DESTRUCTED -408
+#define DI_NUM_OBJECTS_NEWLY_DESTRUCTED -409
+#define DI_NUM_OBJECT_TABLE_SLOTS -410
+#define DI_NUM_PROGS -411
+#define DI_NUM_PROGS_SWAPPED -412
+#define DI_NUM_PROGS_UNSWAPPED -413
+#define DI_NUM_ARRAYS -414
+#define DI_NUM_MAPPINGS -415
+#define DI_NUM_MAPPINGS_CLEAN -416
+#define DI_NUM_MAPPINGS_HASH -417
+#define DI_NUM_MAPPINGS_HYBRID -418
+#define DI_NUM_STRUCTS -419
+#define DI_NUM_STRUCT_TYPES -420
+#define DI_NUM_VIRTUAL_STRINGS -421
+#define DI_NUM_STRINGS -422
+#define DI_NUM_STRINGS_TABLED -423
+#define DI_NUM_STRINGS_UNTABLED -424
+#define DI_NUM_STRING_TABLE_SLOTS -425
+#define DI_NUM_STRING_TABLE_SLOTS_USED -426
+#define DI_NUM_REGEX -427
+#define DI_NUM_REGEX_TABLE_SLOTS -428
+
+#define DI_SIZE_ACTIONS -450
+#define DI_SIZE_CALLOUTS -451
+#define DI_SIZE_HEARTBEATS -452
+#define DI_SIZE_SHADOWS -453
+#define DI_SIZE_OBJECTS -454
+#define DI_SIZE_OBJECTS_SWAPPED -455
+#define DI_SIZE_OBJECT_TABLE -456
+#define DI_SIZE_PROGS -457
+#define DI_SIZE_PROGS_SWAPPED -458
+#define DI_SIZE_PROGS_UNSWAPPED -459
+#define DI_SIZE_ARRAYS -460
+#define DI_SIZE_MAPPINGS -461
+#define DI_SIZE_STRUCTS -462
+#define DI_SIZE_STRUCT_TYPES -463
+#define DI_SIZE_STRINGS -464
+#define DI_SIZE_STRINGS_TABLED -465
+#define DI_SIZE_STRINGS_UNTABLED -466
+#define DI_SIZE_STRING_TABLE -467
+#define DI_SIZE_STRING_OVERHEAD -468
+#define DI_SIZE_REGEX -469
+#define DI_SIZE_BUFFER_FILE -470
+#define DI_SIZE_BUFFER_SWAP -471
+
+/* Memory swapper statistics */
+#define DI_NUM_SWAP_BLOCKS -500
+#define DI_NUM_SWAP_BLOCKS_FREE -501
+#define DI_NUM_SWAP_BLOCKS_REUSE_LOOKUPS -502
+#define DI_NUM_SWAP_BLOCKS_REUSE_LOOKUP_STEPS -503
+#define DI_NUM_SWAP_BLOCKS_FREE_LOOKUPS -505
+#define DI_NUM_SWAP_BLOCKS_FREE_LOOKUP_STEPS -506
+#define DI_SIZE_SWAP_BLOCKS -507
+#define DI_SIZE_SWAP_BLOCKS_FREE -508
+#define DI_SIZE_SWAP_BLOCKS_REUSED -509
+#define DI_SWAP_RECYCLE_PHASE -510
+
+/* Memory allocator statistics */
+#define DI_MEMORY_ALLOCATOR_NAME -600
+
+#define DI_NUM_SYS_ALLOCATED_BLOCKS -610
+#define DI_NUM_LARGE_BLOCKS_ALLOCATED -611
+#define DI_NUM_LARGE_BLOCKS_FREE -612
+#define DI_NUM_LARGE_BLOCKS_WASTE -613
+#define DI_NUM_SMALL_BLOCKS_ALLOCATED -614
+#define DI_NUM_SMALL_BLOCKS_FREE -615
+#define DI_NUM_SMALL_BLOCKS_WASTE -616
+#define DI_NUM_SMALL_BLOCK_CHUNKS -617
+#define DI_NUM_UNMANAGED_BLOCKS -618
+#define DI_NUM_FREE_BLOCKS_AVL_NODES -619
+
+#define DI_SIZE_SYS_ALLOCATED_BLOCKS -630
+#define DI_SIZE_LARGE_BLOCKS_ALLOCATED -631
+#define DI_SIZE_LARGE_BLOCKS_FREE -632
+#define DI_SIZE_LARGE_BLOCKS_WASTE -633
+#define DI_SIZE_LARGE_BLOCK_OVERHEAD -634
+#define DI_SIZE_SMALL_BLOCKS_ALLOCATED -635
+#define DI_SIZE_SMALL_BLOCKS_FREE -636
+#define DI_SIZE_SMALL_BLOCKS_WASTE -637
+#define DI_SIZE_SMALL_BLOCK_OVERHEAD -638
+#define DI_SIZE_SMALL_BLOCK_CHUNKS -639
+#define DI_SIZE_UNMANAGED_BLOCKS -640
+#define DI_SIZE_MEMORY_USED -641
+#define DI_SIZE_MEMORY_UNUSED -642
+#define DI_SIZE_MEMORY_OVERHEAD -643
+
+#define DI_NUM_INCREMENT_SIZE_CALLS -650
+#define DI_NUM_INCREMENT_SIZE_CALL_SUCCESSES -651
+#define DI_SIZE_INCREMENT_SIZE_CALL_DIFFS -652
+#define DI_NUM_REPLACEMENT_MALLOC_CALLS -653
+#define DI_SIZE_REPLACEMENT_MALLOC_CALLS -654
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALLS_FULL -655
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALLS_TARGETED -656
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALL_TARGET_HITS -657
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_INSPECTED -658
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_MERGED -659
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_RESULTING -660
+
+#define DI_MEMORY_EXTENDED_STATISTICS -670
+
+/* Status texts */
+#define DI_STATUS_TEXT_MEMORY -700
+#define DI_STATUS_TEXT_TABLES -701
+#define DI_STATUS_TEXT_SWAP -702
+#define DI_STATUS_TEXT_MALLOC -703
+#define DI_STATUS_TEXT_MALLOC_EXTENDED -704
+
+/* Indices into the subarrays of DI_MEMORY_EXTENDED_STATISTICS (if given) */
+
+#define DIM_ES_MAX_ALLOC 0
+#define DIM_ES_CUR_ALLOC 1
+#define DIM_ES_MAX_FREE 2
+#define DIM_ES_CUR_FREE 3
+#define DIM_ES_AVG_XALLOC 4
+#define DIM_ES_AVG_XFREE 5
+#define DIM_ES_FULL_SLABS 6
+#define DIM_ES_FREE_SLABS 7
+#define DIM_ES_TOTAL_SLABS 8
+
+#define DIM_ES_MAX 9
+
+
+/* Definition of argument values for dump_driver_info()
+ */
+
+#define DDI_OBJECTS 0
+#define DDI_OBJECTS_DESTRUCTED 1
+#define DDI_OPCODES 2
+#define DDI_MEMORY 3
+
+/* Indices into the subarrays resulting from driver_info(DI_TRACE_*)
+ */
+
+#define TRACE_TYPE 0
+#define TRACE_NAME 1
+#define TRACE_PROGRAM 2
+#define TRACE_OBJECT 3
+#define TRACE_LOC 4
+#ifdef __EVAL_COST_TRACE__
+#define TRACE_EVALCOST 5
+
+#define TRACE_MAX 6
+#else
+#define TRACE_MAX 5
+#endif
+
+/* Values for entry TRACE_TYPE */
+
+#define TRACE_TYPE_SYMBOL 0
+#define TRACE_TYPE_SEFUN 1
+#define TRACE_TYPE_EFUN 2
+#define TRACE_TYPE_LAMBDA 3
+#define TRACE_TYPE_LFUN 4
+
+#endif /* LPC_DRIVER_INFO_H_ */