diff options
Diffstat (limited to 'libguile/unif.h')
-rw-r--r-- | libguile/unif.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/libguile/unif.h b/libguile/unif.h index 125a57e4d..bbaa3253d 100644 --- a/libguile/unif.h +++ b/libguile/unif.h @@ -23,6 +23,7 @@ #include "libguile/__scm.h" +#include "libguile/print.h" @@ -95,22 +96,31 @@ SCM_API int scm_is_typed_array (SCM obj, SCM type); SCM_API SCM scm_i_read_array (SCM port, int c); -typedef struct { +struct scm_t_array_handle; + +typedef SCM (*scm_i_t_array_ref) (struct scm_t_array_handle *, ssize_t); +typedef void (*scm_i_t_array_set) (struct scm_t_array_handle *, ssize_t, SCM); + +typedef struct scm_t_array_handle { SCM array; size_t base; scm_t_array_dim *dims; scm_t_array_dim dim0; + scm_i_t_array_ref ref; + scm_i_t_array_set set; + const void *elements; + void *writable_elements; } scm_t_array_handle; SCM_API void scm_array_get_handle (SCM array, scm_t_array_handle *h); SCM_API size_t scm_array_handle_rank (scm_t_array_handle *h); SCM_API scm_t_array_dim *scm_array_handle_dims (scm_t_array_handle *h); -SCM_API SCM scm_array_handle_ref (scm_t_array_handle *h, ssize_t pos); -SCM_API void scm_array_handle_set (scm_t_array_handle *h, ssize_t pos, SCM val); SCM_API const SCM *scm_array_handle_elements (scm_t_array_handle *h); SCM_API SCM *scm_array_handle_writable_elements (scm_t_array_handle *h); SCM_API void scm_array_handle_release (scm_t_array_handle *h); +/* See inline.h for scm_array_handle_ref and scm_array_handle_set */ + /** Bit vectors */ |