satsolver  0.17.2
Classes | Macros | Functions
transaction.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include "transaction.h"
#include "solver.h"
#include "bitmap.h"
#include "pool.h"
#include "poolarch.h"
#include "evr.h"
#include "util.h"

Go to the source code of this file.

Classes

struct  _TransactionElement
 
struct  _TransactionOrderdata
 
struct  orderdata
 

Macros

#define TYPE_BROKEN   (1<<0)
 
#define TYPE_CON   (1<<1)
 
#define TYPE_REQ_P   (1<<2)
 
#define TYPE_PREREQ_P   (1<<3)
 
#define TYPE_REQ   (1<<4)
 
#define TYPE_PREREQ   (1<<5)
 
#define TYPE_CYCLETAIL   (1<<16)
 
#define TYPE_CYCLEHEAD   (1<<17)
 
#define EDGEDATA_BLOCK   127
 

Functions

static int obsq_sortcmp (const void *ap, const void *bp, void *dp)
 
void transaction_all_obs_pkgs (Transaction *trans, Id p, Queue *pkgs)
 
Id transaction_obs_pkg (Transaction *trans, Id p)
 
static Id transaction_base_type (Transaction *trans, Id p)
 
Id transaction_type (Transaction *trans, Id p, int mode)
 
static int classify_cmp (const void *ap, const void *bp, void *dp)
 
static int classify_cmp_pkgs (const void *ap, const void *bp, void *dp)
 
void transaction_classify (Transaction *trans, int mode, Queue *classes)
 
void transaction_classify_pkgs (Transaction *trans, int mode, Id class, Id from, Id to, Queue *pkgs)
 
static void create_transaction_info (Transaction *trans, Queue *decisionq)
 
void transaction_calculate (Transaction *trans, Queue *decisionq, Map *noobsmap)
 
int transaction_installedresult (Transaction *trans, Queue *installedq)
 
static void transaction_create_installedmap (Transaction *trans, Map *installedmap)
 
int transaction_calc_installsizechange (Transaction *trans)
 
void transaction_calc_duchanges (Transaction *trans, DUChanges *mps, int nmps)
 
void transaction_init (Transaction *trans, Pool *pool)
 
void transaction_init_clone (Transaction *trans, Transaction *srctrans)
 
void transaction_free (Transaction *trans)
 
void transaction_free_orderdata (Transaction *trans)
 
static int addteedge (struct orderdata *od, int from, int to, int type)
 
static int addedge (struct orderdata *od, Id from, Id to, int type)
 
static int havechoice (struct orderdata *od, Id p, Id q1, Id q2)
 
static int havescripts (Pool *pool, Id solvid)
 
static void addsolvableedges (struct orderdata *od, Solvable *s)
 
static void breakcycle (struct orderdata *od, Id *cycle)
 
static void dump_tes (struct orderdata *od)
 
static void reachable (struct orderdata *od, Id i)
 
static void addcycleedges (struct orderdata *od, Id *cycle, Queue *todo)
 
void transaction_order (Transaction *trans, int flags)
 
int transaction_order_add_choices (Transaction *trans, Id chosen, Queue *choices)
 
void transaction_add_obsoleted (Transaction *trans)
 
static void transaction_check_pkg (Transaction *trans, Id tepkg, Id pkg, Map *ins, Map *seen, int onlyprereq, Id noconfpkg, int depth)
 
void transaction_check_order (Transaction *trans)
 

Macro Definition Documentation

#define TYPE_BROKEN   (1<<0)
#define TYPE_CON   (1<<1)

Definition at line 778 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_REQ_P   (1<<2)

Definition at line 780 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_PREREQ_P   (1<<3)

Definition at line 781 of file transaction.c.

Referenced by addsolvableedges().

#define TYPE_REQ   (1<<4)

Definition at line 783 of file transaction.c.

Referenced by addsolvableedges(), breakcycle(), and transaction_order().

#define TYPE_PREREQ   (1<<5)

Definition at line 784 of file transaction.c.

Referenced by addsolvableedges(), and breakcycle().

#define TYPE_CYCLETAIL   (1<<16)

Definition at line 786 of file transaction.c.

Referenced by addcycleedges().

#define TYPE_CYCLEHEAD   (1<<17)

Definition at line 787 of file transaction.c.

Referenced by addcycleedges().

#define EDGEDATA_BLOCK   127

Definition at line 789 of file transaction.c.

Referenced by addteedge(), and transaction_order().

Function Documentation

static int obsq_sortcmp ( const void *  ap,
const void *  bp,
void *  dp 
)
static
void transaction_all_obs_pkgs ( Transaction trans,
Id  p,
Queue pkgs 
)
Id transaction_obs_pkg ( Transaction trans,
Id  p 
)
static Id transaction_base_type ( Transaction trans,
Id  p 
)
static
Id transaction_type ( Transaction trans,
Id  p,
int  mode 
)
static int classify_cmp ( const void *  ap,
const void *  bp,
void *  dp 
)
static

Definition at line 359 of file transaction.c.

References id2str(), and _Transaction::pool.

Referenced by transaction_classify().

static int classify_cmp_pkgs ( const void *  ap,
const void *  bp,
void *  dp 
)
static
void transaction_classify ( Transaction trans,
int  mode,
Queue classes 
)
void transaction_classify_pkgs ( Transaction trans,
int  mode,
Id  class,
Id  from,
Id  to,
Queue pkgs 
)
static void create_transaction_info ( Transaction trans,
Queue decisionq 
)
static
void transaction_calculate ( Transaction trans,
Queue decisionq,
Map noobsmap 
)
int transaction_installedresult ( Transaction trans,
Queue installedq 
)
static void transaction_create_installedmap ( Transaction trans,
Map installedmap 
)
static
int transaction_calc_installsizechange ( Transaction trans)
void transaction_calc_duchanges ( Transaction trans,
DUChanges mps,
int  nmps 
)
void transaction_init ( Transaction trans,
Pool pool 
)

Definition at line 792 of file transaction.c.

References _Transaction::pool.

Referenced by solver_create().

void transaction_init_clone ( Transaction trans,
Transaction srctrans 
)
void transaction_free ( Transaction trans)
void transaction_free_orderdata ( Transaction trans)
static int addteedge ( struct orderdata od,
int  from,
int  to,
int  type 
)
static
static int addedge ( struct orderdata od,
Id  from,
Id  to,
int  type 
)
static
static int havechoice ( struct orderdata od,
Id  p,
Id  q1,
Id  q2 
)
static
static int havescripts ( Pool pool,
Id  solvid 
)
inlinestatic
static void addsolvableedges ( struct orderdata od,
Solvable s 
)
static
static void breakcycle ( struct orderdata od,
Id cycle 
)
static
static void dump_tes ( struct orderdata od)
inlinestatic
static void reachable ( struct orderdata od,
Id  i 
)
static
static void addcycleedges ( struct orderdata od,
Id cycle,
Queue todo 
)
static
void transaction_order ( Transaction trans,
int  flags 
)
int transaction_order_add_choices ( Transaction trans,
Id  chosen,
Queue choices 
)
void transaction_add_obsoleted ( Transaction trans)
static void transaction_check_pkg ( Transaction trans,
Id  tepkg,
Id  pkg,
Map ins,
Map seen,
int  onlyprereq,
Id  noconfpkg,
int  depth 
)
static
void transaction_check_order ( Transaction trans)