volatile int kmod_start(void) { libkern_init0(); OSString* one = OSString::withCString("Anal sex"); OSString* two = OSString::withCString("Cunnilingus"); OSArray* sexthings = OSArray::withCapacity(2); sexthings->setObject(one); sexthings->setObject(two); printk("Hello from IOKit!\n"); printk("Put: %p %p\n", one, two); printk("OSArray: %p\n", sexthings); printk("Get: %p %p\n", sexthings->getObject(0), sexthings->getObject(1)); OSSerialize* ser = OSSerialize::withCapacity(1024); sexthings->serialize(ser); printk("Serialized: %s \n", ser->text()); return 0; }
bool IORangeAllocator::serialize(OSSerialize *s) const { OSArray * array = OSArray::withCapacity( numElements * 2 ); OSNumber * num; UInt32 index; bool ret; if( !array) return( false ); LOCK(); for( index = 0; index < numElements; index++) { if( (num = OSNumber::withNumber( elements[index].start, 8 * sizeof(IORangeScalar) ))) { array->setObject(num); num->release(); } if( (num = OSNumber::withNumber( elements[index].end, 8 * sizeof(IORangeScalar) ))) { array->setObject(num); num->release(); } } UNLOCK(); ret = array->serialize(s); array->release(); return( ret ); }