svn commit: r359986 - head/sys/sys

Brooks Davis brooks at FreeBSD.org
Wed Apr 15 20:20:00 UTC 2020


Author: brooks
Date: Wed Apr 15 20:19:59 2020
New Revision: 359986
URL: https://svnweb.freebsd.org/changeset/base/359986

Log:
  Introduce an AUXARGS_ENTRY_PTR() macro.
  
  As the name implys, it uses the a_ptr member of the auxarg entry (except
  in compat32 where it uses a_val).  This is more correct and required for
  systems where a_val is not the same size or hardware type as a_ptr (e.g.
  CHERI).
  
  This is a prepratory commit for D24407.
  
  Reviewed by:	kib
  Obtained from:	CheriBSD
  Sponsored by:	DARPA

Modified:
  head/sys/sys/imgact_elf.h

Modified: head/sys/sys/imgact_elf.h
==============================================================================
--- head/sys/sys/imgact_elf.h	Wed Apr 15 19:47:19 2020	(r359985)
+++ head/sys/sys/imgact_elf.h	Wed Apr 15 20:19:59 2020	(r359986)
@@ -39,6 +39,13 @@
 
 #define	AUXARGS_ENTRY(pos, id, val) \
     {(pos)->a_type = (id); (pos)->a_un.a_val = (val); (pos)++;}
+#if (defined(__LP64__) && __ELF_WORD_SIZE == 32)
+#define	AUXARGS_ENTRY_PTR(pos, id, ptr) \
+    {(pos)->a_type = (id); (pos)->a_un.a_val = (uintptr_t)(ptr); (pos)++;}
+#else
+#define	AUXARGS_ENTRY_PTR(pos, id, ptr) \
+    {(pos)->a_type = (id); (pos)->a_un.a_ptr = (ptr); (pos)++;}
+#endif
 
 struct image_params;
 struct thread;


More information about the svn-src-head mailing list