cp: guest layer revamp, part 1
commitb854a45660ff763cd5f1d324dc86937d374c9ba3
authorJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Sun, 27 Nov 2011 18:43:19 +0000 (27 13:43 -0500)
committerJosef 'Jeff' Sipek <jeffpc@josefsipek.net>
Sun, 27 Nov 2011 18:43:19 +0000 (27 13:43 -0500)
treef09df7a81eb0c47a41472d7810102fb5a33ba8f4
parentdc12987b5333f25e9db38020d3ea10169bf234e0
cp: guest layer revamp, part 1

NOTE: The code compiles but does not run.

The guest handling code and the shell code are *too* intertwined.  They are
separate logically and so the implementation should be too.  This commit
moves a lot of the guest handling code out of the shell source tree and into
the guest tree where it belongs.  Additionally, it is the beginning of a
nice interface (function names guest_*) that the shell can use to control
the guest.

Additionally, this commit "breaks" the console layer in preparation for the
new console handling scheme.  This scheme will allow for guests to login,
logout, disconnect, and reconnect.  The main idea is to have a service guest
(called *LOGIN) that is responsible for displaying the login screens,
getting user credentials, and then informing the CP that a user is at a
particular terminal.  CP will then remove the device from *LOGIN's control
and assign it to a newly allocated virt_sys.  In order for this scheme to
work, several pieces of code need to be written:
  - dynamic virt_device attach / detach (in libguest)
  - *LOGIN guest code
  - dedicated 3215 device handling
  - DIAG mechanism to inform CP that a logon occured

Lastly, this commit moves the IPL-from-device helper into a separate NSS.
This will mean that *all* IPL commands at the shell end up being NSS IPLs.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
34 files changed:
cp/drivers/3215.c
cp/drivers/console.c
cp/drivers/device.c
cp/drivers/objs.cmake
cp/drivers/vdevice.c
cp/guest/init.c
cp/guest/ipl.c [new file with mode: 0644]
cp/guest/objs.cmake
cp/guest/run.c [moved from cp/guest/guest.c with 100% similarity]
cp/guest/system.c [new file with mode: 0644]
cp/include/console.h
cp/include/device.h
cp/include/guest.h [new file with mode: 0644]
cp/include/nucleus.h
cp/include/shell.h
cp/include/vcpu.h
cp/include/vdevice.h
cp/nucleus/init.c
cp/nucleus/printf.c
cp/shell/cmd_beginstop.c
cp/shell/cmd_display.c
cp/shell/cmd_enable.c
cp/shell/cmd_logon.c
cp/shell/cmd_query.c
cp/shell/cmd_system.c
cp/shell/cmds.c
cp/shell/init.c
include/errno.h
lib/errno.c
nss/CMakeLists.txt
nss/ipldev/.gitignore [new file with mode: 0644]
nss/ipldev/CMakeLists.txt [new file with mode: 0644]
nss/ipldev/guest.s [moved from cp/guest/guest_ipl.s with 100% similarity]
nss/ipldev/linker.script [new file with mode: 0644]