]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/spawn_internal.h
xnu-1699.24.8.tar.gz
[apple/xnu.git] / bsd / sys / spawn_internal.h
index fe3524b84ec969efbfbb240c6e973ad149ca43ea..d295260951465e63e62274632d99dac6ce9b546c 100644 (file)
@@ -30,7 +30,7 @@
 /*
  * [SPN] Support for _POSIX_SPAWN
  *
- * This file contains intern datastructures which are externally represented
+ * This file contains internal data structures which are externally represented
  * as opaque void pointers to prevent introspection.  This permits us to
  * change the underlying implementation of the code to maintain it or to
  * support new features, as needed, without the consumer needing to recompile
@@ -53,6 +53,7 @@
 typedef enum {
        PSPA_SPECIAL = 0,
        PSPA_EXCEPTION = 1,
+       PSPA_AU_SESSION = 2,
 } pspa_t;
 
 /*
@@ -99,6 +100,7 @@ typedef struct _posix_spawnattr {
        pid_t           psa_pgroup;             /* pgroup to spawn into */
        cpu_type_t      psa_binprefs[NBINPREFS];   /* cpu affinity prefs*/
        _posix_spawn_port_actions_t     psa_ports; /* special/exception ports */
+       int             psa_pcontrol;           /* process control bits on resource starvation */
 } *_posix_spawnattr_t;
 
 
@@ -108,7 +110,8 @@ typedef struct _posix_spawnattr {
 typedef enum {
        PSFA_OPEN = 0,
        PSFA_CLOSE = 1,
-       PSFA_DUP2 = 2
+       PSFA_DUP2 = 2,
+       PSFA_INHERIT = 3
 } psfa_t;
 
 
@@ -200,6 +203,15 @@ struct _posix_spawn_args_desc {
 #pragma options align=natural
 #endif
 
+struct user32__posix_spawn_args_desc {
+       uint32_t                attr_size;      /* size of attributes block */
+       uint32_t                attrp;          /* pointer to block */
+       uint32_t        file_actions_size;      /* size of file actions block */
+       uint32_t                file_actions;   /* pointer to block */
+       uint32_t        port_actions_size;      /* size of port actions block */
+       uint32_t                port_actions;   /* pointer to block */
+};
+
 struct user__posix_spawn_args_desc {
        user_size_t             attr_size;      /* size of attributes block */
        user_addr_t             attrp;          /* pointer to block */