diff -urN linux/fs/proc/array.c linux-2.3.20-execdomains/fs/proc/array.c
--- linux/fs/proc/array.c Thu Sep 16 21:33:56 1999
+++ linux-2.3.20-execdomains/fs/proc/array.c Sun Oct 10 15:07:16 1999
@@ -46,6 +46,9 @@
*
* Gerhard Wichert : added BIGMEM support
* Siemens AG <
[email protected]>
+ *
+ * Tigran Aivazian : added /proc/execdomains support
+ * <
[email protected]>
*/
#include <linux/types.h>
@@ -1328,6 +1331,8 @@
extern int get_device_list(char *);
extern int get_partition_list(char *);
extern int get_filesystem_list(char *);
+extern struct proc_dir_entry proc_root_execdomains;
+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 +1447,9 @@
case PROC_STRAM:
return get_stram_list(page);
#endif
+ case PROC_EXECDOMAINS:
+ proc_root_execdomains.size = get_exec_domain_list(page);
+ return proc_root_execdomains.size;
}
return -EBADF;
}
diff -urN linux/fs/proc/root.c linux-2.3.20-execdomains/fs/proc/root.c
--- linux/fs/proc/root.c Thu Sep 16 21:34:16 1999
+++ linux-2.3.20-execdomains/fs/proc/root.c Sun Oct 10 15:08:10 1999
@@ -602,6 +602,11 @@
S_IFREG | S_IRUGO, 1, 0, 0,
0, &proc_array_inode_operations
};
+struct proc_dir_entry proc_root_execdomains = {
+ PROC_EXECDOMAINS, 11,"execdomains",
+ S_IFREG | S_IRUGO, 1, 0, 0,
+ 0, &proc_array_inode_operations
+};
static struct proc_dir_entry proc_root_ksyms = {
PROC_KSYMS, 5, "ksyms",
S_IFREG | S_IRUGO, 1, 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.20-execdomains/include/linux/proc_fs.h
--- linux/include/linux/proc_fs.h Sat Oct 9 21:50:38 1999
+++ linux-2.3.20-execdomains/include/linux/proc_fs.h Sun Oct 10 15:13:34 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.20-execdomains/kernel/exec_domain.c
--- linux/kernel/exec_domain.c Thu Sep 16 21:34:08 1999
+++ linux-2.3.20-execdomains/kernel/exec_domain.c Sun Oct 10 15:09:29 1999
@@ -97,6 +97,19 @@
return -EINVAL;
}
+int get_exec_domain_list(char * buf)
+{
+ int len = 0;
+ struct exec_domain * e;
+
+ for (e=exec_domains; e && len < PAGE_SIZE - 80; e=e->next)
+ len += sprintf(buf+len, "%d-%d\t%-16s\t[%s]\n",
+ e->pers_low, e->pers_high, e->name,
+ e->module ? e->module->name : "kernel");
+
+ return len;
+}
+
asmlinkage long sys_personality(unsigned long personality)
{
struct exec_domain *it;