+ * Set the global VFS search path - a LT_PATHSEP-delimited sequence of
+ * directories to be searched for packages after local packages.
+ *
+ * Returns 0 on success, or -1 on failure.
+ */
+int u_pkg_vfs_set_search_path(const char *path);
+
+/*
+ * Appends a directory to the global VFS search path. This directory will
+ * be searched after any directories already in the path.
+ *
+ * Returns 0 on success, or -1 on failure.
+ */
+int u_pkg_vfs_add_search_dir(const char *path);
+
+/*
+ * Get the global VFS search path.
+ */
+const char *u_pkg_vfs_get_search_path(void);
+
+/*
+ * Opens a package file by name. First, local packages are searched for a
+ * match. If a local match is found, the global search path is never
+ * consulted. If no local match is found, the directories in the global search
+ * path are examined, in order.
+ *
+ * When searching the global search path, the first file found which both
+ * matches the given name and can be opened successfully is used. A file
+ * foo.EXT matches the name if foo is equal to name (without regard to case)
+ * and EXT is one of u, utx, uax, umx or unr. If multiple extensions
+ * are valid, they are tried in this order.
+ *
+ * Note that the particular file extension used does not make any difference
+ * as to what sort of objects can be contained in a package.
+ *
+ * Returns the opened package on success, or NULL on failure.