text: #pragma once
  
  #include <lib/type.h>
  
  struct pmo_request {
  	/* input: args */
  	u64 size;
  	u64 type;
  
  	/* output: return value */
  	u64 ret_cap;
  };
  
  struct pmo_map_request {
  	/* input: args */
  	u64 pmo_cap;
  	u64 addr;
  	u64 perm;
  
  	/* output: return value */
  	u64 ret;
  };
  
  int launch_process(struct user_elf *user_elf,
  		   int *child_process_cap,
  		   int *child_main_thread_cap,
  		   struct pmo_map_request *pmo_map_reqs,
  		   int nr_pmo_map_reqs, int caps[], int nr_caps, int cpuid);
  
  int launch_process_with_pmos_caps(struct user_elf *user_elf,
  				  int *child_process_cap,
  				  int *child_main_thread_cap,
  				  struct pmo_map_request *pmo_map_reqs,
  				  int nr_pmo_map_reqs, int caps[], int nr_caps,
  				  s32 aff);
  