csu: restore crt1.o symlink
[minix.git] / include / minix / ds.h
blobb9d449ee2f61e523c5d56618bfb11a1aff49cb37
1 /* Prototypes and definitions for DS interface. */
3 #ifndef _MINIX_DS_H
4 #define _MINIX_DS_H
6 #include <sys/types.h>
7 #include <minix/endpoint.h>
9 /* Flags. */
10 #define DSF_IN_USE 0x001 /* entry is in use */
11 #define DSF_PRIV_RETRIEVE 0x002 /* only owner can retrieve */
12 #define DSF_PRIV_OVERWRITE 0x004 /* only owner can overwrite */
13 #define DSF_PRIV_SNAPSHOT 0x004 /* only owner can take a snapshot */
14 #define DSF_PRIV_SUBSCRIBE 0x008 /* only owner can subscribe */
15 #define DSF_TYPE_U32 0x010 /* u32 data type */
16 #define DSF_TYPE_STR 0x020 /* string data type */
17 #define DSF_TYPE_MEM 0x040 /* memory range data type */
18 #define DSF_TYPE_LABEL 0x100 /* label data type */
20 #define DSF_MASK_TYPE 0xFF0 /* mask for type flags. */
21 #define DSF_MASK_INTERNAL 0xFFF /* mask for internal flags. */
23 #define DSF_OVERWRITE 0x01000 /* overwrite if entry exists */
24 #define DSF_INITIAL 0x02000 /* check subscriptions immediately */
26 #define DSMF_COPY_MAPPED 0x20000 /* copy mapped memory range */
27 #define DSMF_COPY_SNAPSHOT 0x40000 /* copy snapshot */
29 /* DS constants. */
30 #define DS_MAX_KEYLEN 80 /* Max length of a key, including '\0'. */
32 /* DS events. */
33 #define DS_DRIVER_UP 1
35 /* ds.c */
37 /* U32 */
38 int ds_publish_u32(const char *name, u32_t val, int flags);
39 int ds_retrieve_u32(const char *name, u32_t *val);
40 int ds_delete_u32(const char *ds_name);
42 /* STRING */
43 int ds_publish_str(const char *name, char *val, int flags);
44 int ds_retrieve_str(const char *name, char *val, size_t len);
45 int ds_delete_str(const char *ds_name);
47 /* MEM */
48 int ds_publish_mem(const char *ds_name, void *vaddr, size_t length, int
49 flags);
50 int ds_retrieve_mem(const char *ds_name, char *vaddr, size_t *length);
51 int ds_delete_mem(const char *ds_name);
53 /* MAP */
54 int ds_publish_map(const char *ds_name, void *vaddr, size_t length, int
55 flags);
56 int ds_snapshot_map(const char *ds_name, int *nr_snapshot);
57 int ds_retrieve_map(const char *ds_name, char *vaddr, size_t *length,
58 int nr_snapshot, int flags);
59 int ds_delete_map(const char *ds_name);
61 /* LABEL */
62 int ds_publish_label(const char *ds_name, endpoint_t endpoint, int
63 flags);
64 int ds_retrieve_label_name(char *ds_name, endpoint_t endpoint);
65 int ds_retrieve_label_endpt(const char *ds_name, endpoint_t *endpoint);
66 int ds_delete_label(const char *ds_name);
68 /* Subscribe and check. */
69 int ds_subscribe(const char *regex, int flags);
70 int ds_check(char *ds_name, int *type, endpoint_t *owner_e);
72 #endif /* _MINIX_DS_H */