RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/lib/ rpmts.h rpm/rpmdb/ header.c header.h ...

From: Jeff Johnson <jbj@rpm5.org>
Date: Sun 19 Aug 2007 - 21:45:47 CEST
Message-Id: <20070819194547.E551B348458@rpm5.org>
  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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.