00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef DEBIAN_INSTALLER__PACKAGES_INTERNAL_H
00024 #define DEBIAN_INSTALLER__PACKAGES_INTERNAL_H
00025
00026 #include <debian-installer/packages.h>
00027
00028 #include <debian-installer/list.h>
00029
00030 typedef struct di_packages_resolve_dependencies_check di_packages_resolve_dependencies_check;
00031
00037 di_packages_allocator *internal_di_packages_allocator_alloc (void);
00038
00039 typedef bool di_packages_resolve_dependencies_check_package (di_packages_resolve_dependencies_check *r, di_package *package, di_package_dependency *d);
00040 typedef di_package_dependency *di_packages_resolve_dependencies_check_provide (di_package *package, di_package_dependency *best, di_package_dependency *d, void *data);
00041 typedef void di_packages_resolve_dependencies_do_package (di_package *package, void *data);
00042
00043 struct di_packages_resolve_dependencies_check
00044 {
00045 di_packages_resolve_dependencies_check_package *check_real;
00046 di_packages_resolve_dependencies_check_provide *check_virtual;
00047 di_packages_resolve_dependencies_check_package *check_non_existant;
00048 di_packages_resolve_dependencies_do_package *do_real;
00049 unsigned int resolver;
00050 void *check_virtual_data;
00051 void *do_real_data;
00052 };
00053
00054 di_slist *di_packages_resolve_dependencies_special (di_packages *packages, di_slist *list, di_packages_resolve_dependencies_check *s, di_packages_allocator *allocator);
00055 di_slist *di_packages_resolve_dependencies_array_special (di_packages *packages, di_package **array, di_packages_resolve_dependencies_check *s, di_packages_allocator *allocator);
00056 void di_packages_resolve_dependencies_mark_special (di_packages *packages, di_packages_resolve_dependencies_check *s);
00057
00058 void di_packages_resolve_dependencies_marker (di_packages *packages);
00059 bool di_packages_resolve_dependencies_recurse (di_packages_resolve_dependencies_check *r, di_package *package, di_package *dependend_package);
00060
00061 di_packages_resolve_dependencies_check_package
00062 di_packages_resolve_dependencies_check_real,
00063 di_packages_resolve_dependencies_check_non_existant,
00064 di_packages_resolve_dependencies_check_non_existant_quiet,
00065 di_packages_resolve_dependencies_check_non_existant_permissive;
00066
00067 di_packages_resolve_dependencies_check_provide
00068 di_packages_resolve_dependencies_check_virtual;
00069
00070 di_packages_resolve_dependencies_do_package
00071 di_packages_resolve_dependencies_do_real_list_append,
00072 di_packages_resolve_dependencies_do_real_mark;
00073
00074 struct di_packages_resolve_dependencies_do_real_list_append_data
00075 {
00076 di_slist list;
00077 di_packages_allocator *allocator;
00078 };
00079
00087 di_parser_write_entry_next
00088 internal_di_packages_parser_write_entry_next;
00089
00090 const di_parser_fieldinfo
00091 internal_di_packages_parser_field_package;
00092
00094 #endif