changelog shortlog graph tags branches files raw help

Mercurial > core / changeset: finish zstd init

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))