package genconfig

configuration conf {
	include embox.arch.x86.kernel.cpu_idle
	include embox.arch.x86.kernel.locore
	include embox.arch.x86.kernel.context
	include embox.arch.x86.kernel.interrupt

	//@Runlevel(0) include embox.mem.vmem
	@Runlevel(0) include embox.mem.phymem

	include embox.arch.x86.mmu
	@Runlevel(2) include embox.test.mmu_core

	include embox.arch.x86.vfork

	include embox.arch.x86.libarch
	//include embox.arch.x86.cpu_info_x86

	@Runlevel(0) include embox.kernel.stack(stack_size=0x100000)

	include embox.arch.x86.stackframe
	include embox.lib.debug.whereami

	@Runlevel(2) include embox.driver.interrupt.i8259
	@Runlevel(2) include embox.driver.clock.pit
	include embox.kernel.time.jiffies(cs_name="pit")

	@Runlevel(2) include embox.driver.serial.i8250_diag(baud_rate=38400)
	@Runlevel(2) include embox.driver.diag(impl="embox__driver__serial__i8250_diag")
	@Runlevel(2) include embox.driver.serial.i8250_ttyS0(baud_rate=38400)

	@Runlevel(2) include embox.driver.net.virtio	
	@Runlevel(2) include embox.driver.net.loopback
	@Runlevel(2) include embox.profiler.tracing
	@Runlevel(2) include embox.driver.virtual.null
	@Runlevel(2) include embox.driver.virtual.zero

	@Runlevel(1) include embox.driver.ide
	@Runlevel(2) include embox.fs.node(fnode_quantity=1024)
	@Runlevel(2) include embox.fs.driver.fat
	@Runlevel(2) include embox.fs.driver.cdfs
	@Runlevel(2) include embox.fs.driver.initfs
	@Runlevel(2) include embox.fs.driver.nfs
	@Runlevel(2) include embox.fs.driver.ramfs(ramfs_file_size=33554432,inode_quantity=4)
	@Runlevel(2) include embox.fs.rootfs_oldfs

	include embox.driver.ramdisk(size=130008864,ramdisk_quantity=2)
	include embox.cmd.fs.mkramdisk
	include embox.cmd.net.netmanager


	@Runlevel(1) include embox.kernel.timer.sys_timer
	@Runlevel(1) include embox.kernel.time.kernel_time
	include embox.kernel.thread.signal.sigstate
	include embox.kernel.thread.signal.siginfoq

	@Runlevel(2) include embox.kernel.task.multi
	@Runlevel(2) include embox.kernel.thread.core(thread_pool_size=30, 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

	@Runlevel(2) include embox.mem.pool_adapter
	@Runlevel(2) include embox.mem.bitmask
	@Runlevel(2) include embox.mem.static_heap(heap_size=134217728)
	@Runlevel(2) include embox.mem.heap_bm(heap_size=134217728)

	@Runlevel(2) include embox.cmd.sh.tish(prompt="%u@%h:%w%$", rich_prompt_support=1, builtin_commands="exit logout cd export mount umount")
	//@Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0", shell_start=1, stop_on_error=true)
	include embox.init.system_start_service(log_level="LOG_INFO", tty_dev="ttyS0")
	//@Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0", shell_start=1, stop_on_error=true)
	include embox.cmd.service

	include embox.cmd.service
	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.httpd
	include embox.cmd.net.telnetd
	include embox.cmd.net.nslookup
	include embox.cmd.net.getmail
	include embox.cmd.net.sendmail

	include embox.cmd.fs.cat
	include embox.cmd.fs.cd
	include embox.cmd.fs.pwd
	include embox.cmd.fs.ls
	include embox.cmd.fs.rm
	include embox.cmd.fs.mkfs(with_ramdisk=1)
	include embox.cmd.fs.mount
	include embox.cmd.fs.more
	include embox.cmd.fs.umount
	include embox.cmd.fs.stat
	include embox.cmd.fs.echo
	include embox.cmd.fs.touch
	include embox.cmd.fs.mkdir
	include embox.cmd.fs.cp
	include embox.cmd.fs.mv

	include embox.cmd.help
	include embox.cmd.man

	include embox.cmd.sys.uname
	include embox.cmd.sys.env
	include embox.cmd.sys.export
	include embox.cmd.sys.version
	include embox.cmd.sys.shutdown

	include embox.cmd.lsmod
	include embox.cmd.test

	include embox.cmd.ide
	include embox.cmd.lspci

	include embox.cmd.proc.nice
	include embox.cmd.proc.renice

	include embox.cmd.proc.thread
	include embox.cmd.proc.top

	@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=1514,data_align=1,data_padto=1,ip_align=false)
	@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(amount_inet_sock=400)
	@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(amount_tcp_sock=400)
	@Runlevel(2) include embox.net.raw_sock
	@Runlevel(2) include embox.net.net_entry
	include embox.net.lib.dns_file

	@Runlevel(2) include embox.test.net.socket_test(family=2,type=1,proto=0) /* AF_INET, SOCK_STREAM, default */
	@Runlevel(2) include embox.test.net.inet_socket_test(type=1,proto=0) /* SOCK_STREAM, default */
	@Runlevel(2) include embox.test.net.inet_dgram_socket_test(proto=0) /* default */
	@Runlevel(2) include embox.test.net.inet_stream_socket_test(proto=0) /* default */

	@Runlevel(2) include embox.test.net.raw_socket_test

	@Runlevel(2) include embox.lib.libds
	@Runlevel(2) include embox.framework.LibFramework
	@Runlevel(2) include embox.compat.libc.all
	@Runlevel(2) include embox.compat.libc.limits(
		name_max=64,
		path_max=256
	)
	include embox.compat.libc.math_openlibm

	include embox.kernel.thread.thread_local_heap

	include third_party.pjproject.libpj_all

	include third_party.pjproject.pjsua
	include third_party.pjproject.simpleua

	//include third_party.pjproject.pjlib_test
	//include third_party.pjproject.pjlib_util_test
	//include third_party.pjproject.pjmedia_test
	//include third_party.pjproject.pjnath_test
	//include third_party.pjproject.pjsip_test

	//include embox.driver.audio.es1370

	/* TODO 0x1f00 is used to make pjsip working. Currently, it doesn't work
	 * for the bigger values somehow. Probably, you should increase this value
	 * to make 'play' command work well  */
	include embox.driver.audio.intel_ac_pa(log_level="LOG_DEBUG",buffer_size=0x1f00)
	include embox.driver.audio.portaudio_lib(log_level="LOG_DEBUG")

	include embox.cmd.play
	include embox.cmd.record
}
