# HG changeset patch # User Josef 'Jeff' Sipek # Date 1333057333 14400 # Node ID 0d289341e7568fc594270c02d571361631497700 # Parent c195a73e020470e28e93d26d48412c73f4a4c5fd cp: maintain a circular buffer of Channel Report Words Signed-off-by: Josef 'Jeff' Sipek diff -r c195a73e0204 -r 0d289341e756 cp/guest/attach.c --- a/cp/guest/attach.c Tue Jul 30 21:58:41 2019 -0400 +++ b/cp/guest/attach.c Thu Mar 29 17:42:13 2012 -0400 @@ -1,17 +1,18 @@ /* - * (C) Copyright 2007-2011 Josef 'Jeff' Sipek + * (C) Copyright 2007-2012 Josef 'Jeff' Sipek * * This file is released under the GPLv2. See the COPYING file for more * details. */ +#include #include #include #include static void guest_append_crw(struct virt_sys *sys, struct crw *crw) { - FIXME("guest CRW was not queued"); + insert_circbuf(&sys->crws, crw); } int guest_attach(struct virt_sys *sys, u64 rdev, u64 vdev) diff -r c195a73e0204 -r 0d289341e756 cp/guest/init.c --- a/cp/guest/init.c Tue Jul 30 21:58:41 2019 -0400 +++ b/cp/guest/init.c Thu Mar 29 17:42:13 2012 -0400 @@ -1,5 +1,5 @@ /* - * (C) Copyright 2007-2011 Josef 'Jeff' Sipek + * (C) Copyright 2007-2012 Josef 'Jeff' Sipek * * This file is released under the GPLv2. See the COPYING file for more * details. @@ -213,6 +213,8 @@ if (!sys) return NULL; + init_circbuf(&sys->crws, struct crw, NUM_CRWS); + if (alloc_console(&sys->console)) goto free; diff -r c195a73e0204 -r 0d289341e756 cp/include/vcpu.h --- a/cp/include/vcpu.h Tue Jul 30 21:58:41 2019 -0400 +++ b/cp/include/vcpu.h Thu Mar 29 17:42:13 2012 -0400 @@ -1,5 +1,5 @@ /* - * (C) Copyright 2007-2011 Josef 'Jeff' Sipek + * (C) Copyright 2007-2012 Josef 'Jeff' Sipek * * This file is released under the GPLv2. See the COPYING file for more * details. @@ -9,6 +9,7 @@ #define __VCPU_H #include +#include #include #include @@ -66,6 +67,7 @@ u8 *bigbuf; }; +#define NUM_CRWS 32 struct virt_sys { struct task *task; /* the virtual CPU task */ struct virt_cpu *cpu; /* the virtual CPU state */ @@ -83,6 +85,7 @@ mutex_t virt_devs_lock; struct list_head virt_devs; /* list of guest virtual devs */ + CIRCBUF(crws, NUM_CRWS, struct crw); struct address_space as; /* the guest storage */ };