ate_utils.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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