staging: unisys: Replace GUID with uuid_le
This patch replaces the GUID type with uuid_le. It removes the header file guidutils.h, updates all uses of the GUID type to uuid_le, and replaces all function calls that used the GUID type with their uuid_le equivalents. Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
37b7e990ff
Коммит
90addb0218
|
@ -16,6 +16,8 @@
|
|||
#ifndef __CHANNEL_H__
|
||||
#define __CHANNEL_H__
|
||||
|
||||
#include <linux/uuid.h>
|
||||
|
||||
/*
|
||||
* Whenever this file is changed a corresponding change must be made in
|
||||
* the Console/ServicePart/visordiag_early/supervisor_channel.h file
|
||||
|
@ -46,19 +48,6 @@
|
|||
#define COVER(v, d) ((d)*COVERQ(v, d))
|
||||
#endif
|
||||
|
||||
#ifndef GUID0
|
||||
#define GUID0 {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0} }
|
||||
#endif
|
||||
|
||||
/* The C language is inconsistent with respect to where it allows literal
|
||||
* constants, especially literal constant structs. Literal constant structs
|
||||
* are allowed for initialization only, whereas other types of literal
|
||||
* constants are allowed anywhere. We get around this inconsistency by
|
||||
* declaring a "static const" variable for each GUID. This variable can be
|
||||
* used in expressions where the literal constant would not be allowed.
|
||||
*/
|
||||
static const GUID Guid0 = GUID0;
|
||||
|
||||
#define ULTRA_CHANNEL_PROTOCOL_SIGNATURE SIGNATURE_32('E', 'C', 'N', 'L')
|
||||
|
||||
typedef enum {
|
||||
|
@ -226,13 +215,13 @@ typedef struct _CHANNEL_HEADER {
|
|||
U32 HeaderSize; /* sizeof(CHANNEL_HEADER) */
|
||||
U64 Size; /* Total size of this channel in bytes */
|
||||
U64 Features; /* Flags to modify behavior */
|
||||
GUID Type; /* Channel type: data, bus, control, etc. */
|
||||
uuid_le Type; /* Channel type: data, bus, control, etc. */
|
||||
U64 PartitionHandle; /* ID of guest partition */
|
||||
U64 Handle; /* Device number of this channel in client */
|
||||
U64 oChannelSpace; /* Offset in bytes to channel specific area */
|
||||
U32 VersionId; /* CHANNEL_HEADER Version ID */
|
||||
U32 PartitionIndex; /* Index of guest partition */
|
||||
GUID ZoneGuid; /* Guid of Channel's zone */
|
||||
uuid_le ZoneGuid; /* Guid of Channel's zone */
|
||||
U32 oClientString; /* offset from channel header to
|
||||
* nul-terminated ClientString (0 if
|
||||
* ClientString not present) */
|
||||
|
@ -320,17 +309,17 @@ typedef struct _SIGNAL_QUEUE_HEADER {
|
|||
*/
|
||||
static inline int
|
||||
ULTRA_check_channel_client(void __iomem *pChannel,
|
||||
GUID expectedTypeGuid,
|
||||
uuid_le expectedTypeGuid,
|
||||
char *channelName,
|
||||
U64 expectedMinBytes,
|
||||
U32 expectedVersionId,
|
||||
U64 expectedSignature,
|
||||
char *fileName, int lineNumber, void *logCtx)
|
||||
{
|
||||
if (MEMCMP(&expectedTypeGuid, &Guid0, sizeof(GUID)) != 0)
|
||||
if (uuid_le_cmp(expectedTypeGuid, NULL_UUID_LE) != 0)
|
||||
/* caller wants us to verify type GUID */
|
||||
if (MEMCMP_IO(&(((CHANNEL_HEADER __iomem *) (pChannel))->Type),
|
||||
&expectedTypeGuid, sizeof(GUID)) != 0) {
|
||||
&expectedTypeGuid, sizeof(uuid_le)) != 0) {
|
||||
CHANNEL_GUID_MISMATCH(expectedTypeGuid, channelName,
|
||||
"type", expectedTypeGuid,
|
||||
((CHANNEL_HEADER __iomem *)
|
||||
|
@ -380,7 +369,7 @@ ULTRA_check_channel_client(void __iomem *pChannel,
|
|||
* is used to pass the EFI_DIAG_CAPTURE_PROTOCOL needed to log messages.
|
||||
*/
|
||||
static inline int
|
||||
ULTRA_check_channel_server(GUID typeGuid,
|
||||
ULTRA_check_channel_server(uuid_le typeGuid,
|
||||
char *channelName,
|
||||
U64 expectedMinBytes,
|
||||
U64 actualBytes,
|
||||
|
|
|
@ -21,44 +21,44 @@
|
|||
* {414815ed-c58c-11da-95a9-00e08161165f}
|
||||
*/
|
||||
#define ULTRA_VHBA_CHANNEL_PROTOCOL_GUID \
|
||||
{ 0x414815ed, 0xc58c, 0x11da, \
|
||||
{ 0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f } }
|
||||
static const GUID UltraVhbaChannelProtocolGuid =
|
||||
UUID_LE(0x414815ed, 0xc58c, 0x11da, \
|
||||
0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
|
||||
static const uuid_le UltraVhbaChannelProtocolGuid =
|
||||
ULTRA_VHBA_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
/* Used in IOChannel
|
||||
* {8cd5994d-c58e-11da-95a9-00e08161165f}
|
||||
*/
|
||||
#define ULTRA_VNIC_CHANNEL_PROTOCOL_GUID \
|
||||
{ 0x8cd5994d, 0xc58e, 0x11da, \
|
||||
{ 0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f } }
|
||||
static const GUID UltraVnicChannelProtocolGuid =
|
||||
UUID_LE(0x8cd5994d, 0xc58e, 0x11da, \
|
||||
0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
|
||||
static const uuid_le UltraVnicChannelProtocolGuid =
|
||||
ULTRA_VNIC_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
/* Used in IOChannel
|
||||
* {72120008-4AAB-11DC-8530-444553544200}
|
||||
*/
|
||||
#define ULTRA_SIOVM_GUID \
|
||||
{ 0x72120008, 0x4AAB, 0x11DC, \
|
||||
{ 0x85, 0x30, 0x44, 0x45, 0x53, 0x54, 0x42, 0x00 } }
|
||||
static const GUID UltraSIOVMGuid = ULTRA_SIOVM_GUID;
|
||||
UUID_LE(0x72120008, 0x4AAB, 0x11DC, \
|
||||
0x85, 0x30, 0x44, 0x45, 0x53, 0x54, 0x42, 0x00)
|
||||
static const uuid_le UltraSIOVMGuid = ULTRA_SIOVM_GUID;
|
||||
|
||||
|
||||
/* Used in visornoop/visornoop_main.c
|
||||
* {5b52c5ac-e5f5-4d42-8dff-429eaecd221f}
|
||||
*/
|
||||
#define ULTRA_CONTROLDIRECTOR_CHANNEL_PROTOCOL_GUID \
|
||||
{ 0x5b52c5ac, 0xe5f5, 0x4d42, \
|
||||
{ 0x8d, 0xff, 0x42, 0x9e, 0xae, 0xcd, 0x22, 0x1f } }
|
||||
UUID_LE(0x5b52c5ac, 0xe5f5, 0x4d42, \
|
||||
0x8d, 0xff, 0x42, 0x9e, 0xae, 0xcd, 0x22, 0x1f)
|
||||
|
||||
static const GUID UltraControlDirectorChannelProtocolGuid =
|
||||
static const uuid_le UltraControlDirectorChannelProtocolGuid =
|
||||
ULTRA_CONTROLDIRECTOR_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
/* Used in visorchipset/visorchipset_main.c
|
||||
* {B4E79625-AEDE-4EAA-9E11-D3EDDCD4504C}
|
||||
*/
|
||||
#define ULTRA_DIAG_POOL_CHANNEL_PROTOCOL_GUID \
|
||||
{0xb4e79625, 0xaede, 0x4eaa, \
|
||||
{ 0x9e, 0x11, 0xd3, 0xed, 0xdc, 0xd4, 0x50, 0x4c } }
|
||||
UUID_LE(0xb4e79625, 0xaede, 0x4eaa, \
|
||||
0x9e, 0x11, 0xd3, 0xed, 0xdc, 0xd4, 0x50, 0x4c)
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#ifndef __CONTROLVMCHANNEL_H__
|
||||
#define __CONTROLVMCHANNEL_H__
|
||||
|
||||
#include <linux/uuid.h>
|
||||
#include "commontypes.h"
|
||||
#include "channel.h"
|
||||
#include "controlframework.h"
|
||||
|
@ -25,10 +26,10 @@ enum { INVALID_GUEST_FIRMWARE, SAMPLE_GUEST_FIRMWARE,
|
|||
|
||||
/* {2B3C2D10-7EF5-4ad8-B966-3448B7386B3D} */
|
||||
#define ULTRA_CONTROLVM_CHANNEL_PROTOCOL_GUID \
|
||||
{0x2b3c2d10, 0x7ef5, 0x4ad8, \
|
||||
{0xb9, 0x66, 0x34, 0x48, 0xb7, 0x38, 0x6b, 0x3d} }
|
||||
UUID_LE(0x2b3c2d10, 0x7ef5, 0x4ad8, \
|
||||
0xb9, 0x66, 0x34, 0x48, 0xb7, 0x38, 0x6b, 0x3d)
|
||||
|
||||
static const GUID UltraControlvmChannelProtocolGuid =
|
||||
static const uuid_le UltraControlvmChannelProtocolGuid =
|
||||
ULTRA_CONTROLVM_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
#define ULTRA_CONTROLVM_CHANNEL_PROTOCOL_SIGNATURE \
|
||||
|
@ -293,8 +294,8 @@ typedef struct _CONTROLVM_PACKET_DEVICE_CREATE {
|
|||
* can be dereferenced by the receiver
|
||||
* of this ControlVm command */
|
||||
U64 channelBytes; /**< specifies size of the channel in bytes */
|
||||
GUID dataTypeGuid;/**< specifies format of data in channel */
|
||||
GUID devInstGuid; /**< instance guid for the device */
|
||||
uuid_le dataTypeGuid;/**< specifies format of data in channel */
|
||||
uuid_le devInstGuid; /**< instance guid for the device */
|
||||
struct InterruptInfo intr; /**< specifies interrupt information */
|
||||
} CONTROLVM_PACKET_DEVICE_CREATE; /* for CONTROLVM_DEVICE_CREATE */
|
||||
|
||||
|
@ -333,9 +334,9 @@ typedef struct _CONTROLVM_MESSAGE_PACKET {
|
|||
* dereferenced by the receiver
|
||||
* of this ControlVm command */
|
||||
U64 channelBytes; /*< size of the channel in bytes */
|
||||
GUID busDataTypeGuid;/*< indicates format of data in bus
|
||||
* channel */
|
||||
GUID busInstGuid; /*< instance guid for the bus */
|
||||
uuid_le busDataTypeGuid;/*< indicates format of data in
|
||||
bus channel */
|
||||
uuid_le busInstGuid; /*< instance guid for the bus */
|
||||
} createBus; /* for CONTROLVM_BUS_CREATE */
|
||||
struct {
|
||||
U32 busNo; /*< bus # (0..n-1) from the msg
|
||||
|
@ -611,7 +612,7 @@ typedef struct _ULTRA_CONTROLVM_PARAMETERS_HEADER {
|
|||
U32 ClientLength;
|
||||
U32 NameOffset;
|
||||
U32 NameLength;
|
||||
GUID Id;
|
||||
uuid_le Id;
|
||||
U32 Revision;
|
||||
U32 Reserved; /* Natural alignment */
|
||||
} ULTRA_CONTROLVM_PARAMETERS_HEADER;
|
||||
|
|
|
@ -38,16 +38,16 @@
|
|||
|
||||
/* {EEA7A573-DB82-447c-8716-EFBEAAAE4858} */
|
||||
#define ULTRA_DIAG_CHANNEL_PROTOCOL_GUID \
|
||||
{0xeea7a573, 0xdb82, 0x447c, \
|
||||
{0x87, 0x16, 0xef, 0xbe, 0xaa, 0xae, 0x48, 0x58} }
|
||||
UUID_LE(0xeea7a573, 0xdb82, 0x447c, \
|
||||
0x87, 0x16, 0xef, 0xbe, 0xaa, 0xae, 0x48, 0x58)
|
||||
|
||||
static const GUID UltraDiagChannelProtocolGuid =
|
||||
static const uuid_le UltraDiagChannelProtocolGuid =
|
||||
ULTRA_DIAG_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
/* {E850F968-3263-4484-8CA5-2A35D087A5A8} */
|
||||
#define ULTRA_DIAG_ROOT_CHANNEL_PROTOCOL_GUID \
|
||||
{0xe850f968, 0x3263, 0x4484, \
|
||||
{0x8c, 0xa5, 0x2a, 0x35, 0xd0, 0x87, 0xa5, 0xa8} }
|
||||
UUID_LE(0xe850f968, 0x3263, 0x4484, \
|
||||
0x8c, 0xa5, 0x2a, 0x35, 0xd0, 0x87, 0xa5, 0xa8)
|
||||
|
||||
#define ULTRA_DIAG_CHANNEL_PROTOCOL_SIGNATURE ULTRA_CHANNEL_PROTOCOL_SIGNATURE
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
* CHANNEL_ATTACHED -> CHANNEL_OPENED (performed only by GuestPart)
|
||||
*/
|
||||
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "commontypes.h"
|
||||
#include "vmcallinterface.h"
|
||||
|
||||
|
@ -696,7 +698,7 @@ typedef struct _ULTRA_IO_CHANNEL_PROTOCOL {
|
|||
U8 macaddr[MAX_MACADDR_LEN]; /* 6 bytes */
|
||||
U32 num_rcv_bufs; /* 4 */
|
||||
U32 mtu; /* 4 */
|
||||
GUID zoneGuid; /* 16 */
|
||||
uuid_le zoneGuid; /* 16 */
|
||||
} vnic; /* total 30 */
|
||||
};
|
||||
|
||||
|
@ -807,7 +809,7 @@ static inline int ULTRA_VHBA_init_channel(ULTRA_IO_CHANNEL_PROTOCOL *x,
|
|||
x->ChannelHeader.HeaderSize = sizeof(x->ChannelHeader);
|
||||
x->ChannelHeader.Size = COVER(bytes, 4096);
|
||||
x->ChannelHeader.Type = UltraVhbaChannelProtocolGuid;
|
||||
x->ChannelHeader.ZoneGuid = Guid0;
|
||||
x->ChannelHeader.ZoneGuid = NULL_UUID_LE;
|
||||
x->vhba.wwnn = *wwnn;
|
||||
x->vhba.max = *max;
|
||||
INIT_CLIENTSTRING(x, ULTRA_IO_CHANNEL_PROTOCOL, clientStr,
|
||||
|
@ -832,7 +834,7 @@ static inline void ULTRA_VHBA_set_max(ULTRA_IO_CHANNEL_PROTOCOL *x,
|
|||
static inline int ULTRA_VNIC_init_channel(ULTRA_IO_CHANNEL_PROTOCOL *x,
|
||||
unsigned char *macaddr,
|
||||
U32 num_rcv_bufs, U32 mtu,
|
||||
GUID zoneGuid,
|
||||
uuid_le zoneGuid,
|
||||
unsigned char *clientStr,
|
||||
U32 clientStrLen,
|
||||
U64 bytes) {
|
||||
|
@ -843,7 +845,7 @@ static inline int ULTRA_VNIC_init_channel(ULTRA_IO_CHANNEL_PROTOCOL *x,
|
|||
x->ChannelHeader.HeaderSize = sizeof(x->ChannelHeader);
|
||||
x->ChannelHeader.Size = COVER(bytes, 4096);
|
||||
x->ChannelHeader.Type = UltraVnicChannelProtocolGuid;
|
||||
x->ChannelHeader.ZoneGuid = Guid0;
|
||||
x->ChannelHeader.ZoneGuid = NULL_UUID_LE;
|
||||
MEMCPY(x->vnic.macaddr, macaddr, MAX_MACADDR_LEN);
|
||||
x->vnic.num_rcv_bufs = num_rcv_bufs;
|
||||
x->vnic.mtu = mtu;
|
||||
|
|
|
@ -23,15 +23,16 @@
|
|||
* We currently use this for the client to provide various information about
|
||||
* the client devices and client drivers for the server end to see.
|
||||
*/
|
||||
#include <linux/uuid.h>
|
||||
#include "commontypes.h"
|
||||
#include "vbusdeviceinfo.h"
|
||||
#include "channel.h"
|
||||
|
||||
/* {193b331b-c58f-11da-95a9-00e08161165f} */
|
||||
#define ULTRA_VBUS_CHANNEL_PROTOCOL_GUID \
|
||||
{0x193b331b, 0xc58f, 0x11da, \
|
||||
{0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f} }
|
||||
static const GUID UltraVbusChannelProtocolGuid =
|
||||
UUID_LE(0x193b331b, 0xc58f, 0x11da, \
|
||||
0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
|
||||
static const uuid_le UltraVbusChannelProtocolGuid =
|
||||
ULTRA_VBUS_CHANNEL_PROTOCOL_GUID;
|
||||
|
||||
#define ULTRA_VBUS_CHANNEL_PROTOCOL_SIGNATURE ULTRA_CHANNEL_PROTOCOL_SIGNATURE
|
||||
|
@ -112,8 +113,7 @@ ULTRA_VBUS_init_channel(ULTRA_VBUS_CHANNEL_PROTOCOL __iomem *x,
|
|||
writeq(bytesAllocated, &x->ChannelHeader.Size);
|
||||
memcpy_toio(&x->ChannelHeader.Type, &UltraVbusChannelProtocolGuid,
|
||||
sizeof(x->ChannelHeader.Type));
|
||||
memcpy_toio(&x->ChannelHeader.ZoneGuid, &Guid0,
|
||||
sizeof(x->ChannelHeader.ZoneGuid));
|
||||
memcpy_toio(&x->ChannelHeader.ZoneGuid, &NULL_UUID_LE, sizeof(uuid_le));
|
||||
writel(sizeof(ULTRA_VBUS_HEADERINFO), &x->HdrInfo.structBytes);
|
||||
writel(sizeof(ULTRA_VBUS_HEADERINFO), &x->HdrInfo.chpInfoByteOffset);
|
||||
writel(readl(&x->HdrInfo.chpInfoByteOffset) +
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/uuid.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#include <syslog.h>
|
||||
|
@ -59,16 +60,6 @@
|
|||
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
U32 data1;
|
||||
U16 data2;
|
||||
U16 data3;
|
||||
U8 data4[8];
|
||||
} __attribute__ ((__packed__)) GUID;
|
||||
|
||||
#ifndef GUID0
|
||||
#define GUID0 {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0} }
|
||||
#endif
|
||||
typedef U64 GUEST_PHYSICAL_ADDRESS;
|
||||
|
||||
#define MEMSET(ptr, val, len) memset(ptr, val, len)
|
||||
|
@ -89,18 +80,16 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
|
|||
#define CHANNEL_GUID_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50], s2[50], s3[50]; \
|
||||
pr_err("Channel mismatch on channel=%s(%s) field=%s expected=%s actual=%s @%s:%d\n", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
GUID_format2(&expected, s2), GUID_format2(&actual, s3), \
|
||||
pr_err("Channel mismatch on channel=%s(%pUL) field=%s expected=%pUL actual=%pUL @%s:%d\n", \
|
||||
chName, &chType, field, \
|
||||
&expected, &actual, \
|
||||
fil, lin); \
|
||||
} while (0)
|
||||
#define CHANNEL_U32_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50]; \
|
||||
pr_err("Channel mismatch on channel=%s(%s) field=%s expected=0x%-8.8lx actual=0x%-8.8lx @%s:%d\n", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
pr_err("Channel mismatch on channel=%s(%pUL) field=%s expected=0x%-8.8lx actual=0x%-8.8lx @%s:%d\n", \
|
||||
chName, &chType, field, \
|
||||
(unsigned long)expected, (unsigned long)actual, \
|
||||
fil, lin); \
|
||||
} while (0)
|
||||
|
@ -108,9 +97,8 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
|
|||
#define CHANNEL_U64_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50]; \
|
||||
pr_err("Channel mismatch on channel=%s(%s) field=%s expected=0x%-8.8Lx actual=0x%-8.8Lx @%s:%d\n", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
pr_err("Channel mismatch on channel=%s(%pUL) field=%s expected=0x%-8.8Lx actual=0x%-8.8Lx @%s:%d\n", \
|
||||
chName, &chType, field, \
|
||||
(unsigned long long)expected, \
|
||||
(unsigned long long)actual, \
|
||||
fil, lin); \
|
||||
|
@ -128,21 +116,19 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
|
|||
#define CHANNEL_GUID_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50], s2[50], s3[50]; \
|
||||
syslog(LOG_USER | LOG_ERR, \
|
||||
"Channel mismatch on channel=%s(%s) field=%s expected=%s actual=%s @%s:%d", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
GUID_format2(&expected, s2), GUID_format2(&actual, s3), \
|
||||
"Channel mismatch on channel=%s(%pUL) field=%s expected=%pUL actual=%pUL @%s:%d", \
|
||||
chName, &chType, field, \
|
||||
&expected, &actual, \
|
||||
fil, lin); \
|
||||
} while (0)
|
||||
|
||||
#define CHANNEL_U32_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50]; \
|
||||
syslog(LOG_USER | LOG_ERR, \
|
||||
"Channel mismatch on channel=%s(%s) field=%s expected=0x%-8.8lx actual=0x%-8.8lx @%s:%d", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
"Channel mismatch on channel=%s(%pUL) field=%s expected=0x%-8.8lx actual=0x%-8.8lx @%s:%d", \
|
||||
chName, chType, field, \
|
||||
(unsigned long)expected, (unsigned long)actual, \
|
||||
fil, lin); \
|
||||
} while (0)
|
||||
|
@ -150,10 +136,9 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
|
|||
#define CHANNEL_U64_MISMATCH(chType, chName, field, expected, actual, fil, \
|
||||
lin, logCtx) \
|
||||
do { \
|
||||
char s1[50]; \
|
||||
syslog(LOG_USER | LOG_ERR, \
|
||||
"Channel mismatch on channel=%s(%s) field=%s expected=0x%-8.8Lx actual=0x%-8.8Lx @%s:%d", \
|
||||
chName, GUID_format2(&chType, s1), field, \
|
||||
"Channel mismatch on channel=%s(%pUL) field=%s expected=0x%-8.8Lx actual=0x%-8.8Lx @%s:%d", \
|
||||
chName, chType, field, \
|
||||
(unsigned long long)expected, \
|
||||
(unsigned long long)actual, \
|
||||
fil, lin); \
|
||||
|
@ -167,4 +152,4 @@ typedef U64 GUEST_PHYSICAL_ADDRESS;
|
|||
#define VolatileBarrier() MEMORYBARRIER
|
||||
|
||||
#endif
|
||||
#include "guidutils.h"
|
||||
|
||||
|
|
|
@ -1,203 +0,0 @@
|
|||
/* Copyright (C) 2010 - 2013 UNISYS CORPORATION
|
||||
* All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for more
|
||||
* details.
|
||||
*/
|
||||
|
||||
/* guidutils.h
|
||||
*
|
||||
* These are GUID manipulation inlines that can be used from either
|
||||
* kernel-mode or user-mode.
|
||||
*
|
||||
*/
|
||||
#ifndef __GUIDUTILS_H__
|
||||
#define __GUIDUTILS_H__
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
#define GUID_STRTOUL kstrtoul
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define GUID_STRTOUL strtoul
|
||||
#endif
|
||||
|
||||
static inline char *
|
||||
GUID_format1(const GUID *guid, char *s)
|
||||
{
|
||||
sprintf(s, "{%-8.8lx-%-4.4x-%-4.4x-%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x}",
|
||||
(ulong) guid->data1,
|
||||
guid->data2,
|
||||
guid->data3,
|
||||
guid->data4[0],
|
||||
guid->data4[1],
|
||||
guid->data4[2],
|
||||
guid->data4[3],
|
||||
guid->data4[4], guid->data4[5], guid->data4[6], guid->data4[7]);
|
||||
return s;
|
||||
}
|
||||
|
||||
/** Format a GUID in Microsoft's 'what in the world were they thinking'
|
||||
* format.
|
||||
*/
|
||||
static inline char *
|
||||
GUID_format2(const GUID *guid, char *s)
|
||||
{
|
||||
sprintf(s, "{%-8.8lx-%-4.4x-%-4.4x-%-2.2x%-2.2x-%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x}",
|
||||
(ulong) guid->data1,
|
||||
guid->data2,
|
||||
guid->data3,
|
||||
guid->data4[0],
|
||||
guid->data4[1],
|
||||
guid->data4[2],
|
||||
guid->data4[3],
|
||||
guid->data4[4], guid->data4[5], guid->data4[6], guid->data4[7]);
|
||||
return s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like GUID_format2 but without the curly braces and the
|
||||
* hex digits in upper case
|
||||
*/
|
||||
static inline char *
|
||||
GUID_format3(const GUID *guid, char *s)
|
||||
{
|
||||
sprintf(s, "%-8.8lX-%-4.4X-%-4.4X-%-2.2X%-2.2X-%-2.2X%-2.2X%-2.2X%-2.2X%-2.2X%-2.2X",
|
||||
(ulong) guid->data1,
|
||||
guid->data2,
|
||||
guid->data3,
|
||||
guid->data4[0],
|
||||
guid->data4[1],
|
||||
guid->data4[2],
|
||||
guid->data4[3],
|
||||
guid->data4[4], guid->data4[5], guid->data4[6], guid->data4[7]);
|
||||
return s;
|
||||
}
|
||||
|
||||
/** Parse a guid string in any of these forms:
|
||||
* {11111111-2222-3333-4455-66778899aabb}
|
||||
* {11111111-2222-3333-445566778899aabb}
|
||||
* 11111111-2222-3333-4455-66778899aabb
|
||||
* 11111111-2222-3333-445566778899aabb
|
||||
*/
|
||||
static inline GUID
|
||||
GUID_scan(U8 *p)
|
||||
{
|
||||
GUID guid = GUID0;
|
||||
U8 x[33];
|
||||
int count = 0;
|
||||
int c, i = 0;
|
||||
U8 cdata1[9];
|
||||
U8 cdata2[5];
|
||||
U8 cdata3[5];
|
||||
U8 cdata4[3];
|
||||
int dashcount = 0;
|
||||
int brace = 0;
|
||||
unsigned long uldata;
|
||||
|
||||
if (!p)
|
||||
return guid;
|
||||
if (*p == '{') {
|
||||
p++;
|
||||
brace = 1;
|
||||
}
|
||||
while (count < 32) {
|
||||
if (*p == '}')
|
||||
return guid;
|
||||
if (*p == '\0')
|
||||
return guid;
|
||||
c = toupper(*p);
|
||||
p++;
|
||||
if (c == '-') {
|
||||
switch (dashcount) {
|
||||
case 0:
|
||||
if (i != 8)
|
||||
return guid;
|
||||
break;
|
||||
case 1:
|
||||
if (i != 4)
|
||||
return guid;
|
||||
break;
|
||||
case 2:
|
||||
if (i != 4)
|
||||
return guid;
|
||||
break;
|
||||
case 3:
|
||||
if (i != 4)
|
||||
return guid;
|
||||
break;
|
||||
default:
|
||||
return guid;
|
||||
}
|
||||
dashcount++;
|
||||
i = 0;
|
||||
continue;
|
||||
}
|
||||
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F'))
|
||||
i++;
|
||||
else
|
||||
return guid;
|
||||
x[count++] = c;
|
||||
}
|
||||
x[count] = '\0';
|
||||
if (brace) {
|
||||
if (*p == '}')
|
||||
p++;
|
||||
else
|
||||
return guid;
|
||||
}
|
||||
if (dashcount == 3 || dashcount == 4)
|
||||
;
|
||||
else
|
||||
return guid;
|
||||
memset(cdata1, 0, sizeof(cdata1));
|
||||
memset(cdata2, 0, sizeof(cdata2));
|
||||
memset(cdata3, 0, sizeof(cdata3));
|
||||
memset(cdata4, 0, sizeof(cdata4));
|
||||
memcpy(cdata1, x + 0, 8);
|
||||
memcpy(cdata2, x + 8, 4);
|
||||
memcpy(cdata3, x + 12, 4);
|
||||
|
||||
if (GUID_STRTOUL((char *) cdata1, 16, &uldata) == 0)
|
||||
guid.data1 = (U32)uldata;
|
||||
if (GUID_STRTOUL((char *) cdata2, 16, &uldata) == 0)
|
||||
guid.data2 = (U16)uldata;
|
||||
if (GUID_STRTOUL((char *) cdata3, 16, &uldata) == 0)
|
||||
guid.data3 = (U16)uldata;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
memcpy(cdata4, x + 16 + (i * 2), 2);
|
||||
if (GUID_STRTOUL((char *) cdata4, 16, &uldata) == 0)
|
||||
guid.data4[i] = (U8) uldata;
|
||||
}
|
||||
|
||||
return guid;
|
||||
}
|
||||
|
||||
static inline char *
|
||||
GUID_sanitize(char *inputGuidStr, char *outputGuidStr)
|
||||
{
|
||||
GUID g;
|
||||
GUID guid0 = GUID0;
|
||||
*outputGuidStr = '\0';
|
||||
g = GUID_scan((U8 *) inputGuidStr);
|
||||
if (memcmp(&g, &guid0, sizeof(GUID)) == 0)
|
||||
return outputGuidStr; /* bad GUID format */
|
||||
return GUID_format1(&g, outputGuidStr);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -28,6 +28,7 @@
|
|||
#include "uniklog.h"
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/semaphore.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "controlvmchannel.h"
|
||||
#include "controlvmcompletionstatus.h"
|
||||
|
@ -136,8 +137,8 @@ struct device_info {
|
|||
void __iomem *chanptr;
|
||||
U64 channelAddr;
|
||||
U64 channelBytes;
|
||||
GUID channelTypeGuid;
|
||||
GUID devInstGuid;
|
||||
uuid_le channelTypeGuid;
|
||||
uuid_le devInstGuid;
|
||||
struct InterruptInfo intr;
|
||||
struct switch_info *swtch;
|
||||
char devid[30]; /* "vbus<busno>:dev<devno>" */
|
||||
|
@ -163,7 +164,7 @@ struct bus_info {
|
|||
U32 busNo, deviceCount;
|
||||
struct device_info **device;
|
||||
U64 guestHandle, recvBusInterruptHandle;
|
||||
GUID busInstGuid;
|
||||
uuid_le busInstGuid;
|
||||
ULTRA_VBUS_CHANNEL_PROTOCOL __iomem *pBusChannel;
|
||||
int busChannelBytes;
|
||||
struct proc_dir_entry *proc_dir; /* proc/uislib/vbus/<x> */
|
||||
|
@ -356,8 +357,8 @@ struct add_vbus_guestpart {
|
|||
* NOT YET USED */
|
||||
U32 busNo; /* bus number to be created/deleted */
|
||||
U32 deviceCount; /* max num of devices on bus */
|
||||
GUID busTypeGuid; /* indicates type of bus */
|
||||
GUID busInstGuid; /* instance guid for device */
|
||||
uuid_le busTypeGuid; /* indicates type of bus */
|
||||
uuid_le busInstGuid; /* instance guid for device */
|
||||
};
|
||||
|
||||
struct del_vbus_guestpart {
|
||||
|
@ -371,7 +372,7 @@ struct add_virt_guestpart {
|
|||
void __iomem *chanptr; /* pointer to data channel */
|
||||
U32 busNo; /* bus number for the operation */
|
||||
U32 deviceNo; /* number of device on the bus */
|
||||
GUID devInstGuid; /* instance guid for device */
|
||||
uuid_le devInstGuid; /* instance guid for device */
|
||||
struct InterruptInfo intr; /* recv/send interrupt info */
|
||||
/* recvInterruptHandle contains info needed in order to
|
||||
* register to receive interrupts on the data channel.
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <linux/io.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "vmcallinterface.h"
|
||||
#include "channel.h"
|
||||
|
@ -54,7 +55,7 @@ extern atomic_t UisUtils_Registered_Services;
|
|||
|
||||
typedef unsigned int MACARRAY[MAX_MACADDR_LEN];
|
||||
typedef struct ReqHandlerInfo_struct {
|
||||
GUID switchTypeGuid;
|
||||
uuid_le switchTypeGuid;
|
||||
int (*controlfunc)(struct io_msgs *);
|
||||
unsigned long min_channel_bytes;
|
||||
int (*Server_Channel_Ok)(unsigned long channelBytes);
|
||||
|
@ -64,7 +65,7 @@ typedef struct ReqHandlerInfo_struct {
|
|||
struct list_head list_link; /* links into ReqHandlerInfo_list */
|
||||
} ReqHandlerInfo_t;
|
||||
|
||||
ReqHandlerInfo_t *ReqHandlerAdd(GUID switchTypeGuid,
|
||||
ReqHandlerInfo_t *ReqHandlerAdd(uuid_le switchTypeGuid,
|
||||
const char *switch_type_name,
|
||||
int (*controlfunc)(struct io_msgs *),
|
||||
unsigned long min_channel_bytes,
|
||||
|
@ -73,8 +74,8 @@ ReqHandlerInfo_t *ReqHandlerAdd(GUID switchTypeGuid,
|
|||
int (*Server_Channel_Init)
|
||||
(void *x, unsigned char *clientStr,
|
||||
U32 clientStrLen, U64 bytes));
|
||||
ReqHandlerInfo_t *ReqHandlerFind(GUID switchTypeGuid);
|
||||
int ReqHandlerDel(GUID switchTypeGuid);
|
||||
ReqHandlerInfo_t *ReqHandlerFind(uuid_le switchTypeGuid);
|
||||
int ReqHandlerDel(uuid_le switchTypeGuid);
|
||||
|
||||
#define uislib_ioremap_cache(addr, size) \
|
||||
dbg_ioremap_cache(addr, size, __FILE__, __LINE__)
|
||||
|
@ -112,7 +113,7 @@ int uisutil_add_proc_line_ex(int *total, char **buffer, int *buffer_remaining,
|
|||
|
||||
int uisctrl_register_req_handler(int type, void *fptr,
|
||||
ULTRA_VBUS_DEVICEINFO *chipset_DriverInfo);
|
||||
int uisctrl_register_req_handler_ex(GUID switchTypeGuid,
|
||||
int uisctrl_register_req_handler_ex(uuid_le switchTypeGuid,
|
||||
const char *switch_type_name,
|
||||
int (*fptr)(struct io_msgs *),
|
||||
unsigned long min_channel_bytes,
|
||||
|
@ -123,7 +124,7 @@ int uisctrl_register_req_handler_ex(GUID switchTypeGuid,
|
|||
U32 clientStrLen, U64 bytes),
|
||||
ULTRA_VBUS_DEVICEINFO *chipset_DriverInfo);
|
||||
|
||||
int uisctrl_unregister_req_handler_ex(GUID switchTypeGuid);
|
||||
int uisctrl_unregister_req_handler_ex(uuid_le switchTypeGuid);
|
||||
unsigned char *util_map_virt(struct phys_info *sg);
|
||||
void util_unmap_virt(struct phys_info *sg);
|
||||
unsigned char *util_map_virt_atomic(struct phys_info *sg);
|
||||
|
@ -133,20 +134,20 @@ int uislib_server_inject_add_vnic(U32 switchNo, U32 BusNo, U32 numIntPorts,
|
|||
pCHANNEL_HEADER **chan);
|
||||
void uislib_server_inject_del_vnic(U32 switchNo, U32 busNo, U32 numIntPorts,
|
||||
U32 numExtPorts);
|
||||
int uislib_client_inject_add_bus(U32 busNo, GUID instGuid,
|
||||
int uislib_client_inject_add_bus(U32 busNo, uuid_le instGuid,
|
||||
U64 channelAddr, ulong nChannelBytes);
|
||||
int uislib_client_inject_del_bus(U32 busNo);
|
||||
|
||||
int uislib_client_inject_add_vhba(U32 busNo, U32 devNo,
|
||||
U64 phys_chan_addr, U32 chan_bytes,
|
||||
int is_test_addr, GUID instGuid,
|
||||
int is_test_addr, uuid_le instGuid,
|
||||
struct InterruptInfo *intr);
|
||||
int uislib_client_inject_pause_vhba(U32 busNo, U32 devNo);
|
||||
int uislib_client_inject_resume_vhba(U32 busNo, U32 devNo);
|
||||
int uislib_client_inject_del_vhba(U32 busNo, U32 devNo);
|
||||
int uislib_client_inject_add_vnic(U32 busNo, U32 devNo,
|
||||
U64 phys_chan_addr, U32 chan_bytes,
|
||||
int is_test_addr, GUID instGuid,
|
||||
int is_test_addr, uuid_le instGuid,
|
||||
struct InterruptInfo *intr);
|
||||
int uislib_client_inject_pause_vnic(U32 busNo, U32 devNo);
|
||||
int uislib_client_inject_resume_vnic(U32 busNo, U32 devNo);
|
||||
|
@ -195,7 +196,7 @@ struct chaninfo {
|
|||
*/
|
||||
#define WAIT_FOR_VALID_GUID(guid) \
|
||||
do { \
|
||||
while (MEMCMP_IO(&guid, &Guid0, sizeof(Guid0)) == 0) { \
|
||||
while (uuid_le_cmp(guid, NULL_UUID_LE) == 0) { \
|
||||
LOGERR("Waiting for non-0 GUID (why???)...\n"); \
|
||||
UIS_THREAD_WAIT_SEC(5); \
|
||||
} \
|
||||
|
|
|
@ -587,10 +587,8 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
|
|||
*/
|
||||
if (!msg->hdr.Flags.server) {
|
||||
struct guest_msgs cmd;
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVhbaChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVhbaChannelProtocolGuid)) {
|
||||
WAIT_FOR_VALID_GUID(((CHANNEL_HEADER
|
||||
__iomem *) (dev->
|
||||
chanptr))->
|
||||
|
@ -614,10 +612,8 @@ create_device(CONTROLVM_MESSAGE *msg, char *buf)
|
|||
dev->devInstGuid;
|
||||
cmd.add_vhba.intr = dev->intr;
|
||||
} else
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVnicChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVnicChannelProtocolGuid)) {
|
||||
WAIT_FOR_VALID_GUID(((CHANNEL_HEADER
|
||||
__iomem *) (dev->
|
||||
chanptr))->
|
||||
|
@ -723,16 +719,13 @@ pause_device(CONTROLVM_MESSAGE *msg)
|
|||
/* the msg is bound for virtpci; send
|
||||
* guest_msgs struct to callback
|
||||
*/
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVhbaChannelProtocolGuid, sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVhbaChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_PAUSE_VHBA;
|
||||
cmd.pause_vhba.chanptr = dev->chanptr;
|
||||
} else
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVnicChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVnicChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_PAUSE_VNIC;
|
||||
cmd.pause_vnic.chanptr = dev->chanptr;
|
||||
} else {
|
||||
|
@ -798,15 +791,13 @@ resume_device(CONTROLVM_MESSAGE *msg)
|
|||
/* the msg is bound for virtpci; send
|
||||
* guest_msgs struct to callback
|
||||
*/
|
||||
if (!memcmp(&dev->channelTypeGuid,
|
||||
&UltraVhbaChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVhbaChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_RESUME_VHBA;
|
||||
cmd.resume_vhba.chanptr = dev->chanptr;
|
||||
} else
|
||||
if (!memcmp(&dev->channelTypeGuid,
|
||||
&UltraVnicChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVnicChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_RESUME_VNIC;
|
||||
cmd.resume_vnic.chanptr = dev->chanptr;
|
||||
} else {
|
||||
|
@ -873,16 +864,13 @@ destroy_device(CONTROLVM_MESSAGE *msg, char *buf)
|
|||
/* the msg is bound for virtpci; send
|
||||
* guest_msgs struct to callback
|
||||
*/
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVhbaChannelProtocolGuid, sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVhbaChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_DEL_VHBA;
|
||||
cmd.del_vhba.chanptr = dev->chanptr;
|
||||
} else
|
||||
if (!memcmp
|
||||
(&dev->channelTypeGuid,
|
||||
&UltraVnicChannelProtocolGuid,
|
||||
sizeof(GUID))) {
|
||||
if (!uuid_le_cmp(dev->channelTypeGuid,
|
||||
UltraVnicChannelProtocolGuid)) {
|
||||
cmd.msgtype = GUEST_DEL_VNIC;
|
||||
cmd.del_vnic.chanptr = dev->chanptr;
|
||||
} else {
|
||||
|
@ -1008,7 +996,7 @@ delete_device_glue(U32 busNo, U32 devNo)
|
|||
}
|
||||
|
||||
int
|
||||
uislib_client_inject_add_bus(U32 busNo, GUID instGuid,
|
||||
uislib_client_inject_add_bus(U32 busNo, uuid_le instGuid,
|
||||
U64 channelAddr, ulong nChannelBytes)
|
||||
{
|
||||
CONTROLVM_MESSAGE msg;
|
||||
|
@ -1109,7 +1097,7 @@ EXPORT_SYMBOL_GPL(uislib_client_inject_resume_vhba);
|
|||
int
|
||||
uislib_client_inject_add_vhba(U32 busNo, U32 devNo,
|
||||
U64 phys_chan_addr, U32 chan_bytes,
|
||||
int is_test_addr, GUID instGuid,
|
||||
int is_test_addr, uuid_le instGuid,
|
||||
struct InterruptInfo *intr)
|
||||
{
|
||||
CONTROLVM_MESSAGE msg;
|
||||
|
@ -1168,7 +1156,7 @@ EXPORT_SYMBOL_GPL(uislib_client_inject_del_vhba);
|
|||
int
|
||||
uislib_client_inject_add_vnic(U32 busNo, U32 devNo,
|
||||
U64 phys_chan_addr, U32 chan_bytes,
|
||||
int is_test_addr, GUID instGuid,
|
||||
int is_test_addr, uuid_le instGuid,
|
||||
struct InterruptInfo *intr)
|
||||
{
|
||||
CONTROLVM_MESSAGE msg;
|
||||
|
@ -1272,7 +1260,6 @@ uislib_client_add_vnic(U32 busNo)
|
|||
BOOL busCreated = FALSE;
|
||||
int devNo = 0; /* Default to 0, since only one device
|
||||
* will be created for this bus... */
|
||||
GUID dummyGuid = GUID0;
|
||||
CONTROLVM_MESSAGE msg;
|
||||
|
||||
init_msg_header(&msg, CONTROLVM_BUS_CREATE, 0, 0);
|
||||
|
@ -1291,7 +1278,7 @@ uislib_client_add_vnic(U32 busNo)
|
|||
msg.hdr.Flags.testMessage = 1;
|
||||
msg.cmd.createDevice.busNo = busNo;
|
||||
msg.cmd.createDevice.devNo = devNo;
|
||||
msg.cmd.createDevice.devInstGuid = dummyGuid;
|
||||
msg.cmd.createDevice.devInstGuid = NULL_UUID_LE;
|
||||
memset(&msg.cmd.createDevice.intr, 0, sizeof(struct InterruptInfo));
|
||||
msg.cmd.createDevice.channelAddr = PhysicalDataChan;
|
||||
msg.cmd.createDevice.channelBytes = MIN_IO_CHANNEL_SIZE;
|
||||
|
|
|
@ -24,8 +24,9 @@
|
|||
#include "uisutils.h"
|
||||
#include "version.h"
|
||||
#include "vbushelper.h"
|
||||
#include "guidutils.h"
|
||||
#include <linux/uuid.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <linux/uuid.h>
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
#include <linux/highmem.h>
|
||||
#endif
|
||||
|
@ -104,7 +105,7 @@ uisctrl_register_req_handler(int type, void *fptr,
|
|||
EXPORT_SYMBOL_GPL(uisctrl_register_req_handler);
|
||||
|
||||
int
|
||||
uisctrl_register_req_handler_ex(GUID switchTypeGuid,
|
||||
uisctrl_register_req_handler_ex(uuid_le switchTypeGuid,
|
||||
const char *switch_type_name,
|
||||
int (*controlfunc)(struct io_msgs *),
|
||||
unsigned long min_channel_bytes,
|
||||
|
@ -115,24 +116,22 @@ uisctrl_register_req_handler_ex(GUID switchTypeGuid,
|
|||
U32 clientStrLen, U64 bytes),
|
||||
ULTRA_VBUS_DEVICEINFO *chipset_DriverInfo)
|
||||
{
|
||||
char s[99];
|
||||
ReqHandlerInfo_t *pReqHandlerInfo;
|
||||
int rc = 0; /* assume failure */
|
||||
LOGINF("type=%s, controlfunc=0x%p.\n",
|
||||
GUID_format1(&switchTypeGuid, s), controlfunc);
|
||||
LOGINF("type=%pUL, controlfunc=0x%p.\n",
|
||||
&switchTypeGuid, controlfunc);
|
||||
if (!controlfunc) {
|
||||
LOGERR("%s: controlfunc must be supplied\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("%pUL: controlfunc must be supplied\n", &switchTypeGuid);
|
||||
goto Away;
|
||||
}
|
||||
if (!Server_Channel_Ok) {
|
||||
LOGERR("%s: Server_Channel_Ok must be supplied\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("%pUL: Server_Channel_Ok must be supplied\n",
|
||||
&switchTypeGuid);
|
||||
goto Away;
|
||||
}
|
||||
if (!Server_Channel_Init) {
|
||||
LOGERR("%s: Server_Channel_Init must be supplied\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("%pUL: Server_Channel_Init must be supplied\n",
|
||||
&switchTypeGuid);
|
||||
goto Away;
|
||||
}
|
||||
pReqHandlerInfo = ReqHandlerAdd(switchTypeGuid,
|
||||
|
@ -141,8 +140,7 @@ uisctrl_register_req_handler_ex(GUID switchTypeGuid,
|
|||
min_channel_bytes,
|
||||
Server_Channel_Ok, Server_Channel_Init);
|
||||
if (!pReqHandlerInfo) {
|
||||
LOGERR("failed to add %s to server list\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("failed to add %pUL to server list\n", &switchTypeGuid);
|
||||
goto Away;
|
||||
}
|
||||
|
||||
|
@ -156,30 +154,27 @@ Away:
|
|||
VERSION, NULL,
|
||||
__DATE__, __TIME__);
|
||||
} else
|
||||
LOGERR("failed to register type %s.\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("failed to register type %pUL.\n", &switchTypeGuid);
|
||||
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(uisctrl_register_req_handler_ex);
|
||||
|
||||
int
|
||||
uisctrl_unregister_req_handler_ex(GUID switchTypeGuid)
|
||||
uisctrl_unregister_req_handler_ex(uuid_le switchTypeGuid)
|
||||
{
|
||||
char s[99];
|
||||
int rc = 0; /* assume failure */
|
||||
LOGINF("type=%s.\n", GUID_format1(&switchTypeGuid, s));
|
||||
LOGINF("type=%pUL.\n", &switchTypeGuid);
|
||||
if (ReqHandlerDel(switchTypeGuid) < 0) {
|
||||
LOGERR("failed to remove %s from server list\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("failed to remove %pUL from server list\n",
|
||||
&switchTypeGuid);
|
||||
goto Away;
|
||||
}
|
||||
atomic_dec(&UisUtils_Registered_Services);
|
||||
rc = 1; /* success */
|
||||
Away:
|
||||
if (!rc)
|
||||
LOGERR("failed to unregister type %s.\n",
|
||||
GUID_format1(&switchTypeGuid, s));
|
||||
LOGERR("failed to unregister type %pUL.\n", &switchTypeGuid);
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(uisctrl_unregister_req_handler_ex);
|
||||
|
@ -281,7 +276,7 @@ static LIST_HEAD(ReqHandlerInfo_list); /* list of ReqHandlerInfo_t */
|
|||
static DEFINE_SPINLOCK(ReqHandlerInfo_list_lock);
|
||||
|
||||
ReqHandlerInfo_t *
|
||||
ReqHandlerAdd(GUID switchTypeGuid,
|
||||
ReqHandlerAdd(uuid_le switchTypeGuid,
|
||||
const char *switch_type_name,
|
||||
int (*controlfunc)(struct io_msgs *),
|
||||
unsigned long min_channel_bytes,
|
||||
|
@ -310,16 +305,14 @@ ReqHandlerAdd(GUID switchTypeGuid,
|
|||
}
|
||||
|
||||
ReqHandlerInfo_t *
|
||||
ReqHandlerFind(GUID switchTypeGuid)
|
||||
ReqHandlerFind(uuid_le switchTypeGuid)
|
||||
{
|
||||
struct list_head *lelt, *tmp;
|
||||
ReqHandlerInfo_t *entry = NULL;
|
||||
spin_lock(&ReqHandlerInfo_list_lock);
|
||||
list_for_each_safe(lelt, tmp, &ReqHandlerInfo_list) {
|
||||
entry = list_entry(lelt, ReqHandlerInfo_t, list_link);
|
||||
if (memcmp
|
||||
(&entry->switchTypeGuid, &switchTypeGuid,
|
||||
sizeof(GUID)) == 0) {
|
||||
if (uuid_le_cmp(entry->switchTypeGuid, switchTypeGuid) == 0) {
|
||||
spin_unlock(&ReqHandlerInfo_list_lock);
|
||||
return entry;
|
||||
}
|
||||
|
@ -329,7 +322,7 @@ ReqHandlerFind(GUID switchTypeGuid)
|
|||
}
|
||||
|
||||
int
|
||||
ReqHandlerDel(GUID switchTypeGuid)
|
||||
ReqHandlerDel(uuid_le switchTypeGuid)
|
||||
{
|
||||
struct list_head *lelt, *tmp;
|
||||
ReqHandlerInfo_t *entry = NULL;
|
||||
|
@ -337,9 +330,7 @@ ReqHandlerDel(GUID switchTypeGuid)
|
|||
spin_lock(&ReqHandlerInfo_list_lock);
|
||||
list_for_each_safe(lelt, tmp, &ReqHandlerInfo_list) {
|
||||
entry = list_entry(lelt, ReqHandlerInfo_t, list_link);
|
||||
if (memcmp
|
||||
(&entry->switchTypeGuid, &switchTypeGuid,
|
||||
sizeof(GUID)) == 0) {
|
||||
if (uuid_le_cmp(entry->switchTypeGuid, switchTypeGuid) == 0) {
|
||||
list_del(lelt);
|
||||
kfree(entry);
|
||||
rc++;
|
||||
|
|
|
@ -365,7 +365,7 @@ static int add_vhba(struct add_virt_guestpart *addparams)
|
|||
memcpy_fromio(&net.zoneGuid, \
|
||||
&((ULTRA_IO_CHANNEL_PROTOCOL __iomem *) \
|
||||
chanptr)->vnic.zoneGuid, \
|
||||
sizeof(GUID)); \
|
||||
sizeof(uuid_le)); \
|
||||
}
|
||||
|
||||
/* adds a vnic
|
||||
|
@ -391,14 +391,10 @@ add_vnic(struct add_virt_guestpart *addparams)
|
|||
|
||||
GET_BUS_DEV(addparams->busNo);
|
||||
|
||||
LOGINF("Adding vnic macaddr:%02x:%02x:%02x:%02x:%02x:%02x rcvbufs:%d mtu:%d chanptr:%p{%-8.8lx-%-4.4x-%-4.4x-%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x%-2.2x}\n",
|
||||
LOGINF("Adding vnic macaddr:%02x:%02x:%02x:%02x:%02x:%02x rcvbufs:%d mtu:%d chanptr:%p%pUL\n",
|
||||
net.mac_addr[0], net.mac_addr[1], net.mac_addr[2], net.mac_addr[3],
|
||||
net.mac_addr[4], net.mac_addr[5], net.num_rcv_bufs, net.mtu,
|
||||
addparams->chanptr, (ulong) net.zoneGuid.data1, net.zoneGuid.data2,
|
||||
net.zoneGuid.data3, net.zoneGuid.data4[0], net.zoneGuid.data4[1],
|
||||
net.zoneGuid.data4[2], net.zoneGuid.data4[3],
|
||||
net.zoneGuid.data4[4], net.zoneGuid.data4[5],
|
||||
net.zoneGuid.data4[6], net.zoneGuid.data4[7]);
|
||||
addparams->chanptr, &net.zoneGuid);
|
||||
i = virtpci_device_add(vbus, VIRTNIC_TYPE, addparams, NULL, &net);
|
||||
if (i) {
|
||||
LOGINF("Added vnic macaddr:%02x:%02x:%02x:%02x:%02x:%02x\n",
|
||||
|
@ -1510,7 +1506,6 @@ static ssize_t virt_proc_write(struct file *file, const char __user *buffer,
|
|||
struct add_virt_guestpart addparams;
|
||||
struct del_vbus_guestpart busdelparams;
|
||||
struct del_virt_guestpart delparams;
|
||||
GUID dummyGuid = GUID0;
|
||||
#ifdef STORAGE_CHANNEL
|
||||
U64 storagechannel;
|
||||
#endif
|
||||
|
@ -1561,7 +1556,7 @@ static ssize_t virt_proc_write(struct file *file, const char __user *buffer,
|
|||
__pa(chanptr),
|
||||
MIN_IO_CHANNEL_SIZE,
|
||||
1, /* test msg */
|
||||
dummyGuid, /* inst guid */
|
||||
NULL_UUID_LE, /* inst guid */
|
||||
NULL)) { /*interrupt info */
|
||||
LOGERR("FAILED to inject add vnic\n");
|
||||
return -EFAULT;
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include "uisqueue.h"
|
||||
#include <linux/version.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#define PCI_DEVICE_ID_VIRTHBA 0xAA00
|
||||
#define PCI_DEVICE_ID_VIRTNIC 0xAB00
|
||||
|
@ -41,7 +42,7 @@ struct net_adap_info {
|
|||
u8 mac_addr[MAX_MACADDR_LEN];
|
||||
int num_rcv_bufs;
|
||||
unsigned mtu;
|
||||
GUID zoneGuid;
|
||||
uuid_le zoneGuid;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#ifndef __VISORCHANNEL_H__
|
||||
#define __VISORCHANNEL_H__
|
||||
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "commontypes.h"
|
||||
#include "memregion.h"
|
||||
#include "channel.h"
|
||||
|
@ -38,15 +40,15 @@ typedef struct VISORCHANNEL_Tag VISORCHANNEL;
|
|||
* In this case, the values can simply be read from the channel header.
|
||||
*/
|
||||
VISORCHANNEL *visorchannel_create(HOSTADDRESS physaddr,
|
||||
ulong channelBytes, GUID guid);
|
||||
ulong channelBytes, uuid_le guid);
|
||||
VISORCHANNEL *visorchannel_create_overlapped(ulong channelBytes,
|
||||
VISORCHANNEL *parent, ulong off,
|
||||
GUID guid);
|
||||
uuid_le guid);
|
||||
VISORCHANNEL *visorchannel_create_with_lock(HOSTADDRESS physaddr,
|
||||
ulong channelBytes, GUID guid);
|
||||
ulong channelBytes, uuid_le guid);
|
||||
VISORCHANNEL *visorchannel_create_overlapped_with_lock(ulong channelBytes,
|
||||
VISORCHANNEL *parent,
|
||||
ulong off, GUID guid);
|
||||
ulong off, uuid_le guid);
|
||||
void visorchannel_destroy(VISORCHANNEL *channel);
|
||||
int visorchannel_read(VISORCHANNEL *channel, ulong offset,
|
||||
void *local, ulong nbytes);
|
||||
|
@ -64,9 +66,9 @@ ulong visorchannel_get_nbytes(VISORCHANNEL *channel);
|
|||
char *visorchannel_id(VISORCHANNEL *channel, char *s);
|
||||
char *visorchannel_zoneid(VISORCHANNEL *channel, char *s);
|
||||
U64 visorchannel_get_clientpartition(VISORCHANNEL *channel);
|
||||
GUID visorchannel_get_GUID(VISORCHANNEL *channel);
|
||||
uuid_le visorchannel_get_uuid(VISORCHANNEL *channel);
|
||||
MEMREGION *visorchannel_get_memregion(VISORCHANNEL *channel);
|
||||
char *visorchannel_GUID_id(GUID *guid, char *s);
|
||||
char *visorchannel_uuid_id(uuid_le *guid, char *s);
|
||||
void visorchannel_debug(VISORCHANNEL *channel, int nQueues,
|
||||
struct seq_file *seq, U32 off);
|
||||
void visorchannel_dump_section(VISORCHANNEL *chan, char *s,
|
||||
|
|
|
@ -24,14 +24,14 @@
|
|||
|
||||
#include "globals.h"
|
||||
#include "visorchannel.h"
|
||||
#include "guidutils.h"
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#define MYDRVNAME "visorchannel"
|
||||
|
||||
struct VISORCHANNEL_Tag {
|
||||
MEMREGION *memregion; /* from visor_memregion_create() */
|
||||
CHANNEL_HEADER chan_hdr;
|
||||
GUID guid;
|
||||
uuid_le guid;
|
||||
ulong size;
|
||||
BOOL needs_lock;
|
||||
spinlock_t insert_lock;
|
||||
|
@ -50,7 +50,7 @@ struct VISORCHANNEL_Tag {
|
|||
*/
|
||||
static VISORCHANNEL *
|
||||
visorchannel_create_guts(HOSTADDRESS physaddr, ulong channelBytes,
|
||||
VISORCHANNEL *parent, ulong off, GUID guid,
|
||||
VISORCHANNEL *parent, ulong off, uuid_le guid,
|
||||
BOOL needs_lock)
|
||||
{
|
||||
VISORCHANNEL *p = NULL;
|
||||
|
@ -90,7 +90,7 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channelBytes,
|
|||
if (channelBytes == 0)
|
||||
/* we had better be a CLIENT of this channel */
|
||||
channelBytes = (ulong) p->chan_hdr.Size;
|
||||
if (STRUCTSEQUAL(guid, Guid0))
|
||||
if (uuid_le_cmp(guid, NULL_UUID_LE) == 0)
|
||||
/* we had better be a CLIENT of this channel */
|
||||
guid = p->chan_hdr.Type;
|
||||
if (visor_memregion_resize(p->memregion, channelBytes) < 0) {
|
||||
|
@ -114,7 +114,7 @@ Away:
|
|||
}
|
||||
|
||||
VISORCHANNEL *
|
||||
visorchannel_create(HOSTADDRESS physaddr, ulong channelBytes, GUID guid)
|
||||
visorchannel_create(HOSTADDRESS physaddr, ulong channelBytes, uuid_le guid)
|
||||
{
|
||||
return visorchannel_create_guts(physaddr, channelBytes, NULL, 0, guid,
|
||||
FALSE);
|
||||
|
@ -123,7 +123,7 @@ EXPORT_SYMBOL_GPL(visorchannel_create);
|
|||
|
||||
VISORCHANNEL *
|
||||
visorchannel_create_with_lock(HOSTADDRESS physaddr, ulong channelBytes,
|
||||
GUID guid)
|
||||
uuid_le guid)
|
||||
{
|
||||
return visorchannel_create_guts(physaddr, channelBytes, NULL, 0, guid,
|
||||
TRUE);
|
||||
|
@ -132,7 +132,7 @@ EXPORT_SYMBOL_GPL(visorchannel_create_with_lock);
|
|||
|
||||
VISORCHANNEL *
|
||||
visorchannel_create_overlapped(ulong channelBytes,
|
||||
VISORCHANNEL *parent, ulong off, GUID guid)
|
||||
VISORCHANNEL *parent, ulong off, uuid_le guid)
|
||||
{
|
||||
return visorchannel_create_guts(0, channelBytes, parent, off, guid,
|
||||
FALSE);
|
||||
|
@ -142,7 +142,7 @@ EXPORT_SYMBOL_GPL(visorchannel_create_overlapped);
|
|||
VISORCHANNEL *
|
||||
visorchannel_create_overlapped_with_lock(ulong channelBytes,
|
||||
VISORCHANNEL *parent, ulong off,
|
||||
GUID guid)
|
||||
uuid_le guid)
|
||||
{
|
||||
return visorchannel_create_guts(0, channelBytes, parent, off, guid,
|
||||
TRUE);
|
||||
|
@ -177,23 +177,24 @@ visorchannel_get_nbytes(VISORCHANNEL *channel)
|
|||
EXPORT_SYMBOL_GPL(visorchannel_get_nbytes);
|
||||
|
||||
char *
|
||||
visorchannel_GUID_id(GUID *guid, char *s)
|
||||
visorchannel_uuid_id(uuid_le *guid, char *s)
|
||||
{
|
||||
return GUID_format1(guid, s);
|
||||
sprintf(s, "%pUL", guid);
|
||||
return s;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(visorchannel_GUID_id);
|
||||
EXPORT_SYMBOL_GPL(visorchannel_uuid_id);
|
||||
|
||||
char *
|
||||
visorchannel_id(VISORCHANNEL *channel, char *s)
|
||||
{
|
||||
return visorchannel_GUID_id(&channel->guid, s);
|
||||
return visorchannel_uuid_id(&channel->guid, s);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(visorchannel_id);
|
||||
|
||||
char *
|
||||
visorchannel_zoneid(VISORCHANNEL *channel, char *s)
|
||||
{
|
||||
return visorchannel_GUID_id(&channel->chan_hdr.ZoneGuid, s);
|
||||
return visorchannel_uuid_id(&channel->chan_hdr.ZoneGuid, s);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(visorchannel_zoneid);
|
||||
|
||||
|
@ -204,12 +205,12 @@ visorchannel_get_clientpartition(VISORCHANNEL *channel)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(visorchannel_get_clientpartition);
|
||||
|
||||
GUID
|
||||
visorchannel_get_GUID(VISORCHANNEL *channel)
|
||||
uuid_le
|
||||
visorchannel_get_uuid(VISORCHANNEL *channel)
|
||||
{
|
||||
return channel->guid;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(visorchannel_get_GUID);
|
||||
EXPORT_SYMBOL_GPL(visorchannel_get_uuid);
|
||||
|
||||
MEMREGION *
|
||||
visorchannel_get_memregion(VISORCHANNEL *channel)
|
||||
|
@ -558,7 +559,6 @@ visorchannel_debug(VISORCHANNEL *channel, int nQueues,
|
|||
MEMREGION *memregion = NULL;
|
||||
CHANNEL_HEADER hdr;
|
||||
CHANNEL_HEADER *phdr = &hdr;
|
||||
char s[99];
|
||||
int i = 0;
|
||||
int errcode = 0;
|
||||
|
||||
|
@ -588,9 +588,8 @@ visorchannel_debug(VISORCHANNEL *channel, int nQueues,
|
|||
nbytes = (ulong) (phdr->Size);
|
||||
seq_printf(seq, "--- Begin channel @0x%-16.16Lx for 0x%lx bytes (region=0x%lx bytes) ---\n",
|
||||
addr + off, nbytes, nbytes_region);
|
||||
seq_printf(seq, "Type = %s\n", GUID_format2(&phdr->Type, s));
|
||||
seq_printf(seq, "ZoneGuid = %s\n",
|
||||
GUID_format2(&phdr->ZoneGuid, s));
|
||||
seq_printf(seq, "Type = %pUL\n", &phdr->Type);
|
||||
seq_printf(seq, "ZoneGuid = %pUL\n", &phdr->ZoneGuid);
|
||||
seq_printf(seq, "Signature = 0x%-16.16Lx\n",
|
||||
(long long) phdr->Signature);
|
||||
seq_printf(seq, "LegacyState = %lu\n", (ulong) phdr->LegacyState);
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "globals.h"
|
||||
#include "channel.h"
|
||||
#include "visorchannel.h"
|
||||
#include "guidutils.h"
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#define MYDRVNAME "visorchannel"
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "controlvmchannel.h"
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#define MYDRVNAME "visorchipset_parser"
|
||||
#define CURRENT_FILE_PC VISOR_CHIPSET_PC_parser_c
|
||||
|
@ -191,7 +192,7 @@ parser_byteStream_get(PARSER_CONTEXT *ctx, ulong *nbytes)
|
|||
return (void *) ctx->data;
|
||||
}
|
||||
|
||||
GUID
|
||||
uuid_le
|
||||
parser_id_get(PARSER_CONTEXT *ctx)
|
||||
{
|
||||
ULTRA_CONTROLVM_PARAMETERS_HEADER *phdr = NULL;
|
||||
|
@ -199,7 +200,7 @@ parser_id_get(PARSER_CONTEXT *ctx)
|
|||
if (ctx == NULL) {
|
||||
ERRDRV("%s (%s:%d) - no context",
|
||||
__func__, __FILE__, __LINE__);
|
||||
return Guid0;
|
||||
return NULL_UUID_LE;
|
||||
}
|
||||
phdr = (ULTRA_CONTROLVM_PARAMETERS_HEADER *) (ctx->data);
|
||||
return phdr->Id;
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#ifndef __PARSER_H__
|
||||
#define __PARSER_H__
|
||||
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "uniklog.h"
|
||||
#include "timskmod.h"
|
||||
#include "channel.h"
|
||||
|
@ -37,7 +39,7 @@ PARSER_CONTEXT *parser_init_byteStream(U64 addr, U32 bytes, BOOL isLocal,
|
|||
void parser_param_start(PARSER_CONTEXT *ctx, PARSER_WHICH_STRING which_string);
|
||||
void *parser_param_get(PARSER_CONTEXT *ctx, char *nam, int namesize);
|
||||
void *parser_string_get(PARSER_CONTEXT *ctx);
|
||||
GUID parser_id_get(PARSER_CONTEXT *ctx);
|
||||
uuid_le parser_id_get(PARSER_CONTEXT *ctx);
|
||||
char *parser_simpleString_get(PARSER_CONTEXT *ctx);
|
||||
void *parser_byteStream_get(PARSER_CONTEXT *ctx, ulong *nbytes);
|
||||
void parser_done(PARSER_CONTEXT *ctx);
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#define __VISORCHIPSET_TESTING_H__
|
||||
|
||||
#define VISORCHIPSET_TEST_PROC
|
||||
#include <linux/uuid.h>
|
||||
#include "globals.h"
|
||||
#include "controlvmchannel.h"
|
||||
|
||||
|
@ -28,10 +29,10 @@ void test_manufacture_vnic_client_add(void *p);
|
|||
void test_manufacture_vnic_client_add_phys(HOSTADDRESS addr);
|
||||
void test_manufacture_preamble_messages(void);
|
||||
void test_manufacture_device_attach(ulong busNo, ulong devNo);
|
||||
void test_manufacture_device_add(ulong busNo, ulong devNo, GUID dataTypeGuid,
|
||||
void test_manufacture_device_add(ulong busNo, ulong devNo, uuid_le dataTypeGuid,
|
||||
void *pChannel);
|
||||
void test_manufacture_add_bus(ulong busNo, ulong maxDevices,
|
||||
GUID id, u8 *name, BOOL isServer);
|
||||
uuid_le id, u8 *name, BOOL isServer);
|
||||
void test_manufacture_device_destroy(ulong busNo, ulong devNo);
|
||||
void test_manufacture_bus_destroy(ulong busNo);
|
||||
void test_manufacture_detach_externalPort(ulong switchNo, ulong externalPortNo);
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#ifndef __VISORCHIPSET_H__
|
||||
#define __VISORCHIPSET_H__
|
||||
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#include "timskmod.h"
|
||||
#include "channel.h"
|
||||
#include "controlvmchannel.h"
|
||||
|
@ -63,8 +65,8 @@ typedef struct {
|
|||
HOSTADDRESS channelAddr;
|
||||
struct InterruptInfo intr;
|
||||
U64 nChannelBytes;
|
||||
GUID channelTypeGuid;
|
||||
GUID channelInstGuid;
|
||||
uuid_le channelTypeGuid;
|
||||
uuid_le channelInstGuid;
|
||||
|
||||
} VISORCHIPSET_CHANNEL_INFO;
|
||||
|
||||
|
@ -77,7 +79,7 @@ typedef struct {
|
|||
struct list_head entry;
|
||||
U32 busNo;
|
||||
U32 devNo;
|
||||
GUID devInstGuid;
|
||||
uuid_le devInstGuid;
|
||||
VISORCHIPSET_STATE state;
|
||||
VISORCHIPSET_CHANNEL_INFO chanInfo;
|
||||
U32 Reserved1; /* CONTROLVM_ID */
|
||||
|
@ -125,7 +127,7 @@ typedef struct {
|
|||
U32 busNo;
|
||||
VISORCHIPSET_STATE state;
|
||||
VISORCHIPSET_CHANNEL_INFO chanInfo;
|
||||
GUID partitionGuid;
|
||||
uuid_le partitionGuid;
|
||||
U64 partitionHandle;
|
||||
U8 *name; /* UTF8 */
|
||||
U8 *description; /* UTF8 */
|
||||
|
@ -161,7 +163,7 @@ findbus(struct list_head *list, U32 busNo)
|
|||
typedef struct {
|
||||
U32 switchNo;
|
||||
VISORCHIPSET_STATE state;
|
||||
GUID switchTypeGuid;
|
||||
uuid_le switchTypeGuid;
|
||||
U8 *authService1;
|
||||
U8 *authService2;
|
||||
U8 *authService3;
|
||||
|
@ -181,7 +183,7 @@ typedef struct {
|
|||
U32 switchNo;
|
||||
U32 externalPortNo;
|
||||
VISORCHIPSET_STATE state;
|
||||
GUID networkZoneGuid;
|
||||
uuid_le networkZoneGuid;
|
||||
int pdPort;
|
||||
U8 *ip;
|
||||
U8 *ipNetmask;
|
||||
|
@ -224,7 +226,7 @@ typedef struct {
|
|||
void (*device_destroy)(ulong busNo, ulong devNo);
|
||||
void (*device_pause)(ulong busNo, ulong devNo);
|
||||
void (*device_resume)(ulong busNo, ulong devNo);
|
||||
int (*get_channel_info)(GUID typeGuid, ulong *minSize,
|
||||
int (*get_channel_info)(uuid_le typeGuid, ulong *minSize,
|
||||
ulong *maxSize);
|
||||
} VISORCHIPSET_BUSDEV_NOTIFIERS;
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "parser.h"
|
||||
#include "uniklog.h"
|
||||
#include "uisutils.h"
|
||||
#include "guidutils.h"
|
||||
#include "controlvmcompletionstatus.h"
|
||||
#include "guestlinuxdebug.h"
|
||||
#include "filexfer.h"
|
||||
|
@ -34,6 +33,7 @@
|
|||
#include <linux/nls.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/uuid.h>
|
||||
|
||||
#define CURRENT_FILE_PC VISOR_CHIPSET_PC_visorchipset_main_c
|
||||
#define TEST_VNIC_PHYSITF "eth0" /* physical network itf for
|
||||
|
@ -82,7 +82,7 @@ typedef struct {
|
|||
static CONTROLVM_MESSAGE_HEADER g_DiagMsgHdr;
|
||||
static CONTROLVM_MESSAGE_HEADER g_ChipSetMsgHdr;
|
||||
static CONTROLVM_MESSAGE_HEADER g_DelDumpMsgHdr;
|
||||
static const GUID UltraDiagPoolChannelProtocolGuid =
|
||||
static const uuid_le UltraDiagPoolChannelProtocolGuid =
|
||||
ULTRA_DIAG_POOL_CHANNEL_PROTOCOL_GUID;
|
||||
/* 0xffffff is an invalid Bus/Device number */
|
||||
static ulong g_diagpoolBusNo = 0xffffff;
|
||||
|
@ -93,15 +93,12 @@ static CONTROLVM_MESSAGE_PACKET g_DeviceChangeStatePacket;
|
|||
* "visorhackbus")
|
||||
*/
|
||||
#define FOR_VISORHACKBUS(channel_type_guid) \
|
||||
((memcmp(&channel_type_guid, &UltraVnicChannelProtocolGuid, \
|
||||
sizeof(GUID)) == 0) || \
|
||||
(memcmp(&channel_type_guid, &UltraVhbaChannelProtocolGuid, \
|
||||
sizeof(GUID)) == 0))
|
||||
(((uuid_le_cmp(channel_type_guid, UltraVnicChannelProtocolGuid) == 0)\
|
||||
|| (uuid_le_cmp(channel_type_guid, UltraVhbaChannelProtocolGuid) == 0)))
|
||||
#define FOR_VISORBUS(channel_type_guid) (!(FOR_VISORHACKBUS(channel_type_guid)))
|
||||
|
||||
#define is_diagpool_channel(channel_type_guid) \
|
||||
(memcmp(&channel_type_guid, \
|
||||
&UltraDiagPoolChannelProtocolGuid, sizeof(GUID)) == 0)
|
||||
(uuid_le_cmp(channel_type_guid, UltraDiagPoolChannelProtocolGuid) == 0)
|
||||
|
||||
typedef enum {
|
||||
PARTPROP_invalid,
|
||||
|
@ -1189,7 +1186,7 @@ bus_configure(CONTROLVM_MESSAGE *inmsg, PARSER_CONTEXT *parser_ctx)
|
|||
parser_param_start(parser_ctx, PARSERSTRING_NAME);
|
||||
pBusInfo->name = parser_string_get(parser_ctx);
|
||||
|
||||
visorchannel_GUID_id(&pBusInfo->partitionGuid, s);
|
||||
visorchannel_uuid_id(&pBusInfo->partitionGuid, s);
|
||||
pBusInfo->procObject =
|
||||
visor_proc_CreateObject(PartitionType, s, (void *) (pBusInfo));
|
||||
if (pBusInfo->procObject == NULL) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче