drivers/staging/rtl8723bs/include/osdep_service_linux.h
Source file repositories/reference/linux-study-clean/drivers/staging/rtl8723bs/include/osdep_service_linux.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/rtl8723bs/include/osdep_service_linux.h- Extension
.h- Size
- 3207 bytes
- Lines
- 122
- Domain
- Driver Families
- Bucket
- drivers/staging
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/spinlock.hlinux/compiler.hlinux/kernel.hlinux/errno.hlinux/init.hlinux/slab.hlinux/module.hlinux/kref.hlinux/netdevice.hlinux/skbuff.hlinux/uaccess.hasm/byteorder.hlinux/atomic.hlinux/io.hlinux/sem.hlinux/sched.hlinux/etherdevice.hlinux/wireless.hnet/iw_handler.hlinux/if_arp.hlinux/rtnetlink.hlinux/delay.hlinux/interrupt.hlinux/ip.hlinux/kthread.hlinux/list.hlinux/vmalloc.hnet/ieee80211_radiotap.hnet/cfg80211.h
Detected Declarations
struct __queuestruct rtw_netdev_priv_indicatorfunction _set_timerfunction _init_workitemfunction _set_workitemfunction _cancel_workitem_syncfunction rtw_netif_queue_stoppedfunction rtw_netif_wake_queuefunction rtw_netif_start_queuefunction rtw_netif_stop_queue
Annotated Snippet
struct __queue {
struct list_head queue;
spinlock_t lock;
};
static inline struct list_head *get_next(struct list_head *list)
{
return list->next;
}
static inline struct list_head *get_list_head(struct __queue *queue)
{
return (&(queue->queue));
}
static inline void _set_timer(struct timer_list *ptimer, u32 delay_time)
{
mod_timer(ptimer, (jiffies + (delay_time * HZ / 1000)));
}
static inline void _init_workitem(struct work_struct *pwork, void *pfunc, void *cntx)
{
INIT_WORK(pwork, pfunc);
}
static inline void _set_workitem(struct work_struct *pwork)
{
schedule_work(pwork);
}
static inline void _cancel_workitem_sync(struct work_struct *pwork)
{
cancel_work_sync(pwork);
}
static inline int rtw_netif_queue_stopped(struct net_device *pnetdev)
{
return (netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 0)) &&
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 1)) &&
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 2)) &&
netif_tx_queue_stopped(netdev_get_tx_queue(pnetdev, 3)));
}
static inline void rtw_netif_wake_queue(struct net_device *pnetdev)
{
netif_tx_wake_all_queues(pnetdev);
}
static inline void rtw_netif_start_queue(struct net_device *pnetdev)
{
netif_tx_start_all_queues(pnetdev);
}
static inline void rtw_netif_stop_queue(struct net_device *pnetdev)
{
netif_tx_stop_all_queues(pnetdev);
}
#define rtw_signal_process(pid, sig) kill_pid(find_vpid((pid)), (sig), 1)
#define NDEV_ARG(ndev) ndev->name
#define ADPT_ARG(adapter) adapter->pnetdev->name
#define FUNC_NDEV_FMT "%s(%s)"
#define FUNC_NDEV_ARG(ndev) __func__, ndev->name
#define FUNC_ADPT_FMT "%s(%s)"
#define FUNC_ADPT_ARG(adapter) __func__, adapter->pnetdev->name
struct rtw_netdev_priv_indicator {
void *priv;
u32 sizeof_priv;
};
static inline struct adapter *rtw_netdev_priv(struct net_device *netdev)
{
return ((struct rtw_netdev_priv_indicator *)netdev_priv(netdev))->priv;
}
struct net_device *rtw_alloc_etherdev_with_old_priv(int sizeof_priv, void *old_priv);
extern struct net_device *rtw_alloc_etherdev(int sizeof_priv);
#endif
Annotation
- Immediate include surface: `linux/spinlock.h`, `linux/compiler.h`, `linux/kernel.h`, `linux/errno.h`, `linux/init.h`, `linux/slab.h`, `linux/module.h`, `linux/kref.h`.
- Detected declarations: `struct __queue`, `struct rtw_netdev_priv_indicator`, `function _set_timer`, `function _init_workitem`, `function _set_workitem`, `function _cancel_workitem_sync`, `function rtw_netif_queue_stopped`, `function rtw_netif_wake_queue`, `function rtw_netif_start_queue`, `function rtw_netif_stop_queue`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.