@@ -35,7 +35,8 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
3535 k_timeout_t timeout , can_tx_callback_t callback ,
3636 void * user_data )
3737{
38- const struct can_driver_api * api = (const struct can_driver_api * )dev -> api ;
38+ __ASSERT_NO_MSG (DEVICE_API_IS (can , dev ));
39+
3940 uint32_t id_mask ;
4041
4142 CHECKIF (frame == NULL ) {
@@ -62,7 +63,7 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
6263
6364 k_sem_init (& ctx .done , 0 , 1 );
6465
65- err = api -> send (dev , frame , timeout , can_tx_default_cb , & ctx );
66+ err = DEVICE_API_GET ( can , dev ) -> send (dev , frame , timeout , can_tx_default_cb , & ctx );
6667 if (err != 0 ) {
6768 return err ;
6869 }
@@ -72,13 +73,14 @@ int z_impl_can_send(const struct device *dev, const struct can_frame *frame,
7273 return ctx .status ;
7374 }
7475
75- return api -> send (dev , frame , timeout , callback , user_data );
76+ return DEVICE_API_GET ( can , dev ) -> send (dev , frame , timeout , callback , user_data );
7677}
7778
7879int can_add_rx_filter (const struct device * dev , can_rx_callback_t callback ,
7980 void * user_data , const struct can_filter * filter )
8081{
81- const struct can_driver_api * api = (const struct can_driver_api * )dev -> api ;
82+ __ASSERT_NO_MSG (DEVICE_API_IS (can , dev ));
83+
8284 uint32_t id_mask ;
8385
8486 CHECKIF (callback == NULL || filter == NULL ) {
@@ -100,7 +102,7 @@ int can_add_rx_filter(const struct device *dev, can_rx_callback_t callback,
100102 return - EINVAL ;
101103 }
102104
103- return api -> add_rx_filter (dev , callback , user_data , filter );
105+ return DEVICE_API_GET ( can , dev ) -> add_rx_filter (dev , callback , user_data , filter );
104106}
105107
106108static void can_msgq_put (const struct device * dev , struct can_frame * frame , void * user_data )
@@ -121,9 +123,9 @@ static void can_msgq_put(const struct device *dev, struct can_frame *frame, void
121123int z_impl_can_add_rx_filter_msgq (const struct device * dev , struct k_msgq * msgq ,
122124 const struct can_filter * filter )
123125{
124- const struct can_driver_api * api = dev -> api ;
126+ __ASSERT_NO_MSG ( DEVICE_API_IS ( can , dev )) ;
125127
126- return api -> add_rx_filter (dev , can_msgq_put , msgq , filter );
128+ return DEVICE_API_GET ( can , dev ) -> add_rx_filter (dev , can_msgq_put , msgq , filter );
127129}
128130
129131/**
@@ -383,7 +385,8 @@ static int check_timing_in_range(const struct can_timing *timing,
383385int z_impl_can_set_timing (const struct device * dev ,
384386 const struct can_timing * timing )
385387{
386- const struct can_driver_api * api = (const struct can_driver_api * )dev -> api ;
388+ __ASSERT_NO_MSG (DEVICE_API_IS (can , dev ));
389+
387390 const struct can_timing * min = can_get_timing_min (dev );
388391 const struct can_timing * max = can_get_timing_max (dev );
389392 int err ;
@@ -393,7 +396,7 @@ int z_impl_can_set_timing(const struct device *dev,
393396 return err ;
394397 }
395398
396- return api -> set_timing (dev , timing );
399+ return DEVICE_API_GET ( can , dev ) -> set_timing (dev , timing );
397400}
398401
399402int z_impl_can_set_bitrate (const struct device * dev , uint32_t bitrate )
@@ -425,12 +428,13 @@ int z_impl_can_set_bitrate(const struct device *dev, uint32_t bitrate)
425428int z_impl_can_set_timing_data (const struct device * dev ,
426429 const struct can_timing * timing_data )
427430{
428- const struct can_driver_api * api = (const struct can_driver_api * )dev -> api ;
431+ __ASSERT_NO_MSG (DEVICE_API_IS (can , dev ));
432+
429433 const struct can_timing * min = can_get_timing_data_min (dev );
430434 const struct can_timing * max = can_get_timing_data_max (dev );
431435 int err ;
432436
433- if (api -> set_timing_data == NULL ) {
437+ if (DEVICE_API_GET ( can , dev ) -> set_timing_data == NULL ) {
434438 return - ENOSYS ;
435439 }
436440
@@ -439,7 +443,7 @@ int z_impl_can_set_timing_data(const struct device *dev,
439443 return err ;
440444 }
441445
442- return api -> set_timing_data (dev , timing_data );
446+ return DEVICE_API_GET ( can , dev ) -> set_timing_data (dev , timing_data );
443447}
444448
445449int z_impl_can_set_bitrate_data (const struct device * dev , uint32_t bitrate_data )
0 commit comments