Plan 9 from Bell Labs’s /sys/src/pub/doc/beagle/igepv2/powervr/mmap.h

Copyright © 2021 Plan 9 Foundation
Distributed under the MIT License.
Download the Plan 9 distribution.


/* -*- Mode: C; tab-width: 4; indent-tabs-mode: 't; c-basic-offset: 4 -*-
 *
 * Name         : $RCSfile: mmap.h $
 *
 * Copyright    : 2001,2002 by Imagination Technologies Limited. 
 *                  All rights reserved.
 *                  No part of this software, either material or conceptual 
 *                  may be copied or distributed, transmitted, transcribed,
 *                  stored in a retrieval system or translated into any 
 *                  human or computer language in any form by any means,
 *                  electronic, mechanical, manual or other-wise, or 
 *                  disclosed to third parties without the express written
 *                  permission of:
 *                             Imagination Technologies Limited, 
 *                             HomePark Industrial Estate, 
 *                             Kings Langley, 
 *                             Hertfordshire,
 *                             WD4 8LZ, 
 *                             UK
 *
 * Description  : Linux mmap interface declaration
 *
 * Version	 	: $Revision: 1.15 $
 *
 **********************************************************************/

#if !defined(__MMAP_H__)

#include "linuxsrv.h"

typedef struct tagLINBUFSTRUCT
{
	void *pBase;
	unsigned long dwPagesReserved;
	unsigned long dwPagesCommitted;
	unsigned long dwRegion;
	unsigned long bAGPMode;
	struct agp_map_entry *map;
	unsigned long *pageList;
	struct agp_memory *pAGPList;
}
LINBUFSTRUCT;

#ifdef _LINUX_LIST_H
struct pvrProcRecord {
	struct list_head list;
	struct list_head mmapList;
	pid_t pid;
	long count;
	int drmMMAP;
};

struct pvrMMAPRecord {
	struct list_head list;
	unsigned long userAddress;
	unsigned long length;
	unsigned long kernelAddress;
};

extern struct list_head pvrProcList;
#endif

/* Functions to allow the kernel to register mmapable areas */
void pvr_mmap_register_area(void* pkvVirtArea,
							unsigned long nBytes,
							PVR_MMAP_TYPE eMapType,
							unsigned long bCached);
void pvr_mmap_remove_registered_area(void* pMemArea);

/* Used by kernel code in case it receives user pointers during crash cleanup */
unsigned long pvr_mmap_user_to_kern(unsigned long nUserAddress);

struct file;
struct vm_area_struct;

int pvr_mmap(struct file* pFile, struct vm_area_struct* ps_vma);

void DeallocateTable(void);

#endif	/* __MMAP_H__ */

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@plan9.bell-labs.com.