[SOLVED] CS assembler #ifndef THREADS_SWITCH_H

$25

File Name: CS_assembler_#ifndef_THREADS_SWITCH_H.zip
File Size: 348.54 KB

5/5 - (1 vote)

#ifndef THREADS_SWITCH_H
#define THREADS_SWITCH_H

#ifndef __ASSEMBLER__

/* switch_thread()s stack frame. */
struct switch_threads_frame {
uint32_t edi; /*0: Saved %edi. */
uint32_t esi; /*4: Saved %esi. */
uint32_t ebp; /*8: Saved %ebp. */
uint32_t ebx; /* 12: Saved %ebx. */
void (*eip) (void); /* 16: Return address. */
struct thread *cur; /* 20: switch_threads()s CUR argument. */
struct thread *next; /* 24: switch_threads()s NEXT argument. */
};

/* Switches from CUR, which must be the running thread, to NEXT,
which must also be running switch_threads(), returning CUR in
NEXTs context. */
struct thread *switch_threads(struct thread *cur, struct thread *next);

/* Stack frame for switch_entry(). */
struct switch_entry_frame {
void (*eip) (void);
};

void switch_entry(void);

/* Pops the CUR and NEXT arguments off the stack, for use in
initializing threads. */
void switch_thunk(void);
#endif

/* Offsets used by switch.S. */
#define SWITCH_CUR20
#define SWITCH_NEXT 24

#endif /* threads/switch.h */

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS assembler #ifndef THREADS_SWITCH_H
$25