File: ctypes_stdint.py

package info (click to toggle)
python-ptrace 0.6.4-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 620 kB
  • sloc: python: 6,213; ansic: 241; makefile: 13; sh: 1
file content (58 lines) | stat: -rw-r--r-- 990 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"""
Define standard (integers) types.

Signed types:
 - int8_t
 - int16_t
 - int32_t
 - int64_t
 - size_t

Unsigned types:
 - uint8_t
 - uint16_t
 - uint32_t
 - uint64_t
"""

from ctypes import sizeof, \
    c_byte, c_ubyte, \
    c_short, c_ushort, \
    c_int, c_uint, \
    c_long, c_ulong, \
    c_longlong, c_ulonglong

# 8-bit integers
uint8_t = c_ubyte
int8_t = c_byte

# 16-bit integers
assert sizeof(c_short) == 2
assert sizeof(c_ushort) == 2
int16_t = c_short
uint16_t = c_ushort

# 32-bit integers
assert sizeof(c_int) == 4
assert sizeof(c_uint) == 4
int32_t = c_int
uint32_t = c_uint

# 64-bit integers
if sizeof(c_long) == 8:
    int64_t = c_long
else:
    assert sizeof(c_longlong) == 8
    int64_t = c_longlong
if sizeof(c_ulong) == 8:
    uint64_t = c_ulong
else:
    assert sizeof(c_ulonglong) == 8
    uint64_t = c_ulonglong

# size_t
size_t = c_long

__all__ = (
    "uint8_t", "int8_t", "int16_t", "uint16_t",
    "int32_t", "uint32_t", "int64_t", "uint64_t", "size_t")