pkg-utils/include/pkg/pkglist.h

34 lines
754 B
C

/* SPDX-License-Identifier: ISC */
#ifndef PKGLIST_H
#define PKGLIST_H
struct pkg_dep_node {
char *name;
/* num dependencies == number of outgoing edges */
size_t num_deps;
/* direct dependencies == array of outgoing edges */
struct pkg_dep_node **deps;
/* linked list pointer */
struct pkg_dep_node *next;
};
struct pkg_dep_list {
struct pkg_dep_node *head;
struct pkg_dep_node *tail;
};
struct pkg_dep_node *append_pkg(struct pkg_dep_list *list, const char *name);
struct pkg_dep_node *find_pkg(struct pkg_dep_list *list, const char *name);
void pkg_list_cleanup(struct pkg_dep_list *list);
int collect_dependencies(int repofd, struct pkg_dep_list *list);
int sort_by_dependencies(struct pkg_dep_list *list);
#endif /* PKGLIST_H */