1.1--- a/lisp/ffi/ublk/srv.lisp Sun Sep 29 23:43:03 2024 -0400
1.2+++ b/lisp/ffi/ublk/srv.lisp Mon Sep 30 22:27:12 2024 -0400
1.3@@ -84,3 +84,217 @@
1.4
1.5 (define-alien-routine ublksrv-ctrl-deinit void
1.6 (dev (* ublksrv-ctrl-dev)))
1.7+
1.8+(define-alien-routine ublksrv-ctrl-init (* ublksrv-ctrl-dev)
1.9+ (data (* ublksrv-dev-data)))
1.10+
1.11+(define-alien-routine ublksrv-ctrl-get-affinity int
1.12+ (ctrl-dev (* ublksrv-ctrl-dev)))
1.13+
1.14+(define-alien-routine ublksrv-ctrl-add-dev int
1.15+ (dev (* ublksrv-ctrl-dev)))
1.16+
1.17+(define-alien-routine ublksrv-ctrl-del-dev int
1.18+ (dev (* ublksrv-ctrl-dev)))
1.19+
1.20+(define-alien-routine ublksrv-ctrl-get-info int
1.21+ (dev (* ublksrv-ctrl-dev)))
1.22+
1.23+(define-alien-routine ublksrv-ctrl-stop-dev int
1.24+ (dev (* ublksrv-ctrl-dev)))
1.25+
1.26+(define-alien-routine ublksrv-ctrl-dump void
1.27+ (dev (* ublksrv-ctrl-dev))
1.28+ (buf (* char)))
1.29+
1.30+(define-alien-routine ublksrv-ctrl-start-dev int
1.31+ (ctrl-dev (* ublksrv-ctrl-dev))
1.32+ (daemon-pid int))
1.33+
1.34+(define-alien-routine ublksrv-ctrl-set-params int
1.35+ (dev (* ublksrv-ctrl-dev))
1.36+ (params (* ublk-params)))
1.37+
1.38+(define-alien-routine ublksrv-ctrl-get-params int
1.39+ (dev (* ublksrv-ctrl-dev))
1.40+ (params (* ublk-params)))
1.41+
1.42+(define-alien-routine ublksrv-ctrl-start-recovery int
1.43+ (dev (* ublksrv-ctrl-dev)))
1.44+
1.45+(define-alien-routine ublksrv-ctrl-end-recovery int
1.46+ (dev (* ublksrv-ctrl-dev))
1.47+ (daemon-pid int))
1.48+
1.49+(define-alien-routine ublksrv-ctrl-get-dev-info (* ublksrv-ctrl-dev-info)
1.50+ (dev (* ublksrv-ctrl-dev)))
1.51+
1.52+(define-alien-routine ublksrv-ctrl-get-features int
1.53+ (dev (* ublksrv-ctrl-dev))
1.54+ (features (* unsigned-long)))
1.55+
1.56+(define-alien-routine ublksrv-ctrl-get-run-dir c-string
1.57+ (dev (* ublksrv-ctrl-dev)))
1.58+
1.59+(define-alien-routine ublksrv-ctrl-prep-recovery void
1.60+ (dev (* ublksrv-ctrl-dev))
1.61+ (tgt-type c-string)
1.62+ (tgt-ops (* ublksrv-tgt-type))
1.63+ (recovery-jbuf c-string))
1.64+
1.65+(define-alien-routine ublksrv-ctrl-get-recovery-jbuf c-string
1.66+ (dev (* ublksrv-ctrl-dev)))
1.67+
1.68+(define-alien-routine ublksrv-is-recovering boolean
1.69+ (ctrl-dev (* ublksrv-ctrl-dev)))
1.70+
1.71+(define-alien-routine ublksrv-dev-init (* ublksrv-dev)
1.72+ (ctrl-dev (* ublksrv-ctrl-dev)))
1.73+
1.74+(define-alien-routine ublksrv-dev-deinit void
1.75+ (dev (* ublksrv-dev)))
1.76+
1.77+(define-alien-routine ublksrv-get-ctrl-dev (* ublksrv-ctrl-dev)
1.78+ (dev (* ublksrv-dev)))
1.79+
1.80+(define-alien-routine ublksrv-get-pidfile-fd int
1.81+ (dev (* ublksrv-dev)))
1.82+
1.83+(define-alien-routine ublksrv-dev-set-cq-depth void
1.84+ (dev (* ublksrv-dev))
1.85+ (cq-depth int))
1.86+
1.87+(define-alien-routine ublksrv-dev-get-cq-depth int
1.88+ (dev (* ublksrv-dev)))
1.89+
1.90+(define-alien-routine ublksrv-apply-oom-protection void)
1.91+
1.92+(define-alien-type ublksrv-tgt-base-json
1.93+ (struct ublksrv-tgt-base-json
1.94+ (name (array char #.+ublksrv-tgt-name-max-len+))
1.95+ (type int)
1.96+ (pad unsigned-int)
1.97+ (dev-size unsigned-long-long)
1.98+ (reserved (array unsigned-long 8))))
1.99+
1.100+(define-alien-routine ublksrv-json-write-dev-info int
1.101+ (dev (* ublksrv-ctrl-dev))
1.102+ (buf (* char))
1.103+ (len int))
1.104+
1.105+(define-alien-routine ublksrv-json-read-dev-info int
1.106+ (json-buf (* char))
1.107+ (info (* ublksrv-ctrl-dev-info)))
1.108+
1.109+(define-alien-routine ublksrv-json-write-queue-info int
1.110+ (dev (* ublksrv-ctrl-dev))
1.111+ (jbuf (* char))
1.112+ (len int)
1.113+ (qid int)
1.114+ (ubq-daemon-tid int))
1.115+
1.116+(define-alien-routine ublksrv-json-read-queue-info int
1.117+ (jbuf (* char))
1.118+ (qid int)
1.119+ (tid (* unsigned))
1.120+ (affinity-buf (* char))
1.121+ (len int))
1.122+
1.123+(define-alien-routine ublksrv-json-read-target-info int
1.124+ (jbuf (* char))
1.125+ (tgt-buf (* char))
1.126+ (len int))
1.127+
1.128+(define-alien-routine ublksrv-json-read-target-str-info int
1.129+ (jbuf (* char))
1.130+ (len int)
1.131+ (name (* char))
1.132+ (val (* long)))
1.133+
1.134+(define-alien-routine ublksrv-json-read-target-ulong-info int
1.135+ (jbuf (* char))
1.136+ (name (* char))
1.137+ (val (* long)))
1.138+
1.139+(define-alien-routine ublksrv-json-write-target-str-info int
1.140+ (jbuf (* char))
1.141+ (len int)
1.142+ (name (* char))
1.143+ (val (* char)))
1.144+
1.145+(define-alien-routine ublksrv-json-write-target-long-info int
1.146+ (jbuf (* char))
1.147+ (len int)
1.148+ (name (* char))
1.149+ (val long))
1.150+
1.151+(define-alien-routine ublksrv-json-write-target-ulong-info int
1.152+ (jbuf (* char))
1.153+ (len int)
1.154+ (name (* char))
1.155+ (val unsigned-long))
1.156+
1.157+(define-alien-routine ublksrv-json-dump void
1.158+ (jbuf (* char)))
1.159+
1.160+(define-alien-routine ublksrv-json-read-target-base-info int
1.161+ (jbuf (* char))
1.162+ (tgt (* ublksrv-tgt-base-json)))
1.163+
1.164+(define-alien-routine ublksrv-json-read-params int
1.165+ (p (* ublk-params))
1.166+ (jbuf (* char)))
1.167+
1.168+(define-alien-routine ublksrv-json-write-params int
1.169+ (p (* ublk-params))
1.170+ (jbuf (* char))
1.171+ (len int))
1.172+
1.173+(define-alien-routine ublksrv-json-dump-params int
1.174+ (jbuf (* char)))
1.175+
1.176+(define-alien-routine ublksrv-json-get-length int (jbuf (* char)))
1.177+
1.178+(define-alien-routine ublksrv-io-private-data (* t)
1.179+ (q (* ublksrv-queue))
1.180+ (tag int))
1.181+
1.182+(define-alien-routine ublksrv-queue-get-io-data (* ublk-io-data)
1.183+ (q (* ublksrv-queue))
1.184+ (tag int))
1.185+
1.186+(define-alien-routine ublksrv-queue-get-io-buf (* t)
1.187+ (q (* ublksrv-queue))
1.188+ (tag int))
1.189+
1.190+(define-alien-routine ublksrv-queue-state unsigned-int
1.191+ (q (* ublksrv-queue)))
1.192+
1.193+(define-alien-routine ublksrv-queue-init (* ublksrv-queue)
1.194+ (dev (* ublksrv-dev))
1.195+ (d-id unsigned-short)
1.196+ (queue-data (* t)))
1.197+
1.198+(define-alien-routine ublksrv-queue-deinit void
1.199+ (q (* ublksrv-queue)))
1.200+
1.201+(define-alien-routine ublksrv-queue-unconsumed-cqes int
1.202+ (q (* ublksrv-queue)))
1.203+
1.204+(define-alien-routine ublksrv-queue-handled-event int
1.205+ (q (* ublksrv-queue)))
1.206+
1.207+(define-alien-routine ublksrv-queue-send-event int
1.208+ (q (* ublksrv-queue)))
1.209+
1.210+(define-alien-routine ublksrv-get-queue (* ublksrv-queue)
1.211+ (dev (* ublksrv-dev))
1.212+ (q-id int))
1.213+
1.214+(define-alien-routine ublksrv-process-io int
1.215+ (q (* ublksrv-queue)))
1.216+
1.217+(define-alien-routine ublksrv-complete-io int
1.218+ (q (* ublksrv-queue))
1.219+ (tag unsigned)
1.220+ (res int))