Skip to content

Instantly share code, notes, and snippets.

#include <alloca.h>
#include <stdio.h>
#include <stdlib.h>
struct tmpvar_hook {
void *ptr;
struct tmpvar_hook *next;
};
static void tmpvar_hook_free(struct tmpvar_hook **hook) {
#include <stdio.h>
#include <stdbool.h>
struct coro {
void *state;
};
struct range_coro {
struct coro base;
int cur, max, step;
/* link with liblwan and google benchmark */
#include <stdbool.h>
#include <stdio.h>
#include <benchmark/benchmark.h>
extern "C" {
#include <lwan-coro.h>
}
struct coro *coro;
@lpereira
lpereira / jsonjit.c
Last active January 29, 2023 20:12
/* Maps a page of the request size near the text page that contains
* a symbol. Useful for hand-rolled JIT compilers to avoid indirect
* calls to symbols in a program on x86-64. (Part of the code here is
* a JIT compiler to encode JSON based on a struct descriptor, but it's
* not finished yet.)
*
* Written by L. Pereira <l@tia.mat.br>
*
* Thanks to Ole André V. Ravnås for the idea to use the NOREPLACE flag
* in mmap(), and to Paul Khuong for helping me make it more robust in
@lpereira
lpereira / partial.c
Last active January 29, 2023 20:12
Partial functions in C This program illustrates a hack to create partial functions in C. The way it works is that it generates a template function (partial_template_function) with known pointers, that is later copied to a region of memory obtained with mmap(), patched up with the address and data to be passed to the real function, and then made …
/*
* Partial applied functions in C
* Leandro Pereira <leandro@tia.mat.br>
*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
project lwan {
language = c
}
configure {
# If matched, creates a HAVE_SQLITE define in the config file,
# and enables a SQLITE feature that can be used for dependency
# testing, and, if linking against this library, adds automatically
# its CFLAGS and LDFLAGS.
pkg_config sqlite3 {
#!/usr/bin/python
import sys
def parse_nm_output(handle):
current_object = None
symbols = {}
symbol_to_object = {}
for line in handle.readlines():
#!/usr/bin/python
import sys
import time
def is_sleeping(pid):
with open("/proc/%d/stat" % pid) as stat:
state = stat.read().strip().split()
return state[2] == 'S'
@lpereira
lpereira / WebServerHelloWorld.cs
Last active February 19, 2021 22:47
C# Web Server Hello World
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
#!/usr/bin/python
import subprocess
unmappable_funcs = set()
out, err = subprocess.Popen(["objdump", "-t", "Build/Kernel/Kernel"], stdout=subprocess.PIPE).communicate()
for line in out.splitlines():
line = line.strip()
line = line.decode('ascii')