pad(4)

うーん、src/sys/arch/arm/*/*_intr.h の中で arm/cpu.h を include していると、padvol.c がコンパイルできないっぽい。

#   compile  WZERO3/padvol.o
/usr/local/netbsd-tools/bin/arm--netbsdelf-gcc -ffreestanding -fno-zero-initialized-in-bss -mcpu=xscale -O2 -std=gnu99 -Wcomment -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-compare -Wno-pointer-sign -Wno-attributes -fno-strict-aliasing -Wcomment -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-compare -Wno-pointer-sign -Wno-attributes -Werror -mcpu=xscale -Dhpcarm -Darm32 -I. -I../../../../../common/include -I../../../../arch -I../../../.. -nostdinc -DDIAGNOSTIC -DMAXUSERS=32 -D_KERNEL -D_KERNEL_OPT -I../../../../lib/libkern/../../../common/lib/libc/quad -I../../../../lib/libkern/../../../common/lib/libc/string -I../../../../lib/libkern/../../../common/lib/libc/arch/arm/string -I../../../../dist/ipf -c ../../../../dev/pad/padvol.c
In file included from ./arm/cpu.h:225,
                 from ../../../../arch/arm/xscale/pxa2x0_intr.h:47,
                 from ./machine/intr.h:136,
                 from ../../../../sys/intr.h:35,
                 from ../../../../sys/mutex.h:177,
                 from ../../../../sys/condvar.h:35,
                 from ../../../../dev/pad/padvol.c:34:
../../../../sys/cpu_data.h:69: error: expected specifier-qualifier-list before 'kcondvar_t'

流れとしてはこんな感じかな。

src/sys/dev/pad/padvol.c
↓
src/sys/sys/condvar.h (kcondvar_t 定義前に sys/mutex.h を include している)
↓
src/sys/sys/mutex.h
↓
src/sys/sys/intr.h
↓
src/sys/arch/hpcarm/include/intr.h (machine/intr.h)
↓
src/sys/arch/arm/xscale/pxa2x0_intr.h (ARM_INTR_IMPL)
↓
src/sys/arch/arm/include/cpu.h
↓
src/sys/sys/cpu_data.h (ここで kcondvar_t を使用されて終了)