Skip to content

Instantly share code, notes, and snippets.

smx-smx / mfile.c
Created June 29, 2015 20:56
A wrapper to open files via mmap
A mmap file wrapper
Copyright 2015 Smx
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/stat.h>
smx-smx / plist.c
Created July 27, 2015 23:48
Basic plist parsing library
Copyright (C) 2015 Smx
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <ctype.h>
smx-smx / cglm.vapi
Last active August 21, 2017 21:38
Vala Structs by value
[CCode(cheader_filename = "struct.h")]
namespace CGlm {
[SimpleType, CCode(cname = "mat4", cprefix = "glm_mat4_", default_value = "GLM_MAT4_IDENTITY_INIT")]
public struct Matrix4 {
[CCode(cname = "GLM_MAT4_IDENTITY_INIT")]
public const Matrix4 IDENTITY;
public Matrix4(){}
public float det();
smx-smx / Example.cs
Last active April 24, 2018 19:55
edge-js within Bridge.Net
namespace Electron
public class App
private const string ASSEMBLIES_RELPATH = "generated/assemblies/";
private static readonly string AdapterAssembly = path.resolve(ASSEMBLIES_RELPATH + "/Electron.Adapter.dll");
private const string AdapterType = "Foo.Adapter.ElectronAdapter";
private static void OnNotify(object data, EdgeCallback cb)
#include <iostream>
#include <sstream>
#include <string>
#include <cstdint>
#include <cctype>
static int round_up_div(int val, int div){
return (val + div - 1) / div;
smx-smx / Pointer.h
Created April 8, 2020 19:45
Wrapper to work with global variables and arbitrary pointers (e.g from another process)
#pragma once
#include <stdint.h>
#include <type_traits>
// use this for the [] operator (since we can't overload .) to work on globals without using the -> pointer operator
// example: BYVAL(gMyVar).foo
#define BYVAL(ptr) (*(&(ptr)))
template <typename T>
class Pointer
smx-smx / make_bcm.log
Created December 21, 2020 23:46
First build log (armel-fixes)
__DistroRid: linux-armel
__RuntimeId: linux-armel
Downloading ''
Trying to run 'curl -sSL --retry 10 --create-dirs -o /mnt/ExtData/cross/dotnet/runtime/.dotnet/' for maximum of 5 attempts.
Ran 'curl -sSL --retry 10 --create-dirs -o /mnt/ExtData/cross/dotnet/runtime/.dotnet/' successfully.
dotnet-install: Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
dotnet-install: - The SDK needs to be installed without user interaction and without admin rights.
dotnet-install: - The SDK installation doesn't need to persist across multiple CI runs.
dotnet-install: To set up a development environment or to run apps, use installers rather than this script. Visit to get the installer.
smx-smx / bcm.cmake
Last active February 26, 2021 23:47
set(TOOLCHAIN_DIR "/mnt/ExtData/cross/buildroot/output/host")
set(TOOLCHAIN "arm-buildroot-linux-uclibcgnueabi")
set(_COMMON_COMPILE_FLAGS "-march=armv7-a+nofp+nosimd -mfloat-abi=soft")
set(_COMMON_LINK_FLAGS "-Wl,--dynamic-linker=/lib/")
smx-smx / ldd_dlopen.c
Last active May 15, 2021 13:06
ldd with dlopen
* Custom ldd that also dlopens
* supporting LD_LIBRARY_PATH, basically acts as "dlopen() with dependencies"
* without modifying the current process LD_LIBRARY_PATH
* Stefano Moioli <>, 2021
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
smx-smx / juan_strip.c
Created September 16, 2021 12:20
Guangzhou Juan IP Camera video strip
* Copyright (C) 2021 Stefano Moioli <>
* This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
* Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
* 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.