Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
/* (find-es "lua" "pio_fontx")
 * (find-angg "LUA/vtutil.lua")
 * (find-man "2 ioctl" "On success, zero is returned")
 * (find-node "(libc)Error Messages" "char * strerror (int ERRNUM)")
 * (find-man "4 console_ioctl" "  PIO_FONTX")
 * (find-luafile "include/lua.h" "push functions (C -> stack)")
cd ~/LUA; gcc -g -Wall -shared -o pio_fontx.so pio_fontx.c
 */

#include <dllua.h>
#include <sys/ioctl.h>
#include <linux/kd.h>

#include <unistd.h>
#include <string.h>
#include <errno.h>
/* #include <fcntl.h> */
/* #include <stdio.h> */

static int lua_pio_fontx(lua_State* L) {
  struct consolefontdesc cfd;
  int len;
  cfd.chardata = (char *) luaL_check_lstr(L, 1, &len);
  cfd.charcount = luaL_check_int(L, 2);
  cfd.charheight = luaL_check_int(L, 3);
  if(ioctl(STDIN_FILENO, PIO_FONTX, &cfd)) {
    lua_pushstring(L, strerror(errno));
    return 1;
  }
  return 0;
}

void pio_fontx_init(lua_State *L) {
  lua_register(L, "pio_fontx", lua_pio_fontx);
}