Diff for /libaitsess/inc/aitsess.h between versions 1.2 and 1.3

version 1.2, 2011/04/30 21:35:21 version 1.3, 2011/09/07 13:11:55
Line 5 Line 5
 * $Author$  * $Author$
 * $Id$  * $Id$
 *  *
*************************************************************************/**************************************************************************
 The ELWIX and AITNET software is distributed under the following
 terms:
 
 All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
 
 Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
         by Michael Pounov <misho@elwix.org>.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. All advertising materials mentioning features or use of this software
    must display the following acknowledgement:
 This product includes software developed by Michael Pounov <misho@elwix.org>
 ELWIX - Embedded LightWeight unIX and its contributors.
 4. Neither the name of AITNET nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.
 
 THIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 */
 #ifndef __AITSESS_H  #ifndef __AITSESS_H
 #define __AITSESS_H  #define __AITSESS_H
   
   
   #include <assert.h>
 #include <semaphore.h>  #include <semaphore.h>
 #include <sys/types.h>  #include <sys/types.h>
   
   #define SHARED_UNKNOWN  0
 #define SHARED_IPC      1  #define SHARED_IPC      1
 #define SHARED_MAP      2  #define SHARED_MAP      2
   
Line 54  inline const char *sess_GetError(); Line 93  inline const char *sess_GetError();
   
 /*  /*
  * initSession() Initializing session structure, if session file not exists creating with specified tech   * initSession() Initializing session structure, if session file not exists creating with specified tech
 * @cnID = Technology using in session. SHARED_IPC IPC tech; SHARED_MAP BSD MemoryMap tech * @pnID = Technology using in session. 
         SHARED_IPC IPC tech; SHARED_MAP BSD MemoryMap tech or if =NULL SHARED_IPC
  * @csFName = Session filename for build key and identified   * @csFName = Session filename for build key and identified
 * @Sess = Session item * @Sess = Session item, if =NULL allocate memory for session after use must be free!
  * return: 0 OK new key created, -1 error: no memory or file not created, 1 OK key finded   * return: 0 OK new key created, -1 error: no memory or file not created, 1 OK key finded
 */  */
inline int initSession(const int cnID, const char *csFName, tagSess ** __restrict Sess);inline int initSession(int *pnID, const char *csFName, tagSess ** __restrict Sess);
 /*  /*
  * freeSession() Free allocated memory for session item and delete session file if present name   * freeSession() Free allocated memory for session item and delete session file if present name
  * @csFName = Session filename for delete, if NULL nothing delete   * @csFName = Session filename for delete, if NULL nothing delete
Line 187  inline int ipc_decSemaphore(tagSess * __restrict s); Line 227  inline int ipc_decSemaphore(tagSess * __restrict s);
 //  Lazy macros for lazy programmers :-) by Michael Pounov; Optimizing work with sessions!  //  Lazy macros for lazy programmers :-) by Michael Pounov; Optimizing work with sessions!
 //  //
   
#define DESTROY_SESSION(fname, s)       do { \#define DESTROY_SESSION(fname, s)       do { assert((s)); assert((*s)); \
                                                 switch (((*s))->type) { \                                                  switch (((*s))->type) { \
                                                         case SHARED_IPC: \                                                          case SHARED_IPC: \
                                                                          ipc_destroySession((fname), (s)); \                                                                           ipc_destroySession((fname), (s)); \
Line 198  inline int ipc_decSemaphore(tagSess * __restrict s); Line 238  inline int ipc_decSemaphore(tagSess * __restrict s);
                                                 } \                                                  } \
                                         } while(0)                                          } while(0)
   
#define ATTACH_MEMORY(s)                do { \#define ATTACH_MEMORY(s)                do { assert((s)); \
                                                 switch ((s)->type) { \                                                  switch ((s)->type) { \
                                                         case SHARED_IPC: \                                                          case SHARED_IPC: \
                                                                          ipc_attachSession((s), 0); \                                                                           ipc_attachSession((s), 0); \
Line 209  inline int ipc_decSemaphore(tagSess * __restrict s); Line 249  inline int ipc_decSemaphore(tagSess * __restrict s);
                                                 } \                                                  } \
                                         } while(0)                                          } while(0)
   
#define DETACH_MEMORY(s)                do { \#define DETACH_MEMORY(s)                do { assert((s)); \
                                                 switch ((s)->type) { \                                                  switch ((s)->type) { \
                                                         case SHARED_IPC: \                                                          case SHARED_IPC: \
                                                                          ipc_detachSession((s)); \                                                                           ipc_detachSession((s)); \
Line 220  inline int ipc_decSemaphore(tagSess * __restrict s); Line 260  inline int ipc_decSemaphore(tagSess * __restrict s);
                                                 } \                                                  } \
                                         } while(0)                                          } while(0)
   
#define NOT_SEMAPHORE(s)        do { \#define NOT_SEMAPHORE(s)        do { assert((s)); \
                                         switch ((s)->type) { \                                          switch ((s)->type) { \
                                                 case SHARED_IPC: \                                                  case SHARED_IPC: \
                                                                  ipc_notSemaphore((s)); \                                                                   ipc_notSemaphore((s)); \
Line 231  inline int ipc_decSemaphore(tagSess * __restrict s); Line 271  inline int ipc_decSemaphore(tagSess * __restrict s);
                                         } \                                          } \
                                 } while(0)                                  } while(0)
   
#define IS_SEMAPHORED(s, ret)   do { \#define IS_SEMAPHORED(s, ret)   do { assert((s)); \
                                         switch ((s)->type) { \                                          switch ((s)->type) { \
                                                 case SHARED_IPC: \                                                  case SHARED_IPC: \
                                                                  (ret) = ipc_isSemaphored((s)); \                                                                   (ret) = ipc_isSemaphored((s)); \
Line 244  inline int ipc_decSemaphore(tagSess * __restrict s); Line 284  inline int ipc_decSemaphore(tagSess * __restrict s);
                                         } \                                          } \
                                 } while(0)                                  } while(0)
   
#define ADD_SEMAPHORE(s, ret)   do { \#define ADD_SEMAPHORE(s, ret)   do { assert((s)); \
                                         switch ((s)->type) { \                                          switch ((s)->type) { \
                                                 case SHARED_IPC: \                                                  case SHARED_IPC: \
                                                                  (ret) = ipc_addSemaphore((s)); \                                                                   (ret) = ipc_addSemaphore((s)); \
Line 257  inline int ipc_decSemaphore(tagSess * __restrict s); Line 297  inline int ipc_decSemaphore(tagSess * __restrict s);
                                         } \                                          } \
                                 } while(0)                                  } while(0)
   
#define DEC_SEMAPHORE(s, ret)   do { \#define DEC_SEMAPHORE(s, ret)   do { assert((s)); \
                                         switch ((s)->type) { \                                          switch ((s)->type) { \
                                                 case SHARED_IPC: \                                                  case SHARED_IPC: \
                                                                  (ret) = ipc_decSemaphore((s)); \                                                                   (ret) = ipc_decSemaphore((s)); \

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>