ftp.nice.ch/pub/next/developer/languages/c/gcc.2.7.2.2.N.b.tar.gz#/lib/gcc-lib/m68k-next-nextstep3/2.7.2.2.f.2/include/driverkit/kernelDriver.h

This is kernelDriver.h in view mode; [Download] [Up]

/* 	Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved. 
 *
 * kernelDriver.h - kernel-only driverkit functions.
 *
 * HISTORY
 * 12-Jul-91    Doug Mitchell at NeXT
 *      Created. 
 */

#ifdef	KERNEL

#import <objc/objc.h>
#import <driverkit/driverTypes.h>
#import <mach/mach_types.h>
#import <sys/buf.h>

/*
 * The functions defined here are not RPC's; they are functions available
 * only to drivers in the kernel.
 */
 
/*
 * Get id of specified IODeviceName.  Returns IO_R_NOTATTACHED if 
 * deviceName not found, else returns IO_R_SUCCESS.
 */
IOReturn IOGetObjectForDeviceName(
	IOString deviceName,
	id *deviceId);				/* returned*/

/*
 * Returns the kernel's vm_task_t.
 */
vm_task_t IOVmTaskSelf();

/*
 * Returns the current task's vm_task_t.
 */
vm_task_t IOVmTaskCurrent();

/*
 * Returns vm_task_t associated with a struct buf. 
 */
vm_task_t IOVmTaskForBuf(struct buf *buffer);

/*
 * Set the current thread's UNIX errno.
 */
void IOSetUNIXError(int errno);

/* 
 * Convert between a port in a loadable kernel server's IPC space, an 
 * I/O task port, and a kernel internal port. 
 */
typedef enum {
	IO_Kernel,			/* a kernel internal port*/
	IO_KernelIOTask,		/* a port in the kernel I/O task*/
	IO_CurrentTask			/* a port in a loadable kernel server*/
} IOIPCSpace;

/*
 * Returns PORT_NULL on error.
 */
port_t IOConvertPort(port_t inPort,	/* to be converted*/
	IOIPCSpace from,		/* IPC space of inPort*/
	IOIPCSpace to);			/* IPC space of returned port*/

/*
 * Obtain the IOTask version of host_priv_self() (the privileged host port).
 */
port_t IOHostPrivSelf();

/*
 * Find a physical address (if any) for the specified virtual address.
 * Returns IO_R_INVALID_ARG if no virtual-to-physical mapping exists,
 * else returns IO_R_SUCCESS.
 * For IOTask virtual addresses, use IOVmTaskSelf() for the 'task'
 * argument. 
 * This function may block on some architectures.
 */
IOReturn IOPhysicalFromVirtual(vm_task_t task, 
	vm_address_t virtualAddress,
	unsigned *physicalAddress);

/*
 * Create a mapping in the IOTask address map
 * for the specified physical region.  Assumes
 * that the physical memory is already wired.
 */
IOReturn
IOMapPhysicalIntoIOTask(
    unsigned		physicalAddress,
    unsigned		length,
    vm_address_t	*virtualAddress);

/*
 * Destroy a mapping created by
 * IOTaskCreateVirtualFromPhysical()
 */
IOReturn
IOUnmapPhysicalFromIOTask(
    vm_address_t	virtualAddress,
    unsigned		length);

#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.