diff -urN linux/fs/proc/array.c linux-2.3.18-execdomains/fs/proc/array.c
--- linux/fs/proc/array.c       Tue Aug 31 19:35:59 1999
+++ linux-2.3.18-execdomains/fs/proc/array.c    Tue Sep 14 14:13:10 1999
@@ -1328,6 +1328,7 @@
extern int get_device_list(char *);
extern int get_partition_list(char *);
extern int get_filesystem_list(char *);
+extern int get_exec_domain_list(char *);
extern int get_filesystem_info( char * );
extern int get_irq_list(char *);
extern int get_dma_list(char *);
@@ -1442,6 +1443,8 @@
               case PROC_STRAM:
                       return get_stram_list(page);
#endif
+               case PROC_EXECDOMAINS:
+                       return get_exec_domain_list(page);
       }
       return -EBADF;
}
diff -urN linux/fs/proc/root.c linux-2.3.18-execdomains/fs/proc/root.c
--- linux/fs/proc/root.c        Fri Sep 10 19:12:16 1999
+++ linux-2.3.18-execdomains/fs/proc/root.c     Tue Sep 14 14:16:02 1999
@@ -633,6 +633,11 @@
       S_IFREG | S_IRUGO, 1, 0, 0,
       0, &proc_array_inode_operations
};
+static struct proc_dir_entry proc_root_execdomains = {
+       PROC_EXECDOMAINS, 11,"execdomains",
+       S_IFREG | S_IRUGO, 1, 0, 0,
+       0, &proc_array_inode_operations
+};
struct proc_dir_entry proc_root_fs = {
        PROC_FS, 2, "fs",
        S_IFDIR | S_IRUGO | S_IXUGO, 2, 0, 0,
@@ -750,6 +755,7 @@
       proc_register(&proc_root, &proc_root_partitions);
       proc_register(&proc_root, &proc_root_interrupts);
       proc_register(&proc_root, &proc_root_filesystems);
+       proc_register(&proc_root, &proc_root_execdomains);
       proc_register(&proc_root, &proc_root_fs);
       proc_register(&proc_root, &proc_root_dma);
       proc_register(&proc_root, &proc_root_ioports);
diff -urN linux/include/linux/proc_fs.h linux-2.3.18-execdomains/include/linux/proc_fs.h
--- linux/include/linux/proc_fs.h       Fri Sep 10 19:12:16 1999
+++ linux-2.3.18-execdomains/include/linux/proc_fs.h    Tue Sep 14 14:18:30 1999
@@ -57,6 +57,7 @@
       PROC_FS,
       PROC_SYSVIPC,
       PROC_DRIVER,
+       PROC_EXECDOMAINS,
};

enum pid_directory_inos {
diff -urN linux/kernel/exec_domain.c linux-2.3.18-execdomains/kernel/exec_domain.c
--- linux/kernel/exec_domain.c  Sat Sep  4 21:06:08 1999
+++ linux-2.3.18-execdomains/kernel/exec_domain.c       Tue Sep 14 14:17:28 1999
@@ -97,6 +97,21 @@
       return -EINVAL;
}

+/* used by fs/proc/array.c for /proc/execdomains */
+int get_exec_domain_list(char * buf)
+{
+       int len = 0;
+       struct exec_domain * tmp;
+
+       tmp = exec_domains;
+       while (tmp && len < PAGE_SIZE - 80) {
+               len += sprintf(buf+len, "%d-%d\t%s\n",
+                       tmp->pers_low, tmp->pers_high, tmp->name);
+               tmp = tmp->next;
+       }
+       return len;
+}
+
asmlinkage long sys_personality(unsigned long personality)
{
       struct exec_domain *it;