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;