RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  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 @@
   /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
   HV_t hdrVec; /* forward reference */
   
  +/**
  + * Global header stats enabler.
  + */
  +/[EMAIL PROTECTED]@*/
  +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 /[EMAIL PROTECTED]@*/
  +void * headerGetStats(/[EMAIL PROTECTED]@*/ Header h, int opx)
  +        /[EMAIL PROTECTED]/
  +{
  +    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) (/[EMAIL PROTECTED]@*/ Header h, int instance)
        /[EMAIL PROTECTED] 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) (/[EMAIL PROTECTED]@*/ Header h, int opx)
  +        /[EMAIL PROTECTED]/;
  +
   /** \ingroup header
    * Header method vectors.
    */
  @@ -816,6 +827,7 @@
       HDRsetorigin hdrsetorigin;
       HDRgetinstance hdrgetinstance;
       HDRsetinstance hdrsetinstance;
  +    HDRgetstats hdrgetstats;
   /[EMAIL PROTECTED]@*/
       void *   hdrvecs;
   /[EMAIL PROTECTED]@*/
  @@ -874,20 +886,6 @@
        /[EMAIL PROTECTED] 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,
  -             /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ const char ** np,
  -             /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ const char ** vp,
  -             /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ const char ** rp)
  -     /[EMAIL PROTECTED] *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 @@
   /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/
       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;
   /[EMAIL PROTECTED]@*/
       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;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to