about summary refs log tree commit diff stats
path: root/xdr.lsp
diff options
context:
space:
mode:
authorDarren Bane <dbane@tilde.institute>2020-05-26 21:22:02 +0100
committerDarren Bane <dbane@tilde.institute>2020-05-26 21:22:02 +0100
commite86f1d02e4c79f6083fd35c851b91f80f9d64cea (patch)
treeaa43e604fc22b8bb1c8c25df2f8421724a7f9773 /xdr.lsp
parent4d40956bf90f368bbb6c864148d9a9c4842199b6 (diff)
downloadlsp-e86f1d02e4c79f6083fd35c851b91f80f9d64cea.tar.gz
Making changes
Diffstat (limited to 'xdr.lsp')
-rw-r--r--xdr.lsp23
1 files changed, 23 insertions, 0 deletions
diff --git a/xdr.lsp b/xdr.lsp
new file mode 100644
index 0000000..34d9024
--- /dev/null
+++ b/xdr.lsp
@@ -0,0 +1,23 @@
+(defpackage #:xdr
+  (:use #:openlisp)
+  (:export
+   #:h-to-xdr
+   #:xdr-to-h))
+(in-package #:xdr)
+(defglobal *encode-buf*)
+(defun buffer-init (buf op)
+   (case op
+	 ((encode) (setq *encode-buf* buf))
+	 ((decode) (setq *decode-buf* buf))
+	 (t (error "bad op"))))
+(defun set-be-x (buf n)
+   (setf (elt buf 0) (logand (ash -56 n) #xFF))
+   (setf (elt buf 1) (logand (ash -48 n) #xFF)))
+(defun h-to-xdr (n)
+   (set-be-x xdr-encode-buf n))
+(provide "xdr")
+
+(deftest wrt-test ()
+   (buffer-init buffer 'encode)
+   (i-to-xdr 1234)
+   (write-file buffer +bytes-per-unit+ fh))