Skip to content

Instantly share code, notes, and snippets.

@smx-smx
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
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
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
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
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
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(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR armv7l)
set(_COMMON_COMPILE_FLAGS "-march=armv7-a+nofp+nosimd -mfloat-abi=soft")
set(_COMMON_LINK_FLAGS "-Wl,--dynamic-linker=/lib/ld-uClibc.so.0")
@smx-smx
smx-smx / make_bcm.log
Created December 21, 2020 23:46
First build log (armel-fixes)
__DistroRid: linux-armel
__RuntimeId: linux-armel
Downloading 'https://dot.net/v1/dotnet-install.sh'
Trying to run 'curl https://dot.net/v1/dotnet-install.sh -sSL --retry 10 --create-dirs -o /mnt/ExtData/cross/dotnet/runtime/.dotnet/dotnet-install.sh' for maximum of 5 attempts.
Ran 'curl https://dot.net/v1/dotnet-install.sh -sSL --retry 10 --create-dirs -o /mnt/ExtData/cross/dotnet/runtime/.dotnet/dotnet-install.sh' 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 https://dotnet.microsoft.com/download to get the installer.
@smx-smx
smx-smx / !test_arm_features
Last active March 13, 2023 23:43
Arm FPU Test
test arm features
@smx-smx
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 <smxdev4@gmail.com>, 2021
**/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>