History log of /freebsd-10-stable/sys/modules/acpi/
Revision Date Author Comments
256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


250838 20-May-2013 jkim

Merge ACPICA 20130517.


250363 08-May-2013 takawata

A driver for Intel Rapid Start Technology ACPI device.
Note that it is just for 'Advanced' configuration for Rapid start technology.


249663 19-Apr-2013 jkim

Merge ACPICA 20130418.


246849 15-Feb-2013 jkim

Merge ACPICA 20130214.


243347 20-Nov-2012 jkim

Merge ACPICA 20121114.


239340 16-Aug-2012 jkim

Merge ACPICA 20120816.


238381 11-Jul-2012 jkim

Merge ACPICA 20120711.


237981 02-Jul-2012 mav

Add acpi_asus_wmi(4) -- driver for random extras found on WMI-compatible
Asus laptops. It is alike to acpi_asus(4), but uses WMI interface instead
of separate ACPI device.

On Asus EeePC T101MT netbook it allows to handle hotkeys and on/off WLAN,
Bluetooth, LCD backlight, camera, cardreader and touchpad.

On Asus UX31A ultrabook it allows to handle hotkeys, on/off WLAN, Bluetooth,
Wireless LED, control keyboard backlight brightness, monitor temperature
and fan speed. LCD brightness control doesn't work now for unknown reason,
possibly requiring some video card initialization.

Sponsored by: iXsystems, Inc.


231844 16-Feb-2012 jkim

Merge ACPICA 20120215.


229989 11-Jan-2012 jkim

Merge ACPICA 20120111.


228110 28-Nov-2011 jkim

Merge ACPICA 20111123.


220663 15-Apr-2011 jkim

Merge ACPICA 20110413.


218590 12-Feb-2011 jkim

Merge ACPICA 20110211.


216471 15-Dec-2010 jkim

Merge ACPICA 20101209.


215201 12-Nov-2010 jkim

Warn users that acpi.ko is deprecated and exit immediately unless the user
set FORCE_BUILD. This is to avoid foot-shooting while making MFC to stable
branches easier.

Discussed with: jhb


215200 12-Nov-2010 jkim

MFamd64: (based on) r209957

Move logic of building ACPI headers for acpi_wakeup.c into better places,
remove intermediate makefile and shell script, and reduce diff between i386
and amd64.


215072 10-Nov-2010 jkim

Refactor acpi_machdep.c for amd64 and i386, move APM emulation into a new
file acpi_apm.c, and place it on sys/x86/acpica.


215012 08-Nov-2010 jhb

Move the MADT parser for amd64 and i386 to sys/x86/acpica now that it is
identical on both platforms.


215007 08-Nov-2010 jhb

Disconnect acpi.ko from the build on i386. ACPI is now only supported when
compiled into the kernel, not as a loadable module.


213884 14-Oct-2010 jkim

Stop hard coding nm(1) and make it overridable.


212761 16-Sep-2010 jkim

Merge ACPICA 20100915.


211690 23-Aug-2010 imp

MFtbemd:

Use MACHINE_CPUARCH in preference to MACHINE_ARCH. The former is the
source code location of the machine, the latter the binary output. In
general, we want to use MACHINE_CPUARCH instead of MACHINE_ARCH unless
we're tesitng for a specific target. The isn't even moot for
i386/amd64 where there's momemntum towards a MACHINE_CPUARCH == x86,
although a specific cleanup for that likely would be needed...


210976 06-Aug-2010 jkim

Merge ACPICA 20100806.


210477 25-Jul-2010 rpaulo

Remove the acpi_aiboost driver. It has been replaced by aibs(4).


210005 13-Jul-2010 jkim

Define SMP unconditionally for amd64 and remove opt_global.h from SRCS.
Note it is done just for correctness sake because we do not build, ship, or
support acpi.ko on amd64.

Prodded by: bde


209957 12-Jul-2010 jkim

Move i386-inherited logic of building ACPI headers for acpi_wakeup.c into
better places and remove intermediate makefile and shell scripts. This
makes parallel kernel build little bit safer for amd64.


209523 25-Jun-2010 rpaulo

Import the acpi_aibs(4) driver written by Constantine A. Murenin.
It has more features than acpi_aiboost(4) and it will eventually replace
acpi_aiboost(4).

Submitted by: Constantine A. Murenin <cnst at FreeBSD.org>
Reviewed by: freebsd-acpi, imp
MFC after: 1 month


207344 28-Apr-2010 jkim

Merge ACPICA 20100428.


204877 08-Mar-2010 jkim

Enable ACPI module build on amd64. Although we strongly recommend building
it into kernel, there is no need to prevent it from building at all.


204874 08-Mar-2010 jkim

Update module Makefile for ACPICA 20100304.

Submitted by: Paul B Mahol (onemda at gmail dot com)


199338 16-Nov-2009 jkim

Add a forgotten module Makefile change from the previous commit.


197688 01-Oct-2009 jkim

Compile ACPI debugger and disassembler for kernel modules unconditionally.
These files will generate almost empty object files without ACPI_DEBUG/DDB
options. As a result, size of acpi.ko will increase slightly.


197105 11-Sep-2009 jkim

Catch up with ACPICA 20090903.


194701 23-Jun-2009 rpaulo

* Driver for ACPI WMI (Windows Management Instrumentation)
* Driver for ACPI HP extra functionations, which required
ACPI WMI driver.

Submitted by: Michael <freebsdusb at bindone.de>
Approved by: re
MFC after: 2 weeks


194313 16-Jun-2009 jkim

Fix a typo from the previous commit.


194312 16-Jun-2009 jkim

Sync acpi(4) kld module Makefile with conf/options.


193530 05-Jun-2009 jkim

Import ACPICA 20090521.


188516 12-Feb-2009 n_hibma

Fix a few problems related to building modules in /sys/modules (not
checked whether this applies to builds in /sys/*/compile/* as well):

- Create empty opt_*.h files were missing
- Hook up svr4 to the build. It compiles fine here, so no reason to
disconnect it in the Makefile. were missing
- Hook up svr4 to the build. It compiles fine here, so no reason to
disconnect it in the Makefile.


172313 24-Sep-2007 njl

Rewrite the EC driver event model. The main goal is to avoid
polling/interrupt-driven fallback and instead use polling only during
boot and pure interrupt-driven mode after boot. Polled mode could be
relegated completely to a legacy role if we could enable interrupts
during boot. Polled mode can be forced after boot by setting
debug.acpi.ec.polled="1", i.e. if there are timeouts.

- Use polling only during boot, shutdown, or if requested by the user.
Otherwise, use a generation count of GPEs, incremented atomically. This
prevents an old status value from being used if the EC is really slow
and the same condition (i.e. multiple IBEs for a write transaction) is
being checked.
- Check for and run the query handler directly if the SCI bit is set in
the status register during boot. Previously, the query handler wouldn't
run until interrupts were finally enabled late in boot.
- During boot and after starting a command, check if the event appears
to already have occurred before we even start waiting. If so, it's
possible the EC is very slow and we might accept an old status value.
Print a warning in this case. Once we've booted, interrupt-driven mode
should work just fine but polled mode could be unreliable. There's not
much more we can do about this until interrupts are enabled during boot.
- In the above case, we also do one final check if the interrupt-driven
mode gets a timeout. If the status is complete, it will force the
system back into polled mode since interrupt mode doesn't work. For
polled mode during boot, if the status appears to be already complete
before beginning the check loop, it waits 10 us before actually checking
the status, just in case the EC is really slow and hasn't gotten to work
on the new request yet.
- Use upper-case hex for the _Qxx method
- Use device_printf for errors, don't hide them under verbose
- Increase default total timeout to 750 ms and decrease polling interval
to 5 us.
- Don't pass the status value via the softc. Just read it directly.
- Remove the mutex. We use the sx lock for transaction serialization
with the query handler.
- Remove the Intel copyright notice as no code of theirs was ever
present in this file (verified against rev 1.1)
- Allow KTR module-only builds for ease of testing

Thanks to jkim and Alexey Starikovskiy for helpful discussions and testing.

Approved by: re
MFC after: 2 weeks


171021 24-Jun-2007 njl

Make acpica include path relative, not absolute.

Approved by: re


167814 22-Mar-2007 jkim

Catch up with ACPI-CA 20070320 import.


165320 18-Dec-2006 takawata

Hook acpi gadget driver modules to other acpi archs.


164150 10-Nov-2006 emaste

Clarify the error message when trying to build an ACPI module on amd64
or ia64.

The old message implied to me that ACPI can't be compiled in on platforms
other than amd64 and ia64. The amd64@ mailing list archive has messages
from users with the same confusion.

Approved by: scottl


163780 30-Oct-2006 takawata

Hook acpi_aiboost module to build.


163778 30-Oct-2006 takawata

Driver for some ASUS desktop motherboard extras.
Though it is named after overclocking tool for ASUS motherboards,
it is not capable to change clock ratio or CPU core voltage.

This driver exports Templature, Power output voltage, Fan RPM under
dev.acpi_aiboost.0.*.

Descriptions for these values are set to sysctl describe, which can be
get by sysctl -d.


159066 30-May-2006 ru

Dike out WARNS from kernel module makefiles. Kernels and modules
use a different mechanism for setting warning flags, and using
WARNS here only has null or negative effects.

Submitted by: bde (I think it means "submitted")


157774 15-Apr-2006 iwasaki

Import ACPI Dock Station support. Note that this is still very young.
Additional detach implementaions (or maybe improvement) for other
deivce drivers is required.

Reviewed by: njl, imp
MFC after: 1 week


156775 16-Mar-2006 ru

NO_MAN is not needed here.


151948 01-Nov-2005 jkim

Catch up with ACPI-CA 20051021 import


151913 31-Oct-2005 phk

Tie acpi_hpet.c into the module and kernel.


151565 23-Oct-2005 njl

Hook acpi_smbat up to the build.


151350 14-Oct-2005 yar

Let modules use the kernel's opt_*.h files if built along with
the kernel by wrapping all targets for fake opt_*.h files in
.if defined(KERNBUILDDIR). Thus, such fake files won't be
created at all if modules are built with the kernel.

Some modules undergo cleanup like removing unused or unneeded
options or .h files, without which they wouldn't build this way
or the other.

Reviewed by: ru
Tested by: no binary changes in modules built alone
Tested on: i386 sparc64 amd64


146020 09-May-2005 marks

Fix separate module build.

Submitted by: njl


145397 22-Apr-2005 iedowse

Pick up the selectors to use for various kernel segments from assym.s
instead of assuming fixed offsets within the GDT. The hard-coded
values here have been incorrect since Peter's GDT rearranging around
10 days ago, causing ACPI resume problems.

Reviewed by: peter


143794 18-Mar-2005 philip

Add acpi_fujitsu for handling acpi-controlled buttons on Fujitsu laptops.

Submitted by: Anish Mistry <mistry.7 -at- osu.edu>
Reviewed by: njl
X-MFC after: 5.4-RELEASE


142397 24-Feb-2005 njl

Move acpi_perf and acpi_throttle into acpi.ko. Remove the acpi_perf
build structure.


141418 06-Feb-2005 njl

Hook acpi_throttle(4) up to the build. It's currently part of acpi_perf.ko
although this may change.


141243 04-Feb-2005 njl

Hook up the cpufreq framework, acpi_perf(4), and cpufreq(4) drivers.


139103 21-Dec-2004 ru

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


138778 13-Dec-2004 imp

Make this compile when you don't have /sys.


138775 13-Dec-2004 scottl

Remove the addition of ACPI_DEBUG that was accidentally added in the last
commit.


138774 13-Dec-2004 scottl

Allow the acpi_ibm module to be built with ACPI_DEBUG.


138772 13-Dec-2004 scottl

Make sure that opt_ddb.h exists so that this will compile with ACPI_DEBUG


138632 09-Dec-2004 takawata

Connect acpi_ibm to build.

Submitted by: rushani, sumikawa


138627 09-Dec-2004 takawata

Add IBM Laptop extra device driver.
This depends on ACPI and RTC registers.

Reviewed by: njl


137843 18-Nov-2004 imp

this should have been deleted a while ago


137732 15-Nov-2004 nyan

PC98 does not have ACPI.


137715 15-Nov-2004 imp

After discussions with Nate, repo copy the acpi assist drivers from
i386 to dev/acpi_support. In theory, these devices could be found
other than in i386 machines only as amd64 becomes more popular. These
drivers don't appear to do anything i386 specific, so move them to
dev/acpi_support. Move config lines to files so that those
architectures that don't support kernel modules can build them into
the kernel. At the same time, rename acpi_snc to acpi_sony to follow
the lead of all the other specialty devices.


137702 14-Nov-2004 scottl

Make it clear that the acpi modules can only be compiled on i386.


137593 11-Nov-2004 imp

Commit takawata-san's Sony Notebook Controller driver, integrated into
the tree. Small tweaks were made by myself to eliminate unnecessary
includes and some other minor issues. Last time I asked takawata-san
about this driver, he suggested I commit it.

Submitted by: takawata


133093 03-Aug-2004 njl

Bump WARNS to 2 for all other ACPI drivers and minor cleanup.


132501 21-Jul-2004 nyan

Add the ACPI Panasonic extras driver.

Submitted by: OGAWA Takaya <t-ogawa@triaez.kaisei.org> and nyan


131388 01-Jul-2004 marks

Set WARNS=2 for the module build of ACPI.

Approved by: njl


131314 30-Jun-2004 njl

Add glue for building acpi_quirk.c


131279 29-Jun-2004 njl

Add acpi_if.h dependencies to module build.


128587 23-Apr-2004 philip

Enable the led-toggling magic. Compiling files which are in the kernel into
modules is a very nice way to produce hard-to-find panics. Who would look for
a bug in a Makefile anyway?

Has anyone seen the pointy hat? :-o

Approved by: njl (mentor)


128571 23-Apr-2004 philip

Hook up acpi_asus and its manual page in two more places I managed to overlook
last night. Sorry about that :-o

Spotted by: njl (mentor, spotter of forgetfulness)


128562 22-Apr-2004 philip

Missed this out in my last commit. Makefile for the acpi_asus driver.


128509 21-Apr-2004 njl

Divide the drivers into essential (pci, thermal) and mobile (lid,
battery, etc.)


126431 01-Mar-2004 njl

Hook acpi_video up to the build.


126430 01-Mar-2004 njl

Add the ACPI standard video extensions driver. I've done some style cleanup
but a bit more reamins to be done. For now, it is usable.

Submitted by: Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>


126369 28-Feb-2004 njl

Clean all the object files whether or not ACPI_DEBUG is specified.


124476 13-Jan-2004 nyan

Include "../Makefile.inc" to propagate the configuration to subdirectories.


124441 12-Jan-2004 njl

Hook up acpi_toshiba


124385 11-Jan-2004 njl

Add the ACPI Toshiba extras driver (hotkeys, LCD backlight, video output,
forced fan control, and CPU throttling).

Submitted by: Hiroyuki Aizu <aizu@navi.org>


124255 08-Jan-2004 njl

Always clean all files, including ones under ACPI_DEBUG when doing a
"make clean".


123962 29-Dec-2003 bde

Use double quotes instead of single quotes for echos to build options
headers as in most other modules Makefiles (5 yesterday, none now).
Fixed any simple nearby style bugs (not many).


123795 24-Dec-2003 njl

Move the acpi module down a directory. This will allow us to import
other ACPI-specific drivers into sys/modules/acpi/.


123163 05-Dec-2003 jhb

Remove SMP option support from building the ACPI module as it is no longer
needed.

Approved by: re (murray)
Requested by: njl


123134 03-Dec-2003 jhb

Add madt.c to the list of sources for i386.

Approved by: re (scottl / blanket)


122995 26-Nov-2003 njl

* Add acpi_pcpu_get_id(idx, *acpi_id, *cpu_id) which fetches the
idx'th present CPU with pc_acpi_id equal to *acpi_id. If *acpi_id
does not match that processor's pc_acpi_id, return the value for
ProcId derived from the MADT in *acpi_id. If pc_acpi_id is 0xffffffff,
always override it with the value of *acpi_id. Finally, return
pc_cpuid in *cpu_id and use that as our primary key.

* Use pc_cpuid as our unique key because we know it is valid since
MD code set it. The values for ProcId in the ASL and MADT don't
match up on some machines (!), forcing us to fall back to ordered
probing in that case.

* Remove some #ifdef SMP since the refcount doesn't hurt performance
and will be needed for dynamic _CST objects. Only one #ifdef SMP
(for smp_rendezvous) remains.

* Hook up SMP in the compile flags in the Makefile.

Tested by: marcel, truckman
Approved by: re (scottl)


122766 15-Nov-2003 njl

Implement Cx CPU idle states and updated throttling support.

* Use the cpu_idle_hook() to do idling for C1-C3.
* Use both _CST and the FADT to detect Cx states.
* Use both _PTC and P_CNT for controlling throttling.
* Add a notify handler to detect changes in _CST and _PSS
* Call the _INI function for each processor if present. This will be
done by ACPI-CA in the future.
* Fix a bug on SMP systems where CPUs will attach multiple times if the
bus is rescan.
* Document new sysctls for controlling idling.


119549 29-Aug-2003 njl

Use the ACPICA AcpiEnterSleepStateS4bios instead of rolling our own. This
change also disables interrupts around non-S4 suspends whereas before we
did not do this. Our version of AcpiEnterSleepStateS4bios was almost
identical to the ACPICA version.


117647 15-Jul-2003 njl

Fix the ACPI_DEBUG build for the non-module case. Move the #define into
acfreebsd.h and remove it from the Makefile. Now ACPI_DEBUG implies
ACPI_DISASSEMBLER.

Noticed by: marcel


117562 14-Jul-2003 njl

Fix build with ACPI_DEBUG option.

Reported by: Mark Santcroos <marks@ripe.net>, des+tinderbox


117339 08-Jul-2003 jhb

Add an ACPI to ISA psuedo bridge driver. It attaches an isab(4) device to
ACPI nodes with the plug and play ID's defined for a "Generic ISA Bus
Device" as defined in section 10.7 of the ACPI 2.0 specification. This
gives machines like the Libretto that contain a fake ISA bus that is not
connected via a PCI-ISA bridge an ISA bus for ISA devices to attach to.

Tested by: markm


114246 29-Apr-2003 njl

Support functions for the new ACPI import.
* AcpiOsDerivePciId(): finds a bus number, given the slot/func and the
acpi parse tree.
* AcpiOsPredefinedOverride(): use the sysctl hw.acpi.os_name to
override the value for _OS.

Ideas from: takawata, jhb
Reviewed by: takawata, marcel
Tested on: i386, ia64


104494 05-Oct-2002 iwasaki

Add code for ACPI PCI link object manipulation.
This allocate the best IRQ to boot-disable devices (have IRQ 0).
Allocated IRQ will be used for PCI interrupt routing when ACPI is
enabled.

Note that verbose messaging enabled for the time being so that
people can easily notice the strange behavior if it happened.


102483 27-Aug-2002 bde

Removed explicit rule for creating a null opt_bus.h. kmod.mk does this
automatically once opt_foo.h is in SRCS, modulo some carelessness in
removing garbage in stale versions of opt_foo.h (touch(1) should not
be used to create opt_foo.h in kmod.mk or elsewhere).

Cleaned up nearby rule for creating opt_ddb.h.


102460 26-Aug-2002 jhb

Have to create opt_bus.h for sys/bus.h to be happy. *sigh*

Noticed by: imp and others


102453 26-Aug-2002 jhb

Oops, forgot to hook up the ACPI PCI bus in the module.

Noticed by: imp


102449 26-Aug-2002 jhb

Hook up the new ACPI PCI bus and catch up to ACPI PCI bridge driver changes.


100969 30-Jul-2002 iwasaki

Resolve conflicts arising from the ACPI CA 20020725 import.


99682 09-Jul-2002 iwasaki

Resolve conflicts arising from the ACPI CA 20020611 import.


91640 04-Mar-2002 iwasaki

Add generalized power profile code.
This makes other power-management system (APM for now) to be able to
generate power profile change events (ie. AC-line status changes), and
other kernel components, not only the ACPI components, can be notified
the events.

- move subroutines in acpi_powerprofile.c (removed) to kern/subr_power.c
- call power_profile_set_state() also from APM driver when AC-line
status changes
- add call-back function for Crusoe LongRun controlling on power
profile changes for a example


88420 22-Dec-2001 iwasaki

Add OS layer ACPI mutex and threading support.
- Temporary fix a bug of Intel ACPI CA core code.
- Add OS layer ACPI mutex support. This can be disabled by
specifying option ACPI_NO_SEMAPHORES.
- Add ACPI threading support. Now that we have a dedicate taskqueue for
ACPI tasks and more ACPI task threads can be created by specifying option
ACPI_MAX_THREADS.
- Change acpi_EvaluateIntoBuffer() behavior slightly to reuse given
caller's buffer unless AE_BUFFER_OVERFLOW occurs. Also CM battery's
evaluations were changed to use acpi_EvaluateIntoBuffer().
- Add new utility function acpi_ConvertBufferToInteger().
- Add simple locking for CM battery and temperature updating.
- Fix a minor problem on EC locking.
- Make the thermal zone polling rate to be changeable.
- Change minor things on AcpiOsSignal(); in ACPI_SIGNAL_FATAL case,
entering Debugger is easier to investigate the problem rather than panic.


86133 06-Nov-2001 iwasaki

Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support.
- Add S4BIOS sleep implementation. This will works well if MIB
hw.acpi.s4bios is set (and of course BIOS supports it and hibernation
is enabled correctly).
- Add DSDT overriding support which is submitted by takawata originally.
If loader tunable acpi_dsdt_load="YES" and DSDT file is set to
acpi_dsdt_name (default DSDT file name is /boot/acpi_dsdt.aml),
ACPI CA core loads DSDT from given file rather than BIOS memory block.
DSDT file can be generated by iasl in ports/devel/acpicatools/.
- Add new files so that we can add our proposed additional code to Intel
ACPI CA into these files temporary. They will be removed when
similar code is added into ACPI CA officially.


85760 31-Oct-2001 msmith

Update to reflect files added/removed with the 20011018 ACPI CA update.


85556 26-Oct-2001 iwasaki

Add APM compatibility feature to ACPI.
This emulates APM device node interface APIs (mainly ioctl) and
provides APM services for the applications. The goal is to support
most of APM applications without any changes.
Implemented ioctls in this commit are:
- APMIO_SUSPEND (mapped ACPI S3 as default but changable by sysctl)
- APMIO_STANDBY (mapped ACPI S1 as default but changable by sysctl)
- APMIO_GETINFO and APMIO_GETINFO_OLD
- APMIO_GETPWSTATUS

With above, many APM applications which get batteries, ac-line
info. and transition the system into suspend/standby mode (such as
wmapm, xbatt) should work with ACPI enabled kernel (if ACPI works well :-)

Reviewed by: arch@, audit@ and some guys


84499 04-Oct-2001 msmith

Update list of sources to match 20010920 snapshot.


83151 06-Sep-2001 nyan

Use MACHINE_ARCH instead of MACHINE to fix pc98 module.


82538 30-Aug-2001 msmith

Update for slightly changed ACPI OSD module. Make debugging code conditional
on ACPI_DEBUG, so we can set it in /etc/make.conf.


80028 20-Jul-2001 takawata

Add ACPI S2-S4BIOS Suspend/Resume code.
Some problems may remain.

Reviewed by:iwasaki


79410 07-Jul-2001 msmith

Ha! This time, I remembered the ACPI module. Update the sources list
to reflect recent changes in the code.


78930 28-Jun-2001 takawata

Follow Mike's commit by adding acpi_powerres.c.


77483 30-May-2001 takawata

Fix include path for recent acpica update.


77431 29-May-2001 msmith

New files for the ACPI CA 20010518 update.


71985 04-Feb-2001 peter

Zap some bad examples:
opt_foo.h:
touch opt_foo.h
.. is unnecessary - kmod.mk does this for us.


71886 31-Jan-2001 scottl

Update the module Makefile to reflect the state of things from the last
acpi-ca import.

Approved by: msmith


70711 06-Jan-2001 obrien

Use a consistent style and one much closer to the rest of /usr/src


70271 22-Dec-2000 takawata

Add ACPI AC adaptor and ACPI Control Method Battery.
And install notify handler for thermal zone .


69607 05-Dec-2000 takawata

Update Makefile to follow acpica-1115 import.


68036 31-Oct-2000 takawata

Makefile for ACPI CA base acpi driver kernel module.
This module is intended to be loaded from /boot/loader,not from kldload(8).