On Thu, Feb 15, 2007 at 05:52:39PM +0100, Ingo Molnar ([EMAIL PROTECTED]) wrote:
> +/*
> + * Create an async thread
> + */
> +int create_async_thread(int (*fn)(void *), void * arg, unsigned long flags)
> +{
> + struct pt_regs regs;
> +
> + memset(, 0, sizeof(regs));
> +
> + regs.ebx =
On Thu, Feb 15, 2007 at 05:52:39PM +0100, Ingo Molnar ([EMAIL PROTECTED]) wrote:
+/*
+ * Create an async thread
+ */
+int create_async_thread(int (*fn)(void *), void * arg, unsigned long flags)
+{
+ struct pt_regs regs;
+
+ memset(regs, 0, sizeof(regs));
+
+ regs.ebx =
On Thu, 15 Feb 2007, Ingo Molnar wrote:
> +ENTRY(async_thread_helper)
> + CFI_STARTPROC
> + /*
> + * Allocate space on the stack for pt-regs.
> + * sizeof(struct pt_regs) == 64, and we've got 8 bytes on the
> + * kernel stack already:
> + */
> + subl $64-8, %esp
>
From: Ingo Molnar <[EMAIL PROTECTED]>
add the create_async_thread() way of creating kernel threads:
these threads first execute a kernel function and when they
return from it they execute user-space.
An architecture must implement this interface before it can turn
CONFIG_ASYNC_SUPPORT on.
From: Ingo Molnar [EMAIL PROTECTED]
add the create_async_thread() way of creating kernel threads:
these threads first execute a kernel function and when they
return from it they execute user-space.
An architecture must implement this interface before it can turn
CONFIG_ASYNC_SUPPORT on.
On Thu, 15 Feb 2007, Ingo Molnar wrote:
+ENTRY(async_thread_helper)
+ CFI_STARTPROC
+ /*
+ * Allocate space on the stack for pt-regs.
+ * sizeof(struct pt_regs) == 64, and we've got 8 bytes on the
+ * kernel stack already:
+ */
+ subl $64-8, %esp
+
6 matches
Mail list logo