Author: andrew
Date: Thu Jul 14 17:10:54 2016
New Revision: 302849
URL: https://svnweb.freebsd.org/changeset/base/302849

Log:
  Move structures only used by the GICv3 ITS driver from a shared header to
  the ITS driver file. There is no need for other drivers to need to know
  about these structures.
  
  Obtained from:        ABT Systems Ltd
  MFC after:    1 month
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/arm64/arm64/gic_v3_var.h
  head/sys/arm64/arm64/gicv3_its.c

Modified: head/sys/arm64/arm64/gic_v3_var.h
==============================================================================
--- head/sys/arm64/arm64/gic_v3_var.h   Thu Jul 14 17:05:25 2016        
(r302848)
+++ head/sys/arm64/arm64/gic_v3_var.h   Thu Jul 14 17:10:54 2016        
(r302849)
@@ -108,87 +108,6 @@ void gic_r_write_4(device_t, bus_size_t,
 void gic_r_write_8(device_t, bus_size_t, uint64_t var);
 
 /*
- * ITS
- */
-
-/* LPI chunk owned by ITS device */
-struct lpi_chunk {
-       u_int   lpi_base;
-       u_int   lpi_free;       /* First free LPI in set */
-       u_int   lpi_num;        /* Total number of LPIs in chunk */
-       u_int   lpi_busy;       /* Number of busy LPIs in chink */
-};
-
-/* ITS device */
-struct its_dev {
-       TAILQ_ENTRY(its_dev)    entry;
-       /* PCI device */
-       device_t                pci_dev;
-       /* Device ID (i.e. PCI device ID) */
-       uint32_t                devid;
-       /* List of assigned LPIs */
-       struct lpi_chunk        lpis;
-       /* Virtual address of ITT */
-       vm_offset_t             itt;
-       size_t                  itt_size;
-};
-
-/*
- * ITS command descriptor.
- * Idea for command description passing taken from Linux.
- */
-struct its_cmd_desc {
-       uint8_t cmd_type;
-
-       union {
-               struct {
-                       struct its_dev *its_dev;
-                       struct its_col *col;
-                       uint32_t id;
-               } cmd_desc_movi;
-
-               struct {
-                       struct its_col *col;
-               } cmd_desc_sync;
-
-               struct {
-                       struct its_col *col;
-                       uint8_t valid;
-               } cmd_desc_mapc;
-
-               struct {
-                       struct its_dev *its_dev;
-                       struct its_col *col;
-                       uint32_t pid;
-                       uint32_t id;
-               } cmd_desc_mapvi;
-
-               struct {
-                       struct its_dev *its_dev;
-                       struct its_col *col;
-                       uint32_t pid;
-               } cmd_desc_mapi;
-
-               struct {
-                       struct its_dev *its_dev;
-                       uint8_t valid;
-               } cmd_desc_mapd;
-
-               struct {
-                       struct its_dev *its_dev;
-                       struct its_col *col;
-                       uint32_t pid;
-               } cmd_desc_inv;
-
-               struct {
-                       struct its_col *col;
-               } cmd_desc_invall;
-       };
-};
-
-#define        ITS_TARGET_NONE         0xFBADBEEF
-
-/*
  * GIC Distributor accessors.
  * Notice that only GIC sofc can be passed.
  */

Modified: head/sys/arm64/arm64/gicv3_its.c
==============================================================================
--- head/sys/arm64/arm64/gicv3_its.c    Thu Jul 14 17:05:25 2016        
(r302848)
+++ head/sys/arm64/arm64/gicv3_its.c    Thu Jul 14 17:10:54 2016        
(r302849)
@@ -123,6 +123,83 @@ MALLOC_DEFINE(M_GICV3_ITS, "GICv3 ITS",
 #define        CMD_VALID_SHIFT         (63)
 #define        CMD_VALID_MASK          (1UL << CMD_VALID_SHIFT)
 
+#define        ITS_TARGET_NONE         0xFBADBEEF
+
+/* LPI chunk owned by ITS device */
+struct lpi_chunk {
+       u_int   lpi_base;
+       u_int   lpi_free;       /* First free LPI in set */
+       u_int   lpi_num;        /* Total number of LPIs in chunk */
+       u_int   lpi_busy;       /* Number of busy LPIs in chink */
+};
+
+/* ITS device */
+struct its_dev {
+       TAILQ_ENTRY(its_dev)    entry;
+       /* PCI device */
+       device_t                pci_dev;
+       /* Device ID (i.e. PCI device ID) */
+       uint32_t                devid;
+       /* List of assigned LPIs */
+       struct lpi_chunk        lpis;
+       /* Virtual address of ITT */
+       vm_offset_t             itt;
+       size_t                  itt_size;
+};
+
+/*
+ * ITS command descriptor.
+ * Idea for command description passing taken from Linux.
+ */
+struct its_cmd_desc {
+       uint8_t cmd_type;
+
+       union {
+               struct {
+                       struct its_dev *its_dev;
+                       struct its_col *col;
+                       uint32_t id;
+               } cmd_desc_movi;
+
+               struct {
+                       struct its_col *col;
+               } cmd_desc_sync;
+
+               struct {
+                       struct its_col *col;
+                       uint8_t valid;
+               } cmd_desc_mapc;
+
+               struct {
+                       struct its_dev *its_dev;
+                       struct its_col *col;
+                       uint32_t pid;
+                       uint32_t id;
+               } cmd_desc_mapvi;
+
+               struct {
+                       struct its_dev *its_dev;
+                       struct its_col *col;
+                       uint32_t pid;
+               } cmd_desc_mapi;
+
+               struct {
+                       struct its_dev *its_dev;
+                       uint8_t valid;
+               } cmd_desc_mapd;
+
+               struct {
+                       struct its_dev *its_dev;
+                       struct its_col *col;
+                       uint32_t pid;
+               } cmd_desc_inv;
+
+               struct {
+                       struct its_col *col;
+               } cmd_desc_invall;
+       };
+};
+
 /* ITS command. Each command is 32 bytes long */
 struct its_cmd {
        uint64_t        cmd_dword[4];   /* ITS command double word */
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to