Viewing file: llsc4.h (2.07 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2000 Silicon Graphics, Inc. * Copyright (C) 2000 by Jack Steiner (steiner@sgi.com) */
#ifdef STANDALONE #include "lock.h" #endif
#define DEF_NAPTICKS 0 #define DEF_PASSES 0 #define DEF_AUTO_PASSES 1000000 #define DEF_STOP_ON_ERROR 1 #define DEF_VERBOSE 0 #define DEF_LINECOUNT 2 #define DEF_ITER_MSG 0 #define DEF_VV 0xffffffff #define DEF_LINEPAD 0x234
#define MAXCPUS 16 #define CACHELINE 64 #define MAX_LINECOUNT 1024 #define K 1024 #define MB (K*K)
#define uint unsigned int #define ushort unsigned short #define vint volatile int #define vlong volatile long
#define LOCKADDR(i) &linep->lock[(i)] #define LOCK(i) set_lock(LOCKADDR(i), lockpat) #define UNLOCK(i) clr_lock(LOCKADDR(i), lockpat) #define GETLOCK(i) *LOCKADDR(i) #define ZEROLOCK(i) zero_lock(LOCKADDR(i))
#define CACHEALIGN(a) ((void*)((long)(a) & ~127L))
typedef uint lock_t; typedef uint share_t; typedef uint private_t;
typedef struct { lock_t lock[2]; share_t share[2]; private_t private[MAXCPUS]; share_t share0; share_t share1; } dataline_t ;
#define LINEPAD k_linepad #define LINESTRIDE (((sizeof(dataline_t)+CACHELINE-1)/CACHELINE)*CACHELINE + LINEPAD)
typedef struct { vint threadstate; uint threadpasses; private_t private[MAX_LINECOUNT]; } threadprivate_t;
typedef struct { vlong sk_go; /* 0=idle, 1=init, 2=run */ long sk_linecount; long sk_passes; long sk_napticks; long sk_stop_on_error; long sk_verbose; long sk_iter_msg; long sk_vv; long sk_linepad; long sk_options; long sk_testnumber; vlong sk_currentpass; void *sk_blocks; threadprivate_t *sk_threadprivate[MAXCPUS]; } control_t;
/* Run state (k_go) constants */ #define ST_IDLE 0 #define ST_INIT 1 #define ST_RUN 2 #define ST_STOP 3 #define ST_ERRSTOP 4
/* Threadstate constants */ #define TS_STOPPED 0 #define TS_RUNNING 1 #define TS_KILLED 2
int llsc_main (int cpuid, long mbasex);
|