root / lab4 / .minix-src / include / minix / ds.h @ 13
History | View | Annotate | Download (2.33 KB)
1 | 13 | up20180614 | /* Prototypes and definitions for DS interface. */
|
---|---|---|---|
2 | |||
3 | #ifndef _MINIX_DS_H
|
||
4 | #define _MINIX_DS_H
|
||
5 | |||
6 | #ifdef _MINIX_SYSTEM
|
||
7 | |||
8 | #include <sys/types.h> |
||
9 | #include <minix/endpoint.h> |
||
10 | |||
11 | /* Flags. */
|
||
12 | #define DSF_IN_USE 0x001 /* entry is in use */ |
||
13 | #define DSF_PRIV_RETRIEVE 0x002 /* only owner can retrieve */ |
||
14 | #define DSF_PRIV_OVERWRITE 0x004 /* only owner can overwrite */ |
||
15 | #define DSF_PRIV_SNAPSHOT 0x004 /* only owner can take a snapshot */ |
||
16 | #define DSF_PRIV_SUBSCRIBE 0x008 /* only owner can subscribe */ |
||
17 | #define DSF_TYPE_U32 0x010 /* u32 data type */ |
||
18 | #define DSF_TYPE_STR 0x020 /* string data type */ |
||
19 | #define DSF_TYPE_MEM 0x040 /* memory range data type */ |
||
20 | #define DSF_TYPE_LABEL 0x100 /* label data type */ |
||
21 | |||
22 | #define DSF_MASK_TYPE 0xFF0 /* mask for type flags. */ |
||
23 | #define DSF_MASK_INTERNAL 0xFFF /* mask for internal flags. */ |
||
24 | |||
25 | #define DSF_OVERWRITE 0x01000 /* overwrite if entry exists */ |
||
26 | #define DSF_INITIAL 0x02000 /* check subscriptions immediately */ |
||
27 | |||
28 | /* DS constants. */
|
||
29 | #define DS_MAX_KEYLEN 80 /* Max length of a key, including '\0'. */ |
||
30 | |||
31 | /* DS events. */
|
||
32 | #define DS_DRIVER_UP 1 |
||
33 | |||
34 | /* ds.c */
|
||
35 | |||
36 | /* U32 */
|
||
37 | int ds_publish_u32(const char *name, u32_t val, int flags); |
||
38 | int ds_retrieve_u32(const char *name, u32_t *val); |
||
39 | int ds_delete_u32(const char *ds_name); |
||
40 | |||
41 | /* STRING */
|
||
42 | int ds_publish_str(const char *name, char *val, int flags); |
||
43 | int ds_retrieve_str(const char *name, char *val, size_t len); |
||
44 | int ds_delete_str(const char *ds_name); |
||
45 | |||
46 | /* MEM */
|
||
47 | int ds_publish_mem(const char *ds_name, void *vaddr, size_t length, int |
||
48 | flags); |
||
49 | int ds_retrieve_mem(const char *ds_name, char *vaddr, size_t *length); |
||
50 | int ds_delete_mem(const char *ds_name); |
||
51 | |||
52 | /* MAP */
|
||
53 | int ds_publish_map(const char *ds_name, void *vaddr, size_t length, int |
||
54 | flags); |
||
55 | int ds_snapshot_map(const char *ds_name, int *nr_snapshot); |
||
56 | int ds_retrieve_map(const char *ds_name, char *vaddr, size_t *length, |
||
57 | int nr_snapshot, int flags); |
||
58 | int ds_delete_map(const char *ds_name); |
||
59 | |||
60 | /* LABEL */
|
||
61 | int ds_publish_label(const char *ds_name, endpoint_t endpoint, int |
||
62 | flags); |
||
63 | int ds_retrieve_label_name(char *ds_name, endpoint_t endpoint); |
||
64 | int ds_retrieve_label_endpt(const char *ds_name, endpoint_t *endpoint); |
||
65 | int ds_delete_label(const char *ds_name); |
||
66 | |||
67 | /* Subscribe and check. */
|
||
68 | int ds_subscribe(const char *regex, int flags); |
||
69 | int ds_check(char *ds_name, int *type, endpoint_t *owner_e); |
||
70 | |||
71 | #endif /* _MINIX_SYSTEM */ |
||
72 | |||
73 | #endif /* _MINIX_DS_H */ |