/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1985-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#ifndef _ASO_H
#include <ast_common.h>
/*
* ast atomic scalar operations interface definitions
*/
/* asometh() types (ordered mutually exclusive flags) */
/* asolock() operations */
/* Asoerror_f types */
/* for internal use, but standardized for libs such as CDT and Vmalloc */
typedef int (*Asoerror_f)(int, const char*);
typedef void* (*Asoinit_f)(void*, const char*);
typedef struct Asodisc_s
{
unsigned int hung;
} Asodisc_t;
typedef struct Asometh_s
{
const char* name;
int type;
const char* details;
} Asometh_t;
#define extern extern __EXPORT__
#endif
#define extern extern __IMPORT__
#endif
#undef extern
#if _BLD_aso && defined(__EXPORT__)
#define extern extern __EXPORT__
#endif
#if !_BLD_aso && defined(__IMPORT__)
#define extern extern __IMPORT__
#endif
extern int asolock(unsigned int volatile*, unsigned int, int);
extern int asorelax(long);
#if _ast_sizeof_int == 4
#endif
#if _ast_sizeof_long == 4
#endif
#if _ast_sizeof_size_t == 4
#endif
#ifdef _ast_int8_t
#if _ast_sizeof_int == 8
#endif
#if _ast_sizeof_long == 8
#endif
#if _ast_sizeof_size_t == 8
#endif
#endif
extern void* asocasptr(void volatile*, void*, void*);
extern void* asogetptr(void volatile*);
#undef extern
#endif