changeset 392: |
077e7b391758 |
parent 391: |
757b91ddcb2a |
child 393: |
6b87df03cdaf |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Sat, 01 Jun 2024 15:44:55 -0400 |
files: |
lisp/ffi/zstd/pkg.lisp |
description: |
finish zstd init |
1.1--- a/lisp/ffi/zstd/pkg.lisp Sat Jun 01 02:45:44 2024 -0400
1.2+++ b/lisp/ffi/zstd/pkg.lisp Sat Jun 01 15:44:55 2024 -0400
1.3@@ -43,13 +43,155 @@
1.4
1.5 (define-alien-loader "zstd" t "/usr/lib/")
1.6
1.7+;;; Utils
1.8+(define-alien-routine "ZSTD_versionNumber"
1.9+ unsigned)
1.10+
1.11+(define-alien-routine "ZSTD_versionString" c-string)
1.12+
1.13+(define-alien-routine "ZSTD_compressBound" size-t (src-size size-t))
1.14+(define-alien-routine "ZSTD_isError" unsigned (code size-t))
1.15+(define-alien-routine "ZSTD_getErrorName" c-string (code size-t))
1.16+(define-alien-routine "ZSTD_minCLevel" int)
1.17+(define-alien-routine "ZSTD_maxCLevel" int)
1.18+(define-alien-routine "ZSTD_defaultCLevel" int)
1.19+
1.20 ;;; Simple API
1.21-(define-alien-routine zstd-compress size-t
1.22+(define-alien-routine "ZSTD_compress" size-t
1.23 (dst (* t)) (dst-capacity size-t)
1.24 (src (* t)) (src-size size-t)
1.25 (compression int))
1.26
1.27-(define-alien-routine zstd-decompress size-t
1.28+(define-alien-routine "ZSTD_decompress" size-t
1.29 (dst (* t)) (dst-capacity size-t)
1.30 (src (* t)) (compressed-size size-t))
1.31-
1.32+
1.33+;;; Explicit Context API
1.34+(define-alien-type zstd-cctx (struct zstd-cctx-s))
1.35+
1.36+(define-alien-routine "ZSTD_createCCtx" (* zstd-cctx))
1.37+(define-alien-routine "ZSTD_freeCCtx" void (cctx (* zstd-cctx)))
1.38+(define-alien-routine "ZSTD_compressCCtx" size-t
1.39+ (cctx (* zstd-cctx))
1.40+ (dst (* t)) (dst-capacity size-t)
1.41+ (src (* t)) (src-size size-t)
1.42+ (compression-level int))
1.43+
1.44+(define-alien-type zstd-dctx (struct zstd-dctx-s))
1.45+
1.46+(define-alien-routine "ZSTD_createDCtx" (* zstd-dctx))
1.47+(define-alien-routine "ZSTD_freeDCtx" void (dctx (* zstd-dctx)))
1.48+(define-alien-routine "ZSTD_decompressDCtx" size-t
1.49+ (dctx (* zstd-dctx))
1.50+ (dst (* t)) (dst-capacity size-t)
1.51+ (src (* t)) (src-size size-t))
1.52+
1.53+;;; Streaming API
1.54+(define-alien-type zstd-inbuffer (struct zstd-inbuffer-s
1.55+ (src (* t))
1.56+ (size size-t)
1.57+ (pos size-t)))
1.58+
1.59+(define-alien-type zstd-outbuffer (struct zstd-outbuffer-s
1.60+ (dst (* t))
1.61+ (size size-t)
1.62+ (pos size-t)))
1.63+
1.64+(define-alien-type zstd-cstream zstd-cctx)
1.65+
1.66+(define-alien-routine "ZSTD_createCStream" (* zstd-cstream))
1.67+(define-alien-routine "ZSTD_freeCStream" void (zcs (* zstd-cstream)))
1.68+
1.69+(define-alien-type zstd-enddirective int)
1.70+
1.71+(define-alien-routine "ZSTD_compressStream2" size-t
1.72+ (cctx (* zstd-cctx))
1.73+ (output (* zstd-outbuffer))
1.74+ (input (* zstd-inbuffer))
1.75+ (end-op zstd-enddirective))
1.76+
1.77+(define-alien-routine "ZSTD_CStreamInSize" size-t)
1.78+(define-alien-routine "ZSTD_CStreamOutSize" size-t)
1.79+
1.80+(define-alien-type zstd-dstream zstd-dctx)
1.81+
1.82+(define-alien-routine "ZSTD_createDStream" (* zstd-dstream))
1.83+(define-alien-routine "ZSTD_freeDStream" void (zds (* zstd-dstream)))
1.84+(define-alien-routine "ZSTD_initDStream" size-t (zds (* zstd-dstream)))
1.85+
1.86+(define-alien-routine "ZSTD_decompressStream" size-t
1.87+ (zds (* zstd-dstream))
1.88+ (output (* zstd-outbuffer))
1.89+ (input (* zstd-inbuffer)))
1.90+
1.91+(define-alien-routine "ZSTD_DStreamInSize" size-t)
1.92+(define-alien-routine "ZSTD_DStreamOutSize" size-t)
1.93+
1.94+;;; Simple Dictionary API
1.95+(define-alien-routine "ZSTD_compress_usingDict" size-t
1.96+ (cctx (* zstd-cctx))
1.97+ (dst (* t))
1.98+ (dst-capacity size-t)
1.99+ (src (* t))
1.100+ (src-size size-t)
1.101+ (dict (* t))
1.102+ (dict-size size-t)
1.103+ (compression-level int))
1.104+
1.105+(define-alien-routine "ZSTD_decompress_usingDict" size-t
1.106+ (dctx (* zstd-dctx))
1.107+ (dst (* t))
1.108+ (dst-capacity size-t)
1.109+ (src (* t))
1.110+ (src-size size-t)
1.111+ (dict (* t))
1.112+ (dict-size size-t))
1.113+
1.114+;;; Bulk-processing Dictionary API
1.115+(define-alien-type zstd-cdict (struct zstd-cdict-s))
1.116+
1.117+(define-alien-routine "ZSTD_createCDict" (* zstd-cdict)
1.118+ (dict-buffer (* t))
1.119+ (dict-size size-t)
1.120+ (compression-level int))
1.121+
1.122+(define-alien-routine "ZSTD_freeCDict" size-t (cdict (* zstd-cdict)))
1.123+
1.124+(define-alien-routine "ZSTD_compress_usingCDict" size-t
1.125+ (cctx (* zstd-cctx))
1.126+ (dst (* t))
1.127+ (dst-capacity size-t)
1.128+ (src (* t))
1.129+ (src-size size-t)
1.130+ (cdict (* zstd-cdict)))
1.131+
1.132+(define-alien-type zstd-ddict (struct zstd-ddict-s))
1.133+
1.134+(define-alien-routine "ZSTD_createDDict" (* zstd-ddict)
1.135+ (dict-buffer (* t))
1.136+ (dict-size size-t))
1.137+
1.138+(define-alien-routine "ZSTD_freeDDict" size-t (ddict (* zstd-ddict)))
1.139+
1.140+(define-alien-routine "ZSTD_compress_usingDDict" size-t
1.141+ (dctx (* zstd-dctx))
1.142+ (dst (* t))
1.143+ (dst-capacity size-t)
1.144+ (src (* t))
1.145+ (src-size size-t)
1.146+ (ddict (* zstd-ddict)))
1.147+
1.148+;; dictionary utils
1.149+(define-alien-routine "ZSTD_getDictID_fromDict" unsigned
1.150+ (dict (* t))
1.151+ (dict-size size-t))
1.152+
1.153+(define-alien-routine "ZSTD_getDictID_fromCDict" unsigned
1.154+ (cdict (* zstd-cdict)))
1.155+
1.156+(define-alien-routine "ZSTD_getDictID_fromDDict" unsigned
1.157+ (cdict (* zstd-ddict)))
1.158+
1.159+(define-alien-routine "ZSTD_getDictID_fromFrame" unsigned
1.160+ (src (* t))
1.161+ (src-size size-t))