]> git.draconx.ca Git - upkg.git/blobdiff - src/upkg.h
libupkg: Split the upkg_export struct into public/private parts.
[upkg.git] / src / upkg.h
index 9fc80034af962ba894533d421f2166636ec2e50e..f9193c5318c5661dab4d7fd2949d1f6c8a54e215 100644 (file)
@@ -79,6 +79,11 @@ struct upkg {
        struct upkg_private *priv;
 };
 
+struct upkg_export {
+       const char *name;
+       unsigned long flags;
+};
+
 struct upkg_file {
        const char *name;
 
@@ -91,16 +96,16 @@ struct upkg_file {
 /* Default I/O operations for ordinary files. */
 extern const struct upkg_file_ops upkg_default_fops;
 
-struct upkg *upkg_open(void *handle, const struct upkg_file_ops *fops);
+struct upkg *upkg_open(void *handle, const struct upkg_file_ops *fops,
+                       int (*destructor)(void *handle));
 struct upkg *upkg_fopen(const char *path);
 int upkg_close(struct upkg *pkg);
 
 const char *upkg_get_name(struct upkg *pkg, unsigned long idx);
+const struct upkg_export *upkg_get_export(struct upkg *pkg, unsigned long idx);
 
-long   upkg_export_find(struct upkg *pkg, const char *name);
+long upkg_export_find(struct upkg *pkg, long parent, const char *name);
 
-unsigned long upkg_export_flags(struct upkg *pkg, unsigned long idx);
-const char *upkg_export_name(struct upkg *pkg, unsigned long idx);
 const char *upkg_export_class(struct upkg *pkg, unsigned long idx,
                               const char **package);