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;
187 jack_shm_registry_index_t);
189 jack_shm_registry_index_t*);
190 int jack_release_shm_info (jack_shm_registry_index_t);
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,