bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH hurd 18/30] proc: add payload-aware intrans functions


From: Justus Winter
Subject: [PATCH hurd 18/30] proc: add payload-aware intrans functions
Date: Thu, 27 Nov 2014 14:18:58 +0100

* proc/mig-decls.h (begin_using_proc_payload): New function.
(begin_using_exc_payload): Likewise.
* proc/mig-mutate.h: Add mutators.
* proc/proc_exc.defs (exception_t): Add payload-aware in-translator
function.
---
 proc/mig-decls.h   | 17 +++++++++++++++++
 proc/mig-mutate.h  |  4 ++++
 proc/proc_exc.defs |  1 +
 3 files changed, 22 insertions(+)

diff --git a/proc/mig-decls.h b/proc/mig-decls.h
index 7d36a87..eb33ef3 100644
--- a/proc/mig-decls.h
+++ b/proc/mig-decls.h
@@ -35,6 +35,17 @@ begin_using_proc_port (mach_port_t port)
   return (!p || p->p_dead) ? NULL : p;
 }
 
+static inline struct proc * __attribute__ ((unused))
+begin_using_proc_payload (unsigned long payload)
+{
+  struct proc *p;
+  p = ports_lookup_payload (proc_bucket, payload, proc_class);
+  if (p && p->p_dead)
+    ports_port_deref (p);
+  return (!p || p->p_dead) ? 0 : p;
+}
+
+
 static inline void __attribute__ ((unused))
 end_using_proc (struct proc *p)
 {
@@ -50,6 +61,12 @@ begin_using_exc_port (mach_port_t port)
   return ports_lookup_port (NULL, port, exc_class);
 }
 
+static inline exc_t __attribute__ ((unused))
+begin_using_exc_payload (unsigned long payload)
+{
+  return ports_lookup_payload (NULL, payload, exc_class);
+}
+
 static inline void __attribute__ ((unused))
 end_using_exc (exc_t exc)
 {
diff --git a/proc/mig-mutate.h b/proc/mig-mutate.h
index ce9f88e..62dc2a5 100644
--- a/proc/mig-mutate.h
+++ b/proc/mig-mutate.h
@@ -20,6 +20,8 @@
 
 #define PROCESS_INTRAN                                         \
   pstruct_t begin_using_proc_port (process_t)
+#define PROCESS_INTRAN_PAYLOAD                                 \
+  pstruct_t begin_using_proc_payload
 #define PROCESS_DESTRUCTOR                                     \
   end_using_proc (pstruct_t)
 #define PROCESS_IMPORTS                                                \
@@ -27,6 +29,8 @@
 
 #define NOTIFY_INTRAN                                          \
   port_info_t begin_using_port_info_port (mach_port_t)
+#define NOTIFY_INTRAN_PAYLOAD                                  \
+  port_info_t begin_using_port_info_payload
 #define NOTIFY_DESTRUCTOR                                      \
   end_using_port_info (port_info_t)
 #define NOTIFY_IMPORTS                                         \
diff --git a/proc/proc_exc.defs b/proc/proc_exc.defs
index c910824..9dc3626 100644
--- a/proc/proc_exc.defs
+++ b/proc/proc_exc.defs
@@ -38,6 +38,7 @@ import "mig-decls.h";
 type exception_t = mach_port_copy_send_t
        cusertype: mach_port_t
        intran: exc_t begin_using_exc_port (exception_t)
+       intranpayload: exc_t begin_using_exc_payload
        destructor: end_using_exc (exc_t);
 
 routine proc_exception_raise (
-- 
2.1.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]