34 #ifndef __jack_shm_h__ 35 #define __jack_shm_h__ 38 #include <sys/types.h> 40 #include "JackCompilerDeps.h" 41 #include "JackConstants.h" 52 #define MAX_SHM_ID 256 53 #define JACK_SHM_MAGIC 0x4a41434b 54 #define JACK_SHM_NULL_INDEX -1 55 #define JACK_SHM_REGISTRY_INDEX -2 69 #define SHM_NAME_MAX NAME_MAX 71 typedef char shm_name_t[SHM_NAME_MAX];
72 typedef shm_name_t jack_shm_id_t;
77 #define SHM_NAME_MAX NAME_MAX 79 typedef char shm_name_t[SHM_NAME_MAX];
80 typedef shm_name_t jack_shm_id_t;
89 #define SHM_NAME_MAX NAME_MAX 91 typedef char shm_name_t[SHM_NAME_MAX];
92 typedef shm_name_t jack_shm_id_t;
93 typedef int jack_shm_fd_t;
97 typedef int jack_shm_id_t;
108 typedef int16_t jack_shm_registry_index_t;
126 char name[JACK_SERVER_NAME_SIZE+1];
135 jack_shmsize_t hdr_len;
136 jack_shmsize_t entry_len;
142 jack_shm_registry_index_t index;
158 #define JACK_SHM_REGISTRY_SIZE (sizeof (jack_shm_header_t) \ 159 + sizeof (jack_shm_registry_t) * MAX_SHM_ID) 171 jack_shm_registry_index_t index;
180 } POST_PACKED_STRUCTURE;
186 void jack_shm_copy_from_registry (jack_shm_info_t*,
187 jack_shm_registry_index_t);
188 void jack_shm_copy_to_registry (jack_shm_info_t*,
189 jack_shm_registry_index_t*);
190 int jack_release_shm_info (jack_shm_registry_index_t);
191 char* jack_shm_addr (jack_shm_info_t* si);
194 int jack_register_server (
const char *server_name,
int new_registry);
195 int jack_unregister_server (
const char *server_name);
197 int jack_initialize_shm (
const char *server_name);
198 int jack_initialize_shm_server (
void);
199 int jack_initialize_shm_client (
void);
200 int jack_cleanup_shm (
void);
202 int jack_shmalloc (
const char *shm_name, jack_shmsize_t size,
203 jack_shm_info_t* result);
204 void jack_release_shm (jack_shm_info_t*);
205 void jack_release_lib_shm (jack_shm_info_t*);
206 void jack_destroy_shm (jack_shm_info_t*);
207 int jack_attach_shm (jack_shm_info_t*);
208 int jack_attach_lib_shm (jack_shm_info_t*);
209 int jack_attach_shm_read (jack_shm_info_t*);
210 int jack_attach_lib_shm_read (jack_shm_info_t*);
211 int jack_resize_shm (jack_shm_info_t*, jack_shmsize_t size);