summaryrefslogtreecommitdiff
path: root/lib/libprop
AgeCommit message (Collapse)Author
2020-06-06Improvements to the problib(3) API:thorpej
==> 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).
2012-03-21These directories default to WARNS?=5matt
2011-09-30Fix an implementation inconsistency with the prop_*_send_syscall() andjym
prop_*_recv_syscall() functions from proplib(3). They now share the same logic as the one from prop_*_send_ioctl() functions: - returns an int - 0 indicates "no error", otherwise returns the error number (and set errno) Many consumers of the prop_*_{ioctl, syscall} expect errno to be set on error and use err() to display the error message. As such, ensures that errno gets set before returning from these functions. prop_*_send_syscall() functions returned a boolean, and now return an int. Fix all call sites to use the new paradigm (only quota2 is affected in src). As the prop_*_{send,recv}_syscall() API appeared in -current and is only used by the recent quota2 code, I am not bumping the lib. The API change only affects the prop_*_send_syscall() function (recv_syscall()s were already used correctly), so ensure you are not mixing "old" -current quota binaries with a new proplib(3) (or the other way around). This change will be announced via a HEADS-UP and UPDATING. Does not affect the kernel part of proplib. Document the correct API in prop_array(3) and prop_dictionary(3). Thanks to Francois Tigeot for noticing the API inconsistency and reporting it on tech-kern@. ok bouyer@.
2011-01-19- Implement prop_{array,dictionary}_copyout(), based onbouyer
prop_{array,dictionary}_copyout_ioctl(). - Implement prop_{array,dictionary}_recv_syscall(), which takes as parameter the pref we got from kernel and internalize it, and unmaps the buffer prop_{array,dictionary}_copyout() mapped for us. - add a prop_{array,dictionary}_send_syscall() for symetry, which is an alias to prop_{array,dictionary}_externalize_to_pref() Discussed on tech-kern@ and tech-userlevel@
2009-10-10Implement prop_array_externalize_to_pref(), prop_array_copyin(),bad
prop_dictionary_externalize_to_pref() and prop_dictionary_copyin() as discussed in the thread: http://mail-index.netbsd.org/tech-kern/2009/07/29/msg005594.html Bump libprop shlib minor.
2009-01-11bump shared libraries.christos
2008-09-15Bump libprop minor number, I forgot to do it when I have addedhaad
prop_array_add_* routines. In version 1.2 of prop_array_util.c. Pointed by bad@.
2008-06-03Add prop_array_util functions to proplib. This code is copied/changedhaad
prop_dictionary_util. From manual page The prop_array_util family of functions are provided to make getting and setting values in arrays more convenient in some applications. OK by mjf@ and freza@.
2008-03-05Bump libprop's minor after addition of prop_dictionary_make_immutable.cube
2008-01-05warns=4christos
2006-10-27Add prop_dictionary_all_keys.3 link (hi, potr).uwe
2006-10-26Add prop_array_t support to prop_kern.thorpej
2006-10-26- Add prop_dictionary_all_keys(). Takes a snapshot of a dictionary'sthorpej
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.
2006-10-18Re-enable lint warnings as errors, now that the source seems to lintmartin
fine on non-i386 arches.
2006-10-17Backout previous - this library is not ready for lintingmartin
2006-10-15die on lint errors.christos
2006-10-12Bump libprop version to 0.4.thorpej
2006-10-12Make prop_number_t handle both signed and unsigned numbers. The *integer*thorpej
routines now take int64_t arguments, and new *unsigned_integer* routines take uint64_t arguments. See prop_number(3) for complete details.
2006-09-22Alter the protocol impemented by prop_kern to allow for bi-directionalthorpej
plist-based messages and to eliminate looping previously required to receive a plist from the kernel: - prop_dictionary_copyin_ioctl() and prop_dictionary_copyout_ioctl() now take the cmd argument rather than the file open flag. The read-ness or write-ness of an ioctl command is checked by these routines to ensure that information is being passed to/from the userland component properly. - prop_dictionary_copyout_ioctl() now allocates the memory for the XML plist on behalf of the userland component by way of uvm_mmap(). The XML plist is copied out to the newly-mapped anonymous region, and the pointer returned via the plistref. - prop_dictionary_recv_ioctl() is responsible for munmap()'ing the region after parsing the XML plist into internal represenatation. - A new prop_dictionary_sendrecv_ioctl() is added, allowing user space code to send a dictionary to the kernel and receive one back as a reply. Update users of prop_kern for the API changes (Bluetooth). This constitutes an ABI / protocol change -- but this will also be put into NetBSD 4.0 so that the first proplib release will implement the new scheme.
2006-08-21Several changes to proplib:thorpej
- 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.
2006-07-05Add kernel and user space parts of a protocol for sending property liststhorpej
to / from the kernel using ioctls.
2006-05-18- Add prop_array_equals(), prop_dictionary_equals(), andthorpej
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.
2006-04-27Back out previous incorrect change.thorpej
2006-04-27Make it actually compile.dogcow
2006-04-27Support for building proplib in userspace.thorpej