// C wrapper for llama.cpp — bridges CFFI pointer params to struct-by-value // Compile: gcc -shared -fPIC -I/tmp/llama.cpp/include -o libllama_wrap.so llama_wrap.c -L/usr/local/lib -lllama #include struct llama_model * llama_wrap_model_load(const char * path, struct llama_model_params * params) { return llama_model_load_from_file(path, *params); } struct llama_context * llama_wrap_new_context(struct llama_model * model, struct llama_context_params * params) { return llama_init_from_model(model, *params); } int32_t llama_wrap_encode(struct llama_context * ctx, struct llama_batch * batch) { return llama_encode(ctx, *batch); } void llama_wrap_batch_init(struct llama_batch * batch, int32_t n_tokens, int32_t embd, int32_t n_seq_max) { *batch = llama_batch_init(n_tokens, embd, n_seq_max); } void llama_wrap_batch_free(struct llama_batch * batch) { llama_batch_free(*batch); }