[PATCH v5 7/7] i386: Port to RTEMS

Jan Sommer jan.sommer at dlr.de
Fri Apr 17 08:24:08 UTC 2020


- Update imported files to compile rtems-libbsd for i386 based BSPs
- Mostly commenting out parts which create compile or link errors in
RTEMS, but aren't needed
---
 freebsd/sbin/sysctl/sysctl.c                | 8 ++++++++
 freebsd/sys/dev/pci/pci_pci.c               | 2 ++
 freebsd/sys/i386/include/machine/cpufunc.h  | 2 ++
 freebsd/sys/kern/subr_gtaskqueue.c          | 4 ++++
 rtemsbsd/i386/include/machine/clock.h       | 2 ++
 rtemsbsd/include/rtems/bsd/local/opt_acpi.h | 0
 6 files changed, 18 insertions(+)
 create mode 100644 rtemsbsd/i386/include/machine/clock.h
 create mode 100644 rtemsbsd/include/rtems/bsd/local/opt_acpi.h

diff --git a/freebsd/sbin/sysctl/sysctl.c b/freebsd/sbin/sysctl/sysctl.c
index 30ebe5fd..035c1db2 100644
--- a/freebsd/sbin/sysctl/sysctl.c
+++ b/freebsd/sbin/sysctl/sysctl.c
@@ -69,7 +69,9 @@ static const char rcsid[] =
 #endif
 
 #if defined(__amd64__) || defined(__i386__)
+#ifndef __rtems__
 #include <machine/pc/bios.h>
+#endif /* __rtems__ */
 #endif
 
 #include <assert.h>
@@ -832,6 +834,7 @@ S_efi_map(size_t l2, void *p)
 #endif
 
 #if defined(__amd64__) || defined(__i386__)
+#ifndef __rtems__
 static int
 S_bios_smap_xattr(size_t l2, void *p)
 {
@@ -850,6 +853,7 @@ S_bios_smap_xattr(size_t l2, void *p)
 		    (uintmax_t)smap->length);
 	return (0);
 }
+#endif /* __rtems__ */
 #endif
 
 static int
@@ -1061,7 +1065,11 @@ show_var(int *oid, int nlen)
 #endif
 #if defined(__amd64__) || defined(__i386__)
 		else if (strcmp(fmt, "S,bios_smap_xattr") == 0)
+#ifndef __rtems__
 			func = S_bios_smap_xattr;
+#else /* __rtems__ */
+			func = NULL;
+#endif /* __rtems__ */
 #endif
 		else {
 			func = NULL;
diff --git a/freebsd/sys/dev/pci/pci_pci.c b/freebsd/sys/dev/pci/pci_pci.c
index 43c71461..5ba3e9a0 100644
--- a/freebsd/sys/dev/pci/pci_pci.c
+++ b/freebsd/sys/dev/pci/pci_pci.c
@@ -1593,6 +1593,7 @@ pcib_attach_common(device_t dev)
 	sc->flags |= PCIB_SUBTRACTIVE;
 	break;
 
+#ifndef __rtems__
 #if !(defined(NEW_PCIB) && defined(PCI_RES_BUS))
     /* Compaq R3000 BIOS sets wrong subordinate bus number. */
     case 0x00dd10de:
@@ -1620,6 +1621,7 @@ pcib_attach_common(device_t dev)
 	    break;
 	}
 #endif
+#endif /* __rtems__ */
     }
 
     if (pci_msi_device_blacklisted(dev))
diff --git a/freebsd/sys/i386/include/machine/cpufunc.h b/freebsd/sys/i386/include/machine/cpufunc.h
index a029da3b..e50ef9d7 100644
--- a/freebsd/sys/i386/include/machine/cpufunc.h
+++ b/freebsd/sys/i386/include/machine/cpufunc.h
@@ -233,11 +233,13 @@ fls(int mask)
 
 #define	HAVE_INLINE_FLSL
 
+#ifndef __rtems__
 static __inline __pure2 int
 flsl(long mask)
 {
 	return (fls((int)mask));
 }
+#endif /* __rtems__ */
 
 #endif /* _KERNEL */
 
diff --git a/freebsd/sys/kern/subr_gtaskqueue.c b/freebsd/sys/kern/subr_gtaskqueue.c
index c061c6b0..4ef05e0a 100644
--- a/freebsd/sys/kern/subr_gtaskqueue.c
+++ b/freebsd/sys/kern/subr_gtaskqueue.c
@@ -744,7 +744,9 @@ taskqgroup_attach(struct taskqgroup *qgroup, struct grouptask *gtask,
 			    __func__, gtask->gt_name, error);
 	} else
 #else /* __rtems__ */
+#ifndef __i386__
 	BSD_ASSERT(irq == -1);
+#endif /* __i386 */
 #endif /* __rtems__ */
 		mtx_unlock(&qgroup->tqg_lock);
 }
@@ -776,7 +778,9 @@ taskqgroup_attach_deferred(struct taskqgroup *qgroup, struct grouptask *gtask)
 
 	}
 #else /* __rtems__ */
+#ifndef __i386__
 	BSD_ASSERT(gtask->gt_irq == -1);
+#endif /* __i386 */
 #endif /* __rtems__ */
 	qgroup->tqg_queue[qid].tgc_cnt++;
 	LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list);
diff --git a/rtemsbsd/i386/include/machine/clock.h b/rtemsbsd/i386/include/machine/clock.h
new file mode 100644
index 00000000..415e2b55
--- /dev/null
+++ b/rtemsbsd/i386/include/machine/clock.h
@@ -0,0 +1,2 @@
+extern int tsc_is_invariant;
+extern uint64_t tsc_freq;
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_acpi.h b/rtemsbsd/include/rtems/bsd/local/opt_acpi.h
new file mode 100644
index 00000000..e69de29b
-- 
2.12.3



More information about the devel mailing list