4.2 KiB
		
	
	
	
	
	
			
		
		
	
	
			4.2 KiB
		
	
	
	
	
	
Reference
Types
Types are given as symbols, for example 'int8 or 'pointer.
- int8
 - uint8
 - int16
 - uint16
 - int32
 - uint32
 - int64
 - uint64
 - char
 - unsigned-char
 - short
 - unsigned-short
 - int
 - unsigned-int
 - long
 - unsigned-long
 - float
 - double
 - pointer
 
Procedures or macros
On some implementations these are procedures, on some macros.
The arguments are in form
- NAME - TYPE
 
The return value is in form
- TYPE
 
pffi-shared-object-auto-load
Arguments:
- headers - (list string ...)
- C headers of the library
 - For example (list "curl/curl.h")
 
 - object-name - symbol
- The name of the dynamic library file you want to load
 - Without the "lib" in front of it
 - Without the ".so" or ".dll" at the end
 
 - additional-versions - (list string...)
- For example (list ".0" ".1")
 
 - additional-paths - (list string...)
- Any additional paths you want to search for the library
 - For example (list "./mylibs")
 
 
Returns:
- object - Shared object, the type depends on the implementation
 
pffi-shared-object-load
It is recommended to use the pffi-shared-object-auto-load instead of this directly.
Arguments:
- headers - (list string ...) - Headers that need to be included - Example (list "curl/curl.h")
 - path - string - The full path to the shared object you want to load, including any "lib" infront and .so/.dll at the end - Example "libcurl.so"
 
Returns:
- object - Shared object, the type depends on the implementation
 
pffi-define
Defines new foreign procedure.
Arguments:
- scheme-name - symbol - The name of the procedure used on scheme side
 - shared-object - object - The shared object - Use pffi-shared-object-auto-load or pffi-shared-object-load to get this
 - c-name - symbol - The name of the C function
 - return-type - symbol - The return type of the C function
 - arguments-types - (list symbol ...) - The C function argument types - Need to be given in form (list 'type 'type)
 
pffi-define-callback
Defines new callback function.
Arguments:
- scheme-name - The name of the function used on scheme side
 - return-type - symbol - The return type of the callback
 - arguments-types - (list symbol ...) - The callback function argument types
 - procedure - procedure
- Procedure used as callback function
 - Argument count must match the argument-types count
 
 
pffi-size-of
Get the size of type.
Arguments:
- type - symbol - The type you want the size of
 
Returns:
- number - The size of the given type
 
pffi-pointer-allocate
Allocates a pointer of given size.
Arguments:
- size - number - The size of the pointer you want to allocate
 
Returns:
- object - A pointer of given size
 
pffi-pointer-null
Create a null pointer.
Returns:
- object - Null pointer
 
pffi-string->pointer
Arguments:
- string-content - string - The string you want to transform into pointer
 
Returns:
- object - Pointer of the given string
 
pffi-pointer->string
Arguments:
- pointer - object - The pointer you want to transform to string
 
Returns:
- string - String from the given pointer
 
pffi-pointer-free
Arguments:
- pointer - object - The pointer you want to free
 
pffi-pointer?
Arguments:
- object - object - The object you want to check wether it is a pointer or not
 
Returns:
- boolean - Returns true if given object is pointer, otherwise false
 
pffi-pointer-set!
Arguments:
- pointer - object - The pointer you want to modify
 - type - symbol - The type of value that will be put into the pointer
 - offset -number - The location of the value inside the pointer - For example: (+ (pffi-size-of 'int) (pffi-size-of 'pointer)) or 0
 - value - object
- The value to be placed into the object
 
 
pffi-pointer-get
Arguments:
- pointer - object
- The pointer you want to get the value from
 
 - type - symbol
- The type of value you want to get
 - For example: 'int
 
 - offset - number
- The location of the value inside the pointer
 - For example: (+ (pffi-size-of 'int) (pffi-size-of 'pointer)) or 0
 
 
Returns:
- object
- The value in the poiner in the given offset as given type