policy.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2007, Novell Inc.
  3. *
  4. * This program is licensed under the BSD license, read LICENSE.BSD
  5. * for further information
  6. */
  7. /*
  8. * Generic policy interface for SAT solver
  9. * The policy* function can be "overloaded" by defining a callback in the solver struct.
  10. */
  11. #include "solver.h"
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #define POLICY_MODE_CHOOSE 0
  16. #define POLICY_MODE_RECOMMEND 1
  17. #define POLICY_MODE_SUGGEST 2
  18. #define POLICY_MODE_CHOOSE_NOREORDER 3 /* internal, do not use */
  19. #define POLICY_MODE_SUPPLEMENT 4 /* internal, do not use */
  20. #define POLICY_MODE_FAVOR_REC (1 << 30) /* internal, do not use */
  21. #define POLICY_ILLEGAL_DOWNGRADE 1
  22. #define POLICY_ILLEGAL_ARCHCHANGE 2
  23. #define POLICY_ILLEGAL_VENDORCHANGE 4
  24. #define POLICY_ILLEGAL_NAMECHANGE 8
  25. extern void policy_filter_unwanted(Solver *solv, Queue *plist, int mode);
  26. extern int policy_illegal_archchange(Solver *solv, Solvable *s1, Solvable *s2);
  27. extern int policy_illegal_vendorchange(Solver *solv, Solvable *s1, Solvable *s2);
  28. extern int policy_is_illegal(Solver *solv, Solvable *s1, Solvable *s2, int ignore);
  29. extern void policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs, int allowall);
  30. extern const char *policy_illegal2str(Solver *solv, int illegal, Solvable *s, Solvable *rs);
  31. extern void policy_update_recommendsmap(Solver *solv);
  32. extern void policy_create_obsolete_index(Solver *solv);
  33. extern void pool_best_solvables(Pool *pool, Queue *plist, int flags);
  34. /* internal, do not use */
  35. extern void prune_to_best_version(Pool *pool, Queue *plist);
  36. extern void policy_prefer_favored(Solver *solv, Queue *plist);
  37. #ifdef ENABLE_CONDA
  38. extern void prune_to_best_version_conda(Pool *pool, Queue *plist);
  39. #endif
  40. #ifdef __cplusplus
  41. }
  42. #endif