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