7 #include "JackCompilerDeps.h"
18 #define MAX_SHM_ID 256
19 #define JACK_SERVER_NAME_SIZE 256
20 #define JACK_SHM_MAGIC 0x4a41434b
21 #define JACK_SHM_NULL_INDEX -1
22 #define JACK_SHM_REGISTRY_INDEX -2
36 #define SHM_NAME_MAX NAME_MAX
38 typedef char shm_name_t[SHM_NAME_MAX];
39 typedef shm_name_t jack_shm_id_t;
41 #elif WIN32 // TO CHECK
44 #define SHM_NAME_MAX NAME_MAX
46 typedef char shm_name_t[SHM_NAME_MAX];
47 typedef shm_name_t jack_shm_id_t;
51 typedef int jack_shm_id_t;
61 typedef int16_t jack_shm_registry_index_t;
79 char name[JACK_SERVER_NAME_SIZE];
88 jack_shmsize_t hdr_len;
89 jack_shmsize_t entry_len;
95 jack_shm_registry_index_t index;
108 #define JACK_SHM_REGISTRY_SIZE (sizeof (jack_shm_header_t) \
109 + sizeof (jack_shm_registry_t) * MAX_SHM_ID)
121 jack_shm_registry_index_t index;
129 jack_shm_info_t; POST_PACKED_STRUCTURE
131 POST_PACKED_STRUCTURE jack_shm_info_t;
136 void jack_shm_copy_from_registry (jack_shm_info_t*,
137 jack_shm_registry_index_t);
138 void jack_shm_copy_to_registry (jack_shm_info_t*,
139 jack_shm_registry_index_t*);
140 int jack_release_shm_info (jack_shm_registry_index_t);
141 char* jack_shm_addr (jack_shm_info_t* si);
144 int jack_register_server (
const char *server_name,
int new_registry);
145 int jack_unregister_server (
const char *server_name);
147 int jack_initialize_shm (
const char *server_name);
148 int jack_initialize_shm_server (
void);
149 int jack_initialize_shm_client (
void);
150 int jack_cleanup_shm (
void);
152 int jack_shmalloc (
const char *shm_name, jack_shmsize_t size,
153 jack_shm_info_t* result);
154 void jack_release_shm (jack_shm_info_t*);
155 void jack_release_lib_shm (jack_shm_info_t*);
156 void jack_destroy_shm (jack_shm_info_t*);
157 int jack_attach_shm (jack_shm_info_t*);
158 int jack_attach_lib_shm (jack_shm_info_t*);
159 int jack_attach_shm_read (jack_shm_info_t*);
160 int jack_attach_lib_shm_read (jack_shm_info_t*);
161 int jack_resize_shm (jack_shm_info_t*, jack_shmsize_t size);