1 /* Copyright (C) 2010 - 2013 UNISYS CORPORATION
2  * All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or (at
7  * your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
12  * NON INFRINGEMENT.  See the GNU General Public License for more
13  * details.
14  */
15 
16 /*
17  * Module Name:
18  *  controlframework.h
19  *
20  * Abstract: This file defines common structures in the unmanaged
21  *	     Ultravisor (mostly EFI) space.
22  *
23  */
24 
25 #ifndef _CONTROL_FRAMEWORK_H_
26 #define _CONTROL_FRAMEWORK_H_
27 
28 #include <linux/types.h>
29 #include "channel.h"
30 
31 struct spar_segment_state  {
32 	u16 enabled:1;		/* Bit 0: May enter other states */
33 	u16 active:1;		/* Bit 1: Assigned to active partition */
34 	u16 alive:1;		/* Bit 2: Configure message sent to
35 				 * service/server */
36 	u16 revoked:1;		/* Bit 3: similar to partition state
37 				 * ShuttingDown */
38 	u16 allocated:1;	/* Bit 4: memory (device/port number)
39 				 * has been selected by Command */
40 	u16 known:1;		/* Bit 5: has been introduced to the
41 				 * service/guest partition */
42 	u16 ready:1;		/* Bit 6: service/Guest partition has
43 				 * responded to introduction */
44 	u16 operating:1;	/* Bit 7: resource is configured and
45 				 * operating */
46 	/* Note: don't use high bit unless we need to switch to ushort
47 	 * which is non-compliant */
48 };
49 
50 static const struct spar_segment_state segment_state_running = {
51 	1, 1, 1, 0, 1, 1, 1, 1
52 };
53 
54 static const struct spar_segment_state segment_state_paused = {
55 	1, 1, 1, 0, 1, 1, 1, 0
56 };
57 
58 static const struct spar_segment_state segment_state_standby = {
59 	1, 1, 0, 0, 1, 1, 1, 0
60 };
61 
62 #endif				/* _CONTROL_FRAMEWORK_H_ not defined */
63