Subversion Repositories Kolibri OS

Rev

Rev 9056 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. ; Macroinstructions for making import section
  3. ; Based on import32.inc from FASM, with small modifications
  4. ; and list of actual kernel exports.
  5.  
  6. macro library [name,string]
  7.  { common
  8.     import.data:
  9.    forward
  10.     local _label
  11.     if defined name#.redundant
  12.      if ~ name#.redundant
  13.       dd 0,0,0,RVA _label,RVA name#.address
  14.      end if
  15.     end if
  16.     name#.referred = 1
  17.    common
  18.     dd 0,0,0,0,0
  19.    forward
  20.     if defined name#.redundant
  21.      if ~ name#.redundant
  22.       _label db string,0
  23.      end if
  24.     end if }
  25.  
  26. macro import name,[label]
  27.  { common
  28.     rb (- rva $) and 3
  29.     if defined name#.referred
  30.      name#.address:
  31.    forward
  32.      if used label
  33.        local _label
  34.        label dd RVA _label
  35.        label#._pe_import = 1
  36.      end if
  37.    common
  38.      if $ > name#.address
  39.       name#.redundant = 0
  40.       dw 0
  41.      else
  42.       name#.redundant = 1
  43.      end if
  44.    forward
  45.      if used label
  46.      _label dw 0
  47.             db `label
  48.      end if
  49.    common
  50.      db 0
  51.     end if }
  52.  
  53. align 4
  54. data import
  55. library core,'core.dll'
  56. import core,\
  57.               RegService,\
  58.               GetService,\
  59.               ServiceHandler,\
  60.               AttachIntHandler,\
  61.               GetIntHandler,\
  62.               FpuSave,\
  63.               FpuRestore,\
  64.               ReservePortArea,\
  65.               Boot_Log,\
  66. \
  67.               FsRead32Sys,\
  68.               FsRead32App,\
  69.               FsRead64Sys,\
  70.               FsRead64App,\
  71. \
  72.               FsWrite32Sys,\
  73.               FsWrite32App,\
  74.               FsWrite64Sys,\
  75.               FsWrite64App,\
  76. \
  77.               FsAdd,\
  78. \
  79.               DiskSync,\
  80. \
  81.               MutexInit,\
  82.               MutexLock,\
  83.               MutexUnlock,\
  84. \
  85.               PciApi,\
  86.               PciRead32,\
  87.               PciRead16,\
  88.               PciRead8,\
  89.               PciWrite8,\
  90.               PciWrite16,\
  91.               PciWrite32,\
  92. \
  93.               AllocPage,\
  94.               AllocPages,\
  95.               FreePage,\
  96.               MapPage,\
  97.               MapSpace,\
  98.               MapIoMem,\
  99.               GetPgAddr,\
  100.               GetPhysAddr,\
  101.               CommitPages,\
  102.               ReleasePages,\
  103. \
  104.               AllocKernelSpace,\
  105.               FreeKernelSpace,\
  106.               KernelAlloc,\
  107.               KernelFree,\
  108.               UserAlloc,\
  109.               UserFree,\
  110.               Kmalloc,\
  111.               Kfree,\
  112.               CreateRingBuffer,\
  113.               AllocDMA24,\
  114. \
  115.               GetPid,\
  116.               CreateThread,\
  117.               CreateObject,\
  118.               DestroyObject,\
  119.               CreateEvent,\
  120.               RaiseEvent,\
  121.               WaitEvent,\
  122.               DestroyEvent,\
  123.               ClearEvent,\
  124. \
  125.               LoadCursor,\
  126.               SelectHwCursor,\
  127.               SetHwCursor,\
  128.               HwCursorRestore,\
  129.               HwCursorCreate,\
  130. \
  131.               SysMsgBoardStr,\
  132.               SysMsgBoard,\
  133.               GetCurrentTask,\
  134.               LoadFile,\
  135.               SendEvent,\
  136.               SetMouseData,\
  137.               SetKeyboardData,\
  138.               RegKeyboard,\
  139.               DelKeyboard,\
  140.               Sleep,\
  141.               GetTimerTicks,\
  142. \
  143.               strncat,\
  144.               strncpy,\
  145.               strncmp,\
  146.               strnlen,\
  147.               strchr,\
  148.               strrchr,\
  149. \
  150.               LFBAddress,\
  151.               GetDisplay,\
  152.               SetScreen,\
  153. \
  154.               RegUSBDriver,\
  155.               USBOpenPipe,\
  156.               USBNormalTransferAsync,\
  157.               USBControlTransferAsync,\
  158.               USBGetParam,\
  159.               USBHCFunc,\
  160. \
  161.               DiskAdd,\
  162.               DiskMediaChanged,\
  163.               DiskDel,\
  164. \
  165.               TimerHS,\
  166.               CancelTimerHS,\
  167. \
  168.               NetRegDev,\
  169.               NetUnRegDev,\
  170.               NetPtrToNum,\
  171.               NetLinkChanged,\
  172.               EthInput,\
  173.               NetAlloc,\
  174.               NetFree,\
  175. \
  176.               GetPCIList, \
  177. \
  178.               FS_Service
  179.  
  180. end data
  181.