1 /*
2 * Copyright (c) 2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 /**
8 * @brief Implements OSAL APIs to abstract OS primitives.
9 */
10
11 #include "osal_api.h"
12 #include "osal_ops.h"
13
14 const struct nrf_wifi_osal_ops *os_ops;
15
nrf_wifi_osal_init(const struct nrf_wifi_osal_ops * ops)16 void nrf_wifi_osal_init(const struct nrf_wifi_osal_ops *ops)
17 {
18 os_ops = ops;
19 }
20
21
nrf_wifi_osal_deinit(void)22 void nrf_wifi_osal_deinit(void)
23 {
24 os_ops = NULL;
25 }
26
27
nrf_wifi_osal_mem_alloc(size_t size)28 void *nrf_wifi_osal_mem_alloc(size_t size)
29 {
30 return os_ops->mem_alloc(size);
31 }
32
33
nrf_wifi_osal_mem_zalloc(size_t size)34 void *nrf_wifi_osal_mem_zalloc(size_t size)
35 {
36 return os_ops->mem_zalloc(size);
37 }
38
39
nrf_wifi_osal_mem_free(void * buf)40 void nrf_wifi_osal_mem_free(void *buf)
41 {
42 os_ops->mem_free(buf);
43 }
44
45
nrf_wifi_osal_mem_cpy(void * dest,const void * src,size_t count)46 void *nrf_wifi_osal_mem_cpy(void *dest,
47 const void *src,
48 size_t count)
49 {
50 return os_ops->mem_cpy(dest,
51 src,
52 count);
53 }
54
55
nrf_wifi_osal_mem_set(void * start,int val,size_t size)56 void *nrf_wifi_osal_mem_set(void *start,
57 int val,
58 size_t size)
59 {
60 return os_ops->mem_set(start,
61 val,
62 size);
63 }
64
65
nrf_wifi_osal_mem_cmp(const void * addr1,const void * addr2,size_t size)66 int nrf_wifi_osal_mem_cmp(const void *addr1,
67 const void *addr2,
68 size_t size)
69 {
70 return os_ops->mem_cmp(addr1,
71 addr2,
72 size);
73 }
74
75
nrf_wifi_osal_iomem_mmap(unsigned long addr,unsigned long size)76 void *nrf_wifi_osal_iomem_mmap(unsigned long addr,
77 unsigned long size)
78 {
79 return os_ops->iomem_mmap(addr,
80 size);
81 }
82
83
nrf_wifi_osal_iomem_unmap(volatile void * addr)84 void nrf_wifi_osal_iomem_unmap(volatile void *addr)
85 {
86 os_ops->iomem_unmap(addr);
87 }
88
89
nrf_wifi_osal_iomem_read_reg32(const volatile void * addr)90 unsigned int nrf_wifi_osal_iomem_read_reg32(const volatile void *addr)
91 {
92 return os_ops->iomem_read_reg32(addr);
93 }
94
95
nrf_wifi_osal_iomem_write_reg32(volatile void * addr,unsigned int val)96 void nrf_wifi_osal_iomem_write_reg32(volatile void *addr,
97 unsigned int val)
98 {
99 os_ops->iomem_write_reg32(addr,
100 val);
101 }
102
103
nrf_wifi_osal_iomem_cpy_from(void * dest,const volatile void * src,size_t count)104 void nrf_wifi_osal_iomem_cpy_from(void *dest,
105 const volatile void *src,
106 size_t count)
107 {
108 os_ops->iomem_cpy_from(dest,
109 src,
110 count);
111 }
112
113
nrf_wifi_osal_iomem_cpy_to(volatile void * dest,const void * src,size_t count)114 void nrf_wifi_osal_iomem_cpy_to(volatile void *dest,
115 const void *src,
116 size_t count)
117 {
118 os_ops->iomem_cpy_to(dest,
119 src,
120 count);
121 }
122
123
nrf_wifi_osal_spinlock_alloc(void)124 void *nrf_wifi_osal_spinlock_alloc(void)
125 {
126 return os_ops->spinlock_alloc();
127 }
128
129
nrf_wifi_osal_spinlock_free(void * lock)130 void nrf_wifi_osal_spinlock_free(void *lock)
131 {
132 os_ops->spinlock_free(lock);
133 }
134
135
nrf_wifi_osal_spinlock_init(void * lock)136 void nrf_wifi_osal_spinlock_init(void *lock)
137 {
138 os_ops->spinlock_init(lock);
139 }
140
141
nrf_wifi_osal_spinlock_take(void * lock)142 void nrf_wifi_osal_spinlock_take(void *lock)
143 {
144 os_ops->spinlock_take(lock);
145 }
146
147
nrf_wifi_osal_spinlock_rel(void * lock)148 void nrf_wifi_osal_spinlock_rel(void *lock)
149 {
150 os_ops->spinlock_rel(lock);
151 }
152
nrf_wifi_osal_spinlock_irq_take(void * lock,unsigned long * flags)153 void nrf_wifi_osal_spinlock_irq_take(void *lock,
154 unsigned long *flags)
155 {
156 os_ops->spinlock_irq_take(lock,
157 flags);
158 }
159
160
nrf_wifi_osal_spinlock_irq_rel(void * lock,unsigned long * flags)161 void nrf_wifi_osal_spinlock_irq_rel(void *lock,
162 unsigned long *flags)
163 {
164 os_ops->spinlock_irq_rel(lock,
165 flags);
166 }
167
168
169 #if WIFI_NRF70_LOG_LEVEL >= NRF_WIFI_LOG_LEVEL_DBG
nrf_wifi_osal_log_dbg(const char * fmt,...)170 int nrf_wifi_osal_log_dbg(const char *fmt,
171 ...)
172 {
173 va_list args;
174 int ret = -1;
175
176 va_start(args, fmt);
177
178 ret = os_ops->log_dbg(fmt, args);
179
180 va_end(args);
181
182 return ret;
183 }
184 #endif /* WIFI_NRF70_LOG_LEVEL_DBG */
185
186
187 #if WIFI_NRF70_LOG_LEVEL >= NRF_WIFI_LOG_LEVEL_INF
nrf_wifi_osal_log_info(const char * fmt,...)188 int nrf_wifi_osal_log_info(const char *fmt,
189 ...)
190 {
191 va_list args;
192 int ret = -1;
193
194 va_start(args, fmt);
195
196 ret = os_ops->log_info(fmt, args);
197
198 va_end(args);
199
200 return ret;
201 }
202 #endif /* WIFI_NRF70_LOG_LEVEL_INF */
203
204
205 #if WIFI_NRF70_LOG_LEVEL >= NRF_WIFI_LOG_LEVEL_ERR
nrf_wifi_osal_log_err(const char * fmt,...)206 int nrf_wifi_osal_log_err(const char *fmt,
207 ...)
208 {
209 va_list args;
210 int ret = -1;
211
212 va_start(args, fmt);
213
214 ret = os_ops->log_err(fmt, args);
215
216 va_end(args);
217
218 return ret;
219 }
220 #endif /* WIFI_NRF70_LOG_LEVEL_ERR */
221
222
nrf_wifi_osal_llist_node_alloc(void)223 void *nrf_wifi_osal_llist_node_alloc(void)
224 {
225 return os_ops->llist_node_alloc();
226 }
227
228
nrf_wifi_osal_llist_node_free(void * node)229 void nrf_wifi_osal_llist_node_free(void *node)
230 {
231 os_ops->llist_node_free(node);
232 }
233
234
nrf_wifi_osal_llist_node_data_get(void * node)235 void *nrf_wifi_osal_llist_node_data_get(void *node)
236 {
237 return os_ops->llist_node_data_get(node);
238 }
239
240
nrf_wifi_osal_llist_node_data_set(void * node,void * data)241 void nrf_wifi_osal_llist_node_data_set(void *node,
242 void *data)
243 {
244 os_ops->llist_node_data_set(node,
245 data);
246 }
247
248
nrf_wifi_osal_llist_alloc(void)249 void *nrf_wifi_osal_llist_alloc(void)
250 {
251 return os_ops->llist_alloc();
252 }
253
254
nrf_wifi_osal_llist_free(void * llist)255 void nrf_wifi_osal_llist_free(void *llist)
256 {
257 return os_ops->llist_free(llist);
258 }
259
260
nrf_wifi_osal_llist_init(void * llist)261 void nrf_wifi_osal_llist_init(void *llist)
262 {
263 return os_ops->llist_init(llist);
264 }
265
266
nrf_wifi_osal_llist_add_node_tail(void * llist,void * llist_node)267 void nrf_wifi_osal_llist_add_node_tail(void *llist,
268 void *llist_node)
269 {
270 return os_ops->llist_add_node_tail(llist,
271 llist_node);
272 }
273
nrf_wifi_osal_llist_add_node_head(void * llist,void * llist_node)274 void nrf_wifi_osal_llist_add_node_head(void *llist,
275 void *llist_node)
276 {
277 return os_ops->llist_add_node_head(llist,
278 llist_node);
279 }
280
281
nrf_wifi_osal_llist_get_node_head(void * llist)282 void *nrf_wifi_osal_llist_get_node_head(void *llist)
283 {
284 return os_ops->llist_get_node_head(llist);
285 }
286
287
nrf_wifi_osal_llist_get_node_nxt(void * llist,void * llist_node)288 void *nrf_wifi_osal_llist_get_node_nxt(void *llist,
289 void *llist_node)
290 {
291 return os_ops->llist_get_node_nxt(llist,
292 llist_node);
293 }
294
295
nrf_wifi_osal_llist_del_node(void * llist,void * llist_node)296 void nrf_wifi_osal_llist_del_node(void *llist,
297 void *llist_node)
298 {
299 os_ops->llist_del_node(llist,
300 llist_node);
301 }
302
303
nrf_wifi_osal_llist_len(void * llist)304 unsigned int nrf_wifi_osal_llist_len(void *llist)
305 {
306 return os_ops->llist_len(llist);
307 }
308
309
nrf_wifi_osal_nbuf_alloc(unsigned int size)310 void *nrf_wifi_osal_nbuf_alloc(unsigned int size)
311 {
312 return os_ops->nbuf_alloc(size);
313 }
314
315
nrf_wifi_osal_nbuf_free(void * nbuf)316 void nrf_wifi_osal_nbuf_free(void *nbuf)
317 {
318 os_ops->nbuf_free(nbuf);
319 }
320
321
nrf_wifi_osal_nbuf_headroom_res(void * nbuf,unsigned int size)322 void nrf_wifi_osal_nbuf_headroom_res(void *nbuf,
323 unsigned int size)
324 {
325 os_ops->nbuf_headroom_res(nbuf,
326 size);
327 }
328
329
nrf_wifi_osal_nbuf_headroom_get(void * nbuf)330 unsigned int nrf_wifi_osal_nbuf_headroom_get(void *nbuf)
331 {
332 return os_ops->nbuf_headroom_get(nbuf);
333 }
334
335
nrf_wifi_osal_nbuf_data_size(void * nbuf)336 unsigned int nrf_wifi_osal_nbuf_data_size(void *nbuf)
337 {
338 return os_ops->nbuf_data_size(nbuf);
339 }
340
341
nrf_wifi_osal_nbuf_data_get(void * nbuf)342 void *nrf_wifi_osal_nbuf_data_get(void *nbuf)
343 {
344 return os_ops->nbuf_data_get(nbuf);
345 }
346
347
nrf_wifi_osal_nbuf_data_put(void * nbuf,unsigned int size)348 void *nrf_wifi_osal_nbuf_data_put(void *nbuf,
349 unsigned int size)
350 {
351 return os_ops->nbuf_data_put(nbuf,
352 size);
353 }
354
355
nrf_wifi_osal_nbuf_data_push(void * nbuf,unsigned int size)356 void *nrf_wifi_osal_nbuf_data_push(void *nbuf,
357 unsigned int size)
358 {
359 return os_ops->nbuf_data_push(nbuf,
360 size);
361 }
362
363
nrf_wifi_osal_nbuf_data_pull(void * nbuf,unsigned int size)364 void *nrf_wifi_osal_nbuf_data_pull(void *nbuf,
365 unsigned int size)
366 {
367 return os_ops->nbuf_data_pull(nbuf,
368 size);
369 }
370
nrf_wifi_osal_nbuf_get_priority(void * nbuf)371 unsigned char nrf_wifi_osal_nbuf_get_priority(void *nbuf)
372 {
373 return os_ops->nbuf_get_priority(nbuf);
374 }
375
nrf_wifi_osal_nbuf_get_chksum_done(void * nbuf)376 unsigned char nrf_wifi_osal_nbuf_get_chksum_done(void *nbuf)
377 {
378 return os_ops->nbuf_get_chksum_done(nbuf);
379 }
380
nrf_wifi_osal_nbuf_set_chksum_done(void * nbuf,unsigned char chksum_done)381 void nrf_wifi_osal_nbuf_set_chksum_done(void *nbuf,
382 unsigned char chksum_done)
383 {
384 return os_ops->nbuf_set_chksum_done(nbuf, chksum_done);
385 }
386
387
nrf_wifi_osal_tasklet_alloc(int type)388 void *nrf_wifi_osal_tasklet_alloc(int type)
389 {
390 return os_ops->tasklet_alloc(type);
391 }
392
393
nrf_wifi_osal_tasklet_free(void * tasklet)394 void nrf_wifi_osal_tasklet_free(void *tasklet)
395 {
396 os_ops->tasklet_free(tasklet);
397 }
398
399
nrf_wifi_osal_tasklet_init(void * tasklet,void (* callbk_fn)(unsigned long),unsigned long data)400 void nrf_wifi_osal_tasklet_init(void *tasklet,
401 void (*callbk_fn)(unsigned long),
402 unsigned long data)
403 {
404 os_ops->tasklet_init(tasklet,
405 callbk_fn,
406 data);
407 }
408
409
nrf_wifi_osal_tasklet_schedule(void * tasklet)410 void nrf_wifi_osal_tasklet_schedule(void *tasklet)
411 {
412 os_ops->tasklet_schedule(tasklet);
413 }
414
415
nrf_wifi_osal_tasklet_kill(void * tasklet)416 void nrf_wifi_osal_tasklet_kill(void *tasklet)
417 {
418 os_ops->tasklet_kill(tasklet);
419 }
420
421
nrf_wifi_osal_sleep_ms(unsigned int msecs)422 void nrf_wifi_osal_sleep_ms(unsigned int msecs)
423 {
424 os_ops->sleep_ms(msecs);
425 }
426
427
nrf_wifi_osal_delay_us(unsigned long usecs)428 void nrf_wifi_osal_delay_us(unsigned long usecs)
429 {
430 os_ops->delay_us(usecs);
431 }
432
433
nrf_wifi_osal_time_get_curr_us(void)434 unsigned long nrf_wifi_osal_time_get_curr_us(void)
435 {
436 return os_ops->time_get_curr_us();
437 }
438
439
nrf_wifi_osal_time_elapsed_us(unsigned long start_time_us)440 unsigned int nrf_wifi_osal_time_elapsed_us(unsigned long start_time_us)
441 {
442 return os_ops->time_elapsed_us(start_time_us);
443 }
444
nrf_wifi_osal_time_get_curr_ms()445 unsigned long nrf_wifi_osal_time_get_curr_ms()
446 {
447 return os_ops->time_get_curr_ms();
448 }
449
nrf_wifi_osal_time_elapsed_ms(unsigned long start_time_ms)450 unsigned int nrf_wifi_osal_time_elapsed_ms(unsigned long start_time_ms)
451 {
452 return os_ops->time_elapsed_ms(start_time_ms);
453 }
454
nrf_wifi_osal_bus_pcie_init(const char * dev_name,unsigned int vendor_id,unsigned int sub_vendor_id,unsigned int device_id,unsigned int sub_device_id)455 void *nrf_wifi_osal_bus_pcie_init(const char *dev_name,
456 unsigned int vendor_id,
457 unsigned int sub_vendor_id,
458 unsigned int device_id,
459 unsigned int sub_device_id)
460 {
461 return os_ops->bus_pcie_init(dev_name,
462 vendor_id,
463 sub_vendor_id,
464 device_id,
465 sub_device_id);
466 }
467
468
nrf_wifi_osal_bus_pcie_deinit(void * os_pcie_priv)469 void nrf_wifi_osal_bus_pcie_deinit(void *os_pcie_priv)
470 {
471 os_ops->bus_pcie_deinit(os_pcie_priv);
472 }
473
474
nrf_wifi_osal_bus_pcie_dev_add(void * os_pcie_priv,void * osal_pcie_dev_ctx)475 void *nrf_wifi_osal_bus_pcie_dev_add(void *os_pcie_priv,
476 void *osal_pcie_dev_ctx)
477 {
478 return os_ops->bus_pcie_dev_add(os_pcie_priv,
479 osal_pcie_dev_ctx);
480
481 }
482
483
nrf_wifi_osal_bus_pcie_dev_rem(void * os_pcie_dev_ctx)484 void nrf_wifi_osal_bus_pcie_dev_rem(void *os_pcie_dev_ctx)
485 {
486 return os_ops->bus_pcie_dev_rem(os_pcie_dev_ctx);
487 }
488
489
nrf_wifi_osal_bus_pcie_dev_init(void * os_pcie_dev_ctx)490 enum nrf_wifi_status nrf_wifi_osal_bus_pcie_dev_init(void *os_pcie_dev_ctx)
491 {
492 return os_ops->bus_pcie_dev_init(os_pcie_dev_ctx);
493
494 }
495
496
nrf_wifi_osal_bus_pcie_dev_deinit(void * os_pcie_dev_ctx)497 void nrf_wifi_osal_bus_pcie_dev_deinit(void *os_pcie_dev_ctx)
498 {
499 return os_ops->bus_pcie_dev_deinit(os_pcie_dev_ctx);
500 }
501
502
nrf_wifi_osal_bus_pcie_dev_intr_reg(void * os_pcie_dev_ctx,void * callbk_data,int (* callbk_fn)(void * callbk_data))503 enum nrf_wifi_status nrf_wifi_osal_bus_pcie_dev_intr_reg(void *os_pcie_dev_ctx,
504 void *callbk_data,
505 int (*callbk_fn)(void *callbk_data))
506 {
507 return os_ops->bus_pcie_dev_intr_reg(os_pcie_dev_ctx,
508 callbk_data,
509 callbk_fn);
510 }
511
512
nrf_wifi_osal_bus_pcie_dev_intr_unreg(void * os_pcie_dev_ctx)513 void nrf_wifi_osal_bus_pcie_dev_intr_unreg(void *os_pcie_dev_ctx)
514 {
515 os_ops->bus_pcie_dev_intr_unreg(os_pcie_dev_ctx);
516 }
517
518
nrf_wifi_osal_bus_pcie_dev_dma_map(void * os_pcie_dev_ctx,void * virt_addr,size_t size,enum nrf_wifi_osal_dma_dir dir)519 void *nrf_wifi_osal_bus_pcie_dev_dma_map(void *os_pcie_dev_ctx,
520 void *virt_addr,
521 size_t size,
522 enum nrf_wifi_osal_dma_dir dir)
523 {
524 return os_ops->bus_pcie_dev_dma_map(os_pcie_dev_ctx,
525 virt_addr,
526 size,
527 dir);
528 }
529
530
nrf_wifi_osal_bus_pcie_dev_dma_unmap(void * os_pcie_dev_ctx,void * dma_addr,size_t size,enum nrf_wifi_osal_dma_dir dir)531 void nrf_wifi_osal_bus_pcie_dev_dma_unmap(void *os_pcie_dev_ctx,
532 void *dma_addr,
533 size_t size,
534 enum nrf_wifi_osal_dma_dir dir)
535 {
536 os_ops->bus_pcie_dev_dma_unmap(os_pcie_dev_ctx,
537 dma_addr,
538 size,
539 dir);
540 }
541
542
nrf_wifi_osal_bus_pcie_dev_host_map_get(void * os_pcie_dev_ctx,struct nrf_wifi_osal_host_map * host_map)543 void nrf_wifi_osal_bus_pcie_dev_host_map_get(void *os_pcie_dev_ctx,
544 struct nrf_wifi_osal_host_map *host_map)
545 {
546 os_ops->bus_pcie_dev_host_map_get(os_pcie_dev_ctx,
547 host_map);
548 }
549
550
nrf_wifi_osal_bus_qspi_init(void)551 void *nrf_wifi_osal_bus_qspi_init(void)
552 {
553 return os_ops->bus_qspi_init();
554 }
555
556
nrf_wifi_osal_bus_qspi_deinit(void * os_qspi_priv)557 void nrf_wifi_osal_bus_qspi_deinit(void *os_qspi_priv)
558 {
559 os_ops->bus_qspi_deinit(os_qspi_priv);
560 }
561
562
nrf_wifi_osal_bus_qspi_dev_add(void * os_qspi_priv,void * osal_qspi_dev_ctx)563 void *nrf_wifi_osal_bus_qspi_dev_add(void *os_qspi_priv,
564 void *osal_qspi_dev_ctx)
565 {
566 return os_ops->bus_qspi_dev_add(os_qspi_priv,
567 osal_qspi_dev_ctx);
568 }
569
570
nrf_wifi_osal_bus_qspi_dev_rem(void * os_qspi_dev_ctx)571 void nrf_wifi_osal_bus_qspi_dev_rem(void *os_qspi_dev_ctx)
572 {
573 os_ops->bus_qspi_dev_rem(os_qspi_dev_ctx);
574 }
575
576
nrf_wifi_osal_bus_qspi_dev_init(void * os_qspi_dev_ctx)577 enum nrf_wifi_status nrf_wifi_osal_bus_qspi_dev_init(void *os_qspi_dev_ctx)
578 {
579 return os_ops->bus_qspi_dev_init(os_qspi_dev_ctx);
580 }
581
582
nrf_wifi_osal_bus_qspi_dev_deinit(void * os_qspi_dev_ctx)583 void nrf_wifi_osal_bus_qspi_dev_deinit(void *os_qspi_dev_ctx)
584 {
585 os_ops->bus_qspi_dev_deinit(os_qspi_dev_ctx);
586 }
587
588
nrf_wifi_osal_bus_qspi_dev_intr_reg(void * os_qspi_dev_ctx,void * callbk_data,int (* callbk_fn)(void * callbk_data))589 enum nrf_wifi_status nrf_wifi_osal_bus_qspi_dev_intr_reg(void *os_qspi_dev_ctx,
590 void *callbk_data,
591 int (*callbk_fn)(void *callbk_data))
592 {
593 return os_ops->bus_qspi_dev_intr_reg(os_qspi_dev_ctx,
594 callbk_data,
595 callbk_fn);
596 }
597
598
nrf_wifi_osal_bus_qspi_dev_intr_unreg(void * os_qspi_dev_ctx)599 void nrf_wifi_osal_bus_qspi_dev_intr_unreg(void *os_qspi_dev_ctx)
600 {
601 os_ops->bus_qspi_dev_intr_unreg(os_qspi_dev_ctx);
602 }
603
604
nrf_wifi_osal_bus_qspi_dev_host_map_get(void * os_qspi_dev_ctx,struct nrf_wifi_osal_host_map * host_map)605 void nrf_wifi_osal_bus_qspi_dev_host_map_get(void *os_qspi_dev_ctx,
606 struct nrf_wifi_osal_host_map *host_map)
607 {
608 os_ops->bus_qspi_dev_host_map_get(os_qspi_dev_ctx,
609 host_map);
610 }
611
612
nrf_wifi_osal_qspi_read_reg32(void * priv,unsigned long addr)613 unsigned int nrf_wifi_osal_qspi_read_reg32(void *priv,
614 unsigned long addr)
615 {
616 return os_ops->qspi_read_reg32(priv,
617 addr);
618 }
619
620
nrf_wifi_osal_qspi_write_reg32(void * priv,unsigned long addr,unsigned int val)621 void nrf_wifi_osal_qspi_write_reg32(void *priv,
622 unsigned long addr,
623 unsigned int val)
624 {
625 os_ops->qspi_write_reg32(priv,
626 addr,
627 val);
628 }
629
630
nrf_wifi_osal_qspi_cpy_from(void * priv,void * dest,unsigned long addr,size_t count)631 void nrf_wifi_osal_qspi_cpy_from(void *priv,
632 void *dest,
633 unsigned long addr,
634 size_t count)
635 {
636 os_ops->qspi_cpy_from(priv,
637 dest,
638 addr,
639 count);
640 }
641
642
nrf_wifi_osal_qspi_cpy_to(void * priv,unsigned long addr,const void * src,size_t count)643 void nrf_wifi_osal_qspi_cpy_to(void *priv,
644 unsigned long addr,
645 const void *src,
646 size_t count)
647 {
648 os_ops->qspi_cpy_to(priv,
649 addr,
650 src,
651 count);
652 }
653
654
nrf_wifi_osal_bus_spi_init(void)655 void *nrf_wifi_osal_bus_spi_init(void)
656 {
657 return os_ops->bus_spi_init();
658 }
659
660
nrf_wifi_osal_bus_spi_deinit(void * os_spi_priv)661 void nrf_wifi_osal_bus_spi_deinit(void *os_spi_priv)
662 {
663 os_ops->bus_spi_deinit(os_spi_priv);
664 }
665
666
nrf_wifi_osal_bus_spi_dev_add(void * os_spi_priv,void * osal_spi_dev_ctx)667 void *nrf_wifi_osal_bus_spi_dev_add(void *os_spi_priv,
668 void *osal_spi_dev_ctx)
669 {
670 return os_ops->bus_spi_dev_add(os_spi_priv,
671 osal_spi_dev_ctx);
672 }
673
674
nrf_wifi_osal_bus_spi_dev_rem(void * os_spi_dev_ctx)675 void nrf_wifi_osal_bus_spi_dev_rem(void *os_spi_dev_ctx)
676 {
677 os_ops->bus_spi_dev_rem(os_spi_dev_ctx);
678 }
679
680
nrf_wifi_osal_bus_spi_dev_init(void * os_spi_dev_ctx)681 enum nrf_wifi_status nrf_wifi_osal_bus_spi_dev_init(void *os_spi_dev_ctx)
682 {
683 return os_ops->bus_spi_dev_init(os_spi_dev_ctx);
684 }
685
686
nrf_wifi_osal_bus_spi_dev_deinit(void * os_spi_dev_ctx)687 void nrf_wifi_osal_bus_spi_dev_deinit(void *os_spi_dev_ctx)
688 {
689 os_ops->bus_spi_dev_deinit(os_spi_dev_ctx);
690 }
691
692
nrf_wifi_osal_bus_spi_dev_intr_reg(void * os_spi_dev_ctx,void * callbk_data,int (* callbk_fn)(void * callbk_data))693 enum nrf_wifi_status nrf_wifi_osal_bus_spi_dev_intr_reg(void *os_spi_dev_ctx,
694 void *callbk_data,
695 int (*callbk_fn)(void *callbk_data))
696 {
697 return os_ops->bus_spi_dev_intr_reg(os_spi_dev_ctx,
698 callbk_data,
699 callbk_fn);
700 }
701
702
nrf_wifi_osal_bus_spi_dev_intr_unreg(void * os_spi_dev_ctx)703 void nrf_wifi_osal_bus_spi_dev_intr_unreg(void *os_spi_dev_ctx)
704 {
705 os_ops->bus_spi_dev_intr_unreg(os_spi_dev_ctx);
706 }
707
708
nrf_wifi_osal_bus_spi_dev_host_map_get(void * os_spi_dev_ctx,struct nrf_wifi_osal_host_map * host_map)709 void nrf_wifi_osal_bus_spi_dev_host_map_get(void *os_spi_dev_ctx,
710 struct nrf_wifi_osal_host_map *host_map)
711 {
712 os_ops->bus_spi_dev_host_map_get(os_spi_dev_ctx,
713 host_map);
714 }
715
nrf_wifi_osal_spi_read_reg32(void * os_spi_dev_ctx,unsigned long addr)716 unsigned int nrf_wifi_osal_spi_read_reg32(void *os_spi_dev_ctx,
717 unsigned long addr)
718 {
719 return os_ops->spi_read_reg32(os_spi_dev_ctx, addr);
720 }
721
722
nrf_wifi_osal_spi_write_reg32(void * os_spi_dev_ctx,unsigned long addr,unsigned int val)723 void nrf_wifi_osal_spi_write_reg32(void *os_spi_dev_ctx,
724 unsigned long addr,
725 unsigned int val)
726 {
727 os_ops->spi_write_reg32(os_spi_dev_ctx,
728 addr,
729 val);
730 }
731
732
nrf_wifi_osal_spi_cpy_from(void * os_spi_dev_ctx,void * dest,unsigned long addr,size_t count)733 void nrf_wifi_osal_spi_cpy_from(void *os_spi_dev_ctx,
734 void *dest,
735 unsigned long addr,
736 size_t count)
737 {
738 os_ops->spi_cpy_from(os_spi_dev_ctx,
739 dest,
740 addr,
741 count);
742 }
743
744
nrf_wifi_osal_spi_cpy_to(void * os_spi_dev_ctx,unsigned long addr,const void * src,size_t count)745 void nrf_wifi_osal_spi_cpy_to(void *os_spi_dev_ctx,
746 unsigned long addr,
747 const void *src,
748 size_t count)
749 {
750 os_ops->spi_cpy_to(os_spi_dev_ctx,
751 addr,
752 src,
753 count);
754 }
755
756 #ifdef NRF_WIFI_LOW_POWER
nrf_wifi_osal_timer_alloc(void)757 void *nrf_wifi_osal_timer_alloc(void)
758 {
759 return os_ops->timer_alloc();
760 }
761
762
nrf_wifi_osal_timer_free(void * timer)763 void nrf_wifi_osal_timer_free(void *timer)
764 {
765 os_ops->timer_free(timer);
766 }
767
768
nrf_wifi_osal_timer_init(void * timer,void (* callbk_fn)(unsigned long),unsigned long data)769 void nrf_wifi_osal_timer_init(void *timer,
770 void (*callbk_fn)(unsigned long),
771 unsigned long data)
772 {
773 os_ops->timer_init(timer,
774 callbk_fn,
775 data);
776 }
777
778
nrf_wifi_osal_timer_schedule(void * timer,unsigned long duration)779 void nrf_wifi_osal_timer_schedule(void *timer,
780 unsigned long duration)
781 {
782 os_ops->timer_schedule(timer,
783 duration);
784 }
785
786
nrf_wifi_osal_timer_kill(void * timer)787 void nrf_wifi_osal_timer_kill(void *timer)
788 {
789 os_ops->timer_kill(timer);
790 }
791
792
793
nrf_wifi_osal_bus_qspi_ps_sleep(void * os_qspi_priv)794 int nrf_wifi_osal_bus_qspi_ps_sleep(void *os_qspi_priv)
795 {
796 return os_ops->bus_qspi_ps_sleep(os_qspi_priv);
797 }
798
799
nrf_wifi_osal_bus_qspi_ps_wake(void * os_qspi_priv)800 int nrf_wifi_osal_bus_qspi_ps_wake(void *os_qspi_priv)
801 {
802 return os_ops->bus_qspi_ps_wake(os_qspi_priv);
803 }
804
805
nrf_wifi_osal_bus_qspi_ps_status(void * os_qspi_priv)806 int nrf_wifi_osal_bus_qspi_ps_status(void *os_qspi_priv)
807 {
808 return os_ops->bus_qspi_ps_status(os_qspi_priv);
809 }
810 #endif /* NRF_WIFI_LOW_POWER */
811
nrf_wifi_osal_assert(int test_val,int val,enum nrf_wifi_assert_op_type op,char * msg)812 void nrf_wifi_osal_assert(int test_val,
813 int val,
814 enum nrf_wifi_assert_op_type op,
815 char *msg)
816 {
817 return os_ops->assert(test_val, val, op, msg);
818 }
819
nrf_wifi_osal_strlen(const void * str)820 unsigned int nrf_wifi_osal_strlen(const void *str)
821 {
822 return os_ops->strlen(str);
823 }
824
nrf_wifi_osal_rand8_get(void)825 unsigned char nrf_wifi_osal_rand8_get(void)
826 {
827 return os_ops->rand8_get();
828 }
829