diff options
Diffstat (limited to 'sysdep.lsp')
-rwxr-xr-x | sysdep.lsp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sysdep.lsp b/sysdep.lsp new file mode 100755 index 0000000..e12cc9a --- /dev/null +++ b/sysdep.lsp @@ -0,0 +1,25 @@ +#!/home/dbane/openlisp-10.9.0/uxlisp -shell +(defpackage #:sysdep + (:use #:openlisp) + (:export + #:get-ieee-node-identifier)) +(in-package #:sysdep) +(defglobal *inited* nil) +(defglobal *saved-node* nil) +(defun error-handler (condition) + (let ((seed (get-random-info))) + (setf (elt seed 0) (logior (elt seed 0) 1)) + (setq *saved-node* (copy-seq seed)) + (with-open-output-file (outstream "nodeid") + (format outstream "~S" *saved-node*)))) +(defun get-ieee-node-identifier () + (if (not *inited*) + (progn (with-handler #'error-handler + (with-open-input-file (instream "nodeid") + (read instream))) + (setq *inited* t))) + *saved-node*) +(provide "sysdep") +(defun main () + (format (standard-output) "~A~%" (get-ieee-node-identifier))) +(main) |