summaryrefslogtreecommitdiff
path: root/shared
AgeCommit message (Expand)Author
2000-06-13Unify code with kernel: Change some spacing in comments Add #includeRik Faith
2000-06-12Merging the ati-4-1-0 branch onto the trunk.Gareth Hughes
2000-06-08Merged glxmisc-3-0-0Brian Paul
2000-05-30Merged bsd-1-0-0Doug Rabson
2000-05-25Merged mga-0-0-3-branchKeith Whitwell
2000-05-18Merged ati-4-0-1Kevin E Martin
2000-04-04Merged mga branch with trunkJeff Hartmann
2000-03-16Merge with 4.0Jeff Hartmann
2000-02-22Import of XFree86 3.9.18Kevin E Martin
2000-01-06Import of XFree86 3.9.17Rik Faith
1999-12-07Move Mesa to xc/extras Update to the latest Mesa 3.2 code Fix the Q3DemoDaryll Strauss
1999-12-05First DRI release of 3dfx driver.Daryll Strauss
opy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * Authors: * Eric Anholt <eric@anholt.net> * */ #include <fcntl.h> #include "drmtest.h" /** Open the first DRM device we can find, searching up to 16 device nodes */ int drm_open_any(void) { char name[20]; int i, fd; for (i = 0; i < 16; i++) { sprintf(name, "/dev/dri/card%d", i); fd = open(name, O_RDWR); if (fd != -1) return fd; } abort(); } /** * Open the first DRM device we can find where we end up being the master. */ int drm_open_any_master(void) { char name[20]; int i, fd; for (i = 0; i < 16; i++) { drm_client_t client; int ret; sprintf(name, "/dev/dri/card%d", i); fd = open(name, O_RDWR); if (fd == -1) continue; /* Check that we're the only opener and authed. */ client.idx = 0; ret = ioctl(fd, DRM_IOCTL_GET_CLIENT, &client); assert (ret == 0); if (!client.auth) { close(fd); continue; } client.idx = 1; ret = ioctl(fd, DRM_IOCTL_GET_CLIENT, &client); if (ret != -1 || errno != EINVAL) { close(fd); continue; } return fd; } fprintf(stderr, "Couldn't find an un-controlled DRM device\n"); abort(); }