sharedmem.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <time.h>
#include <signal.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <semaphore.h>
#include "sharedmem.h"
#include "sharedmem_private.h"

Include dependency graph for sharedmem.c:

Go to the source code of this file.

Defines

#define _XOPEN_SOURCE   600
#define _POSIX_C_SOURCE   200112L

Functions

void _sharedmem_set_error (sharedmem_t *inst, int error_code, const char *error_str)
int sharedmem_create (sharedmem_t *inst, const char *name, size_t size)
int sharedmem_open (sharedmem_t *inst, const char *name)
int sharedmem_close (sharedmem_t *inst)
int sharedmem_resize (sharedmem_t *inst, size_t size)
int sharedmem_resize2 (sharedmem_t *inst)
int sharedmem_size_changed (sharedmem_t *inst)
int sharedmem_lock (sharedmem_t *inst)
int sharedmem_unlock (sharedmem_t *inst)
int sharedmem_get_error_code (sharedmem_t *inst)
const char * sharedmem_get_error_string (sharedmem_t *inst)

Variables

long sharedmem_page_size = 0


Define Documentation

#define _POSIX_C_SOURCE   200112L

Definition at line 30 of file sharedmem.c.

#define _XOPEN_SOURCE   600

Definition at line 29 of file sharedmem.c.


Function Documentation

void _sharedmem_set_error ( sharedmem_t inst,
int  error_code,
const char *  error_str 
)

Definition at line 60 of file sharedmem.c.

References _sharedmem_error_t::code, _sharedmem_t::error, SHAREDMEM_ERROR_SIZE, and _sharedmem_error_t::string.

int sharedmem_close ( sharedmem_t inst  ) 

Close named shared memory.

Parameters:
inst Instance of shared memory object
Returns:
0 on success

Definition at line 413 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::fd, _sharedmem_t::name, _sharedmem_ctrl_t::ref, and _sharedmem_t::sem.

int sharedmem_create ( sharedmem_t inst,
const char *  name,
size_t  size 
)

Create named shared memory of specified size.

Parameters:
inst Instance of shared memory object
name Name of the shared memory (with leading slash)
size Size of the shared memory
Returns:
0 on success

Definition at line 295 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::fd, _sharedmem_t::name, _sharedmem_ctrl_t::ref, _sharedmem_t::sem, SHAREDMEM_NAME_LENGTH, and _sharedmem_ctrl_t::size.

int sharedmem_get_error_code ( sharedmem_t inst  ) 

Get error code.

Parameters:
inst Instance of shared memory object
Returns:
error code

Definition at line 649 of file sharedmem.c.

References _sharedmem_error_t::code, and _sharedmem_t::error.

const char* sharedmem_get_error_string ( sharedmem_t inst  ) 

Get error string.

Parameters:
inst Instance of shared memory object
Returns:
pointer to error string

Definition at line 658 of file sharedmem.c.

References _sharedmem_t::error, and _sharedmem_error_t::string.

int sharedmem_lock ( sharedmem_t inst  ) 

Lock shared memory.

Parameters:
inst Instance of shared memory object
Returns:
success?

Definition at line 637 of file sharedmem.c.

int sharedmem_open ( sharedmem_t inst,
const char *  name 
)

Open named shared memory.

Parameters:
inst Instance of shared memory object
name Name of shared memory
Returns:
0 on success

Definition at line 362 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::fd, _sharedmem_t::name, _sharedmem_ctrl_t::ref, _sharedmem_t::sem, and SHAREDMEM_NAME_LENGTH.

int sharedmem_resize ( sharedmem_t inst,
size_t  size 
)

Resize named shared memory.

Parameters:
inst Instance of shared memory object
size New size of shared memory
Returns:
0 on success

Definition at line 508 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::fd, _sharedmem_t::mapped_size, _sharedmem_t::pdata, and _sharedmem_ctrl_t::size.

int sharedmem_resize2 ( sharedmem_t inst  ) 

Resize named shared memory.

Note:
This updates the size of the mapping to a new size in shared memory.
Parameters:
inst Instance of shared memory object
Returns:
0 on success

Definition at line 570 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::fd, _sharedmem_t::mapped_size, _sharedmem_t::pdata, and _sharedmem_ctrl_t::size.

int sharedmem_size_changed ( sharedmem_t inst  ) 

Check for changes in named shared memory size.

Note:
This function does not acquire mutex!
Parameters:
inst Instance of shared memory object
Returns:
0 for no changes, 1 if changed and -1 on error

Definition at line 621 of file sharedmem.c.

References _sharedmem_t::ctrl, _sharedmem_t::mapped_size, and _sharedmem_ctrl_t::size.

int sharedmem_unlock ( sharedmem_t inst  ) 

Unlock shared memory.

Parameters:
inst Instance of shared memory object
Returns:
success?

Definition at line 643 of file sharedmem.c.


Variable Documentation

long sharedmem_page_size = 0

System page size

Definition at line 56 of file sharedmem.c.


Generated on Thu Sep 13 18:14:23 2007 for libsharedmem by  doxygen 1.5.1