]>
git.ipfire.org Git - thirdparty/libsolv.git/blob - src/policy.h
2 * Copyright (c) 2007, Novell Inc.
4 * This program is licensed under the BSD license, read LICENSE.BSD
5 * for further information
9 * Generic policy interface for SAT solver
10 * The policy* function can be "overloaded" by defining a callback in the solver struct.
19 #define POLICY_MODE_CHOOSE 0
20 #define POLICY_MODE_RECOMMEND 1
21 #define POLICY_MODE_SUGGEST 2
22 #define POLICY_MODE_CHOOSE_NOREORDER 3 /* internal, do not use */
23 #define POLICY_MODE_SUPPLEMENT 4 /* internal, do not use */
24 #define POLICY_MODE_FAVOR_REC (1 << 30) /* internal, do not use */
27 #define POLICY_ILLEGAL_DOWNGRADE 1
28 #define POLICY_ILLEGAL_ARCHCHANGE 2
29 #define POLICY_ILLEGAL_VENDORCHANGE 4
30 #define POLICY_ILLEGAL_NAMECHANGE 8
32 extern void policy_filter_unwanted(Solver
*solv
, Queue
*plist
, int mode
);
33 extern int policy_illegal_archchange(Solver
*solv
, Solvable
*s1
, Solvable
*s2
);
34 extern int policy_illegal_vendorchange(Solver
*solv
, Solvable
*s1
, Solvable
*s2
);
35 extern int policy_is_illegal(Solver
*solv
, Solvable
*s1
, Solvable
*s2
, int ignore
);
36 extern void policy_findupdatepackages(Solver
*solv
, Solvable
*s
, Queue
*qs
, int allowall
);
37 extern const char *policy_illegal2str(Solver
*solv
, int illegal
, Solvable
*s
, Solvable
*rs
);
38 extern void policy_update_recommendsmap(Solver
*solv
);
40 extern void policy_create_obsolete_index(Solver
*solv
);
42 extern void pool_best_solvables(Pool
*pool
, Queue
*plist
, int flags
);
44 /* internal, do not use */
45 extern void prune_to_best_version(Pool
*pool
, Queue
*plist
);
46 extern void policy_prefer_favored(Solver
*solv
, Queue
*plist
);