settings.h Source File

Back to the index.

settings.h
Go to the documentation of this file.
1 #ifndef SETTINGS_H
2 #define SETTINGS_H
3 
4 /*
5  * Copyright (C) 2006-2010 Anders Gavare. 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 are met:
9  *
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. The name of the author may not be used to endorse or promote products
16  * derived from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28  * SUCH DAMAGE.
29  */
30 
31 #include <inttypes.h>
32 
33 #define GLOBAL_SETTINGS_NAME "settings"
34 
35 struct settings;
36 
37 /* Storage types: */
38 #define SETTINGS_TYPE_SUBSETTINGS 1
39 #define SETTINGS_TYPE_STRING 2
40 #define SETTINGS_TYPE_INT 3
41 #define SETTINGS_TYPE_INT8 4
42 #define SETTINGS_TYPE_INT16 5
43 #define SETTINGS_TYPE_INT32 6
44 #define SETTINGS_TYPE_INT64 7
45 #define SETTINGS_TYPE_UINT 8
46 #define SETTINGS_TYPE_UINT8 9
47 #define SETTINGS_TYPE_UINT16 10
48 #define SETTINGS_TYPE_UINT32 11
49 #define SETTINGS_TYPE_UINT64 12
50 
51 /* Presentation formats: */
52 #define SETTINGS_FORMAT_DECIMAL 1 /* -123 */
53 #define SETTINGS_FORMAT_HEX8 2 /* 0x12 */
54 #define SETTINGS_FORMAT_HEX16 3 /* 0x1234 */
55 #define SETTINGS_FORMAT_HEX32 4 /* 0x80000000 */
56 #define SETTINGS_FORMAT_HEX64 5 /* 0xffffffff80000000 */
57 #define SETTINGS_FORMAT_BOOL 6 /* true, false */
58 #define SETTINGS_FORMAT_YESNO 7 /* yes, no */
59 #define SETTINGS_FORMAT_STRING 8 /* %s */
60 
61 
62 /*
63  * settings.c:
64  */
65 
66 struct settings *settings_new(void);
67 void settings_destroy(struct settings *settings);
68 
69 void settings_debugdump(struct settings *settings, const char *prefix,
70  int recurse);
71 
72 void settings_add(struct settings *settings, const char *name, int writable,
73  int type, int format, void *ptr);
74 void settings_remove(struct settings *settings, const char *name);
76 
77 int settings_access(struct settings *settings, const char *fullname,
78  int writeflag, uint64_t *valuep);
79 
80 /* Result codes from settings_access: */
81 #define SETTINGS_OK 1
82 #define SETTINGS_NAME_NOT_FOUND 2
83 #define SETTINGS_READONLY 3
84 
85 
86 #endif /* SETTINGS_H */
settings::ptr
void ** ptr
Definition: settings.cc:78
settings_remove
void settings_remove(struct settings *settings, const char *name)
Definition: settings.cc:383
settings_debugdump
void settings_debugdump(struct settings *settings, const char *prefix, int recurse)
Definition: settings.cc:264
settings::writable
int * writable
Definition: settings.cc:75
settings_add
void settings_add(struct settings *settings, const char *name, int writable, int type, int format, void *ptr)
Definition: settings.cc:334
settings_remove_all
void settings_remove_all(struct settings *settings)
Definition: settings.cc:441
settings
Definition: settings.cc:57
settings::name
char ** name
Definition: settings.cc:74
settings_destroy
void settings_destroy(struct settings *settings)
Definition: settings.cc:105
settings_access
int settings_access(struct settings *settings, const char *fullname, int writeflag, uint64_t *valuep)
Definition: settings.cc:468
settings_new
struct settings * settings_new(void)
Definition: settings.cc:88

Generated on Tue Aug 25 2020 19:25:06 for GXemul by doxygen 1.8.18