#ifndef ROXY_LOADER_H
#define ROXY_LOADER_H

#pragma once

/* This file is generated by cbindgen. Do not edit this file directly. */

#include <stdbool.h>
#include <stdint.h>

/**
 * A framebuffer provided to the kernel at boot time.
 *
 * Kernels can use this value to find the framebuffer memory and understand its
 * basic layout.
 */
typedef struct Framebuffer {
  uintptr_t ptr;
  /**
   * The total size of the framebuffer in bytes.
   */
  uintptr_t size;
  /**
   * The number of pixels in each row of the framebuffer.
   */
  uintptr_t stride;
} Framebuffer;

/**
 * Boot-time data provided by `roxy-loader`.
 *
 * This is the main value passed to the kernel entry point. It groups together
 * the information a kernel can use immediately after startup.
 */
typedef struct BootInfo {
  /**
   * Information about the framebuffer that the kernel can draw to.
   */
  struct Framebuffer framebuffer;
} BootInfo;

#endif  /* ROXY_LOADER_H */
