rules.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include "solver.h"
#include "bitmap.h"
#include "pool.h"
#include "poolarch.h"
#include "util.h"
#include "policy.h"
#include "solverdebug.h"

Go to the source code of this file.

Defines

#define RULES_BLOCK   63
#define DISABLE_UPDATE   1
#define DISABLE_INFARCH   2
#define DISABLE_DUP   3

Functions

static void addrpmruleinfo (Solver *solv, Id p, Id d, int type, Id dep)
static int dep_possible (Solver *solv, Id dep, Map *m)
static int unifyrules_sortcmp (const void *ap, const void *bp, void *dp)
int solver_samerule (Solver *solv, Rule *r1, Rule *r2)
void solver_unifyrules (Solver *solv)
Rulesolver_addrule (Solver *solv, Id p, Id d)
static Id makemultiversionconflict (Solver *solv, Id n, Id con)
static void addrpmrule (Solver *solv, Id p, Id d, int type, Id dep)
void solver_addrpmrulesforsolvable (Solver *solv, Solvable *s, Map *m)
void solver_addrpmrulesforweak (Solver *solv, Map *m)
void solver_addrpmrulesforupdaters (Solver *solv, Solvable *s, Map *m, int allow_all)
static Id finddistupgradepackages (Solver *solv, Solvable *s, Queue *qs, int allow_all)
static void addduppackages (Solver *solv, Solvable *s, Queue *qs)
void solver_addupdaterule (Solver *solv, Solvable *s, int allow_all)
static void disableupdaterule (Solver *solv, Id p)
static void reenableupdaterule (Solver *solv, Id p)
void solver_addinfarchrules (Solver *solv, Map *addedmap)
static void disableinfarchrule (Solver *solv, Id name)
static void reenableinfarchrule (Solver *solv, Id name)
void solver_createdupmaps (Solver *solv)
void solver_freedupmaps (Solver *solv)
void solver_addduprules (Solver *solv, Map *addedmap)
static void disableduprule (Solver *solv, Id name)
static void reenableduprule (Solver *solv, Id name)
static void jobtodisablelist (Solver *solv, Id how, Id what, Queue *q)
void solver_disablepolicyrules (Solver *solv)
void solver_reenablepolicyrules (Solver *solv, int jobidx)
static int solver_allruleinfos_cmp (const void *ap, const void *bp, void *dp)
int solver_allruleinfos (Solver *solv, Id rid, Queue *rq)
SolverRuleinfo solver_ruleinfo (Solver *solv, Id rid, Id *fromp, Id *top, Id *depp)
void addchoicerules (Solver *solv)
void disablechoicerules (Solver *solv, Rule *r)


Define Documentation

#define RULES_BLOCK   63

Definition at line 28 of file rules.c.

Referenced by solver_addrule(), solver_create(), and solver_unifyrules().

#define DISABLE_UPDATE   1

#define DISABLE_INFARCH   2

#define DISABLE_DUP   3


Function Documentation

static void addrpmruleinfo ( Solver solv,
Id  p,
Id  d,
int  type,
Id  dep 
) [static]

static int dep_possible ( Solver solv,
Id  dep,
Map m 
) [inline, static]

static int unifyrules_sortcmp ( const void *  ap,
const void *  bp,
void *  dp 
) [static]

Definition at line 80 of file rules.c.

References _Rule::d, _Rule::p, _Rule::w2, and _Pool::whatprovidesdata.

Referenced by solver_samerule(), and solver_unifyrules().

int solver_samerule ( Solver solv,
Rule r1,
Rule r2 
)

Definition at line 118 of file rules.c.

References _Solver::pool, and unifyrules_sortcmp().

Referenced by solver_solve().

void solver_unifyrules ( Solver solv  ) 

Rule* solver_addrule ( Solver solv,
Id  p,
Id  d 
)

static Id makemultiversionconflict ( Solver solv,
Id  n,
Id  con 
) [static]

static void addrpmrule ( Solver solv,
Id  p,
Id  d,
int  type,
Id  dep 
) [inline, static]

Definition at line 421 of file rules.c.

References addrpmruleinfo(), _Solver::ruleinfoq, and solver_addrule().

Referenced by solver_addrpmrulesforsolvable().

void solver_addrpmrulesforsolvable ( Solver solv,
Solvable s,
Map m 
)

void solver_addrpmrulesforweak ( Solver solv,
Map m 
)

void solver_addrpmrulesforupdaters ( Solver solv,
Solvable s,
Map m,
int  allow_all 
)

static Id finddistupgradepackages ( Solver solv,
Solvable s,
Queue qs,
int  allow_all 
) [static]

static void addduppackages ( Solver solv,
Solvable s,
Queue qs 
) [static]

void solver_addupdaterule ( Solver solv,
Solvable s,
int  allow_all 
)

static void disableupdaterule ( Solver solv,
Id  p 
) [inline, static]

static void reenableupdaterule ( Solver solv,
Id  p 
) [inline, static]

void solver_addinfarchrules ( Solver solv,
Map addedmap 
)

static void disableinfarchrule ( Solver solv,
Id  name 
) [inline, static]

static void reenableinfarchrule ( Solver solv,
Id  name 
) [inline, static]

void solver_createdupmaps ( Solver solv  ) 

void solver_freedupmaps ( Solver solv  ) 

Definition at line 1205 of file rules.c.

References _Solver::dupinvolvedmap, _Solver::dupmap, and map_free().

Referenced by solver_solve().

void solver_addduprules ( Solver solv,
Map addedmap 
)

static void disableduprule ( Solver solv,
Id  name 
) [inline, static]

static void reenableduprule ( Solver solv,
Id  name 
) [inline, static]

static void jobtodisablelist ( Solver solv,
Id  how,
Id  what,
Queue q 
) [static]

void solver_disablepolicyrules ( Solver solv  ) 

void solver_reenablepolicyrules ( Solver solv,
int  jobidx 
)

static int solver_allruleinfos_cmp ( const void *  ap,
const void *  bp,
void *  dp 
) [static]

Definition at line 1613 of file rules.c.

Referenced by solver_allruleinfos().

int solver_allruleinfos ( Solver solv,
Id  rid,
Queue rq 
)

SolverRuleinfo solver_ruleinfo ( Solver solv,
Id  rid,
Id fromp,
Id top,
Id depp 
)

void addchoicerules ( Solver solv  ) 

void disablechoicerules ( Solver solv,
Rule r 
)


doxygen