FreeBSD/Linux Kernel Cross Reference
sys/sys/properties.h
1 /* $NetBSD: properties.h,v 1.4 2003/07/04 07:42:04 itojun Exp $ */
2
3 /*
4 * Copyright (c) 2001 Eduardo Horvath.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 * must display the following acknowledgement:
17 * This product includes software developed by Eduardo Horvath.
18 * 4. The name of the author may not be used to endorse or promote products
19 * derived from this software without specific prior written permission
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 #ifndef _SYS_PROPERTIES_H_
34 #define _SYS_PROPERTIES_H_
35
36 typedef void *opaque_t; /* Value large enough to hold a pointer */
37
38 struct propdb;
39 typedef struct propdb *propdb_t;
40
41 #define MAX_KDBNAME 32
42
43 #define PROP_INT 0x10000000
44 #define PROP_STRING 0x20000000
45 #define PROP_AGGREGATE 0x30000000
46 #define PROP_TYPE(x) ((x)&0x30000000)
47
48 #define PROP_ARRAY 0x40000000
49 #define PROP_CONST 0x80000000
50 #define PROP_ELSZ(x) 0x0fffffff
51
52 propdb_t propdb_create(const char *);
53 void propdb_destroy(propdb_t);
54
55 int prop_set(propdb_t, opaque_t, const char *, void *, size_t, int, int);
56 size_t prop_objs(propdb_t, opaque_t *, size_t);
57 size_t prop_list(propdb_t, opaque_t, char *, size_t);
58 size_t prop_get(propdb_t, opaque_t, const char *, void *, size_t, int *);
59 int prop_delete(propdb_t, opaque_t, const char *);
60 int prop_copy(propdb_t, opaque_t, opaque_t, int);
61
62 #endif
Cache object: e8dee8a834b96f96c056e0425c709a3e
|