#ifndef SHM_KEYS_HPP
#define SHM_KEYS_HPP

#include <sys/types.h>

// Per-user keys (student ma12537) — adjust the base if you collide with
// another user on the shared server. Check with `ipcs -m`.
//
// Original tensor produced by shm_generator (read-only for benchmarks).
#define SHM_KEY_ORIGINAL              12537

// One copy segment per scheduler. Each is created at benchmark start,
// populated from the original, sorted in place by its scheduler, and
// deleted at the end.

// Thread schedulers
#define SHM_KEY_STATIC_COPY           22537
#define SHM_KEY_DYNAMIC_COPY          32537
#define SHM_KEY_CHUNK_COPY            42537
#define SHM_KEY_CHUNKSTEAL_COPY       52537
#define SHM_KEY_GUIDED_COPY           62537
#define SHM_KEY_ADAPTIVE_COPY         72537
#define SHM_KEY_AIMD_COPY             82537

// Process schedulers (collective / prolific family)
#define SHM_KEY_PROLIFIC_COPY         92537
#define SHM_KEY_COLLECTIVE_COPY      102537
#define SHM_KEY_LOG_COLLECTIVE_COPY  112537

// Pipe schedulers
#define SHM_KEY_ONETOONE_COPY        122537
#define SHM_KEY_ONETOMANY_COPY       132537
#define SHM_KEY_MANYTOMANY_COPY      142537

#endif
