/* Copyright 2005 Chris Thomasson */


#ifndef AC_SYS_I686_H
#define AC_SYS_I686_H


#ifdef __cplusplus
extern "C"
{
#endif




#ifdef _MSC_VER 
/* 4324: structure was padded due to _declspec(align()) */
#pragma warning ( disable : 4324 )
#endif


typedef struct 
AC_DECLSPEC_ALIGN_CACHE_LINE
ac_i686_this_
{
  ac_i686_stack_mpmc_t node_cache;
  ac_i686_intword_t node_count;

} ac_i686_this_t;


#ifdef _MSC_VER 
/* 4324: structure was padded due to _declspec(align()) */
#pragma warning ( default : 4324 )
#endif




AC_SYS_APIEXPORT int AC_APIDECL
ac_i686_startup
( ac_i686_this_t* );


AC_SYS_APIEXPORT int AC_APIDECL
ac_i686_shutdown
( void );


AC_SYS_APIEXPORT void AC_APIDECL
ac_i686_node_cache_flush
( void );


AC_SYS_APIEXPORT int AC_APIDECL
ac_i686_tls_alloc
( ac_i686_tls_t*,
  ac_thread_t* );


AC_SYS_APIEXPORT int AC_APIDECL
ac_i686_tls_free
( ac_i686_tls_t* );




typedef ac_i686_this_t ac_cpu_this_t;

#define ac_cpu_tls_alloc ac_i686_tls_alloc
#define ac_cpu_tls_free ac_i686_tls_free
#define ac_cpu_startup ac_i686_startup
#define ac_cpu_shutdown ac_i686_shutdown
#define ac_cpu_node_cache_flush ac_i686_node_cache_flush




#ifdef __cplusplus
}
#endif


#endif


#include "ac_sys_i686_lfgc_smr.h"