#
# Copyright 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Kernel settings that we want to enable for all emulators on all arches
# are stored here.

# Having timestamps in the emu is nice, especially wrt logging.
CONFIG_PRINTK_TIME=y

# The pipe driver in the Android QEMU fork provides for fast access.
# See external/qemu/docs/ANDROID-QEMU-PIPE.TXT for more details.
# NOTE: Disabled temporarily since the pipe is not working with the current
# QEMU prebuilts.
# TODO(b/27486119): Re-enable this.
#CONFIG_GOLDFISH=y
#CONFIG_GOLDFISH_PIPE=y

# Misc virtual drivers we leverage.
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_SCSI=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y

# Enable loop device, used in update_engine_unittests.
CONFIG_BLK_DEV_LOOP=y
