idals.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* 
  2.    * File...........: linux/drivers/s390x/idals.c
  3.    * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  4.    * Bugreports.to..: <Linux390@de.ibm.com>
  5.    * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000a
  6.    
  7.    * History of changes
  8.    * 07/24/00 new file
  9.    * 12/13/00 changed IDALs to 4kByte-IDALs
  10.  */
  11. #include <linux/module.h>
  12. #include <linux/config.h>
  13. #include <linux/slab.h>
  14. #include <asm/irq.h>
  15. #include <asm/idals.h>
  16. #ifdef CONFIG_ARCH_S390X
  17. unsigned long __create_idal (unsigned long address, int count)
  18. {
  19. int nridaws;
  20. unsigned long *idal, *tmp;
  21.         nridaws = ((address & (IDA_BLOCK_SIZE-1)) + count + 
  22.    (IDA_BLOCK_SIZE-1)) >> IDA_SIZE_LOG;
  23. idal = idal_alloc(nridaws);
  24. if (idal != NULL) {
  25. tmp = idal;
  26. *tmp++ = address;
  27. address &= -IDA_BLOCK_SIZE;
  28. while (--nridaws > 0) {
  29. address += IDA_BLOCK_SIZE;
  30. *tmp++ = address;
  31. }
  32. }
  33. return (unsigned long) idal;
  34. }
  35. EXPORT_SYMBOL (__create_idal);
  36. #endif