-/*
- * This is the 'Syslet Atom' - the basic unit of execution
- * within the syslet framework. A syslet always represents
- * a single system-call plus its arguments, plus has conditions
- * attached to it that allows the construction of larger
- * programs from these atoms. User-space variables can be used
- * (for example a loop index) via the special sys_umem*() syscalls.
- *
- * Arguments are implemented via pointers to arguments. This not
- * only increases the flexibility of syslet atoms (multiple syslets
- * can share the same variable for example), but is also an
- * optimization: copy_uatom() will only fetch syscall parameters
- * up until the point it meets the first NULL pointer. 50% of all
- * syscalls have 2 or less parameters (and 90% of all syscalls have
- * 4 or less parameters).
- *
- * [ Note: since the argument array is at the end of the atom, and the
- * kernel will not touch any argument beyond the final NULL one, atoms
- * might be packed more tightly. (the only special case exception to
- * this rule would be SKIP_TO_NEXT_ON_STOP atoms, where the kernel will
- * jump a full syslet_uatom number of bytes.) ]
- */
-struct syslet_uatom {
- unsigned long flags;
- unsigned long nr;
- long __user *ret_ptr;
- struct syslet_uatom __user *next;
- unsigned long __user *arg_ptr[6];
- /*
- * User-space can put anything in here, kernel will not
- * touch it:
- */
- void __user *private;