Skip to content

Commit

Permalink
pci: Use kobj typedefs for new-bus method prototypes
Browse files Browse the repository at this point in the history
Reviewed by:	kp, imp
Differential Revision:	https://reviews.freebsd.org/D45405
  • Loading branch information
bsdjhb committed Sep 4, 2024
2 parents 25ccaf1 + 0f1d148 commit 68c2cb4
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 103 deletions.
22 changes: 10 additions & 12 deletions sys/dev/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@
(((cfg)->hdrtype == PCIM_HDRTYPE_NORMAL && reg == PCIR_BIOS) || \
((cfg)->hdrtype == PCIM_HDRTYPE_BRIDGE && reg == PCIR_BIOS_1))

static device_probe_t pci_probe;

static bus_reset_post_t pci_reset_post;
static bus_reset_prepare_t pci_reset_prepare;
static bus_reset_child_t pci_reset_child;
static bus_hint_device_unit_t pci_hint_device_unit;
static bus_remap_intr_t pci_remap_intr_method;

static pci_get_id_t pci_get_id_method;

static int pci_has_quirk(uint32_t devid, int quirk);
static pci_addr_t pci_mapbase(uint64_t mapreg);
static const char *pci_maptype(uint64_t mapreg);
Expand All @@ -103,7 +113,6 @@ static void pci_assign_interrupt(device_t bus, device_t dev,
int force_route);
static int pci_add_map(device_t bus, device_t dev, int reg,
struct resource_list *rl, int force, int prefetch);
static int pci_probe(device_t dev);
static void pci_load_vendor_data(void);
static int pci_describe_parse_line(char **ptr, int *vendor,
int *device, char **desc);
Expand All @@ -125,17 +134,6 @@ static int pci_msi_blacklisted(void);
static int pci_msix_blacklisted(void);
static void pci_resume_msi(device_t dev);
static void pci_resume_msix(device_t dev);
static int pci_remap_intr_method(device_t bus, device_t dev,
u_int irq);
static void pci_hint_device_unit(device_t acdev, device_t child,
const char *name, int *unitp);
static int pci_reset_post(device_t dev, device_t child);
static int pci_reset_prepare(device_t dev, device_t child);
static int pci_reset_child(device_t dev, device_t child,
int flags);

static int pci_get_id_method(device_t dev, device_t child,
enum pci_id_type type, uintptr_t *rid);
static struct pci_devinfo * pci_fill_devinfo(device_t pcib, device_t bus, int d,
int b, int s, int f, uint16_t vid, uint16_t did);

Expand Down
156 changes: 65 additions & 91 deletions sys/dev/pci/pci_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,102 +48,84 @@ struct pci_softc {
extern int pci_do_power_resume;
extern int pci_do_power_suspend;


device_attach_t pci_attach;
device_detach_t pci_detach;
device_resume_t pci_resume;

bus_print_child_t pci_print_child;
bus_probe_nomatch_t pci_probe_nomatch;
bus_read_ivar_t pci_read_ivar;
bus_write_ivar_t pci_write_ivar;
bus_driver_added_t pci_driver_added;
bus_setup_intr_t pci_setup_intr;
bus_teardown_intr_t pci_teardown_intr;

bus_get_dma_tag_t pci_get_dma_tag;
bus_get_resource_list_t pci_get_resource_list;
bus_delete_resource_t pci_delete_resource;
bus_alloc_resource_t pci_alloc_resource;
bus_release_resource_t pci_release_resource;
bus_activate_resource_t pci_activate_resource;
bus_deactivate_resource_t pci_deactivate_resource;
bus_child_deleted_t pci_child_deleted;
bus_child_detached_t pci_child_detached;
bus_child_pnpinfo_t pci_child_pnpinfo_method;
bus_child_location_t pci_child_location_method;
bus_get_device_path_t pci_get_device_path_method;
bus_suspend_child_t pci_suspend_child;
bus_resume_child_t pci_resume_child;
bus_rescan_t pci_rescan_method;

pci_read_config_t pci_read_config_method;
pci_write_config_t pci_write_config_method;
pci_enable_busmaster_t pci_enable_busmaster_method;
pci_disable_busmaster_t pci_disable_busmaster_method;
pci_enable_io_t pci_enable_io_method;
pci_disable_io_t pci_disable_io_method;
pci_get_vpd_ident_t pci_get_vpd_ident_method;
pci_get_vpd_readonly_t pci_get_vpd_readonly_method;
pci_get_powerstate_t pci_get_powerstate_method;
pci_set_powerstate_t pci_set_powerstate_method;
pci_assign_interrupt_t pci_assign_interrupt_method;
pci_find_cap_t pci_find_cap_method;
pci_find_next_cap_t pci_find_next_cap_method;
pci_find_extcap_t pci_find_extcap_method;
pci_find_next_extcap_t pci_find_next_extcap_method;
pci_find_htcap_t pci_find_htcap_method;
pci_find_next_htcap_t pci_find_next_htcap_method;
pci_alloc_msi_t pci_alloc_msi_method;
pci_alloc_msix_t pci_alloc_msix_method;
pci_enable_msi_t pci_enable_msi_method;
pci_enable_msix_t pci_enable_msix_method;
pci_disable_msi_t pci_disable_msi_method;
pci_remap_msix_t pci_remap_msix_method;
pci_release_msi_t pci_release_msi_method;
pci_msi_count_t pci_msi_count_method;
pci_msix_count_t pci_msix_count_method;
pci_msix_pba_bar_t pci_msix_pba_bar_method;
pci_msix_table_bar_t pci_msix_table_bar_method;
pci_alloc_devinfo_t pci_alloc_devinfo_method;
pci_child_added_t pci_child_added_method;
#ifdef PCI_IOV
pci_iov_attach_t pci_iov_attach_method;
pci_iov_detach_t pci_iov_detach_method;
pci_create_iov_child_t pci_create_iov_child_method;
#endif

void pci_add_children(device_t dev, int domain, int busno);
void pci_add_child(device_t bus, struct pci_devinfo *dinfo);
device_t pci_add_iov_child(device_t bus, device_t pf, uint16_t rid,
uint16_t vid, uint16_t did);
void pci_add_resources(device_t bus, device_t dev, int force,
uint32_t prefetchmask);
void pci_add_resources_ea(device_t bus, device_t dev, int alloc_iov);
struct pci_devinfo *pci_alloc_devinfo_method(device_t dev);
int pci_attach(device_t dev);
int pci_attach_common(device_t dev);
int pci_detach(device_t dev);
int pci_rescan_method(device_t dev);
void pci_driver_added(device_t dev, driver_t *driver);
int pci_ea_is_enabled(device_t dev, int rid);
int pci_print_child(device_t dev, device_t child);
void pci_probe_nomatch(device_t dev, device_t child);
int pci_read_ivar(device_t dev, device_t child, int which,
uintptr_t *result);
int pci_write_ivar(device_t dev, device_t child, int which,
uintptr_t value);
int pci_setup_intr(device_t dev, device_t child,
struct resource *irq, int flags, driver_filter_t *filter,
driver_intr_t *intr, void *arg, void **cookiep);
int pci_teardown_intr(device_t dev, device_t child,
struct resource *irq, void *cookie);
int pci_get_vpd_ident_method(device_t dev, device_t child,
const char **identptr);
int pci_get_vpd_readonly_method(device_t dev, device_t child,
const char *kw, const char **vptr);
int pci_set_powerstate_method(device_t dev, device_t child,
int state);
int pci_get_powerstate_method(device_t dev, device_t child);
uint32_t pci_read_config_method(device_t dev, device_t child,
int reg, int width);
void pci_write_config_method(device_t dev, device_t child,
int reg, uint32_t val, int width);
int pci_enable_busmaster_method(device_t dev, device_t child);
int pci_disable_busmaster_method(device_t dev, device_t child);
int pci_enable_io_method(device_t dev, device_t child, int space);
int pci_disable_io_method(device_t dev, device_t child, int space);
int pci_find_cap_method(device_t dev, device_t child,
int capability, int *capreg);
int pci_find_next_cap_method(device_t dev, device_t child,
int capability, int start, int *capreg);
int pci_find_extcap_method(device_t dev, device_t child,
int capability, int *capreg);
int pci_find_next_extcap_method(device_t dev, device_t child,
int capability, int start, int *capreg);
int pci_find_htcap_method(device_t dev, device_t child,
int capability, int *capreg);
int pci_find_next_htcap_method(device_t dev, device_t child,
int capability, int start, int *capreg);
int pci_alloc_msi_method(device_t dev, device_t child, int *count);
int pci_alloc_msix_method(device_t dev, device_t child, int *count);
void pci_enable_msi_method(device_t dev, device_t child,
uint64_t address, uint16_t data);
void pci_enable_msix_method(device_t dev, device_t child,
u_int index, uint64_t address, uint32_t data);
void pci_disable_msi_method(device_t dev, device_t child);
int pci_remap_msix_method(device_t dev, device_t child,
int count, const u_int *vectors);
int pci_release_msi_method(device_t dev, device_t child);
int pci_msi_count_method(device_t dev, device_t child);
int pci_msix_count_method(device_t dev, device_t child);
int pci_msix_pba_bar_method(device_t dev, device_t child);
int pci_msix_table_bar_method(device_t dev, device_t child);
struct resource *pci_alloc_resource(device_t dev, device_t child,
int type, int *rid, rman_res_t start, rman_res_t end,
rman_res_t count, u_int flags);
int pci_release_resource(device_t dev, device_t child,
struct resource *r);
int pci_activate_resource(device_t dev, device_t child,
struct resource *r);
int pci_deactivate_resource(device_t dev, device_t child,
struct resource *r);
void pci_delete_resource(device_t dev, device_t child,
int type, int rid);
struct resource_list *pci_get_resource_list (device_t dev, device_t child);
struct pci_devinfo *pci_read_device(device_t pcib, device_t bus, int d, int b,
int s, int f);
void pci_print_verbose(struct pci_devinfo *dinfo);
int pci_freecfg(struct pci_devinfo *dinfo);
void pci_child_deleted(device_t dev, device_t child);
void pci_child_detached(device_t dev, device_t child);
int pci_child_location_method(device_t cbdev, device_t child,
struct sbuf *sb);
int pci_child_pnpinfo_method(device_t cbdev, device_t child,
struct sbuf *sb);
int pci_get_device_path_method(device_t dev, device_t child,
const char *locator, struct sbuf *sb);
int pci_assign_interrupt_method(device_t dev, device_t child);
int pci_resume(device_t dev);
int pci_resume_child(device_t dev, device_t child);
int pci_suspend_child(device_t dev, device_t child);
bus_dma_tag_t pci_get_dma_tag(device_t bus, device_t dev);
void pci_child_added_method(device_t dev, device_t child);

/** Restore the config register state. The state must be previously
* saved with pci_cfg_save. However, the pci bus driver takes care of
Expand Down Expand Up @@ -171,14 +153,6 @@ struct resource *pci_alloc_multi_resource(device_t dev, device_t child,
int type, int *rid, rman_res_t start, rman_res_t end,
rman_res_t count, u_long num, u_int flags);

int pci_iov_attach_method(device_t bus, device_t dev,
struct nvlist *pf_schema, struct nvlist *vf_schema,
const char *name);
int pci_iov_detach_method(device_t bus, device_t dev);

device_t pci_create_iov_child_method(device_t bus, device_t pf,
uint16_t rid, uint16_t vid, uint16_t did);

struct resource *pci_vf_alloc_mem_resource(device_t dev, device_t child,
int *rid, rman_res_t start, rman_res_t end,
rman_res_t count, u_int flags);
Expand Down

0 comments on commit 68c2cb4

Please sign in to comment.