65deb9d947
as we have no use for that info. Instead let this function return the keyboard ID and verify at its invocation in sunkbd_configure() that we're talking to a Sun type 4/5/6 keyboard, i.e. a keyboard supported by this driver. - Add an option SUNKBD_EMULATE_ATKBD whose code is based on the respective code in ukbd(4) and like UKBD_EMULATE_ATSCANCODE causes this driver to emit AT keyboard/KB_101 compatible scan codes in K_RAW mode as assumed by kbdmux(4). Unlike UKBD_EMULATE_ATSCANCODE, SUNKBD_EMULATE_ATKBD also triggers the use of AT keyboard maps and thus allows to use the map files in share/syscons/keymaps with this driver at the cost of an additional translation (in ukbd(4) this just is the way of operation). - Implement an option SUNKBD_DFLT_KEYMAP, which like the equivalent options of the other keyboard drivers allows to specify the default in-kernel keyboard map. For obvious reasons this made to only work when also using SUNKBD_EMULATE_ATKBD. - Implement sunkbd_check(), sunkbd_check_char() and sunkbd_clear_state(), which are also required for interoperability with kbdmux(4). - Implement K_CODE mode and FreeBSD keypad compose. - As a minor hack define KBD_DFLT_KEYMAP also in the !SUNKBD_EMULATE_ATKBD case so we can obtain fkey_tab from <dev/kbd/kbdtables.h> rather than having to duplicate it and #ifdef some more code. - Don't use the TX-buffer for writing the two command bytes for setting the keyboard LEDs as this consequently requires a hardware FIFO that is at least two bytes in depth, which the NMOS-variant of the Zilog SCCs doesn't have. Thus use an inlined version of uart_putc() to consecutively write the command bytes (a cleaner approach would be to do this via the soft interrupt handler but that variant wouldn't work while in ddb(4)). [1] - Fix some minor style(9) bugs. PR: 90316 [1] Reviewed by: marcel [1]
142 lines
5.6 KiB
Plaintext
142 lines
5.6 KiB
Plaintext
# This file tells config what files go into building a kernel,
|
|
# files marked standard are always included.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# The long compile-with and dependency lines are required because of
|
|
# limitations in config: backslash-newline doesn't work in strings, and
|
|
# dependency lines other than the first are silently ignored.
|
|
#
|
|
atkbdmap.h optional atkbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${ATKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > atkbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "atkbdmap.h"
|
|
#
|
|
sunkbdmap.h optional sunkbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${SUNKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > sunkbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "sunkbdmap.h"
|
|
#
|
|
ukbdmap.h optional ukbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "ukbdmap.h"
|
|
#
|
|
hal.o optional ath_hal \
|
|
dependency "$S/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu" \
|
|
compile-with "uudecode < $S/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu" \
|
|
no-implicit-rule
|
|
opt_ah.h optional ath_hal \
|
|
dependency "$S/contrib/dev/ath/public/sparc64-be-elf.opt_ah.h" \
|
|
compile-with "cp $S/contrib/dev/ath/public/sparc64-be-elf.opt_ah.h opt_ah.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "opt_ah.h"
|
|
#
|
|
crypto/blowfish/bf_enc.c optional crypto | ipsec ipsec_esp
|
|
crypto/des/des_enc.c optional crypto | ipsec ipsec_esp | \
|
|
netsmb
|
|
dev/atkbdc/atkbd.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbdc.c optional atkbdc
|
|
dev/atkbdc/atkbdc_ebus.c optional atkbdc ebus
|
|
dev/atkbdc/atkbdc_isa.c optional atkbdc isa
|
|
dev/atkbdc/atkbdc_subr.c optional atkbdc
|
|
dev/atkbdc/psm.c optional psm atkbdc
|
|
dev/auxio/auxio.c optional auxio sbus | auxio ebus
|
|
dev/esp/esp_sbus.c optional esp sbus
|
|
dev/fb/creator.c optional creator sc
|
|
dev/fb/fb.c optional sc
|
|
dev/fb/machfb.c optional machfb sc
|
|
dev/hwpmc/hwpmc_sparc64.c optional hwpmc
|
|
dev/kbd/kbd.c optional atkbd | sc | ukbd
|
|
dev/le/if_le_ledma.c optional le sbus
|
|
dev/ofw/ofw_bus_if.m standard
|
|
dev/ofw/ofw_bus_subr.c standard
|
|
dev/ofw/ofw_console.c optional ofw_console
|
|
dev/ofw/openfirm.c standard
|
|
dev/ofw/openfirmio.c standard
|
|
dev/ofw/openpromio.c standard
|
|
dev/pcf/envctrl.c optional pcf ebus
|
|
dev/pcf/pcf_ebus.c optional pcf ebus
|
|
dev/sound/sbus/cs4231.c optional snd_audiocs ebus | \
|
|
snd_audiocs sbus
|
|
dev/syscons/scgfbrndr.c optional sc
|
|
dev/syscons/scterm-sc.c optional sc
|
|
dev/syscons/scvtb.c optional sc
|
|
dev/uart/uart_cpu_sparc64.c optional uart
|
|
dev/uart/uart_kbd_sun.c optional uart sc
|
|
geom/geom_bsd.c standard
|
|
geom/geom_bsd_enc.c standard
|
|
geom/geom_sunlabel.c standard
|
|
geom/geom_sunlabel_enc.c standard
|
|
kern/syscalls.c optional ktr
|
|
libkern/ffs.c standard
|
|
libkern/ffsl.c standard
|
|
libkern/fls.c standard
|
|
libkern/flsl.c standard
|
|
sparc64/central/central.c optional central
|
|
sparc64/creator/creator_upa.c optional creator sc
|
|
sparc64/ebus/ebus.c optional ebus
|
|
sparc64/fhc/clkbrd.c optional clkbrd fhc
|
|
sparc64/fhc/fhc.c optional fhc
|
|
sparc64/fhc/fhc_central.c optional fhc central
|
|
sparc64/fhc/fhc_nexus.c optional fhc
|
|
sparc64/isa/isa.c optional isa
|
|
sparc64/isa/isa_dma.c optional isa
|
|
sparc64/isa/ofw_isa.c optional ebus | isa
|
|
sparc64/pci/apb.c optional pci
|
|
sparc64/pci/ofw_pci.c optional pci
|
|
sparc64/pci/ofw_pcib.c optional pci
|
|
sparc64/pci/ofw_pcib_subr.c optional pci
|
|
sparc64/pci/ofw_pcibus.c optional pci
|
|
sparc64/pci/ofw_pci_if.m optional pci
|
|
sparc64/pci/psycho.c optional pci
|
|
sparc64/sbus/dma_sbus.c optional sbus
|
|
sparc64/sbus/sbus.c optional sbus
|
|
sparc64/sbus/lsi64854.c optional sbus
|
|
sparc64/sparc64/autoconf.c standard
|
|
sparc64/sparc64/bus_machdep.c standard
|
|
sparc64/sparc64/cache.c standard
|
|
sparc64/sparc64/cheetah.c standard
|
|
sparc64/sparc64/clock.c standard
|
|
sparc64/sparc64/counter.c standard
|
|
sparc64/sparc64/db_disasm.c optional ddb
|
|
sparc64/sparc64/db_interface.c optional ddb
|
|
sparc64/sparc64/db_trace.c optional ddb
|
|
sparc64/sparc64/db_hwwatch.c optional ddb
|
|
sparc64/sparc64/dump_machdep.c standard
|
|
sparc64/sparc64/elf_machdep.c standard
|
|
sparc64/sparc64/exception.S standard no-obj
|
|
sparc64/sparc64/eeprom.c optional eeprom ebus | eeprom fhc | \
|
|
eeprom sbus
|
|
sparc64/sparc64/gdb_machdep.c optional gdb
|
|
sparc64/sparc64/identcpu.c standard
|
|
sparc64/sparc64/in_cksum.c optional inet
|
|
sparc64/sparc64/interrupt.S standard no-obj
|
|
sparc64/sparc64/intr_machdep.c standard
|
|
sparc64/sparc64/iommu.c standard
|
|
sparc64/sparc64/locore.S standard no-obj
|
|
sparc64/sparc64/machdep.c standard
|
|
sparc64/sparc64/mem.c optional mem
|
|
sparc64/sparc64/mp_exception.S optional smp
|
|
sparc64/sparc64/mp_locore.S optional smp
|
|
sparc64/sparc64/mp_machdep.c optional smp
|
|
sparc64/sparc64/nexus.c standard
|
|
sparc64/sparc64/ofw_bus.c standard
|
|
sparc64/sparc64/ofw_machdep.c standard
|
|
sparc64/sparc64/pmap.c standard
|
|
sparc64/sparc64/prof_machdep.c optional profiling-routine
|
|
sparc64/sparc64/rtc.c optional rtc ebus | rtc isa
|
|
sparc64/sparc64/rwindow.c standard
|
|
sparc64/sparc64/sc_machdep.c optional sc
|
|
sparc64/sparc64/spitfire.c standard
|
|
sparc64/sparc64/support.S standard
|
|
sparc64/sparc64/sys_machdep.c standard
|
|
sparc64/sparc64/swtch.S standard
|
|
sparc64/sparc64/tick.c standard
|
|
sparc64/sparc64/tlb.c standard
|
|
sparc64/sparc64/trap.c standard
|
|
sparc64/sparc64/tsb.c standard
|
|
sparc64/sparc64/uio_machdep.c standard
|
|
sparc64/sparc64/vm_machdep.c standard
|