The NetBSD Project

CVS log for src/common/lib/libprop/prop_dictionary.c

[BACK] Up to [cvs.NetBSD.org] / src / common / lib / libprop

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.46: download - view: text, markup, annotated - select for diffs
Wed Jun 14 00:35:18 2023 UTC (18 months ago) by rin
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +5 -3 lines
Sprinkle braces around _PROP_RWLOCK_UNLOCK() in ``if'' block.
It is expanded into /* nothing */ for _STANDALONE.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Wed Aug 3 21:13:46 2022 UTC (2 years, 4 months ago) by riastradh
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +7 -7 lines
proplib: Nix trailing whitespace.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat Jul 2 16:30:13 2022 UTC (2 years, 5 months ago) by andvar
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +2 -2 lines
s/refrences/references/

Revision 1.43: download - view: text, markup, annotated - select for diffs
Sun Dec 5 02:52:17 2021 UTC (3 years ago) by msaitoh
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +2 -2 lines
s/exisit/exist/ in comment.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Sat Jun 6 21:25:59 2020 UTC (4 years, 6 months ago) by thorpej
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +17 -4 lines
Improvements to the problib(3) API:

==> Provide a much more complete set of setters and getters for different
    value types in the prop_array_util(3) and prop_dictionary_util(3)
    functions.

==> Overhaul the prop_data(3), prop_number(3), and prop_string(3) APIs
    to be easier to use and less awkwardly named,  Deprecate the old
    awkward names, and produce link-time warnings when they are referenced.

==> Deprecate mutable prop_data(3) and prop_string(3) objects.  The old
    APIs that support them still exist, but will now produce link-time
    warnings when used.

==> When the new prop_string(3) API is used, strings are internally
    de-duplicated as a memory footprint optimization.

==> Provide a rich set of bounds-checked gettter functions in and a
    corresponding set of convenience setters in the prop_number(3) API.

==> Add a new prop_bool_value(3) function that is equivalent to
    prop_bool_true(3), but aligned with the new "value" routines in
    prop_data(3), prop_string(3), and prop_number(3).

Revision 1.41.16.2: download - view: text, markup, annotated - select for diffs
Tue Apr 21 19:37:51 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.41.16.1: preferred, colored; branchpoint 1.41: preferred, colored; next MAIN 1.42: preferred, colored
Changes since revision 1.41.16.1: +0 -0 lines
Ooops, restore accidently removed files from merge mishap

Revision 1.41.16.1
Tue Apr 21 18:41:24 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
FILE REMOVED
Changes since revision 1.41: +1 -1 lines
Sync with HEAD

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Jun 28 05:21:15 2016 UTC (8 years, 5 months ago) by pgoyette
Branches: MAIN
CVS tags: tls-maxphys-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, ad-namecache-base3, ad-namecache-base, ad-namecache
Branch point for: phil-wifi
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +3 -3 lines
Missed a couple of function-call renames in previous

Revision 1.40: download - view: text, markup, annotated - select for diffs
Tue Jun 28 05:18:11 2016 UTC (8 years, 5 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +8 -7 lines
The local copy of rb_tree code has been unused for quite some time.  So
we can just remove it, and adjust callers to use the "real" rbtree
function names.

Addresses PR lib/44090

Revision 1.38.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 19 23:45:15 2014 UTC (10 years, 3 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.38: preferred, colored; next MAIN 1.39: preferred, colored
Changes since revision 1.38: +2 -2 lines
Rebase to HEAD as of a few days ago.

Revision 1.37.4.2: download - view: text, markup, annotated - select for diffs
Thu May 22 11:26:30 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.37.4.1: preferred, colored; branchpoint 1.37: preferred, colored; next MAIN 1.38: preferred, colored
Changes since revision 1.37.4.1: +2 -2 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.39: download - view: text, markup, annotated - select for diffs
Fri Oct 18 18:26:20 2013 UTC (11 years, 1 month ago) by martin
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -2 lines
Make this compilable with gcc 4.8.1 without options DIAGNOSTIC.

Revision 1.37.4.1: download - view: text, markup, annotated - select for diffs
Tue Oct 30 18:46:15 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +6 -6 lines
sync with head

Revision 1.38: download - view: text, markup, annotated - select for diffs
Fri Jul 27 09:10:59 2012 UTC (12 years, 4 months ago) by pooka
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: tls-maxphys
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +6 -6 lines
Bit-un-rot the proplib portability layer.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Wed Apr 20 19:40:00 2011 UTC (13 years, 7 months ago) by martin
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +3 -3 lines
Fix "address of a void*" vs. void* confusion.
Part of fixing PR lib/43964.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Fri Sep 24 22:51:52 2010 UTC (14 years, 2 months ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base11, matt-mips64-premerge-20101231, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +24 -28 lines
Fixes/improvements to RB-tree implementation:
1. Fix inverted node order, so that negative value from comparison operator
   would represent lower (left) node, and positive - higher (right) node.
2. Add an argument (i.e. "context"), passed to comparison operators.
3. Change rb_tree_insert_node() to return a node - either inserted one or
   already existing one.
4. Amend the interface to manipulate the actual object, instead of the
   rb_node (in a similar way as Patricia-tree interface does).
5. Update all RB-tree users accordingly.

XXX: Perhaps rename rb.h to rbtree.h, since cleaning-up..

1-3 address the PR/43488 by Jeremy Huddleston.

Passes RB-tree regression tests.
Reviewed by: matt@, christos@

Revision 1.34.2.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:23:17 2009 UTC (15 years, 7 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.34: preferred, colored; next MAIN 1.35: preferred, colored
Changes since revision 1.34: +5 -2 lines
Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Tue Apr 14 02:53:41 2009 UTC (15 years, 8 months ago) by haad
Branches: MAIN
CVS tags: yamt-nfs-mp-base9, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base10, rmind-uvmplock-base, matt-premerge-20091211, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +5 -2 lines
Check if pd is not NULL before we try to lock rw lock associated with it.
This fixes proplib crash when NULL is passed to prop_dictionary_get as a
dictionary.

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sat Jan 3 18:31:33 2009 UTC (15 years, 11 months ago) by pooka
Branches: MAIN
Branch point for: jym-xensuspend
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +23 -14 lines
Get rid of locks with static initializers using once and atomic ops.
This makes proplib simplelock-free.

Revision 1.16.4.1.2.1: download - view: text, markup, annotated - select for diffs
Sun Nov 30 23:53:04 2008 UTC (16 years ago) by snj
Branches: netbsd-4-0
Diff to: previous 1.16.4.1: preferred, colored; next MAIN 1.16.4.2: preferred, colored
Changes since revision 1.16.4.1: +23 -4 lines
Pull up following revision(s) (requested by haad in ticket #1243):
	common/lib/libprop/prop_dictionary.c: revision 1.33
	common/lib/libprop/prop_number.c: revision 1.20
	common/lib/libprop/prop_object.c: revision 1.23 via patch
	common/lib/libprop/prop_object_impl.h: revision 1.28
Fix two race conditions in proplib library. In prop_dictionary and
prop_number there was small window in which was entry left in rb tree
with reference count 0 which lead to rb tree coruption when another
thread picked this up before it was released.
Add 2 new members to the prop_object_t which are used for locking/unlocking
rb tree guard mutex.
Ok by joerg@, core@, thorpej@

Revision 1.16.4.2: download - view: text, markup, annotated - select for diffs
Sun Nov 30 23:50:04 2008 UTC (16 years ago) by snj
Branches: netbsd-4
Diff to: previous 1.16.4.1: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.4.1: +23 -4 lines
Pull up following revision(s) (requested by haad in ticket #1243):
	common/lib/libprop/prop_dictionary.c: revision 1.33
	common/lib/libprop/prop_number.c: revision 1.20
	common/lib/libprop/prop_object.c: revision 1.23 via patch
	common/lib/libprop/prop_object_impl.h: revision 1.28
Fix two race conditions in proplib library. In prop_dictionary and
prop_number there was small window in which was entry left in rb tree
with reference count 0 which lead to rb tree coruption when another
thread picked this up before it was released.
Add 2 new members to the prop_object_t which are used for locking/unlocking
rb tree guard mutex.
Ok by joerg@, core@, thorpej@

Revision 1.32.4.1: download - view: text, markup, annotated - select for diffs
Sun Nov 30 02:40:01 2008 UTC (16 years ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b
Diff to: previous 1.32: preferred, colored; next MAIN 1.33: preferred, colored
Changes since revision 1.32: +23 -4 lines
Pull up following revision(s) (requested by haad in ticket #150):
	common/lib/libprop/prop_dictionary.c: revision 1.33
	common/lib/libprop/prop_number.c: revision 1.20
	common/lib/libprop/prop_object.c: revision 1.23
	common/lib/libprop/prop_object_impl.h: revision 1.28
Fix two race conditions in proplib library. In prop_dictionary and
prop_number there was small window in which was entry left in rb tree with
reference count 0 which lead to rb tree coruption when another thread picked
this up before it was released.
Add 2 new members to the prop_object_t which are used for locking/unlocking
rb tree guard mutex.
Ok by joerg@, core@, thorpej@

Revision 1.33: download - view: text, markup, annotated - select for diffs
Sun Nov 30 00:17:07 2008 UTC (16 years ago) by haad
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +23 -4 lines
Fix two race conditions in proplib library. In prop_dictionary and prop_number
there was small window in which was entry left in rb tree with reference
count 0 which lead to rb tree coruption when another thread picked this up
before it was released.
Add 2 new members to the prop_object_t which are used for locking/unlocking
rb tree guard mutex.

Ok by joerg@, core@, thorpej@

Revision 1.28.2.2: download - view: text, markup, annotated - select for diffs
Thu Sep 18 04:54:18 2008 UTC (16 years, 2 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.28.2.1: preferred, colored; branchpoint 1.28: preferred, colored; next MAIN 1.29: preferred, colored
Changes since revision 1.28.2.1: +25 -22 lines
Sync with wrstuden-revivesa-base-2.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sun Aug 3 04:00:12 2008 UTC (16 years, 4 months ago) by thorpej
Branches: MAIN
CVS tags: wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, netbsd-5-base, matt-mips64-base2
Branch point for: netbsd-5
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +25 -22 lines
Fix an issue introduced with the prop_stack change: It's not a good idea to
return a 3-value enum from a function declared to return bool.  This broke
the recurse case for prop_object_equals().  Instead, declare the object type
equals routine to return a _prop_object_equals_rv_t.

Give the same treatment to the object type free routines: declare them to
return a _prop_object_free_rv_t, and consistently check those return values
againt the enum type.

Tidy up some whitespace while we're here.

Revision 1.28.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:26:46 2008 UTC (16 years, 5 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +94 -42 lines
Sync w/ -current. 34 merge conflicts to follow.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Tue Jun 17 21:29:47 2008 UTC (16 years, 5 months ago) by thorpej
Branches: MAIN
CVS tags: wrstuden-revivesa-base-1, wrstuden-revivesa-base
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +4 -2 lines
_prop_rb_tree_insert_node() now returns true/false to indicate if the
insertion succeeded.  Update existing usage that arranges for insertions
to always succeed to assert that they do.

Revision 1.23.2.2: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:02:58 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.23.2.1: preferred, colored; branchpoint 1.23: preferred, colored; next MAIN 1.24: preferred, colored
Changes since revision 1.23.2.1: +91 -41 lines
sync with head

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat May 24 14:32:48 2008 UTC (16 years, 6 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +89 -30 lines
fix recursive read-lock bugs found by lockdebug and reported
by Geoff C. Wing and others.  ok'ed by Jason Thorpe.
an earlier version was tested by Sverre Froyen.
PR/38732 from oster@.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat May 24 14:24:04 2008 UTC (16 years, 6 months ago) by yamt
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +7 -16 lines
revert the recent "use trylock to hide locking errors" changes
and their associated changes, in particular, the following versions.
	prop_array.c		1.13-1.16
	prop_dictionary.c	1.25-1.28
	prop_object_impl.h	1.21-1.25
ok'ed by core@.

Revision 1.23.2.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:28:47 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +16 -14 lines
sync with head.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed May 7 10:16:41 2008 UTC (16 years, 7 months ago) by tron
Branches: MAIN
CVS tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +3 -3 lines
Change the argument of _PROP_RWLOCK_TRYRDLOCK() to the lock member and not
its address to be consistent with all the other macros.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Wed May 7 10:01:50 2008 UTC (16 years, 7 months ago) by tron
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -3 lines
Replace _prop_rwlock_tryrdlock() by a macro _PROP_RWLOCK_TRYRDLOCK().
This avoids build failures in stand alone binaries (e.g. bootloaders)
where there is no "pa_rwlock" member in the "_prop_array" structure.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Tue May 6 22:57:26 2008 UTC (16 years, 7 months ago) by xtraeme
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +14 -4 lines
prop_object_iterator_next() and prop_object_iterator_reset() were
acquiring the rwlock recursively in some paths.

Introduce _prop_rwlock_tryrdlock() and use it in these functions, so
that the rwlock is *always* acquired once, while here add some
_PROP_RWLOCK_OWNED asserts to verify.

This definitely fixes the "locking against myself" panics.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue May 6 13:52:51 2008 UTC (16 years, 7 months ago) by xtraeme
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +4 -5 lines
Do not acquire the rwlock recursively in prop_{array,dictionary}_iterator_reset()
when prop_{array,dictionary}_copyout_ioctl() is called.

Introduce _PROP_RWLOCK_OWNED() which is a KASSERT(rw_lock_held(lock))
and use it in those two functions, also acquire the rwlock in other
places where it is required now.

This fixes a LOCKDEBUG panic "locking against myself", as reported by
Geoff C. Wing in current-users@.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:22:53 2008 UTC (16 years, 7 months ago) by martin
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +1 -8 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.22.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:14:29 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.22: preferred, colored; next MAIN 1.23: preferred, colored
Changes since revision 1.22: +15 -1 lines
sync with head.

Revision 1.19.2.2: download - view: text, markup, annotated - select for diffs
Sun Mar 23 00:12:45 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.19.2.1: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.2.1: +15 -1 lines
sync with HEAD

Revision 1.23: download - view: text, markup, annotated - select for diffs
Wed Mar 5 07:47:09 2008 UTC (16 years, 9 months ago) by cube
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-base
Branch point for: yamt-pf42
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +15 -1 lines
Actually implement prop_dictionary_make_immutable.  OK'd by thorpej@.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Jan 5 01:15:02 2008 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: matt-armv6-base, hpcarm-cleanup-base
Branch point for: keiichi-mipv6
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +1 -3 lines
Include sys/simplelock.h in prop_object_impl.h.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Fri Jan 4 21:35:19 2008 UTC (16 years, 11 months ago) by xtraeme
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +3 -1 lines
sys/simplelock.h is required now.

Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Nov 6 23:07:25 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
CVS tags: matt-armv6-prevmlocking
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +71 -40 lines
sync with HEAD

Revision 1.16.12.1: download - view: text, markup, annotated - select for diffs
Sun Sep 30 03:38:46 2007 UTC (17 years, 2 months ago) by wrstuden
Branches: wrstuden-fixsa
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +298 -219 lines
Catch up on netbsd-4 as of a few days ago.

Revision 1.16.4.1: download - view: text, markup, annotated - select for diffs
Thu Sep 27 16:16:26 2007 UTC (17 years, 2 months ago) by xtraeme
Branches: netbsd-4
CVS tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-1-RELEASE
Branch point for: netbsd-4-0
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +298 -219 lines
Pull up following revision(s) (requested by joerg in ticket #904):
	sbin/veriexecctl/veriexecctl.c: revision 1.29 (via patch)
	common/lib/libprop/prop_string.c: revision 1.9 (via patch)
	distrib/sets/lists/comp/mi: revision 1.1063 (via patch)
	common/lib/libprop/prop_kern.c: revision 1.8 (via patch)
	common/include/prop/prop_string.h: revision 1.2 (via patch)
	common/include/prop/prop_ingest.h: revision 1.2 (via patch)
	usr.sbin/btdevctl/btdevctl.c: revision 1.5 (via patch)
	common/lib/libprop/prop_object_impl.h: revision 1.14 (via patch)
	common/lib/libprop/prop_rb.c: revision 1.7 (via patch)
	common/include/prop/prop_array.h: revision 1.5 (via patch)
	common/lib/libprop/prop_stack.h: revision 1.1 (via patch)
	common/lib/libprop/prop_object_impl.h: revision 1.16 (via patch)
	common/lib/libprop/prop_number.3: revision 1.7 (via patch)
	common/lib/libprop/prop_stack.h: revision 1.2 (via patch)
	common/lib/libprop/prop_stack.c: revision 1.1 (via patch)
	common/lib/libprop/prop_object_impl.h: revision 1.17 (via patch)
	common/lib/libprop/prop_dictionary_util.c: revision 1.2 (via patch)
	common/lib/libprop/prop_dictionary_util.3: revision 1.2 (via patch)
	common/lib/libprop/prop_dictionary.c: revision 1.18 (via patch)
	common/lib/libprop/prop_stack.c: revision 1.2 (via patch)
	common/lib/libprop/prop_object_impl.h: revision 1.18 (via patch)
	common/lib/libprop/prop_dictionary.c: revision 1.19 (via patch)
	common/include/prop/prop_bool.h: revision 1.3 (via patch)
	common/include/prop/prop_dictionary.h: revision 1.7 (via patch)
	common/include/prop/prop_data.h: revision 1.2 (via patch)
	sys/sys/dkio.h: revision 1.14 (via patch)
	usr.sbin/btdevctl/sdp.c: revision 1.4 (via patch)
	common/include/prop/Makefile: revision 1.3 (via patch)
	common/include/prop/prop_number.h: revision 1.5 (via patch)
	common/lib/libprop/prop_object.c: revision 1.14 (via patch)
	common/lib/libprop/prop_object.c: revision 1.15 (via patch)
	common/lib/libprop/prop_object.c: revision 1.16 (via patch)
	common/lib/libprop/prop_bool.3: revision 1.3 (via patch)
	common/lib/libprop/prop_data.3: revision 1.4 (via patch)
	common/lib/libprop/prop_object.3: revision 1.6 (via patch)
	common/lib/libprop/prop_data.c: revision 1.7 (via patch)
	common/lib/libprop/prop_data.c: revision 1.8 (via patch)
	common/lib/libprop/prop_data.c: revision 1.9 (via patch)
	common/lib/libprop/prop_dictionary.c: revision 1.20 (via patch)
	usr.sbin/btdevctl/print.c: revision 1.9 (via patch)
	sbin/veriexecctl/veriexecctl_parse.y: revision 1.22 (via patch)
	common/lib/libprop/prop_number.c: revision 1.12 (via patch)
	common/include/prop/proplib.h: revision 1.5 (via patch)
	common/lib/libprop/prop_number.c: revision 1.13 (via patch)
	common/lib/libprop/prop_number.c: revision 1.14 (via patch)
	common/include/prop/prop_object.h: revision 1.5 (via patch)
	common/lib/libprop/prop_array.3: revision 1.5 (via patch)
	common/include/prop/prop_object.h: revision 1.6 (via patch)
	common/lib/libprop/prop_string.3: revision 1.4 (via patch)
	common/lib/libprop/prop_bool.c: revision 1.10 (via patch)
	common/lib/libprop/Makefile.inc: revision 1.6 (via patch)
	common/lib/libprop/prop_ingest.c: revision 1.2 (via patch)
	common/lib/libprop/prop_bool.c: revision 1.11 (via patch)
	common/lib/libprop/prop_array.c: revision 1.10 (via patch)
	common/lib/libprop/prop_ingest.3: revision 1.3 (via patch)
	common/lib/libprop/prop_bool.c: revision 1.12 (via patch)
	common/lib/libprop/prop_array.c: revision 1.11 (via patch)
	common/lib/libprop/prop_string.c: revision 1.7 (via patch)
	common/lib/libprop/prop_dictionary.3: revision 1.8 (via patch)
	common/lib/libprop/prop_array.c: revision 1.9 (via patch)
	usr.sbin/btdevctl/db.c: revision 1.4 (via patch)
	common/lib/libprop/prop_string.c: revision 1.8 (via patch)
	common/include/prop/plistref.h: revision 1.1 (via patch)
Consider '\r' to be white space. Discussed with and also kept as local
change by freza. With this change, DOS style line endings work.

boolean_t -> bool
TRUE -> true
FALSE -> false

libprop is currently using a recursive parser. While this is fine for
userland, deeply nested arrays and dictionaries can easily overflow
the kernel stack and thereby force a panic.

Fix the internalizer and prop_object_release to use a separate call
stack and alter the dictionary and array handling to not recurse on
the C stack. The default stack has an inline depth of 16 elements,
which should keep the overhead reasonable.

This issue was found by Pavel Cahyna and Jachym Holecek.

Additionally add a limit for prop_object_copyin_ioctl to prevent user
programs from temporary allocating unbound amount of kernel memory.

Allow malloc to fail so that tight loops of userland processes can't
force panics by exhausting the kernel map.

Tested with the sample exploit of Jachym, his test suite and reviewed
by himself (initial patch), Christos Zoulas and Jason Thorpe.
struct plistref does not reference other proplib data types, so split it
in its own header file to be included by dkio.h. Fixes breakage due to
pollution from proplib.h in programs which include ioctl.h. Tested and OK
by dogcow@.

Attempt at fixing build failures after proplib was converted to bool:
FALSE -> false, TRUE -> true, boolean_t -> bool, int -> bool when
appropriate, include stdbool.h . proplib.h no longer provides boolean_t,
so it is necessary to change to bool.
From Tom Spindler (dogcow@).

Avoid using unbound amount of stack frames in prop_object_equal
by using a dynamic stack as well. Reorder arguments for the internalizer
as the iteration is always present and should go before possibly
NULL arguments.
Reviewed by mjf@ and adrianp@

Revision 1.20: download - view: text, markup, annotated - select for diffs
Thu Aug 30 12:23:54 2007 UTC (17 years, 3 months ago) by joerg
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, cube-autoconf-base, cube-autoconf
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +71 -40 lines
Avoid using unbound amount of stack frames in prop_object_equal
by using a dynamic stack as well. Reorder arguments for the internalizer
as the iteration is always present and should go before possibly
NULL arguments.

Reviewed by mjf@ and adrianp@

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Aug 16 21:44:07 2007 UTC (17 years, 4 months ago) by joerg
Branches: MAIN
Branch point for: matt-armv6
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +173 -82 lines
libprop is currently using a recursive parser. While this is fine for
userland, deeply nested arrays and dictionaries can easily overflow
the kernel stack and thereby force a panic.

Fix the internalizer and prop_object_release to use a separate call
stack and alter the dictionary and array handling to not recurse on
the C stack. The default stack has an inline depth of 16 elements,
which should keep the overhead reasonable.

This issue was found by Pavel Cahyna and Jachym Holecek.

Additionally add a limit for prop_object_copyin_ioctl to prevent user
programs from temporary allocating unbound amount of kernel memory.
Allow malloc to fail so that tight loops of userland processes can't
force panics by exhausting the kernel map.

Tested with the sample exploit of Jachym, his test suite and reviewed
by himself (initial patch), Christos Zoulas and Jason Thorpe.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Thu Aug 16 16:28:17 2007 UTC (17 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +71 -71 lines
boolean_t -> bool
TRUE -> true
FALSE -> false

Revision 1.17: download - view: text, markup, annotated - select for diffs
Mon Jul 16 19:20:17 2007 UTC (17 years, 5 months ago) by joerg
Branches: MAIN
CVS tags: matt-mips64-base, matt-mips64, hpcarm-cleanup
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -45 lines
prop_array_internalize and prop_dictionary_internalize are basically the
same code. Refactor it into _prop_generic_internalize, which gets passed
the second-level tag.

Revision 1.16.2.2: download - view: text, markup, annotated - select for diffs
Thu Oct 26 05:02:13 2006 UTC (18 years, 1 month ago) by thorpej
Branches: newlock2
Diff to: previous 1.16.2.1: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.2.1: +1243 -0 lines
- Add prop_dictionary_all_keys().  Takes a snapshot of a dictionary's
  keys and returns them in an array.  This effectively allows a caller
  to mutate a dictionary while iterating over it (really, you iterate
  over the array of keys instead of the dictionary itself).
- Add a slew of utility functions that make it more convenient (in some
  circumstances, anyway) to get/set values in a dictionary.

Revision 1.16.2.1
Thu Oct 26 05:02:12 2006 UTC (18 years, 1 month ago) by thorpej
Branches: newlock2
FILE REMOVED
Changes since revision 1.16: +0 -1243 lines
file prop_dictionary.c was added on branch newlock2 on 2006-10-26 05:02:13 +0000

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Oct 26 05:02:12 2006 UTC (18 years, 1 month ago) by thorpej
Branches: MAIN
CVS tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-idlelwp-base8, vmlocking-base, vmlocking, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, newlock2-base, netbsd-4-base, netbsd-4-0-RC1
Branch point for: wrstuden-fixsa, newlock2, netbsd-4
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +37 -1 lines
- Add prop_dictionary_all_keys().  Takes a snapshot of a dictionary's
  keys and returns them in an array.  This effectively allows a caller
  to mutate a dictionary while iterating over it (really, you iterate
  over the array of keys instead of the dictionary itself).
- Add a slew of utility functions that make it more convenient (in some
  circumstances, anyway) to get/set values in a dictionary.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Wed Oct 18 19:15:46 2006 UTC (18 years, 1 month ago) by martin
Branches: MAIN
CVS tags: yamt-splraiseipl-base2
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
Backout size_t casts - lint has been fixed.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Oct 18 14:49:21 2006 UTC (18 years, 1 month ago) by martin
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -2 lines
Sprinkle a few size_t casts to avoid conversion warnings.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Tue Oct 3 15:45:04 2006 UTC (18 years, 2 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +107 -38 lines
- Add a reader-writer lock to array and dictionary objects that ensures that
  the data structure is internally consistent in the face of multiple threads
  accessing it concurrently.  This is not designed to provide application-
  level semantic consistency; applications are responsible for that locking
  protocol should it be necessary.
- Rename _PROP_MUTEX_DECL() to _PROP_MUTEX_DECL_STATIC().

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Sep 9 06:59:28 2006 UTC (18 years, 3 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-splraiseipl-base, yamt-pdpolicy-base9
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +57 -25 lines
Adapt Matt Thomas's red-black tree implementation for use in proplib.  This
has a significant code size savings over <sys/tree.h>.

Also change prop_number_t to store all number objects in an r-b tree,
only ever allocating one object for any given number (we can do this
because numbers are immutable).  This results in significant run-time
memory savings.

Revision 1.8.2.3: download - view: text, markup, annotated - select for diffs
Fri Sep 1 21:22:02 2006 UTC (18 years, 3 months ago) by tron
Branches: abandoned-netbsd-4
Diff to: previous 1.8.2.2: preferred, colored; branchpoint 1.8: preferred, colored; next MAIN 1.9: preferred, colored
Changes since revision 1.8.2.2: +1 -1 lines
Pull up following revision(s) (requested by riz in ticket #87):
	common/lib/libprop/prop_dictionary.c: revision 1.10
Add a workaround for GCC -Wuninitialized, similar to the prop_array.c
workaround, and properly marked with XXXGCC -Wuninitialized.

Revision 1.8.2.2: download - view: text, markup, annotated - select for diffs
Sun Aug 27 01:20:56 2006 UTC (18 years, 3 months ago) by riz
Branches: abandoned-netbsd-4
Diff to: previous 1.8.2.1: preferred, colored; branchpoint 1.8: preferred, colored
Changes since revision 1.8.2.1: +2 -2 lines
Pull up following revision(s) (requested by thorpej in ticket #51):
	common/lib/libprop/prop_dictionary.c: revision 1.11
	common/lib/libprop/prop_number.c: revision 1.5
	common/lib/libprop/prop_bool.c: revision 1.5
	common/lib/libprop/prop_data.c: revision 1.4
	common/lib/libprop/prop_string.c: revision 1.4
	common/lib/libprop/prop_array.c: revision 1.6
Also guard object accessors against NULL (like we do foreign object
types)
so that apps can use this construct safely:
	obj = prop_dictionary_get(dict, "value");
	if (! prop_number_equals_integer(obj, 5)) {
		...
	}
Suggested by Iain Hibbert.

Revision 1.8.2.1: download - view: text, markup, annotated - select for diffs
Wed Aug 23 21:21:14 2006 UTC (18 years, 3 months ago) by tron
Branches: abandoned-netbsd-4
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +92 -30 lines
Pull up following revision(s) (requested by thorpej in ticket #43):
	common/include/prop/prop_ingest.h: revision 1.1
	common/lib/libprop/prop_number.c: revision 1.4
	common/include/prop/prop_array.h: revision 1.3
	common/lib/libprop/prop_object_impl.h: revision 1.4
	common/include/prop/prop_dictionary.h: revision 1.4
	distrib/sets/lists/comp/mi: revision 1.911
	common/include/prop/Makefile: revision 1.2
	common/lib/libprop/prop_bool.c: revision 1.4
	distrib/sets/lists/base/shl.mi: revision 1.365
	common/lib/libprop/prop_data.c: revision 1.3
	lib/libprop/shlib_version: revision 1.4
	lib/libprop/Makefile: revision 1.6
	common/lib/libprop/prop_object.c: revision 1.4
	common/lib/libprop/prop_object.3: revision 1.4
	common/include/prop/proplib.h: revision 1.3
	common/lib/libprop/Makefile.inc: revision 1.3
	common/include/prop/prop_object.h: revision 1.4
	common/lib/libprop/prop_array.c: revision 1.4
	common/lib/libprop/prop_array.3: revision 1.4
	common/lib/libprop/prop_string.c: revision 1.3
	common/lib/libprop/prop_dictionary.3: revision 1.4
	common/lib/libprop/prop_ingest.c: revision 1.1
	common/lib/libprop/prop_ingest.3: revision 1.1
	common/lib/libprop/prop_dictionary.c: revision 1.9
Several changes to proplib:
- Arrays can now be externalized and internalized in the same way
  dictionaries can.
- Add new "externalize to file" and "internalize from file" functions
  to make reading a property list from a file and writing a property
  list to a file more convenient.
- Many assertions in the object implementations are gone.  Instead,
  calling an accessor for one object type with a different object type
  as an argument will return a suitable "invalid" value.
- prop_object_type() now returns a new PROP_TYPE_UNKNOWN value if called
  with a NULL object.
- Externalized property lists now contain a reference to the Apple XML
  plist DTD.
- Add a new prop_ingest(3) facility, which provides a convenient way to
  translate a dictionary into an arbitrary binary representation.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Tue Aug 22 21:21:23 2006 UTC (18 years, 3 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-pdpolicy-base8
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +3 -3 lines
Also guard object accessors against NULL (like we do foreign object types)
so that apps can use this construct safely:

	obj = prop_dictionary_get(dict, "value");
	if (! prop_number_equals_integer(obj, 5)) {
		...
	}

Suggested by Iain Hibbert.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Aug 21 17:35:15 2006 UTC (18 years, 3 months ago) by he
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +2 -2 lines
Add a workaround for GCC -Wuninitialized, similar to the prop_array.c
workaround, and properly marked with XXXGCC -Wuninitialized.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Mon Aug 21 04:13:28 2006 UTC (18 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +92 -30 lines
Several changes to proplib:
- Arrays can now be externalized and internalized in the same way
  dictionaries can.
- Add new "externalize to file" and "internalize from file" functions
  to make reading a property list from a file and writing a property
  list to a file more convenient.
- Many assertions in the object implementations are gone.  Instead,
  calling an accessor for one object type with a different object type
  as an argument will return a suitable "invalid" value.
- prop_object_type() now returns a new PROP_TYPE_UNKNOWN value if called
  with a NULL object.
- Externalized property lists now contain a reference to the Apple XML
  plist DTD.
- Add a new prop_ingest(3) facility, which provides a convenient way to
  translate a dictionary into an arbitrary binary representation.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Fri Jul 7 17:09:36 2006 UTC (18 years, 5 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-pdpolicy-base7, abandoned-netbsd-4-base
Branch point for: abandoned-netbsd-4
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +45 -145 lines
Use a red-black tree to unique'ify the dictionary key symbols, rather than
a sorted array.  Using a tree puts the linkage into the key symbol itself,
allowing us to avoid having to allocate memory with a mutex held.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Sun May 28 10:15:25 2006 UTC (18 years, 6 months ago) by jnemeth
Branches: MAIN
CVS tags: yamt-pdpolicy-base6
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2 lines
remove unused variable that broke build

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sun May 28 03:56:29 2006 UTC (18 years, 6 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +281 -117 lines
Keep a table of unique dictionary keysyms.  This way, if we have 200 devices
with the "fw-path" property, we only have one copy of the "fw-path" string
as a dictionary key.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Thu May 18 16:35:33 2006 UTC (18 years, 7 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-pdpolicy-base5
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +15 -15 lines
More cleanup.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu May 18 16:11:33 2006 UTC (18 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +136 -136 lines
Minor cleanup.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu May 18 03:05:19 2006 UTC (18 years, 7 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +103 -14 lines
- Add prop_array_equals(), prop_dictionary_equals(), and
  prop_dictionary_keysym_equals(), and prop_object_equals() functions.
- Use realloc() where it makes sense.  There will be more changes in this
  area.
- Add a _prop_object_type structure that is used internally to keep
  information about the object types.  Decreases the footprint of the
  objects slightly by replacing several pointers with just one.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun May 7 06:25:49 2006 UTC (18 years, 7 months ago) by simonb
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +2 -1 lines
In _prop_dictionary_alloc(), explicitly set pd->pd_flags to zero
instead of leaving random garbage in there.
Should we just use "memset(pd, 0, sizeof(*pd));" instead?

Fixes boot problems on evbppc/WALNUT with new proplib.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Apr 27 20:11:27 2006 UTC (18 years, 7 months ago) by thorpej
Branches: MAIN
Initial commit of proplib, a library for manipulating property lists and
converting to/from an XML external representation (based on Apple XML
property lists).  Works in the kernel and user space.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>