On 05/11/16 05:38 PM, Bjoern A. Zeeb wrote: > >> On 11 May 2016, at 17:07 , Andrew Turner <and...@freebsd.org> wrote: >> >> Author: andrew >> Date: Wed May 11 17:07:29 2016 >> New Revision: 299467 >> URL: https://svnweb.freebsd.org/changeset/base/299467 >> >> Log: >> Add a new get_id interface to pci and pcib. This will allow us to both >> detect failures, and get different PCI IDs. >> >> For the former the interface returns an int to signal an error. The ID is >> returned at a uintptr_t * argument. >> >> For the latter there is a type argument that allows selecting the ID type. >> This only specifies a single type, however a MSI type will be added >> to handle the need to find the ID the hardware passes to the ARM GICv3 >> interrupt controller. >> >> A follow up commit will be made to remove pci_get_rid. >> >> Reviewed by: jhb, rstone >> Obtained from: ABT Systems Ltd >> Sponsored by: The FreeBSD Foundation >> Differential Revision: https://reviews.freebsd.org/D6239 > > Hi, seems gcc, I guess it is, doesn’t like your change: > > In file included from /scratch/tmp/bz/head.svn/sys/sparc64/isa/ofw_isa.c:78: > ./pcib_if.h:166: warning: 'enum pci_id_type' declared inside parameter list > ./pcib_if.h:166: warning: its scope is only this definition or declaration, > which is probably not what you want > ./pcib_if.h:169: warning: 'enum pci_id_type' declared inside parameter list > ./pcib_if.h:169: error: parameter 3 ('type') has incomplete type > ./pcib_if.h: In function 'PCIB_GET_ID': > ./pcib_if.h:173: error: type of formal parameter 3 is incomplete
Clang also fails: In file included from /usr/src/sys/dev/acpica/acpi_hpet.c:58: ./pcib_if.h:165:61: error: declaration of 'enum pci_id_type' will not be visible outside of this function [-Werror,-Wvisibility] typedef int pcib_get_id_t(device_t pcib, device_t dev, enum pci_id_type type, ^ ./pcib_if.h:169:38: error: declaration of 'enum pci_id_type' will not be visible outside of this function [-Werror,-Wvisibility] enum pci_id_type type, uintptr_t *id) ^ ./pcib_if.h:169:50: error: variable has incomplete type 'enum pci_id_type' enum pci_id_type type, uintptr_t *id) ^ ./pcib_if.h:169:38: note: forward declaration of 'enum pci_id_type' enum pci_id_type type, uintptr_t *id) ^ 3 errors generated. Jung-uk Kim
signature.asc
Description: OpenPGP digital signature