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:   12-Oct-2009 21:03:49
  Branch: HEAD                             Handle: 2009101219034800

  Modified files:
    rpm/rpmdb               librpmdb.vers logio.awk logio.h logio.src rpmdb.h

  Log:
    - dbi: stub-in a file id content pointer with creat/unlink/rename.

  Summary:
    Revision    Changes     Path
    1.75        +1  -0      rpm/rpmdb/librpmdb.vers
    1.4         +12 -32     rpm/rpmdb/logio.awk
    1.7         +3  -3      rpm/rpmdb/logio.h
    1.6         +10 -9      rpm/rpmdb/logio.src
    1.116       +22 -17     rpm/rpmdb/rpmdb.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.74 -r1.75 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers   12 Oct 2009 17:07:26 -0000      1.74
  +++ rpm/rpmdb/librpmdb.vers   12 Oct 2009 19:03:48 -0000      1.75
  @@ -91,6 +91,7 @@
       logio_Mkdir_recover;
       logio_Mkfifo_log;
       logio_Mknod_log;
  +    logio_Rename_log;
       logio_Rmdir_log;
       logio_Rmdir_recover;
       logio_Symlink_log;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/logio.awk
  ============================================================================
  $ cvs diff -u -r1.3 -r1.4 logio.awk
  --- rpm/rpmdb/logio.awk       12 Oct 2009 17:07:26 -0000      1.3
  +++ rpm/rpmdb/logio.awk       12 Oct 2009 19:03:48 -0000      1.4
  @@ -4,7 +4,7 @@
   #
   # Copyright (c) 1996-2009 Oracle.  All rights reserved.
   #
  -# $Id: logio.awk,v 1.3 2009/10/12 17:07:26 jbj Exp $
  +# $Id: logio.awk,v 1.4 2009/10/12 19:03:48 jbj Exp $
   #
   
   # This awk script generates all the log, print, and read routines for the DB
  @@ -80,22 +80,18 @@
        printf("/* Do not edit: automatically built by logio.awk. */\n\n")\
            > CFILE
        printf("#include \"system.h\"\n\n") >> CFILE
  -     printf("#include <rpmio.h>\n\n") >> CFILE
        if (!dbprivate) {
                printf("#include \"db.h\"\n") >> CFILE
                printf("#include \"db_int.h\"\n") >> CFILE
                printf("#include \"dbinc/db_swap.h\"\n\n") >> CFILE
        }
  -     printf("#include \"debug.h\"\n") >> CFILE
   
        printf("/* Do not edit: automatically built by logio.awk. */\n\n")\
            > PFILE
        printf("#include \"system.h\"\n\n") >> PFILE
  -     printf("#include <rpmio.h>\n\n") >> PFILE
        if (!dbprivate) {
                printf("#include \"db.h\"\n\n") >> PFILE
        }
  -     printf("#include \"debug.h\"\n\n") >> PFILE
   
        if (prefix == "__ham")
                printf("#ifdef HAVE_HASH\n") >> PFILE
  @@ -112,17 +108,13 @@
        if (dbprivate) {
                # This assumes we're doing DB recovery.
                printf("#include \"system.h\"\n\n") >> TFILE
  -             printf("#include <rpmio.h>\n\n") >> TFILE
                printf("#include \"db_int.h\"\n") >> TFILE
                printf("#include \"dbinc/db_page.h\"\n") >> TFILE
                printf("#include \"dbinc/%s.h\"\n", prefix) >> TFILE
                printf("#include \"dbinc/log.h\"\n\n") >> TFILE
  -             printf("#include \"debug.h\"\n\n") >> TFILE
        } else {
                printf("#include \"system.h\"\n\n") >> TFILE
  -             printf("#include <rpmio.h>\n\n") >> TFILE
                printf("#include <db.h>\n\n") >> TFILE
  -             printf("#include \"debug.h\"\n\n") >> TFILE
        }
   }
   /^[  ]*INCLUDE/ {
  @@ -1055,10 +1047,10 @@
   {
        # Function declaration
        if (has_dbp) {
  -             printf("int\n%s_log(dbp, txnp, ret_lsnp, flags",\
  +             printf("int\n%s_log(DB *dbp, DB_TXN *txnp, DB_LSN *ret_lsnp, 
uint32_t flags",\
                    name) >> CFILE
        } else {
  -             printf("int\n%s_log(%s, txnp, ret_lsnp, flags",\
  +             printf("int\n%s_log(DB_ENV *%s, DB_TXN *txnp, DB_LSN *ret_lsnp, 
uint32_t flags",\
                    name, env_var) >> CFILE
        }
        for (i = 0; i < nvars; i++) {
  @@ -1068,36 +1060,24 @@
                        continue;
                }
                printf(",") >> CFILE
  -             if ((i % 6) == 0)
  -                     printf("\n    ") >> CFILE
  +             if ((i % 4) == 0)
  +                     printf("\n\t\t") >> CFILE
                else
                        printf(" ") >> CFILE
  -             printf("%s", vars[i]) >> CFILE
  -     }
  -
  -     if (withtype)
  -             printf(", type") >> CFILE
  -
  -     printf(")\n") >> CFILE
   
  -     # Now print the parameters
  -     if (has_dbp) {
  -             printf("\tDB *dbp;\n") >> CFILE
  -     } else {
  -             printf("\t%s *%s;\n", env_type, env_var) >> CFILE
  -     }
  -     printf("\tDB_TXN *txnp;\n\tDB_LSN *ret_lsnp;\n") >> CFILE
  -     printf("\tuint32_t flags;\n") >> CFILE
  -     for (i = 0; i < nvars; i++) {
                # We just skip for modes == DB.
                if (modes[i] == "DBT" || modes[i] == "LOCKS" ||
                    modes[i] == "PGDBT" || modes[i] == "PGDDBT")
  -                     printf("\tconst %s *%s;\n", types[i], vars[i]) >> CFILE
  +                     printf("const %s *%s", types[i], vars[i]) >> CFILE
                else if (modes[i] != "DB")
  -                     printf("\t%s %s;\n", types[i], vars[i]) >> CFILE
  +                     printf("%s %s", types[i], vars[i]) >> CFILE
        }
  +
        if (withtype)
  -             printf("\tuint32_t type;\n") >> CFILE
  +             printf(", uint32_t type") >> CFILE
  +
  +     printf(")\n") >> CFILE
  +
   }
   
   function log_callint(fname)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/logio.h
  ============================================================================
  $ cvs diff -u -r1.6 -r1.7 logio.h
  --- rpm/rpmdb/logio.h 10 Oct 2009 23:37:04 -0000      1.6
  +++ rpm/rpmdb/logio.h 12 Oct 2009 19:03:48 -0000      1.7
  @@ -12,15 +12,15 @@
        __P((DB_ENV *, DBT *, DB_LSN *, db_recops))
   
   int logio_Creat_log
  -     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT *, 
unsigned, mode_t));
  +     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT *, 
mode_t));
   _LOGIO_PROTO(Creat);
   
   int logio_Unlink_log
  -     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, mode_t));
  +     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT *, 
mode_t));
   _LOGIO_PROTO(Unlink);
   
   int logio_Rename_log
  -     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT *));
  +     __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT *, 
const DBT *));
   _LOGIO_PROTO(Rename);
   
   int logio_Mkdir_log
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/logio.src
  ============================================================================
  $ cvs diff -u -r1.5 -r1.6 logio.src
  --- rpm/rpmdb/logio.src       10 Oct 2009 23:37:04 -0000      1.5
  +++ rpm/rpmdb/logio.src       12 Oct 2009 19:03:48 -0000      1.6
  @@ -1,5 +1,5 @@
   PREFIX       logio
  -INCLUDE #include "system.h"
  +
   INCLUDE #include <rpmio.h>
   INCLUDE #include "logio.h"
   INCLUDE #include "debug.h"
  @@ -14,20 +14,21 @@
   
   /* Creat(2) */
   BEGIN Creat  48      10000
  +DBT  fid             DBT             s
   DBT  path            DBT             s
  -DBT  digest          DBT             s
  -ARG  dalgo           unsigned        u
   ARG  mode            mode_t          o
   END
   
   /* Unlink(2) */
   BEGIN Unlink 48      10001
  +DBT  fid             DBT             s
   DBT  path            DBT             s
   ARG  mode            mode_t          o
   END
   
   /* Rename(2) */
   BEGIN Rename 48      10002
  +DBT  fid             DBT             s
   DBT  oldpath         DBT             s
   DBT  newpath         DBT             s
   END
  @@ -53,15 +54,15 @@
   /* Chown(2) */
   BEGIN Chown  48      10006
   DBT  path            DBT             s
  -ARG  owner           uid_t           d
  -ARG  group           gid_t           d
  +ARG  owner           uid_t           lu
  +ARG  group           gid_t           lu
   END
   
   /* Lchown(2) */
   BEGIN Lchown 48      10007
   DBT  path            DBT             s
  -ARG  owner           uid_t           d
  -ARG  group           gid_t           d
  +ARG  owner           uid_t           lu
  +ARG  group           gid_t           lu
   END
   
   /* Chmod(2) */
  @@ -73,8 +74,8 @@
   /* Utime(2) */
   BEGIN Utime  48      10009
   DBT  path            DBT             s
  -TIME actime          time_t          ld
  -TIME modtime         time_t          ld
  +TIME actime          time_t          lu
  +TIME modtime         time_t          lu
   END
   
   /* Symlink(2) */
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.h
  ============================================================================
  $ cvs diff -u -r1.115 -r1.116 rpmdb.h
  --- rpm/rpmdb/rpmdb.h 12 Oct 2009 01:34:42 -0000      1.115
  +++ rpm/rpmdb/rpmdb.h 12 Oct 2009 19:03:48 -0000      1.116
  @@ -1147,60 +1147,65 @@
   }
   
   /*...@unused@*/ static inline
  -int rpmlioCreat(rpmdb rpmdb, const char * fn, mode_t mode,
  -             const rpmuint8_t * d, size_t dlen, unsigned dalgo)
  +int rpmlioCreat(rpmdb rpmdb, void * fid, const char * fn, mode_t mode)
   {
       int rc = 0;
       extern int logio_Creat_log
  -        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT 
*, unsigned, mode_t));
  +        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT 
*, mode_t));
       DB_ENV * dbenv = rpmdb->db_dbenv;
       DB_TXN * _txn = rpmdb->db_txnid;
       DB_LSN _lsn = {0,0};
  +    DBT FIDdbt = {0};
       DBT FNdbt = {0};
  -    DBT DIGESTdbt = {0};
  +    FIDdbt.data = "";
  +    FIDdbt.size = 1;
       FNdbt.data = (void *)fn;
       FNdbt.size = strlen(fn) + 1;     /* trailing NUL too */
  -    DIGESTdbt.data = (void *)d;
  -    DIGESTdbt.size = dlen;
  -    rc = logio_Creat_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, &DIGESTdbt, 
dalgo, mode);
  -fprintf(stderr, "<== %s(%s, %p]%u], 0%o) rc %d\n", __FUNCTION__, fn, d, 
(unsigned)dlen, mode, rc);
  +    rc = logio_Creat_log(dbenv, _txn, &_lsn, DB_FLUSH, &FIDdbt, &FNdbt, 
mode);
  +fprintf(stderr, "<== %s(%p, %s, 0%o) rc %d\n", __FUNCTION__, fid, fn, mode, 
rc);
       return rc;
   }
   
   /*...@unused@*/ static inline
  -int rpmlioUnlink(rpmdb rpmdb, const char * fn, mode_t mode)
  +int rpmlioUnlink(rpmdb rpmdb, void * fid, const char * fn, mode_t mode)
   {
       int rc = 0;
       extern int logio_Unlink_log
  -        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, mode_t));
  +        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT 
*, mode_t));
       DB_ENV * dbenv = rpmdb->db_dbenv;
       DB_TXN * _txn = rpmdb->db_txnid;
       DB_LSN _lsn = {0,0};
  +    DBT FIDdbt = {0};
       DBT FNdbt = {0};
  +    FIDdbt.data = "";
  +    FIDdbt.size = 1;
       FNdbt.data = (void *)fn;
       FNdbt.size = strlen(fn) + 1;     /* trailing NUL too */
  -    rc = logio_Unlink_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode);
  -fprintf(stderr, "<== %s(%s, 0%o) rc %d\n", __FUNCTION__, fn, mode, rc);
  +    rc = logio_Unlink_log(dbenv, _txn, &_lsn, DB_FLUSH, &FIDdbt, &FNdbt, 
mode);
  +fprintf(stderr, "<== %s(%p, %s, 0%o) rc %d\n", __FUNCTION__, fid, fn, mode, 
rc);
       return rc;
   }
   
   /*...@unused@*/ static inline
  -int rpmlioRename(rpmdb rpmdb, const char * oldname, const char * newname)
  +int rpmlioRename(rpmdb rpmdb, void * oldfid, const char * oldname, const 
char * newname)
   {
       int rc = 0;
  -    extern int logio_Symlink_log
  -        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT 
*));
  +    extern int logio_Rename_log
  +        __P((DB_ENV *, DB_TXN *, DB_LSN *, uint32_t, const DBT *, const DBT 
*, const DBT *));
       DB_ENV * dbenv = rpmdb->db_dbenv;
       DB_TXN * _txn = rpmdb->db_txnid;
       DB_LSN _lsn = {0,0};
  +    DBT FIDdbt = {0};
       DBT ONdbt = {0};
       DBT NNdbt = {0};
  +    FIDdbt.data = "";
  +    FIDdbt.size = 1;
       ONdbt.data = (void *)oldname;
       ONdbt.size = strlen(oldname) + 1;        /* trailing NUL too */
       NNdbt.data = (void *)newname;
       NNdbt.size = strlen(newname) + 1;        /* trailing NUL too */
  -    rc = logio_Symlink_log(dbenv, _txn, &_lsn, DB_FLUSH, &ONdbt, &NNdbt);
  -fprintf(stderr, "<== %s(%s, %s) rc %d\n", __FUNCTION__, oldname, newname, 
rc);
  +    rc = logio_Rename_log(dbenv, _txn, &_lsn, DB_FLUSH, &FIDdbt, &ONdbt, 
&NNdbt);
  +fprintf(stderr, "<== %s(%p, %s, %s) rc %d\n", __FUNCTION__, oldfid, oldname, 
newname, rc);
       return rc;
   }
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to