Changeset 138 for trunk/include


Ignore:
Timestamp:
Oct 28, 2007, 4:55:19 PM (17 years ago)
Author:
rainer
Message:

More fixes for compile and runtime errors.

Location:
trunk/include
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/samhain.h

    r133 r138  
    4343#define SH_PATHBUF      256
    4444
    45 #define SH_GRBUF_SIZE  4096
    46 #define SH_PWBUF_SIZE  4096
    4745#define SH_ERRBUF_SIZE   64
    4846
  • trunk/include/sh_files.h

    r131 r138  
    3030void kill_sh_dirlist (struct sh_dirent * dirlist);
    3131
     32#ifdef NEED_ADD_DIRENT
    3233/* add an entry to a directory listing
    3334 */
    3435struct sh_dirent * addto_sh_dirlist (struct dirent * thisEntry,
    3536                                     struct sh_dirent * dirlist);
     37#endif
     38
    3639/* register exceptions to hardlink check
    3740 */
  • trunk/include/sh_pthread.h

    r134 r138  
    55
    66#include <pthread.h>
     7
    78#define SH_MUTEX(M)                             pthread_mutex_t M
    89#define SH_MUTEX_INIT(M,I)                      pthread_mutex_t M = I
     
    1011#define SH_MUTEX_EXTERN(M)                      extern pthread_mutex_t M
    1112
     13/* pthread_mutex_unlock() has the wrong type (returns int), so
     14 * we need to wrap it in this function.
     15 */
     16extern void sh_pthread_mutex_unlock (void *arg);
     17
    1218#define SH_MUTEX_LOCK(M)                                                   \
    1319        do {                                                               \
    1420                int oldtype;                                               \
    1521                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \
    16                 pthread_cleanup_push(pthread_mutex_unlock, (void *) &(M)); \
     22                pthread_cleanup_push(sh_pthread_mutex_unlock, (void*)&(M));\
    1723                pthread_mutex_lock(&(M))
    1824
    1925
    20 #define SH_MUTEX_UNLOCK(M,C)                                               \
     26#define SH_MUTEX_UNLOCK(M)                                                 \
    2127                pthread_cleanup_pop(1);                                    \
    2228                pthread_setcanceltype(oldtype, NULL);                      \
     
    2632#define SH_MUTEX_UNLOCK_UNSAFE(M) pthread_mutex_unlock(&(M))
    2733
     34
     35/*
     36 * ----   Recursive mutex  ----
     37 */
     38#if defined(PTHREAD_MUTEX_RECURSIVE)
     39
     40/* On GNU C, it's an enum, thus the alternative implementation
     41 * below is used.
     42 */
     43#define SH_MUTEX_RECURSIVE(M)                                          \
     44static pthread_mutex_t M;                                              \
     45static void M ## _init (void)                                          \
     46{                                                                      \
     47  pthread_mutexattr_t   mta;                                           \
     48  pthread_mutexattr_settype(&mta, PTHREAD_MUTEX_RECURSIVE);            \
     49  pthread_mutex_init(&(M), &mta);                                      \
     50  pthread_mutexattr_destroy(&mta);                                     \
     51  return;                                                              \
     52}                                                                      \
     53static pthread_once_t  M ## _initialized = PTHREAD_ONCE_INIT
     54
     55#define SH_MUTEX_RECURSIVE_INIT(M)                                     \
     56(void) pthread_once(&(M ## _initialized), (M ## _init))
     57
     58#define SH_MUTEX_RECURSIVE_LOCK(M)                                         \
     59        do {                                                               \
     60                int oldtype;                                               \
     61                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \
     62                pthread_cleanup_push(sh_pthread_mutex_unlock, (void*)&(M));\
     63                pthread_mutex_lock(&(M))
     64
     65#define SH_MUTEX_RECURSIVE_UNLOCK(M)                                       \
     66                pthread_cleanup_pop(1);                                    \
     67                pthread_setcanceltype(oldtype, NULL);                      \
     68        } while (0)
     69
     70#else
     71/* !defined(PTHREAD_MUTEX_RECURSIVE) */
     72 struct sh_RMutex {
     73
     74  pthread_mutex_t lock;
     75  unsigned int    held;
     76  unsigned int    waiters;
     77  pthread_t       tid;
     78  pthread_cond_t  cv;
     79};
     80
     81void sh_RMutexLock(struct sh_RMutex * tok);
     82void sh_RMutexUnlock(void * arg);
     83void sh_InitRMutex(struct sh_RMutex * tok);
     84
     85#define SH_MUTEX_RECURSIVE(M)                                          \
     86static struct sh_RMutex M;                                             \
     87static void M ## _init (void)                                          \
     88{                                                                      \
     89  sh_InitRMutex(&(M));                                                 \
     90  return;                                                              \
     91}                                                                      \
     92static pthread_once_t  M ## _initialized = PTHREAD_ONCE_INIT
     93
     94#define SH_MUTEX_RECURSIVE_INIT(M)                                     \
     95(void) pthread_once(&(M ## _initialized), (M ## _init))
     96
     97#define SH_MUTEX_RECURSIVE_LOCK(M)                                         \
     98        do {                                                               \
     99                int oldtype;                                               \
     100                pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);  \
     101                pthread_cleanup_push(sh_RMutexUnlock, (void*)&(M));        \
     102                sh_RMutexLock(&(M))
     103
     104#define SH_MUTEX_RECURSIVE_UNLOCK(M)                                       \
     105                pthread_cleanup_pop(1);                                    \
     106                pthread_setcanceltype(oldtype, NULL);                      \
     107        } while (0)
     108
     109#endif
    28110/*
    29111 * ----   Global mutexes   ----
     
    32114SH_MUTEX_EXTERN(mutex_resolv);
    33115SH_MUTEX_EXTERN(mutex_pwent);
     116SH_MUTEX_EXTERN(mutex_readdir);
    34117
    35118/*
     
    49132#define SH_MUTEX_UNLOCK_UNSAFE(M)               ((void)0)
    50133
     134#define SH_MUTEX_RECURSIVE(M)                   extern void *SH_MUTEX_DUMMY_ ## M
     135#define SH_MUTEX_RECURSIVE_INIT(M)              ((void)0)
     136#define SH_MUTEX_RECURSIVE_LOCK(M)              ((void)0)
     137#define SH_MUTEX_RECURSIVE_UNLOCK(M)            ((void)0)
     138
    51139/* #ifdef HAVE_PTHREAD */
    52140#endif
  • trunk/include/sh_tiger.h

    r133 r138  
    99typedef long int TigerType;
    1010
    11 #define TIGER_FILE -1;
    12 #define TIGER_DATA -2;
     11#define TIGER_FILE -1
     12#define TIGER_DATA -2
    1313
    1414/****************
     15typedef long int TigerType;
    1516typedef enum {
    1617  TIGER_FILE,
     
    2425/* the checksum function
    2526 */
    26 /*@owned@*/ char * sh_tiger_hash (const char * filename, TigerType what,
    27                                   UINT64 Length, char * out, size_t len);
     27char * sh_tiger_hash (const char * filename, TigerType what,
     28                      UINT64 Length, char * out, size_t len);
    2829
    2930/* NEW Thu Oct 18 19:59:08 CEST 2001
  • trunk/include/sh_utils.h

    r132 r138  
    5858 *  generator.
    5959 */
    60 UINT32 taus_get            (void *state1, void *state2, void *state3); 
     60UINT32 taus_get            (); 
    6161double taus_get_double     (void *vstate);  /* fast */
    6262int    taus_seed           (void);
     
    8585 */
    8686char * sh_util_siggen (char * hexkey, 
    87                        char * text, size_t textlen);
     87                       char * text, size_t textlen,
     88                       char * sigbuf, size_t sigbuflen);
    8889
    8990/* eval boolean input
     
    112113int sh_util_obscure_ok (const char * str);
    113114
    114 /* output a hexchar[2]
     115/* output a hexchar[2]; i2h must be char[2]
    115116 */
    116 char * sh_util_charhex( unsigned char c );
     117char * sh_util_charhex( unsigned char c, char * i2h );
    117118
    118119/* read a hexchar, return int value (0-15)
  • trunk/include/slib.h

    r131 r138  
    6060#define SL_FALSE 0
    6161
     62#define SH_GRBUF_SIZE  4096
     63#define SH_PWBUF_SIZE  4096
    6264
    6365
Note: See TracChangeset for help on using the changeset viewer.