anchor.diff:    (with-foreign-objects ((addr :uint32 +sockaddr-storage+)
                            (len :uint32))
       (setf (mem-aref len :uint32) +sockaddr-storage+)
  -    (with-funcall-else-socket-error (%getsockname fd addr len))
  +    (with-syscall-else-error (%getsockname fd addr len) +socket-error+)
       (translate-sockaddr-from-foreign addr)))
   
   ;;int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
  
positive.code:     ((vector (unsigned-byte 8))
       (let ((count (- (or end (length buffer)) start)))
         (with-foreign-object (p :uint8 count)
  	 (let ((sts (with-funcall-else-socket-error (%recv fd p count 0))))		 
  	   (dotimes (i sts)
  	     (setf (aref buffer (+ start i))
  		   (mem-aref p :uint8 i)))
  	   sts))))
      (foreign-pointer
       (let ((count (- (or end (error "Must provide end when passing pointer")) start)))
         (with-funcall-else-socket-error (%recv fd 
  			 (inc-pointer buffer start)
  			 count
  			 0))))
      (can-packet
       (with-foreign-object (frame '(:struct can-frame))
         (let ((sts (with-funcall-else-socket-error
  		      (%read fd frame (foreign-type-size '(:struct can-frame))))))	 
  	 (with-foreign-slots ((can_id can_dlc data) frame (:struct can-frame))
  	   (let* ((ptr-data (foreign-slot-pointer frame '(:struct can-frame) 'data))
  		  (data (foreign-array-to-lisp ptr-data `(:array :int8 ,can_dlc))))
  	     (setf (can-packet-id buffer) can_id
  		   (can-packet-data buffer) data)
  	     (with-foreign-object (tv '(:struct timeval))
  	       (%ioctl fd +siocgstamp+ tv)
  	       (with-foreign-slots ((tv_sec tv_usec) tv (:struct timeval))
  		 (setf (can-packet-timestamp buffer) (list tv_sec tv_usec))))))
  	 sts)))))
  
negative.code: 
  Returns the number of octets actually sent, which can be less than the number requested."
    (declare (type (or (vector (unsigned-byte 8)) foreign-pointer can-packet) buffer))
    (with-syscall-else-error
        (etypecase buffer
  	((vector (unsigned-byte 8))
  	 (let ((count (- (or end (length buffer)) start))
  