anchor.diff:  (defcunion can_address
     (tp (:struct TP)))
     
  -(defcstruct sockaddr_can
  +(defcstruct sockaddr-can
     (can_family sa_family_t)
     (can_ifindex :int)
     (can_addr (:union can_address)))
  
positive.code: 		(n-size (length n))) 
  	  (lisp-string-to-foreign n (foreign-slot-value ifr '(:struct ifreq) 'name) (1+ n-size))
  	  (%ioctl fd +siocgifindex+ ifr)
  	  (with-foreign-object (sockaddr '(:struct sockaddr_can))
  	    (setf (foreign-slot-value sockaddr '(:struct sockaddr_can) 'can_family) +pf_can+)
  	    (let* ((ifrdata (foreign-slot-value ifr '(:struct ifreq) 'data))
  		   (index (foreign-slot-value ifrdata '(:union ifreq-data) 'ifindex)))      
  	      (setf (foreign-slot-value sockaddr '(:struct sockaddr_can) 'can_ifindex) index))
  	    (setq sock-addr-pointer sockaddr
  		  sock-addr-len (foreign-type-size '(:struct sockaddr-in))))))
  	;; bind internet socket
  
negative.code: 
  ;; int socket(int socket_family, int socket_type, int protocol);
  (defcfun (%socket "socket") :int32
  v  (family :int32)
    (type :int32)
    (prot :int32))
  
  