package genconfig

configuration conf {
	@Runlevel(0) include embox.arch.system(core_freq=1000000000)
	@Runlevel(0) include embox.arch.e2k.arch(cpu_count=8)
	@Runlevel(0) include embox.arch.e2k.x86_boot
	@Runlevel(0) include embox.arch.generic.arch
	@Runlevel(0) include embox.arch.e2k.libarch
	@Runlevel(0) include embox.arch.e2k.interrupt
	@Runlevel(0) include embox.arch.e2k.context
	@Runlevel(0) include embox.arch.e2k.vfork

	@Runlevel(0) include embox.arch.e2k.mmu
	include embox.arch.e2k.mmuinfo

	include embox.kernel.spinlock(spin_debug = false)
	@Runlevel(1) include embox.driver.clock.e2k_clock(mc_timer_shift=0x114, irq_num=2, freq=2000)

//	@Runlevel(1) include embox.driver.clock.lapic_timer
	include embox.kernel.time.jiffies(cs_name="e2k_clock")

	@Runlevel(1) include embox.driver.serial.am85c30(base_addr=0x81200040)
	@Runlevel(1) include embox.driver.diag(impl="embox__driver__serial__am85c30")

	@Runlevel(1) include embox.driver.interrupt.ioapic
	@Runlevel(1) include embox.driver.interrupt.ioapic_regs_e2k
	@Runlevel(1) include embox.driver.interrupt.lapic_regs_e2k

	include embox.driver.pci

	@Runlevel(1) include embox.driver.periph_memory

	include embox.driver.pci_chip.pci_chip_elbrus(pci_cfg_base=0x200000)
	@Runlevel(1) include embox.driver.video.lynxfb
	@Runlevel(2) include embox.driver.net.loopback
	@Runlevel(1) include embox.driver.net.mcst.l_e1000

	include embox.driver.block_dev

	include embox.driver.tty.task_breaking_enable	

	@Runlevel(1) include embox.kernel.timer.sys_timer
	@Runlevel(1) include embox.kernel.time.kernel_time

	@Runlevel(2) include embox.kernel.task.multi
	@Runlevel(2) include embox.kernel.stack(stack_size=0x100000)
	@Runlevel(2) include embox.kernel.thread.core(thread_stack_align=4096, thread_stack_size=0x100000)
	@Runlevel(2) include embox.kernel.sched.strategy.priority_based
	@Runlevel(2) include embox.kernel.timer.sleep
	@Runlevel(2) include embox.kernel.timer.strategy.head_timer
	@Runlevel(2) include embox.kernel.irq
	@Runlevel(2) include embox.kernel.critical
	include embox.kernel.thread.signal.sigstate

	@Runlevel(1) include embox.mem.bitmask

	include embox.mem.heap_bm
	include embox.compat.libc.math_simple
	@Runlevel(2) include embox.compat.posix.proc.waitpid
	@Runlevel(2) include embox.compat.posix.proc.pid
	include embox.compat.posix.sys.mman.mmap

/* ramdisk section */
	@Runlevel(2) include embox.fs.dvfs.core
	@Runlevel(2) include embox.fs.driver.fat_dvfs
	@Runlevel(2) include embox.fs.driver.initfs_dvfs
	@Runlevel(2) include embox.fs.rootfs_dvfs
	include embox.compat.posix.file_system_dvfs
	include embox.fs.driver.devfs_dvfs
	include embox.fs.driver.ramfs_dvfs(ramfs_file_size=81920000, ramfs_quantity=1, inode_quantity=256)
	include embox.driver.ramdisk(ramdisk_quantity=1)
	include embox.driver.static_ramdisk(ramdisk_name="static_ramdisk", size=81920000, block_size=512)

	@Runlevel(1) include embox.test.kernel.timer_test
	@Runlevel(1) include embox.test.hal.context_switch_test(stack_sz = 0x10000)
	@Runlevel(1) include embox.test.kernel.thread.thread_priority_test(threads_quantity=10)
	@Runlevel(1) include embox.test.kernel.thread.thread_test
	@Runlevel(1) include embox.test.kernel.task.multitask_test
	@Runlevel(1) include embox.test.posix.vfork_test


	include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0")
	include embox.cmd.source_cmd
	include embox.cmd.sh.tish(
				prompt="%u@%h:%w%$", rich_prompt_support=1,
				builtin_commands="exit logout cd export mount umount")
	include embox.cmd.service

	include embox.cmd.help
	include embox.cmd.sys.uname
	include embox.cmd.sys.env
	include embox.cmd.sys.export
	include embox.cmd.sys.version
	include embox.cmd.sys.date
	include embox.cmd.sys.time

	include embox.cmd.testing.ticker
//	include embox.cmd.testing.fb_devfs_access
//	include embox.cmd.testing.fb_direct_access

	include embox.cmd.lspci

	include embox.cmd.mmuinfo
	include embox.cmd.hw.mmutrans
	include embox.cmd.hw.mem

	include embox.cmd.fs.dd
	include embox.cmd.fs.ls
	include embox.cmd.fs.cat
	include embox.cmd.fs.mkdir
	include embox.cmd.fs.touch
	include embox.cmd.fs.mount
	include embox.cmd.fs.echo
	include embox.cmd.fs.cp

	include embox.cmd.proc.top
	include embox.cmd.proc.ps

	include embox.cmd.net.arp
	include embox.cmd.net.netstat
	include embox.cmd.net.arping
	include embox.cmd.net.rarping
	include embox.cmd.net.ifconfig
	include embox.cmd.net.ping
	include embox.cmd.net.iptables
	include embox.cmd.net.route
	include embox.cmd.net.ftp
	include embox.cmd.net.tftp
	include embox.cmd.net.snmpd
	include embox.cmd.net.ntpdate
	include embox.cmd.net.ntpd
	include embox.cmd.net.telnetd
	include embox.cmd.net.nslookup
	include embox.cmd.net.getmail
	include embox.cmd.net.sendmail
	include embox.cmd.net.httpd
	include embox.cmd.net.httpd_cgi(use_real_cmd=true, use_parallel_cgi=false)
	include embox.service.http_admin
	include embox.service.http_admin_iface_list(is_readonly=true)
	include embox.service.http_admin_iface_html
	include embox.demo.website
	include embox.cmd.net.netmanager
	include embox.cmd.net.net_service

//	include third_party.cmd.lua(luasocket_support=true)
//	include third_party.lib.luasocket

	include third_party.tinypy

	@Runlevel(2) include embox.net.core
	@Runlevel(2) include embox.net.skbuff(amount_skb=4000)
	@Runlevel(2) include embox.net.skbuff_data(
				amount_skb_data=4000, data_size=0x600,
				data_align=4, data_padto=1,ip_align=true)
	@Runlevel(2) include embox.net.skbuff_extra(
				amount_skb_extra=128,extra_size=10,extra_align=1,extra_padto=1)
	@Runlevel(2) include embox.net.socket
	@Runlevel(2) include embox.net.dev
	@Runlevel(2) include embox.net.af_inet
	@Runlevel(2) include embox.net.ipv4
	@Runlevel(2) include embox.net.arp
	@Runlevel(2) include embox.net.rarp
	@Runlevel(2) include embox.net.icmpv4
	@Runlevel(2) include embox.net.udp
	@Runlevel(2) include embox.net.tcp
	@Runlevel(2) include embox.net.udp_sock
	@Runlevel(2) include embox.net.tcp_sock
	@Runlevel(2) include embox.net.raw_sock
	@Runlevel(2) include embox.net.net_entry
}
