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);