Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/doc/efun/struct_info b/doc/efun/struct_info
new file mode 100644
index 0000000..4d4cd0b
--- /dev/null
+++ b/doc/efun/struct_info
@@ -0,0 +1,46 @@
+SYNOPSIS
+ #include <struct_info.h>
+ #include <lpctypes.h>
+
+ mixed * struct_info (struct st, int what)
+
+DESCRIPTION
+ Return information about the structure of struct <st> in an array.
+ If <st> has a base struct, <what> determines how the information
+ is returned:
+
+ <what> == SINFO_FLAT:
+ All members of <st>, including those inherited from the base
+ struct, are returned on the top level of the result.
+ The base struct is signified by just its name.
+
+ <what> == SINFO_NESTED:
+ Only the members defined in <st> itself are returned on
+ the top level of the result. The information for the base
+ struct is a array by itself, as it would be returned
+ by a call to struct_info() for a base struct instance.
+
+ The elements in the resulting array are:
+
+ string [SI_NAME]: the name of the struct
+ string [SI_PROG_NAME]: the name of program defining the struct
+ string [SI_PROG_ID]: the id of the program defining the struct
+ mixed [SI_BASE]: 0, or the base struct information
+ mixed* [SI_MEMBER+0]: the first member information
+ mixed* [SI_MEMBER+n]: the last member information
+
+ The member information entries are arrays themselves with
+ these elements:
+
+ string [SIM_NAME]: name of the member
+ int [SIM_TYPE]: the type of the member (compile-time value)
+ string [SIM_EXTRA]: 0, or if the member is a struct, the
+ struct name
+
+HISTORY
+ Introduced in LDMud 3.3.344.
+ LDMud 3.3.417 introduced SI_PROG_NAME and SI_PROG_ID in exchange
+ for SI_UNIQUE_NAME.
+
+SEE ALSO
+ structs(LPC)