rhythmic-librarian-79625
12/02/2021, 10:45 PMc
struct dirent {
int d_ino;
int d_off;
unsigned short d_reclen;
unsigned char d_type;
char[20] d_name;
};
Yes it's an extern to a linux specific structure for a oom-killer that I was writingbright-gpu-74537
12/02/2021, 10:45 PMhaxe
var x:Star<Int16>;
var y:RawPointer<Int16>;
generates:
cpp
short * x;
short* y;
So yeah, same, i prefer RawPointer personally, but good to knowrhythmic-librarian-79625
12/02/2021, 10:45 PMrhythmic-librarian-79625
12/02/2021, 10:46 PMbright-gpu-74537
12/02/2021, 10:46 PMbright-gpu-74537
12/02/2021, 10:46 PMrhythmic-librarian-79625
12/02/2021, 10:47 PMreaddir C function returns a pointer to a struct dirent but the d_name field returns true for some reasonbright-gpu-74537
12/02/2021, 10:48 PMrhythmic-librarian-79625
12/02/2021, 10:49 PMcpp.Star<Char>bright-gpu-74537
12/02/2021, 10:50 PMbright-gpu-74537
12/02/2021, 10:51 PMbright-gpu-74537
12/02/2021, 10:51 PMstruct direntrhythmic-librarian-79625
12/02/2021, 10:51 PMhaxe
@:include("dirent.h")
@:native("struct dirent")
@:structAccess
extern class DirEnt {
@:native("d_ino")
var inodeNumber:Int;
@:native("d_off")
var offset:Int;
@:native("d_reclen")
var recordLength:UInt16;
@:native("d_type")
var type:UInt8;
@:native("d_name")
var name:Star<Char>;
}bright-gpu-74537
12/02/2021, 10:52 PMbright-gpu-74537
12/02/2021, 10:52 PMbright-gpu-74537
12/02/2021, 10:52 PMbright-gpu-74537
12/02/2021, 10:54 PMhaxe
var c:ConstCharStar = "haxe string";
var s:String = c;rhythmic-librarian-79625
12/02/2021, 10:55 PMhaxe
@:include("dirent.h")
extern class DirEntFunctions {
@:native("opendir")
static function open(path:ConstCharStar):Star<DIR>;
@:native("readdir")
static function read(dir:Star<DIR>):Star<DirEnt>;
@:native("closedir")
static function close(dir:Star<DIR>):Int;
}rhythmic-librarian-79625
12/02/2021, 10:55 PMPointer.fromStar to get a managed pointerbright-gpu-74537
12/02/2021, 10:57 PMbright-gpu-74537
12/02/2021, 10:57 PMrhythmic-librarian-79625
12/02/2021, 10:58 PMcpp.Pointer?bright-gpu-74537
12/02/2021, 10:59 PMbright-gpu-74537
12/02/2021, 11:00 PMstatic function open(path:ConstCharStar):RawPointer<DIR>;
and then if i wanted to wrap it: Pointer.fromRaw(DirEntFunctions.open(...))bright-gpu-74537
12/02/2021, 11:01 PMRawPointer<DIR>... feels easierrhythmic-librarian-79625
12/02/2021, 11:01 PMbright-gpu-74537
12/02/2021, 11:01 PMrhythmic-librarian-79625
12/02/2021, 11:02 PMbright-gpu-74537
12/02/2021, 11:02 PMrhythmic-librarian-79625
12/02/2021, 11:05 PM