/*
 * beacon.h -- Minimal Beacon API header for BOF development
 * Step 01: Just enough to write and compile a basic BOF.
 *
 * This is the starting point. In later steps we add data parsing,
 * formatting, and the full API surface.
 */

#ifndef BEACON_H_
#define BEACON_H_

#include <windows.h>

/* Callback type constants -- controls how output is displayed */
#define CALLBACK_OUTPUT      0x00
#define CALLBACK_OUTPUT_OEM  0x1e
#define CALLBACK_ERROR       0x0d
#define CALLBACK_OUTPUT_UTF8 0x20

/* Output function -- the loader resolves this at load time */
DECLSPEC_IMPORT void BeaconPrintf(int type, char* fmt, ...);

/*
 * The entry point convention for BOFs:
 *   void go(char* args, int len);
 *
 * 'args' is a packed argument buffer (or NULL if no arguments).
 * 'len'  is the byte length of that buffer.
 *
 * The loader finds "go" in the symbol table and calls it.
 */

#endif /* BEACON_H_ */
