[movitz-cvs] CVS update: movitz/losp/lib/net/ethernet.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Nov 23 16:14:46 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp/lib/net
In directory common-lisp.net:/tmp/cvs-serv7788

Modified Files:
	ethernet.lisp 
Log Message:
Use untyped (i.e. memref) accessors to packets.

Date: Tue Nov 23 17:14:44 2004
Author: ffjeld

Index: movitz/losp/lib/net/ethernet.lisp
diff -u movitz/losp/lib/net/ethernet.lisp:1.4 movitz/losp/lib/net/ethernet.lisp:1.5
--- movitz/losp/lib/net/ethernet.lisp:1.4	Thu Feb 26 12:30:07 2004
+++ movitz/losp/lib/net/ethernet.lisp	Tue Nov 23 17:14:40 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Sep 17 15:25:31 2002
 ;;;;                
-;;;; $Id: ethernet.lisp,v 1.4 2004/02/26 11:30:07 ffjeld Exp $
+;;;; $Id: ethernet.lisp,v 1.5 2004/11/23 16:14:40 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -65,6 +65,12 @@
 
 ;;; Packet accessors
 
+(defmacro packet-ref (packet start offset type)
+  `(memref ,packet (+ (muerte:movitz-type-slot-offset 'movitz-basic-vector 'data)
+		      ,start ,offset)
+	   :endian :big
+	   :type ,type))
+
 (defun ether-destination (packet &optional (start 0))
   (subseq packet start (+ start 6)))
 
@@ -80,35 +86,31 @@
   source)
 
 (defun ether-type (packet &optional (start 0))
-  (bvref-u16 packet start 12)
-  #+ignore
-  (logior (ash (aref packet (+ start 12)) 8)
-	  (aref packet (+ start 13))))
+  (packet-ref packet start 12 :unsigned-byte16))
 
 (defun (setf ether-type) (type packet &optional (start 0))
-  (setf (aref packet (+ start 12)) (ldb (byte 8 8) type)
-	(aref packet (+ start 13)) (ldb (byte 8 0) type))
-  type)
+  (setf (packet-ref packet start 12 :unsigned-byte16)
+    type))
 
 (defun ether-802.3-p (packet &optional (start 0))
   "Is the packet a 802.3 type packet?"
   (<= (ether-type packet start) #x5dc))
 
 (defun ether-802.3-llc-type (packet &optional (start 0))
-  (aref packet (+ start 16)))
+  (packet-ref packet start 16 :unsigned-byte8))
 
 (defun ether-802.3-llc-dsap (packet &optional (start 0))
-  (aref packet (+ start 14)))
+  (packet-ref packet start 14 :unsigned-byte8))
 
 (defun ether-802.3-llc-ssap (packet &optional (start 0))
-  (aref packet (+ start 15)))
+  (packet-ref packet start 15 :unsigned-byte8))
 
 (defun ether-802.3-snap-p (packet &optional (start 0))
   (and (ether-802.3-p packet)
        (= #xAA (ether-802.3-llc-ssap packet start))))
 
 (defun ether-802.3-snap-type (packet &optional (start 0))
-  (bvref-u16 packet start 20))
+  (packet-ref packet start 20 :unsigned-byte16))
 
 ;;;
 





More information about the Movitz-cvs mailing list