mirror of
https://github.com/opnsense/src.git
synced 2026-06-04 06:15:33 -04:00
LinuxKPI: add general module_driver(), use it for module_pci_driver()
Factor out module_pci_driver() from 366d68f283 into a general
module_driver() so other bus attachments can also use the same kind
of macro without duplicating all the lines.
Redefine module_pci_driver() using the new general macro.
No functional changes intended.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D46467
This commit is contained in:
parent
d52c319042
commit
f5c7feee71
2 changed files with 36 additions and 18 deletions
33
sys/compat/linuxkpi/common/include/linux/device/driver.h
Normal file
33
sys/compat/linuxkpi/common/include/linux/device/driver.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*
|
||||
* Copyright (c) 2021 Bjoern A. Zeeb
|
||||
* Copyright (c) 2024 The FreeBSD Foundation
|
||||
*
|
||||
* Portions of this software were developed by Björn Zeeb
|
||||
* under sponsorship from the FreeBSD Foundation.
|
||||
*/
|
||||
|
||||
#ifndef LINUXKPI_LINUX_DEVICE_DRIVER_H
|
||||
#define LINUXKPI_LINUX_DEVICE_DRIVER_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
#define module_driver(_drv, _regf, _unregf) \
|
||||
static inline int \
|
||||
__CONCAT(__CONCAT(_, _drv), _init)(void) \
|
||||
{ \
|
||||
return (_regf(&(_drv))); \
|
||||
} \
|
||||
\
|
||||
static inline void \
|
||||
__CONCAT(__CONCAT(_, _drv), _exit)(void) \
|
||||
{ \
|
||||
_unregf(&(_drv)); \
|
||||
} \
|
||||
\
|
||||
module_init(__CONCAT(__CONCAT(_, _drv), _init)); \
|
||||
module_exit(__CONCAT(__CONCAT(_, _drv), _exit))
|
||||
|
||||
#endif /* LINUXKPI_LINUX_DEVICE_DRIVER_H */
|
||||
|
|
@ -36,6 +36,7 @@
|
|||
#define CONFIG_PCI_MSI
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/device/driver.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/bus.h>
|
||||
|
|
@ -274,24 +275,8 @@ extern spinlock_t pci_lock;
|
|||
|
||||
#define __devexit_p(x) x
|
||||
|
||||
#define module_pci_driver(_driver) \
|
||||
\
|
||||
static inline int \
|
||||
_pci_init(void) \
|
||||
{ \
|
||||
\
|
||||
return (linux_pci_register_driver(&_driver)); \
|
||||
} \
|
||||
\
|
||||
static inline void \
|
||||
_pci_exit(void) \
|
||||
{ \
|
||||
\
|
||||
linux_pci_unregister_driver(&_driver); \
|
||||
} \
|
||||
\
|
||||
module_init(_pci_init); \
|
||||
module_exit(_pci_exit)
|
||||
#define module_pci_driver(_drv) \
|
||||
module_driver(_drv, linux_pci_register_driver, linux_pci_unregister_driver)
|
||||
|
||||
struct msi_msg {
|
||||
uint32_t data;
|
||||
|
|
|
|||
Loading…
Reference in a new issue