Module: Fiddle::PackInfo
- Included in:
- CStructEntity, CUnionEntity, Packer
- Defined in:
- lib/fiddle/pack.rb
Overview
:nodoc: all
Constant Summary collapse
- ALIGN_MAP =
{ TYPE_VOIDP => ALIGN_VOIDP, TYPE_CHAR => ALIGN_CHAR, TYPE_SHORT => ALIGN_SHORT, TYPE_INT => ALIGN_INT, TYPE_LONG => ALIGN_LONG, TYPE_FLOAT => ALIGN_FLOAT, TYPE_DOUBLE => ALIGN_DOUBLE, TYPE_UCHAR => ALIGN_CHAR, TYPE_USHORT => ALIGN_SHORT, TYPE_UINT => ALIGN_INT, TYPE_ULONG => ALIGN_LONG, TYPE_BOOL => ALIGN_BOOL, }
- PACK_MAP =
{ TYPE_VOIDP => "L!", TYPE_CHAR => "c", TYPE_SHORT => "s!", TYPE_INT => "i!", TYPE_LONG => "l!", TYPE_FLOAT => "f", TYPE_DOUBLE => "d", TYPE_UCHAR => "C", TYPE_USHORT => "S!", TYPE_UINT => "I!", TYPE_ULONG => "L!", }
- SIZE_MAP =
{ TYPE_VOIDP => SIZEOF_VOIDP, TYPE_CHAR => SIZEOF_CHAR, TYPE_SHORT => SIZEOF_SHORT, TYPE_INT => SIZEOF_INT, TYPE_LONG => SIZEOF_LONG, TYPE_FLOAT => SIZEOF_FLOAT, TYPE_DOUBLE => SIZEOF_DOUBLE, TYPE_UCHAR => SIZEOF_CHAR, TYPE_USHORT => SIZEOF_SHORT, TYPE_UINT => SIZEOF_INT, TYPE_ULONG => SIZEOF_LONG, TYPE_BOOL => SIZEOF_BOOL, }
Class Method Summary collapse
Class Method Details
.align(addr, align) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/fiddle/pack.rb', line 73 def align(addr, align) d = addr % align if( d == 0 ) addr else addr + (align - d) end end |