Wolfgang Grandegger wrote: > Jan Kiszka wrote: >> Wolfgang Grandegger wrote: >>> Wolfgang Grandegger wrote: >>>> Jan Kiszka wrote: >>>>> Wolfgang Grandegger wrote: >>>>>> Jan Kiszka wrote: >>>>>>> Hi Wolfgang, >>>>>>> >>>>>>> something is inconsistent about CAN_RAW in RT-Socket-CAN compared to >>>>>>> plain Socket-CAN. Also, the latter doesn't know any CAN_PROTO_xxx >>>>>>> unless >>>>>>> I oversee something. Please have a look. >>>>>> There is CAN_PROTO_RAW defined and I have added some time ago >>>>>> CAN_RAW to >>>>>> rtcan.h to be compatible with Socket-CAN: >>>>>> >>>>>> /** Particular CAN protocols >>>>>> * >>>>>> * Currently only the RAW protocol is supported. >>>>>> */ >>>>>> #define CAN_RAW 0 >>>>> Yes, I know. But the question remains which way to go for rtcan: >>>>> Socket-CAN doesn't know CAN_PROTO_*, RT-Socket-CAN comes with >>>>> CAN_RAW as >>>>> well now, but having a different value. That should be resolved, on >>>>> whatever side, IMHO. >>>> Ah, now I understand your concern. CAN_PROTO_RAW actually serves the >>>> same purpose then CAN_RAW defining the particular CAN protocol. I'm >>>> going to clean it up soon removing CAN_PROTO_RAW and updating the doc. >>>> CAN_PROTO_RAW was not used by any application, IIRC. >>> The man page for "socket" describes the protocol argument as shown >>> below: >>> >>> The protocol specifies a particular protocol to be used with the >>> socket. Normally only a single protocol exists to support a >>> particular socket type within a given protocol family, in which >>> case protocol can be specified as 0. However, it is possible that >>> many protocols may exist, in which case a particular protocol >>> must be specified in this manner. >>> >>> A value of 0 is valid for RT-Socket-CAN but not for Socket-CAN. >>> Therefore we need to define CAN_RAW=1 for compatibility reasons. >> >> Agreed. >> >> Moreover, 0 means "unspecified default protocol" according to POSIX. On >> what does Socket-CAN map it, CAN_RAW? Anyway, we have no other option so >> far with RT-Socket-CAN. > > int rtcan_raw_socket(struct rtdm_dev_context *context, > rtdm_user_info_t *user_info, int protocol) > { > /* Only CAN_PROTO_RAW is supported */ > if (protocol != CAN_PROTO_RAW && protocol != 0) > return -EPROTONOSUPPORT; > > rtcan_socket_init(context); > > return 0; > } > > Both, protocol "0" and CAN_PROTO_RAW is OK. I just need to replace > CAN_PROTO_RAW with CAN_RAW.
Perfect. Jan
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core