mingw 编译openvpn 编译tap-win32时报错

来源:互联网 发布:js点击radio 编辑:程序博客网 时间:2024/06/05 16:15
这是报错部分源码:
typedef struct _INSTANCE {
  struct _INSTANCE *next;
  TapAdapterPointer m_Adapter;
} INSTANCE;


typedef struct {
  INSTANCE *list;
  MUTEX lock;
} INSTANCE_BUCKET;


typedef struct {
  INSTANCE_BUCKET buckets[N_INSTANCE_BUCKETS];
} INSTANCE_HASH;


INSTANCE_HASH *g_InstanceHash = NULL;   //定义全局变量 g_InstanceHash




BOOLEAN
InitInstanceList (VOID)
{
  MYASSERT (g_InstanceHash == NULL);
  g_InstanceHash = MemAlloc (sizeof (INSTANCE_HASH), TRUE); ///这里是申请内存
  if (g_InstanceHash)
    {
      int i;
      for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
INIT_MUTEX (&g_InstanceHash->buckets[i].lock);
      return TRUE;
    }
  else
    return FALSE;
}
int
NInstances (VOID)
{
  int i, n = 0;


  if (g_InstanceHash)
    {
      for (i = 0; i < N_INSTANCE_BUCKETS; ++i)
{
 BOOLEAN got_lock;
  INSTANCE_BUCKET  *ib = &g_InstanceHash->buckets[i];
 ACQUIRE_MUTEX_ADAPTIVE (&ib->lock, got_lock);/*编译到这里报错:error c4090:'function' :different 'volatile'qualifiers*/


 if (got_lock)
   {
     INSTANCE *current;
     for (current = ib->list; current != NULL; current = current->next)
++n;
     RELEASE_MUTEX (&ib->lock);
   }
 else
   return -1;
}
    }


  return n;

}



0 0