1#ifndef _ASM_IA64_SN_ATE_UTILS_H 2#define _ASM_IA64_SN_ATE_UTILS_H 3 4/* $Id: ate_utils.h,v 1.1.1.1 2008/10/15 03:27:17 james26_jang Exp $ 5 * 6 * This file is subject to the terms and conditions of the GNU General Public 7 * License. See the file "COPYING" in the main directory of this archive 8 * for more details. 9 * 10 * Copyright (C) 1992 - 1997, 2000-2002 Silicon Graphics, Inc. All rights reserved. 11 */ 12 13/* 14 * struct map X[] .m_size .m_addr 15 * --- ------------ ----------- 16 * [0] mapsize(X) unused 17 * # X[] unused 18 * [1] map lock * mapwant sv_t * 19 * map access wait for free map space 20 * 21 * mapstart(X)-> [2] # units unit number 22 * : : : 23 * [ ] 0 24 */ 25 26#include <linux/types.h> 27 28#define ulong_t uint64_t 29 30struct map 31{ 32 unsigned long m_size; /* number of units available */ 33 unsigned long m_addr; /* address of first available unit */ 34}; 35 36#define mapstart(X) &X[2] /* start of map array */ 37 38#define mapsize(X) X[0].m_size /* number of empty slots */ 39 /* remaining in map array */ 40#define maplock(X) (((spinlock_t *) X[1].m_size)) 41 42#define mapout(X) ((sv_t *) X[1].m_addr) 43 44 45extern ulong_t atealloc(struct map *, size_t); 46extern struct map *atemapalloc(ulong_t); 47extern void atefree(struct map *, size_t, ulong_t); 48extern void atemapfree(struct map *); 49 50#endif /* _ASM_IA64_SN_ATE_UTILS_H */ 51 52