#include <assert.h>
#include <stddef.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <pthread.h>
#endif
#include "xnnpack/common.h"
#include "xnnpack/config.h"
#include "xnnpack/microfnptr.h"
#include "xnnpack/zip.h"
static struct xnn_zip_config x8_zip_config = …;
static struct xnn_zip_config x32_zip_config = …;
#if XNN_PLATFORM_WINDOWS
static INIT_ONCE init_guard_x8_zip = INIT_ONCE_STATIC_INIT;
static INIT_ONCE init_guard_x32_zip = INIT_ONCE_STATIC_INIT;
#else
static pthread_once_t init_guard_x8_zip = …;
static pthread_once_t init_guard_x32_zip = …;
#endif
static void init_x8_zip_config(void) { … }
static void init_x32_zip_config(void) { … }
#if XNN_PLATFORM_WINDOWS
static BOOL CALLBACK init_x8_zip_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
init_x8_zip_config();
return TRUE;
}
static BOOL CALLBACK init_x32_zip_config_windows(PINIT_ONCE init_once, PVOID parameter, PVOID* context) {
init_x32_zip_config();
return TRUE;
}
#endif
const struct xnn_zip_config* xnn_init_x8_zip_config() { … }
const struct xnn_zip_config* xnn_init_x32_zip_config() { … }