[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] Changes to Broadcom(BCM) files and Raspberry
From: |
Geert Martin Ijewski |
Subject: |
Re: [Qemu-arm] [Qemu-devel] Changes to Broadcom(BCM) files and Raspberry Pi files. Addition of PanelEmu |
Date: |
Tue, 16 May 2017 10:55:16 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
Am 14.05.2017 um 02:42 schrieb John Bradley via Qemu-devel:
From 7f74f048f135d9c9c230a9e90f72451c841c6d35 Mon Sep 17 00:00:00 2001
From: John Bradley <address@hidden>
Date: Sat, 13 May 2017 23:07:47 +0100
Subject: [PATCH] Changes to Broadcom(BCM) files and Raspberry Pi files.
Addition of PanelEmu
The files add the ability to attach, via TCP, a panel emulator
The include a unification of several PD Raspberry PI additions
A modification to dev-network to all circle SDK WWW client to work
The DummyPanel is not included but available at
https://github.com/flypie/GDummyPanel.git
Signed-off-by: John Bradley <address@hidden>
---
[ ... snip ... ]
diff --git a/util/PanelEmu.c b/util/PanelEmu.c
new file mode 100644
index 0000000000..59c87d2747
--- /dev/null
+++ b/util/PanelEmu.c
@@ -0,0 +1,293 @@
+/*
+ * Emulation for Rasp PI GPIO via Server connected to via Socket
+ *
+ */
+#include "qemu/osdep.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <memory.h>
+#include <errno.h>
+#include <string.h>
+#include <sys/types.h>
+#ifdef __MINGW32__
I think that should be #ifdef _WIN32.
Maybe in the far future QEMU could also be compiled with Visual Studio
or any other windows compiler
+#include <winsock2.h>
+#else
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#endif
+
+
+#include "qemu/PanelEmu.h"
+
+typedef enum
+{
+ MACHINEDESC = 0,
+ PINSTOPANEL = 1,
+ READREQ = 2,
+ PINCOUNT = 3,
+ ENABLEMAP = 4,
+ INPUTMAP = 5,
+ OUTPUTMAP = 6,
+ PINSTOQEMU = 7
+} PacketType;
+
+#define MAXPACKET 255
+
+#define PACKETLEN 0 //Includes Packet Length
+#define PACKETTYPE 1
+
+typedef struct
+{
+ unsigned short int Data[MAXPACKET];
+} CommandPacket;
Why not something like
typedef struct
{
uint8_t len;
uint8_t type;
union {
struct {
uint8_t cnt;
} pinCount;
struct {
uint16_t pin0to15;
uint16_t pin16to31;
uint16_t pin32to47;
uint16_t pin48to63;
} dataUpdate;
/* todo: other packet types */
};
} CommandPacket;
[ ... snip ... ]
+/* Set a pin to a specified value */
+void senddatatopanel(panel_connection_t* h, uint64_t pin, bool val)
+{
+ CommandPacket Pkt;
+
+ Pkt.Data[PACKETLEN] = (char *) &Pkt.Data[6 + 1]-(char *) &Pkt.Data[0];
what's the use of this pointer aritmethic instead of just 6?
Geert
Re: [Qemu-arm] [Qemu-devel] Changes to Broadcom(BCM) files and Raspberry Pi files. Addition of PanelEmu,
Geert Martin Ijewski <=