2026-03-06 20:16:51 +00:00
|
|
|
#ifndef LIBLAUNCH_STACK_H_
|
|
|
|
|
#define LIBLAUNCH_STACK_H_
|
|
|
|
|
|
2026-05-28 20:40:43 +01:00
|
|
|
#include <magenta/types.h>
|
2026-03-06 20:16:51 +00:00
|
|
|
|
|
|
|
|
struct stack_writer {
|
|
|
|
|
virt_addr_t w_local_sp;
|
|
|
|
|
virt_addr_t w_remote_sp;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern void stack_writer_init(
|
|
|
|
|
struct stack_writer *w,
|
|
|
|
|
virt_addr_t local_sp,
|
|
|
|
|
virt_addr_t remote_sp);
|
|
|
|
|
|
|
|
|
|
extern void *stack_writer_put_string(
|
|
|
|
|
struct stack_writer *w,
|
|
|
|
|
const char *s,
|
|
|
|
|
virt_addr_t *out_remote);
|
|
|
|
|
extern void *stack_writer_put(
|
|
|
|
|
struct stack_writer *w,
|
|
|
|
|
const void *p,
|
|
|
|
|
size_t len,
|
|
|
|
|
virt_addr_t *out_remote);
|
|
|
|
|
|
|
|
|
|
#endif
|