RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 19-Aug-2007 21:45:47
Branch: HEAD Handle: 2007081920454601
Modified files:
rpm CHANGES
rpm/lib rpmts.h
rpm/rpmdb header.c header.h header_internal.h librpmdb.vers
Log:
- add Header performance metrics, disabled for now.
Summary:
Revision Changes Path
1.1592 +1 -0 rpm/CHANGES
2.67 +4 -1 rpm/lib/rpmts.h
1.61 +26 -0 rpm/rpmdb/header.c
1.22 +12 -14 rpm/rpmdb/header.h
1.16 +2 -0 rpm/rpmdb/header_internal.h
1.12 +1 -0 rpm/rpmdb/librpmdb.vers
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1591 -r1.1592 CHANGES
--- rpm/CHANGES 19 Aug 2007 17:43:01 -0000 1.1591
+++ rpm/CHANGES 19 Aug 2007 19:45:46 -0000 1.1592
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: add Header performance metrics, disabled for now.
- jbj: eliminate headerNVR, use headerNEVRA instead.
- jbj: eliminate the rpmrbFoo, use rpmcliInstallFoo instead.
- jbj: load/unload header macros for %{_sourcedir} et al expansions.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmts.h
============================================================================
$ cvs diff -u -r2.66 -r2.67 rpmts.h
--- rpm/lib/rpmts.h 19 Aug 2007 15:26:12 -0000 2.66
+++ rpm/lib/rpmts.h 19 Aug 2007 19:45:46 -0000 2.67
@@ -94,7 +94,10 @@
RPMTS_OP_DBPUT = 15,
RPMTS_OP_DBDEL = 16,
RPMTS_OP_READHDR = 17,
- RPMTS_OP_MAX = 18
+ RPMTS_OP_HDRLOAD = 18,
+ RPMTS_OP_HDRGET = 19,
+ RPMTS_OP_DEBUG = 20,
+ RPMTS_OP_MAX = 20
} rpmtsOpX;
#if defined(_RPMTS_INTERNAL)
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.c
============================================================================
$ cvs diff -u -r1.60 -r1.61 header.c
--- rpm/rpmdb/header.c 17 Aug 2007 05:36:05 -0000 1.60
+++ rpm/rpmdb/header.c 19 Aug 2007 19:45:47 -0000 1.61
@@ -133,6 +133,31 @@
/*@observer@*/ /*@unchecked@*/
HV_t hdrVec; /* forward reference */
+/**
+ * Global header stats enabler.
+ */
+/*@unchecked@*/
+int _hdr_stats;
+
+/** \ingroup header
+ * Return header stats accumulator structure.
+ * @param h header
+ * @param opx per-header accumulator index (aka rpmtsOpX)
+ * @return per-header accumulator pointer
+ */
+static /*@null@*/
+void * headerGetStats(/*@null@*/ Header h, int opx)
+ /*@*/
+{
+ rpmop op = NULL;
+ if (_hdr_stats)
+ switch (opx) {
+ case 18: op = &h->hops_load; break; /* RPMTS_OP_HDRLOAD */
+ case 19: op = &h->hops_get; break; /* RPMTS_OP_HDRGET */
+ }
+ return op;
+}
+
/** \ingroup header
* Reference a header instance.
* @param h header
@@ -4128,6 +4153,7 @@
headerSetOrigin,
headerGetInstance,
headerSetInstance,
+ headerGetStats,
NULL, NULL,
1
};
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.h
============================================================================
$ cvs diff -u -r1.21 -r1.22 header.h
--- rpm/rpmdb/header.h 17 Aug 2007 05:36:05 -0000 1.21
+++ rpm/rpmdb/header.h 19 Aug 2007 19:45:47 -0000 1.22
@@ -80,6 +80,7 @@
/* RPM - Copyright (C) 1995-2001 Red Hat Software */
#include <stdio.h>
+#include <rpmsw.h>
#ifdef __cplusplus
extern "C" {
@@ -774,6 +775,16 @@
int (*HDRsetinstance) (/*@null@*/ Header h, int instance)
/*@modifies h @*/;
+/**
+ * Return header stats accumulator structure.
+ * @param h header
+ * @param opx per-header accumulator index (aka rpmtsOpX)
+ * @return per-header accumulator pointer
+ */
+typedef
+void * (*HDRgetstats) (/*@null@*/ Header h, int opx)
+ /*@*/;
+
/** \ingroup header
* Header method vectors.
*/
@@ -816,6 +827,7 @@
HDRsetorigin hdrsetorigin;
HDRgetinstance hdrgetinstance;
HDRsetinstance hdrsetinstance;
+ HDRgetstats hdrgetstats;
/*@null@*/
void * hdrvecs;
/*@null@*/
@@ -874,20 +886,6 @@
/*@modifies internalState @*/;
/** \ingroup header
- * Return name, version, release strings from header.
- * @param h header
- * @retval *np name pointer (or NULL)
- * @retval *vp version pointer (or NULL)
- * @retval *rp release pointer (or NULL)
- * @return 0 always
- */
-int headerNVR(Header h,
- /*@null@*/ /*@out@*/ const char ** np,
- /*@null@*/ /*@out@*/ const char ** vp,
- /*@null@*/ /*@out@*/ const char ** rp)
- /*@modifies *np, *vp, *rp @*/;
-
-/** \ingroup header
* Return name, epoch, version, release, arch strings from header.
* @param h header
* @retval *np name pointer (or NULL)
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header_internal.h
============================================================================
$ cvs diff -u -r1.15 -r1.16 header_internal.h
--- rpm/rpmdb/header_internal.h 17 Aug 2007 05:36:05 -0000 1.15
+++ rpm/rpmdb/header_internal.h 19 Aug 2007 19:45:47 -0000 1.16
@@ -61,6 +61,8 @@
/*@only@*/ /*@null@*/
const char * origin; /*!< Header origin (e.g. path or URL). */
int_32 instance; /*!< Header instance (if from rpmdb). */
+ struct rpmop_s hops_load;
+ struct rpmop_s hops_get;
/*@owned@*/
indexEntry index; /*!< Array of tags. */
int indexUsed; /*!< Current size of tag array. */
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/librpmdb.vers
============================================================================
$ cvs diff -u -r1.11 -r1.12 librpmdb.vers
--- rpm/rpmdb/librpmdb.vers 19 Aug 2007 17:43:04 -0000 1.11
+++ rpm/rpmdb/librpmdb.vers 19 Aug 2007 19:45:47 -0000 1.12
@@ -23,6 +23,7 @@
fpLookup;
fpLookupList;
_hdr_debug;
+ _hdr_stats;
hdrVec;
headerCompoundFormats;
headerDefaultFormats;
@@ .
Received on Sun Aug 19 21:45:47 2007