user_tagp.c revision d13d74bbf207c2d01598c6fef092a75b93b07c71
1d13d74bbf207c2d01598c6fef092a75b93b07c71vapier/* 2d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 3d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * Copyright (c) International Business Machines Corp., 2001 4d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 5d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * This program is free software; you can redistribute it and/or modify 6d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * it under the terms of the GNU General Public License as published by 7d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * the Free Software Foundation; either version 2 of the License, or 8d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * (at your option) any later version. 9d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 10d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * This program is distributed in the hope that it will be useful, 11d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * but WITHOUT ANY WARRANTY; without even the implied warranty of 12d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * the GNU General Public License for more details. 14d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 15d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * You should have received a copy of the GNU General Public License 16d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * along with this program; if not, write to the Free Software 17d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18d13d74bbf207c2d01598c6fef092a75b93b07c71vapier */ 19d13d74bbf207c2d01598c6fef092a75b93b07c71vapier/* 20d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * This is the main of your user space test program, 21d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * which will open the correct kernel module, find the 22d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * file descriptor value and use that value to make 23d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * ioctl calls to the system 24d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 25d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * Use the ki_generic and other ki_testname functions 26d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * to abstract the calls from the main 27d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 28d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * author: Kai Zhao 29d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * date: 08/25/2003 30d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * 31d13d74bbf207c2d01598c6fef092a75b93b07c71vapier */ 32d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 33d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <stdio.h> 34d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <stdlib.h> 35d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <errno.h> 36d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <sys/stat.h> 37d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <sys/ioctl.h> 38d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <fcntl.h> 39d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <linux/kernel.h> 40d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include <linux/errno.h> 41d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 42d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include "user_tagp.h" 43d13d74bbf207c2d01598c6fef092a75b93b07c71vapier#include "../kernel_space/tagp.h" 44d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 45d13d74bbf207c2d01598c6fef092a75b93b07c71vapierstatic int tagp_fd = -1; /* file descriptor */ 46d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 47d13d74bbf207c2d01598c6fef092a75b93b07c71vapierint tagpopen() { 48d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 49d13d74bbf207c2d01598c6fef092a75b93b07c71vapier dev_t devt; 50d13d74bbf207c2d01598c6fef092a75b93b07c71vapier struct stat st; 51d13d74bbf207c2d01598c6fef092a75b93b07c71vapier int rc = 0; 52d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 53d13d74bbf207c2d01598c6fef092a75b93b07c71vapier devt = makedev(TAGP_MAJOR, 0); 54d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 55d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (rc) { 56d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (errno == ENOENT) { 57d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* dev node does not exist. */ 58d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = mkdir(DEVICE_NAME, (S_IFDIR | S_IRWXU | 59d13d74bbf207c2d01598c6fef092a75b93b07c71vapier S_IRGRP | S_IXGRP | 60d13d74bbf207c2d01598c6fef092a75b93b07c71vapier S_IROTH | S_IXOTH)); 61d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } else { 62d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("ERROR: Problem with Base dev directory. Error code from stat() is %d\n\n", errno); 63d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 64d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 65d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } else { 66d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (!(st.st_mode & S_IFDIR)) { 67d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = unlink(DEVICE_NAME); 68d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (!rc) { 69d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = mkdir(DEVICE_NAME, (S_IFDIR | S_IRWXU | 70d13d74bbf207c2d01598c6fef092a75b93b07c71vapier S_IRGRP | S_IXGRP | 71d13d74bbf207c2d01598c6fef092a75b93b07c71vapier S_IROTH | S_IXOTH)); 72d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 73d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 74d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 75d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 76d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 77d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* 78d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * Check for the /dev/tbase node, and create if it does not 79d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * exist. 80d13d74bbf207c2d01598c6fef092a75b93b07c71vapier */ 81d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = stat(DEVICE_NAME, &st); 82d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (rc) { 83d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (errno == ENOENT) { 84d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* dev node does not exist */ 85d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = mknod(DEVICE_NAME, (S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP), devt); 86d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } else { 87d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("ERROR:Problem with tbase device node directory. Error code form stat() is %d\n\n", errno); 88d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 89d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 90d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } else { 91d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* 92d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * /dev/tbase CHR device exists. Check to make sure it is for a 93d13d74bbf207c2d01598c6fef092a75b93b07c71vapier * block device and that it has the right major and minor. 94d13d74bbf207c2d01598c6fef092a75b93b07c71vapier */ 95d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if ((!(st.st_mode & S_IFCHR)) || 96d13d74bbf207c2d01598c6fef092a75b93b07c71vapier (st.st_rdev != devt)) { 97d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 98d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* Recreate the dev node. */ 99d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = unlink(DEVICE_NAME); 100d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (!rc) { 101d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = mknod(DEVICE_NAME, (S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP), devt); 102d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 103d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 104d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 105d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 106d13d74bbf207c2d01598c6fef092a75b93b07c71vapier tagp_fd = open(DEVICE_NAME, O_RDWR); 107d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 108d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (tagp_fd < 0) { 109d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("ERROR: Open of device %s failed %d errno = %d\n", DEVICE_NAME,tagp_fd, errno); 110d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return errno; 111d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 112d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else { 113d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Device opened successfully \n"); 114d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return 0; 115d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 116d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 117d13d74bbf207c2d01598c6fef092a75b93b07c71vapier} 118d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 119d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 120d13d74bbf207c2d01598c6fef092a75b93b07c71vapierint 121d13d74bbf207c2d01598c6fef092a75b93b07c71vapiertagpclose() { 122d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 123d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (tagp_fd != -1) { 124d13d74bbf207c2d01598c6fef092a75b93b07c71vapier close (tagp_fd); 125d13d74bbf207c2d01598c6fef092a75b93b07c71vapier tagp_fd = -1; 126d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 127d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 128d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return 0; 129d13d74bbf207c2d01598c6fef092a75b93b07c71vapier} 130d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 131d13d74bbf207c2d01598c6fef092a75b93b07c71vapierint agpgart_io_test() 132d13d74bbf207c2d01598c6fef092a75b93b07c71vapier{ 133d13d74bbf207c2d01598c6fef092a75b93b07c71vapier int tagp_fd = 0; 134d13d74bbf207c2d01598c6fef092a75b93b07c71vapier char read_buf[BUFFER_LEN]; 135d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 136d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if ((tagp_fd = open("/dev/agpgart", O_RDWR)) < 0) { 137d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Open /dev/agpgart failed \n"); 138d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return -1; 139d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 140d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 141d13d74bbf207c2d01598c6fef092a75b93b07c71vapier close(tagp_fd); 142d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 143d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return 0; 144d13d74bbf207c2d01598c6fef092a75b93b07c71vapier} 145d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 146d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 147d13d74bbf207c2d01598c6fef092a75b93b07c71vapierint main() { 148d13d74bbf207c2d01598c6fef092a75b93b07c71vapier int rc; 149d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 150d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(agpgart_io_test()) 151d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Test agpgart io failed\n"); 152d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 153d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Test agpgart io success\n"); 154d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 155d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* open the module */ 156d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = tagpopen(); 157d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (rc ) { 158d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Test AGP Driver may not be loaded\n"); 159d13d74bbf207c2d01598c6fef092a75b93b07c71vapier exit(1); 160d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 161d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 162d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for pci_find_device*/ 163d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_PCI_FIND_DEV)) 164d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success: Expected failure for pci_find_dev test\n"); 165d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 166d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on pci_find_dev test\n"); 167d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 168d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_backend_acquier */ 169d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_BACKEND_ACQUIRE)) 170d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_backend_acquier\n"); 171d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 172d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_backend_acquier\n"); 173d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 174d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_backend_release */ 175d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_BACKEND_RELEASE)) 176d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_backend_release\n"); 177d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 178d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_backend_release\n"); 179d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 180d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_alloc_bridge */ 181d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_ALLOC_BRIDGE)) 182d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_alloc_bridge \n"); 183d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 184d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_alloc_bridge\n"); 185d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 186d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for and agp_put_bridge */ 187d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_PUT_BRIDGE)) 188d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_put_bridge\n"); 189d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 190d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_put_bridge\n"); 191d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 192d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_create_memory and agp_free_memory */ 193d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_CREATE_AND_FREE_MEMORY)) 194d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_create_memory \n"); 195d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 196d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_create_memory\n"); 197d13d74bbf207c2d01598c6fef092a75b93b07c71vapier/* 198d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_FREE_MEMORY)) 199d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_free_memory\n"); 200d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 201d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_free_memory\n"); 202d13d74bbf207c2d01598c6fef092a75b93b07c71vapier*/ /////////////////////////////////////////////////////////////////////// 203d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_num_entries */ 204d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_NUM_ENTRIES)) 205d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_num_entries\n"); 206d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 207d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_num_entries\n"); 208d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 209d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_copy_info */ 210d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_COPY_INFO)) 211d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_copy_info\n"); 212d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 213d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_copy_info\n"); 214d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 215d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_alloc_memory */ 216d13d74bbf207c2d01598c6fef092a75b93b07c71vapier// if(ki_generic(tagp_fd, TEST_ALLOC_MEMORY_AND_BAND_UNBAND)) 217d13d74bbf207c2d01598c6fef092a75b93b07c71vapier// printf("Fail on agp_alloc_memory_and_band_unband\n"); 218d13d74bbf207c2d01598c6fef092a75b93b07c71vapier// else 219d13d74bbf207c2d01598c6fef092a75b93b07c71vapier// printf("Success on agp_alloc_memory_and_band_unband\n"); 220d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 221d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_get_version */ 222d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GET_VERSION)) 223d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_get_version\n"); 224d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 225d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_get_version\n"); 226d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 227d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_enable */ 228d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_ENABLE)) 229d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_enable\n"); 230d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 231d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_enable\n"); 232d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 233d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_create_gatt_table */ 234d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_CREATE_GATT_TABLE)) 235d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_create_gatt_table\n"); 236d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 237d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_create_gatt_table\n"); 238d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 239d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 240d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_free_gatt_table */ 241d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_FREE_GATT_TABLE)) 242d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_free_gatt_table\n"); 243d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 244d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_free_gatt_table\n"); 245d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 246d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 247d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_insert_memory */ 248d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_INSERT_MEMROY)) 249d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_insert_memory\n"); 250d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 251d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_insert_memory\n"); 252d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 253d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_alloc_by_type */ 254d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_ALLOC_BY_TYPE)) 255d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_alloc_by_type\n"); 256d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 257d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_alloc_by_type\n"); 258d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 259d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_alloc_page */ 260d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_ALLOC_PAGE)) 261d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_alloc_page\n"); 262d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 263d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_alloc_page\n"); 264d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 265d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_destory_page */ 266d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_ALLOC_PAGE)) 267d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_destory_page\n"); 268d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 269d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_destory_page\n"); 270d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 271d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_enable */ 272d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_ENABLE)) 273d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_enable\n"); 274d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 275d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_enable\n"); 276d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 277d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_global_cache_flush */ 278d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GLOBAL_CACHE_FLUSH)) 279d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_global_cache_flush\n"); 280d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 281d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_gloabl_cache_flush\n"); 282d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 283d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* make test calls for agp_generic_mask_memory */ 284d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if(ki_generic(tagp_fd, TEST_GENERIC_MASK_MEMORY)) 285d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Fail on agp_generic_mask_memory\n"); 286d13d74bbf207c2d01598c6fef092a75b93b07c71vapier else 287d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Success on agp_generic_mask_memory\n"); 288d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 289d13d74bbf207c2d01598c6fef092a75b93b07c71vapier /* close the module */ 290d13d74bbf207c2d01598c6fef092a75b93b07c71vapier rc = tagpclose(); 291d13d74bbf207c2d01598c6fef092a75b93b07c71vapier if (rc ) { 292d13d74bbf207c2d01598c6fef092a75b93b07c71vapier printf("Test AGP Driver may not be closed\n"); 293d13d74bbf207c2d01598c6fef092a75b93b07c71vapier exit(1); 294d13d74bbf207c2d01598c6fef092a75b93b07c71vapier } 295d13d74bbf207c2d01598c6fef092a75b93b07c71vapier 296d13d74bbf207c2d01598c6fef092a75b93b07c71vapier return 0; 297d13d74bbf207c2d01598c6fef092a75b93b07c71vapier} 298