Lines Matching defs:osh

95 	void 	*osh;
185 extern uint8* dhd_os_prealloc(void *osh, int section, int size);
190 osl_t *osh;
195 osh = kmalloc(sizeof(osl_t), flags);
197 osh = kmalloc(sizeof(osl_t), GFP_ATOMIC);
200 ASSERT(osh);
202 bzero(osh, sizeof(osl_t));
207 osh->magic = OS_HANDLE_MAGIC;
208 atomic_set(&osh->malloced, 0);
209 osh->failed = 0;
210 osh->dbgmem_list = NULL;
211 spin_lock_init(&(osh->dbgmem_lock));
212 osh->pdev = pdev;
213 osh->pub.pkttag = pkttag;
214 osh->bustype = bustype;
220 osh->pub.mmbus = TRUE;
227 osh->pub.mmbus = FALSE;
236 if (!(bcm_static_buf = (bcm_static_buf_t *)dhd_os_prealloc(osh, 3, STATIC_BUF_SIZE+
253 skb_buff_ptr = dhd_os_prealloc(osh, 4, 0);
264 spin_lock_init(&(osh->pktalloc_lock));
266 return osh;
270 osl_detach(osl_t *osh)
272 if (osh == NULL)
284 ASSERT(osh->magic == OS_HANDLE_MAGIC);
285 kfree(osh);
310 osl_ctfpool_add(osl_t *osh)
317 if ((osh == NULL) || (osh->ctfpool == NULL))
320 CTFPOOL_LOCK(osh->ctfpool, flags);
321 ASSERT(osh->ctfpool->curr_obj <= osh->ctfpool->max_obj);
324 if (osh->ctfpool->curr_obj == osh->ctfpool->max_obj) {
325 CTFPOOL_UNLOCK(osh->ctfpool, flags);
330 skb = osl_alloc_skb(osh->ctfpool->obj_size);
333 osh->ctfpool->obj_size);
334 CTFPOOL_UNLOCK(osh->ctfpool, flags);
339 skb->next = (struct sk_buff *)osh->ctfpool->head;
340 osh->ctfpool->head = skb;
341 osh->ctfpool->fast_frees++;
342 osh->ctfpool->curr_obj++;
345 CTFPOOLPTR(osh, skb) = (void *)osh->ctfpool;
348 PKTFAST(osh, skb) = FASTBUF;
350 CTFPOOL_UNLOCK(osh->ctfpool, flags);
357 osl_ctfpool_replenish(osl_t *osh, uint thresh)
359 if ((osh == NULL) || (osh->ctfpool == NULL))
363 while ((osh->ctfpool->refills > 0) && (thresh--)) {
364 osl_ctfpool_add(osh);
365 osh->ctfpool->refills--;
371 osl_ctfpool_init(osl_t *osh, uint numobj, uint size)
377 osh->ctfpool = kmalloc(sizeof(ctfpool_t), flags);
379 osh->ctfpool = kmalloc(sizeof(ctfpool_t), GFP_ATOMIC);
381 ASSERT(osh->ctfpool);
382 bzero(osh->ctfpool, sizeof(ctfpool_t));
384 osh->ctfpool->max_obj = numobj;
385 osh->ctfpool->obj_size = size;
387 spin_lock_init(&osh->ctfpool->lock);
390 if (!osl_ctfpool_add(osh))
392 osh->ctfpool->fast_frees--;
400 osl_ctfpool_cleanup(osl_t *osh)
407 if ((osh == NULL) || (osh->ctfpool == NULL))
410 CTFPOOL_LOCK(osh->ctfpool, flags);
412 skb = osh->ctfpool->head;
418 osh->ctfpool->curr_obj--;
421 ASSERT(osh->ctfpool->curr_obj == 0);
422 osh->ctfpool->head = NULL;
423 CTFPOOL_UNLOCK(osh->ctfpool, flags);
425 kfree(osh->ctfpool);
426 osh->ctfpool = NULL;
430 osl_ctfpool_stats(osl_t *osh, void *b)
434 if ((osh == NULL) || (osh->ctfpool == NULL))
448 ASSERT((osh != NULL) && (bb != NULL));
451 osh->ctfpool->max_obj, osh->ctfpool->obj_size,
452 osh->ctfpool->curr_obj, osh->ctfpool->refills);
454 osh->ctfpool->fast_allocs, osh->ctfpool->fast_frees,
455 osh->ctfpool->slow_allocs);
459 osl_pktfastget(osl_t *osh, uint len)
467 if (osh->ctfpool == NULL)
470 CTFPOOL_LOCK(osh->ctfpool, flags);
471 if (osh->ctfpool->head == NULL) {
472 ASSERT(osh->ctfpool->curr_obj == 0);
473 osh->ctfpool->slow_allocs++;
474 CTFPOOL_UNLOCK(osh->ctfpool, flags);
478 ASSERT(len <= osh->ctfpool->obj_size);
481 skb = (struct sk_buff *)osh->ctfpool->head;
482 osh->ctfpool->head = (void *)skb->next;
484 osh->ctfpool->fast_allocs++;
485 osh->ctfpool->curr_obj--;
486 ASSERT(CTFPOOLHEAD(osh, skb) == (struct sock *)osh->ctfpool->head);
487 CTFPOOL_UNLOCK(osh->ctfpool, flags);
506 osl_pkt_tonative(osl_t *osh, void *pkt)
513 if (osh->pub.pkttag)
519 spin_lock_irqsave(&osh->pktalloc_lock, flags);
520 osh->pub.pktalloced--;
521 spin_unlock_irqrestore(&osh->pktalloc_lock, flags);
529 osl_pkt_frmnative(osl_t *osh, void *pkt)
536 if (osh->pub.pkttag)
542 spin_lock_irqsave(&osh->pktalloc_lock, flags);
543 osh->pub.pktalloced++;
544 spin_unlock_irqrestore(&osh->pktalloc_lock, flags);
552 osl_pktget(osl_t *osh, uint len)
559 skb = osl_pktfastget(osh, len);
568 spin_lock_irqsave(&osh->pktalloc_lock, flags);
569 osh->pub.pktalloced++;
570 spin_unlock_irqrestore(&osh->pktalloc_lock, flags);
578 osl_pktfastfree(osl_t *osh, struct sk_buff *skb)
598 ctfpool = (ctfpool_t *)CTFPOOLPTR(osh, skb);
616 osl_pktfree(osl_t *osh, void *p, bool send)
623 if (send && osh->pub.tx_fn)
624 osh->pub.tx_fn(osh->pub.tx_ctx, p, 0);
626 PKTDBG_TRACE(osh, (void *) skb, PKTLIST_PKTFREE);
636 if ((PKTISFAST(osh, skb)) && (atomic_read(&skb->users) == 1))
637 osl_pktfastfree(osh, skb);
650 spin_lock_irqsave(&osh->pktalloc_lock, flags);
651 osh->pub.pktalloced--;
652 spin_unlock_irqrestore(&osh->pktalloc_lock, flags);
659 osl_pktget_static(osl_t *osh, uint len)
668 return osl_pktget(osh, len);
725 return osl_pktget(osh, len);
729 osl_pktfree_static(osl_t *osh, void *p, bool send)
733 osl_pktfree(osh, p, send);
762 osl_pktfree(osh, p, send);
768 osl_pci_read_config(osl_t *osh, uint offset, uint size)
773 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
779 pci_read_config_dword(osh->pdev, offset, &val);
789 osl_pci_write_config(osl_t *osh, uint offset, uint size, uint val)
793 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
799 pci_write_config_dword(osh->pdev, offset, val);
802 if (osl_pci_read_config(osh, offset, size) == val)
810 osl_pci_bus(osl_t *osh)
812 ASSERT(osh && (osh->magic == OS_HANDLE_MAGIC) && osh->pdev);
814 return ((struct pci_dev *)osh->pdev)->bus->number;
819 osl_pci_slot(osl_t *osh)
821 ASSERT(osh && (osh->magic == OS_HANDLE_MAGIC) && osh->pdev);
823 return PCI_SLOT(((struct pci_dev *)osh->pdev)->devfn);
828 osl_pci_device(osl_t *osh)
830 ASSERT(osh && (osh->magic == OS_HANDLE_MAGIC) && osh->pdev);
832 return osh->pdev;
836 osl_pcmcia_attr(osl_t *osh, uint offset, char *buf, int size, bool write)
841 osl_pcmcia_read_attr(osl_t *osh, uint offset, void *buf, int size)
843 osl_pcmcia_attr(osh, offset, (char *) buf, size, FALSE);
847 osl_pcmcia_write_attr(osl_t *osh, uint offset, void *buf, int size)
849 osl_pcmcia_attr(osh, offset, (char *) buf, size, TRUE);
853 osl_malloc(osl_t *osh, uint size)
861 if (osh)
862 ASSERT(osh->magic == OS_HANDLE_MAGIC);
889 if (osh)
890 atomic_add(size, &osh->malloced);
904 if (osh)
905 osh->failed++;
908 if (osh)
909 atomic_add(size, &osh->malloced);
915 osl_mfree(osl_t *osh, void *addr, uint size)
931 if (osh) {
932 ASSERT(osh->magic == OS_HANDLE_MAGIC);
933 atomic_sub(size, &osh->malloced);
939 if (osh) {
940 ASSERT(osh->magic == OS_HANDLE_MAGIC);
941 atomic_sub(size, &osh->malloced);
947 osl_malloced(osl_t *osh)
949 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
950 return (atomic_read(&osh->malloced));
954 osl_malloc_failed(osl_t *osh)
956 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
957 return (osh->failed);
968 osl_dma_alloc_consistent(osl_t *osh, uint size, uint16 align_bits, uint *alloced, ulong *pap)
971 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
977 return (pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap));
981 osl_dma_free_consistent(osl_t *osh, void *va, uint size, ulong pa)
983 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
985 pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa);
989 osl_dma_map(osl_t *osh, void *va, uint size, int direction)
993 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
995 return (pci_map_single(osh->pdev, va, size, dir));
999 osl_dma_unmap(osl_t *osh, uint pa, uint size, int direction)
1003 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
1005 pci_unmap_single(osh->pdev, (uint32)pa, size, dir);
1049 osl_pktdup(osl_t *osh, void *skb)
1058 PKTCTFMAP(osh, skb);
1069 if (PKTISFAST(osh, skb)) {
1073 ctfpool = (ctfpool_t *)CTFPOOLPTR(osh, skb);
1075 PKTCLRFAST(osh, p);
1076 PKTCLRFAST(osh, skb);
1082 if (osh->pub.pkttag)
1086 spin_lock_irqsave(&osh->pktalloc_lock, irqflags);
1087 osh->pub.pktalloced++;
1088 spin_unlock_irqrestore(&osh->pktalloc_lock, irqflags);