Update readme

This commit is contained in:
retropikzel 2024-06-08 08:48:16 +03:00
parent ccc6f8b9b3
commit 529772c7cf
1 changed files with 161 additions and 19 deletions

180
README.md
View File

@ -67,12 +67,18 @@ For bugs you can use the
main.sld is the real main which is copied to main.scm main.sld is the real main which is copied to main.scm
## Documentation WIP ## Documentation
Note that this documentation is work in process and very incomplete, sorry about that.
On some implementations these are procedures, on some macros. On some implementations these are procedures, on some macros.
The arguments are in form
- NAME - TYPE
The return value is in form
- TYPE
### Types ### Types
Types are given as symbols, for example 'int8 or 'pointer. Types are given as symbols, for example 'int8 or 'pointer.
@ -105,22 +111,23 @@ Types are given as symbols, for example 'int8 or 'pointer.
Arguments: Arguments:
- headers (list (string) ...) - headers - (list string ...)
- C headers of the library - C headers of the library
- For example (list "curl/curl.h") - For example (list "curl/curl.h")
- object-name (symbol) - object-name - symbol
- The name of the dynamic library file you want to load - The name of the dynamic library file you want to load
- Without the "lib" in front of it - Without the "lib" in front of it
- Without the ".so" or ".dll" at the end - Without the ".so" or ".dll" at the end
- addition-versions (list (string)...) - addition-versions - (list string...)
- For example (list ".0" ".1") - For example (list ".0" ".1")
- addition-paths (list (string)...) - addition-paths - (list string...)
- Any additional paths you want to search for the library - Any additional paths you want to search for the library
- For example (list "./mylibs") - For example (list "./mylibs")
Returns: Returns:
- (object) Shared object, the type depends on the implementation - object
- Shared object, the type depends on the implementation
#### pffi-shared-object-load #### pffi-shared-object-load
@ -129,14 +136,17 @@ Returns:
Arguments: Arguments:
- headers (list (string) ...) Headers that need to be included - headers - (list string ...)
- Example (list "curl/curl.h") - Headers that need to be included
- path (string) The full path to the shared object you want to load, including any "lib" infront and .so/.dll at the end - Example (list "curl/curl.h")
- Example "libcurl.so" - 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: Returns:
- (object) Shared object, the type depends on the implementation - object
- Shared object, the type depends on the implementation
@ -146,9 +156,141 @@ Defines new foreign procedure.
Arguments: Arguments:
- scheme-name () The name of the procedure used on scheme side - scheme-name
- shared-object (object) The shared object - The name of the procedure used on scheme side
- Use pffi-shared-object-auto-load or pffi-shared-object-load to get this - shared-object - object
- c-name (symbol) The name of the C function - The shared object
- return-type (symbol) The return type of the C function - Use pffi-shared-object-auto-load or pffi-shared-object-load to get this
- arguments-types (list (symbol) ...) The C function argument types - 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
### 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
### pffi-pointer-deref
Arguments:
- pointer
- The pointer to dereference
Returns:
- object
- Whatever the pointer holds