- mach_port_t device;
-
- if ((errno = get_privileged_ports(NULL, &device)))
- perror("intel_setup_io() can't get_privileged_ports()");
-
- if (!errno && (errno = device_open(device, D_READ | D_WRITE, "io", &io_port)))
- perror("intel_setup_io() can't device_open()");
-
- mach_port_deallocate(mach_task_self(), device);
-
- if (!errno && (errno = i386_io_port_add(mach_thread_self(), io_port)))
- perror("intel_setup_io() can't i386_io_port_add()");
-
- return errno ? 0 : 1;