package pkcs11-driver
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=eee2e67fff116d747d1d0f6229af9e952cbb4f9a56765c069c63c1e1bbbc67a3
sha512=3a1090b0cd53b09dffb4c2a2d591e290ff3fe9add1217797f9746a1a6af0d41239b217f1dd45354e3ee457ff007d68bb4d8d83f07001d6ad9870e7aaba4fd434
doc/pkcs11-driver/Ctypes_helpers/index.html
Module Ctypes_helpers
Source
Pointers with a GC link from the structure they are in. These are like Ctypes.ptr
except that setf
will add a link (through a finalizer) from the structure to the pointer to prevent its early collection.
ptr_from_string s
allocates memory for a C string with length String.length s
and content copied from s
. The string is not null
terminated.
string_from_ptr
allocates an OCaml string.
string_from_carray array
allocates a fresh OCaml string whose content are copied from array
.
carray_from_string
allocates a fresh array, whose content is identical to the string s
. The resulting C string is not null terminated.
string_copy str length ptr
copy the content of str
into the length
bytes of memory pointed to by ptr
.
val make_string :
string ->
'a Ctypes.structure ->
(Unsigned.ULong.t, 'a Ctypes.structure) Ctypes.field ->
('b Reachable_ptr.t, 'a Ctypes.structure) Ctypes.field ->
unit
* Copy an OCaml string to a Ctypes struct. * * Parameters: * - str is the source string * - p is the structure * - lengthField is the field within that struct that holds then length * - dataField idem for data * - typ is the type of the data
val view_string :
'b Ctypes.structure ->
(ulong, 'b Ctypes.structure) Ctypes.field ->
('a Reachable_ptr.t, 'b Ctypes.structure) Ctypes.field ->
string
* Read an OCaml string from a Ctypes struct. * * Parameters: same as make_string.
val make_string_option :
string option ->
('a, [ `Struct ]) Ctypes.structured ->
(Unsigned.ULong.t, ('a, [ `Struct ]) Ctypes.structured) Ctypes.field ->
('b Reachable_ptr.t, ('a, [ `Struct ]) Ctypes.structured) Ctypes.field ->
unit
* Copy a string option to a pointer + length. * Copying None sets the pointer to NULL and length to 0. * Parameters are the same as make_string.
val view_string_option :
('a, [ `Struct ]) Ctypes.structured ->
(ulong, 'a Ctypes.structure) Ctypes.field ->
('b Reachable_ptr.t, ('a, [ `Struct ]) Ctypes.structured) Ctypes.field ->
string option
* Make a string option out of a pointer + length. * Same semantics for copy as make_string_option. * Same arguments as view_string.
Pad a string with ' ' up to length
. Raises Buffer_overflow
if the string is too long.
val packed_field :
't Ctypes.typ ->
string ->
'a Ctypes.typ ->
('a, ('s, [< `Struct | `Union ]) Ctypes_static.structured as 't) Ctypes.field
Like Ctypes.field
except that it will always align to 1 byte.
val smart_field :
't Ctypes.typ ->
string ->
'a Ctypes.typ ->
('a, ('s, [< `Struct | `Union ]) Ctypes_static.structured as 't) Ctypes.field
On unix, act like Ctypes.field
. On windows, act like packed_field
.
Open a file for writing and returns a formatter to it.