Advertisement
Guest User

sys.apc

a guest
Mar 12th, 2014
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.59 KB | None | 0 0
  1.  
  2. alias Handle    =  longint;
  3. alias TXID      =  longint; // FIXME
  4. alias DWORD     =  longint;
  5. alias HDC       =  longint;
  6. alias HGLRC     =  longint;
  7. alias BOOL      =  bool;
  8. alias HMODULE   =  longint;
  9. alias LPCSTR    = ^char;
  10. alias FARPROC   =  pointer;
  11. alias HGDIOBJ   =  longint;
  12. alias COLORREF  =  DWORD;
  13.  
  14. packed struct Rect /**/ left, top, right, bottom : longint; end;
  15. packed struct POINTFLOAT /**/ x,y : float; end;
  16. packed struct GLYPHMETRICSFLOAT
  17.     gmfBlackBoxX     : float;
  18.     gmfBlackBoxY     : float;
  19.     gmfptGlyphOrigin : POINTFLOAT;
  20.     gmfCellIncX      : float;
  21.     gmfCellIncY      : float;
  22. end;
  23.  
  24. packed struct LAYERPLANEDESCRIPTOR
  25.     nSize           : word;
  26.     nVersion        : word;
  27.     dwFlags         : DWORD;
  28.     iPixelType      : byte;
  29.     cColorBits      : byte;
  30.     cRedBits        : byte;
  31.     cRedShift       : byte;
  32.     cGreenBits      : byte;
  33.     cGreenShift     : byte;
  34.     cBlueBits       : byte;
  35.     cBlueShift      : byte;
  36.     cAlphaBits      : byte;
  37.     cAlphaShift     : byte;
  38.     cAccumBits      : byte;
  39.     cAccumRedBits   : byte;
  40.     cAccumGreenBits : byte;
  41.     cAccumBlueBits  : byte;
  42.     cAccumAlphaBits : byte;
  43.     cDepthBits      : byte;
  44.     cStencilBits    : byte;
  45.     cAuxBuffers     : byte;
  46.     iLayerPlane     : byte;
  47.     bReserved       : byte;
  48.     crTransparent   : COLORREF;
  49. end;
  50.  
  51. packed struct PIXELFORMATDESCRIPTOR
  52.     nSize           : word;
  53.     nVersion        : word;
  54.     dwFlags         : DWORD;
  55.     iPixelType      : byte;
  56.     cColorBits      : byte;
  57.     cRedBits        : byte;
  58.     cRedShift       : byte;
  59.     cGreenBits      : byte;
  60.     cGreenShift     : byte;
  61.     cBlueBits       : byte;
  62.     cBlueShift      : byte;
  63.     cAlphaBits      : byte;
  64.     cAlphaShift     : byte;
  65.     cAccumBits      : byte;
  66.     cAccumRedBits   : byte;
  67.     cAccumGreenBits : byte;
  68.     cAccumBlueBits  : byte;
  69.     cAccumAlphaBits : byte;
  70.     cDepthBits      : byte;
  71.     cStencilBits    : byte;
  72.     cAuxBuffers     : byte;
  73.     iLayerType      : byte;
  74.     bReserved       : byte;
  75.     dwLayerMask     : DWORD;
  76.     dwVisibleMask   : DWORD;
  77.     dwDamageMask    : DWORD;
  78. end;
  79.  
  80. alias Display    = longint; // FIXME
  81. alias XVisualInfo = longint; // FIXME
  82.  
  83. $ifdef x86_64
  84.     def memcpy (dst, src : pointer; size : int64; alignVal : int = 4; isVolatile : bool = false)       external "llvm.memcpy.p0i8.p0i8.i64";
  85.     def memset (dst : pointer; val : byte; len : int64; alignVal : int = 4; isVolatile : bool = false) external "llvm.memset.p0i8.i64";
  86. $else
  87.     def memcpy (dst, src : pointer; size : int; alignVal : int = 4; isVolatile : bool = false)         external "llvm.memcpy.p0i8.p0i8.i32";
  88.     def memset (dst : pointer; val : byte; len : int; alignVal : int = 4; isVolatile : bool = false)   external "llvm.memset.p0i8.i32";
  89. $endif
  90.  
  91. //
  92. def stdcall LoadLibrary    (lpLibFileName : ^wchar)  : HMODULE external "LoadLibraryW";
  93. def stdcall LoadLibraryA   (lpLibFileName : ^char)   : HMODULE external;
  94. def stdcall FreeLibrary    (hLibModule    : HMODULE) : bool    external;
  95. def stdcall GetProcAddress (hModule       : HMODULE; lpProcName : LPCSTR) : FARPROC external;
  96.  
  97. // MMAN
  98.  
  99. const PROT_NONE             = 0;
  100. const PROT_READ             = 1;
  101. const PROT_WRITE            = 2;
  102. const PROT_EXEC             = 4;
  103.  
  104. const MAP_FILE              = 0;
  105. const MAP_SHARED            = 1;
  106. const MAP_PRIVATE           = 2;
  107. const MAP_TYPE              = 0xf;
  108. const MAP_FIXED             = 0x10;
  109. const MAP_ANONYMOUS         = 0x20;
  110. const MAP_ANON              = 0x20;
  111.  
  112. const MAP_FAILED : pointer  = -1;
  113.  
  114. /* Flags for msync. */
  115. const MS_ASYNC              = 1;
  116. const MS_SYNC               = 2;
  117. const MS_INVALIDATE         = 4;
  118.  
  119. def mmap     (addr : pointer; len : size_t; prot, flags, fields : int; off : off_t) : pointer external;
  120. def munmap   (addr : pointer; len : size_t) : int external;
  121. def mprotect (addr : pointer; len : size_t; prot  : int) : int external;
  122. def msync    (addr : pointer; len : size_t; flags : int) : int external;
  123. def mlock    (const addr : pointer; len : size_t) : int external;
  124. def munlock  (const addr : pointer; len : size_t) : int external;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement