Ignore:
Timestamp:
04/05/11 11:17:41 (13 years ago)
Author:
tim
Message:

added test case for python callback read/seek
began adding windows support in pyregfi
improved win32 build target

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/pyregfi/structures.py

    r224 r225  
    8282
    8383
    84 # XXX: how can we know for sure the size of off_t and size_t?
    85 seek_cb_type = CFUNCTYPE(c_int64, POINTER(REGFI_RAW_FILE), c_uint64, c_int, use_errno=True)
    86 read_cb_type = CFUNCTYPE(c_int64, POINTER(REGFI_RAW_FILE), POINTER(c_char), c_uint64, use_errno=True)
     84# Load libregfi according to platform
     85regfi = None
     86if hasattr(ctypes, 'windll'):
     87    #regfi = ctypes.windll.libregfi
     88    regfi = ctypes.WinDLL('libregfi.dll', use_errno=True)
     89    CB_FACTORY = ctypes.WINFUNCTYPE
     90else:
     91    regfi = ctypes.CDLL(ctypes.util.find_library('regfi'), use_errno=True)
     92    CB_FACTORY = ctypes.CFUNCTYPE
     93
     94# XXX: how can we know for sure the size of off_t? 
     95#      -D_FILE_OFFSET_BITS=64 might help, need to research this
     96#      Also, may need to use something like ctypes_configure
     97#seek_cb_type = CB_FACTORY(c_int64, POINTER(REGFI_RAW_FILE), c_uint64, c_int, use_errno=True)
     98seek_cb_type = CB_FACTORY(c_int64, POINTER(REGFI_RAW_FILE), c_uint64, c_int)
     99#read_cb_type = CB_FACTORY(c_int64, POINTER(REGFI_RAW_FILE), POINTER(c_char), c_size_t, use_errno=True)
     100read_cb_type = CB_FACTORY(c_int64, POINTER(REGFI_RAW_FILE), POINTER(c_char), c_size_t)
    87101
    88102
     
    217231
    218232
    219 # Load libregfi and define function prototypes
    220 regfi = ctypes.CDLL(ctypes.util.find_library('regfi'), use_errno=True)
    221 
     233# Define function prototypes
    222234regfi.regfi_alloc.argtypes = [c_int, REGFI_ENCODING]
    223235regfi.regfi_alloc.restype = POINTER(REGFI_FILE)
Note: See TracChangeset for help on using the changeset viewer.