root / lab4 / .minix-src / include / minix / ds.h @ 14
History | View | Annotate | Download (2.33 KB)
1 |
/* 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 */ |
74 |
|