anchor.diff:    (fd :int32)
     (addr :pointer)
     (len :pointer))
  +
   (defun socket-peer (fd)
     (with-foreign-objects ((addr :uint32 +sockaddr-storage+)
                            (len :uint32))
  
positive.code:   (option :int32)
    (val :pointer)
    (vlen :int32))
  
  
  
  ;; int fcntl(int fd, int cmd, ... /* arg */ );
  (defcfun (%fcntl "fcntl") :int32
  
negative.code: (defctype canid_t :uint32) 
  (defctype sa_family_t :uint16)
  
  ;; struct can_frame {
  ;;     canid_t can_id;  /* 32 bit CAN_ID + EFF/RTR/ERR flags */
  ;;     __u8    can_dlc; /* frame payload length in byte (0 .. 8) */
  ;;     __u8    __pad;   /* padding */
  ;;     __u8    __res0;  /* reserved / padding */
  ;;     __u8    __res1;  /* reserved / padding */
  ;;     __u8    data[8] __attribute__((aligned(8)));
  ;; };
  
  (defcstruct can-frame
    (can_id canid_t)
    (can_dlc :uint8)
  