1*5e7646d2SAndroid Build Coastguard Worker /*
2*5e7646d2SAndroid Build Coastguard Worker * IEEE-1284 support functions test program for CUPS.
3*5e7646d2SAndroid Build Coastguard Worker *
4*5e7646d2SAndroid Build Coastguard Worker * Copyright © 2007-2010 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker * Copyright © 1997-2006 by Easy Software Products, all rights reserved.
6*5e7646d2SAndroid Build Coastguard Worker *
7*5e7646d2SAndroid Build Coastguard Worker * Licensed under Apache License v2.0. See the file "LICENSE" for more
8*5e7646d2SAndroid Build Coastguard Worker * information.
9*5e7646d2SAndroid Build Coastguard Worker */
10*5e7646d2SAndroid Build Coastguard Worker
11*5e7646d2SAndroid Build Coastguard Worker /*
12*5e7646d2SAndroid Build Coastguard Worker * Include necessary headers.
13*5e7646d2SAndroid Build Coastguard Worker */
14*5e7646d2SAndroid Build Coastguard Worker
15*5e7646d2SAndroid Build Coastguard Worker #include <cups/string-private.h>
16*5e7646d2SAndroid Build Coastguard Worker #ifdef _WIN32
17*5e7646d2SAndroid Build Coastguard Worker # include <io.h>
18*5e7646d2SAndroid Build Coastguard Worker #else
19*5e7646d2SAndroid Build Coastguard Worker # include <unistd.h>
20*5e7646d2SAndroid Build Coastguard Worker # include <fcntl.h>
21*5e7646d2SAndroid Build Coastguard Worker #endif /* _WIN32 */
22*5e7646d2SAndroid Build Coastguard Worker
23*5e7646d2SAndroid Build Coastguard Worker #include "ieee1284.c"
24*5e7646d2SAndroid Build Coastguard Worker
25*5e7646d2SAndroid Build Coastguard Worker
26*5e7646d2SAndroid Build Coastguard Worker /*
27*5e7646d2SAndroid Build Coastguard Worker * 'main()' - Test the device-ID functions.
28*5e7646d2SAndroid Build Coastguard Worker */
29*5e7646d2SAndroid Build Coastguard Worker
30*5e7646d2SAndroid Build Coastguard Worker int /* O - Exit status */
main(int argc,char * argv[])31*5e7646d2SAndroid Build Coastguard Worker main(int argc, /* I - Number of command-line args */
32*5e7646d2SAndroid Build Coastguard Worker char *argv[]) /* I - Command-line arguments */
33*5e7646d2SAndroid Build Coastguard Worker {
34*5e7646d2SAndroid Build Coastguard Worker int i, /* Looping var */
35*5e7646d2SAndroid Build Coastguard Worker fd; /* File descriptor */
36*5e7646d2SAndroid Build Coastguard Worker char device_id[1024], /* 1284 device ID string */
37*5e7646d2SAndroid Build Coastguard Worker make_model[1024], /* make-and-model string */
38*5e7646d2SAndroid Build Coastguard Worker uri[1024]; /* URI string */
39*5e7646d2SAndroid Build Coastguard Worker
40*5e7646d2SAndroid Build Coastguard Worker
41*5e7646d2SAndroid Build Coastguard Worker if (argc < 2)
42*5e7646d2SAndroid Build Coastguard Worker {
43*5e7646d2SAndroid Build Coastguard Worker puts("Usage: test1284 device-file [... device-file-N]");
44*5e7646d2SAndroid Build Coastguard Worker exit(1);
45*5e7646d2SAndroid Build Coastguard Worker }
46*5e7646d2SAndroid Build Coastguard Worker
47*5e7646d2SAndroid Build Coastguard Worker for (i = 1; i < argc; i ++)
48*5e7646d2SAndroid Build Coastguard Worker {
49*5e7646d2SAndroid Build Coastguard Worker if ((fd = open(argv[i], O_RDWR)) < 0)
50*5e7646d2SAndroid Build Coastguard Worker {
51*5e7646d2SAndroid Build Coastguard Worker perror(argv[i]);
52*5e7646d2SAndroid Build Coastguard Worker return (errno);
53*5e7646d2SAndroid Build Coastguard Worker }
54*5e7646d2SAndroid Build Coastguard Worker
55*5e7646d2SAndroid Build Coastguard Worker printf("%s:\n", argv[i]);
56*5e7646d2SAndroid Build Coastguard Worker
57*5e7646d2SAndroid Build Coastguard Worker backendGetDeviceID(fd, device_id, sizeof(device_id), make_model,
58*5e7646d2SAndroid Build Coastguard Worker sizeof(make_model), "test", uri, sizeof(uri));
59*5e7646d2SAndroid Build Coastguard Worker
60*5e7646d2SAndroid Build Coastguard Worker printf(" device_id=\"%s\"\n", device_id);
61*5e7646d2SAndroid Build Coastguard Worker printf(" make_model=\"%s\"\n", make_model);
62*5e7646d2SAndroid Build Coastguard Worker printf(" uri=\"%s\"\n", uri);
63*5e7646d2SAndroid Build Coastguard Worker
64*5e7646d2SAndroid Build Coastguard Worker close(fd);
65*5e7646d2SAndroid Build Coastguard Worker }
66*5e7646d2SAndroid Build Coastguard Worker
67*5e7646d2SAndroid Build Coastguard Worker return (0);
68*5e7646d2SAndroid Build Coastguard Worker }
69