@include ns = @names c32le { @0x0 int zero; @0x100 int onehundred; @0x111 void* oneeleven; }; ons = mknsoff(ns,33); printf("%t\n",@typeof(ons`unsigned int)); zsym = ons.looksym('zero); printf("name: %s, offset: %d, type %t\n", symid(zsym),symoff(zsym),symtype(zsym)); zsym2 = ons.looksym('zero); printf("name: %s, offset: %d, type %t\n", symid(zsym2),symoff(zsym2),symtype(zsym2)); zsym3 = ons.looksym('oneeleven); printf("name: %s, offset: %d, type %t\n", symid(zsym3),symoff(zsym3),symtype(zsym3)); zsym4 = ns.looksym('oneeleven); printf("name: %s, offset: %d, type %t\n", symid(zsym4),symoff(zsym4),symtype(zsym4)); zsym5 = ons.lookaddr(305); printf("name: %s, offset: %d, type %t\n", symid(zsym5),symoff(zsym5),symtype(zsym5)); zsym6 = ons.lookaddr(50); printf("should be zero: %s, offset: %d, type %t\n", symid(zsym6),symoff(zsym6),symtype(zsym6)); ons.addsym('added,mksym(@typename(unsigned int),'added,37)); zsym6 = ons.lookaddr(50); printf("should be added: %s, offset: %d, type %t\n", symid(zsym6),symoff(zsym6),symtype(zsym6)); zsym7 = ons.lookaddr(34); printf("name: %s, offset: %d, type %t\n", symid(zsym7),symoff(zsym7),symtype(zsym7)); printf("Enumerating\n"); @define symcmp(s1, s2) { @local o1, o2; o1 = symoff(s1); o2 = symoff(s2); if(o1 < o2) return -1; else if(o1 > o2) return 1; else return 0; } l = map(@lambda(k, v) { v; }, ons.enumsym()); sort(l, symcmp); foreach(@lambda(v) { printf("name: %s, offset: %d, type %t\n", symid(v),symoff(v),symtype(v)); }, l);