1 /* Prototypes and definitions for DS interface. */
9 #include <minix/endpoint.h>
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 */
22 #define DSF_MASK_TYPE 0xFF0 /* mask for type flags. */
23 #define DSF_MASK_INTERNAL 0xFFF /* mask for internal flags. */
25 #define DSF_OVERWRITE 0x01000 /* overwrite if entry exists */
26 #define DSF_INITIAL 0x02000 /* check subscriptions immediately */
29 #define DS_MAX_KEYLEN 80 /* Max length of a key, including '\0'. */
32 #define DS_DRIVER_UP 1
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
);
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
);
47 int ds_publish_mem(const char *ds_name
, void *vaddr
, size_t length
, int
49 int ds_retrieve_mem(const char *ds_name
, char *vaddr
, size_t *length
);
50 int ds_delete_mem(const char *ds_name
);
53 int ds_publish_map(const char *ds_name
, void *vaddr
, size_t length
, int
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
);
61 int ds_publish_label(const char *ds_name
, endpoint_t endpoint
, int
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
);
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
);
71 #endif /* _MINIX_SYSTEM */
73 #endif /* _MINIX_DS_H */