testcdev.c (48275) | testcdev.c (66549) |
---|---|
1/* 08 Nov 1998*/ 2/* 3 * testmisc.c 4 * 5 * Test program to call the sample loaded kld device driver. 6 * 7 * 05 Jun 93 Rajesh Vaidheeswarran Original 8 * --- 53 unchanged lines hidden (view full) --- 62 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 63 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 68 * SUCH DAMAGE. 69 * | 1/* 08 Nov 1998*/ 2/* 3 * testmisc.c 4 * 5 * Test program to call the sample loaded kld device driver. 6 * 7 * 05 Jun 93 Rajesh Vaidheeswarran Original 8 * --- 53 unchanged lines hidden (view full) --- 62 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 63 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 64 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 65 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 66 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 67 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 68 * SUCH DAMAGE. 69 * |
70 * 71 * $FreeBSD: head/share/examples/kld/cdev/test/testcdev.c 66549 2000-10-02 14:14:07Z sobomax $ |
|
70 */ 71#include <stdio.h> 72#include <fcntl.h> | 72 */ 73#include <stdio.h> 74#include <fcntl.h> |
75#include <string.h> |
|
73#include <sys/ioccom.h> 74 75#define CDEV_IOCTL1 _IOR('C', 1, u_int) 76#define CDEV_DEVICE "cdev" 77 | 76#include <sys/ioccom.h> 77 78#define CDEV_IOCTL1 _IOR('C', 1, u_int) 79#define CDEV_DEVICE "cdev" 80 |
81static char writestr[] = "Hello kernel!"; 82static char buf[512+1]; 83 |
|
78int 79main(int argc, char *argv[]) 80{ 81 int kernel_fd; 82 int one; | 84int 85main(int argc, char *argv[]) 86{ 87 int kernel_fd; 88 int one; |
89 int len; |
|
83 | 90 |
84 if ((kernel_fd = open("/dev/" CDEV_DEVICE, O_RDONLY)) == -1) { | 91 if ((kernel_fd = open("/dev/" CDEV_DEVICE, O_RDWR)) == -1) { |
85 perror("/dev/" CDEV_DEVICE); 86 exit(1); 87 } 88 89 /* Send ioctl */ 90 if (ioctl(kernel_fd, CDEV_IOCTL1, &one) == -1) { 91 perror("CDEV_IOCTL1"); 92 } else { 93 printf( "Sent ioctl CDEV_IOCTL1 to device /dev/" CDEV_DEVICE "\n"); 94 } | 92 perror("/dev/" CDEV_DEVICE); 93 exit(1); 94 } 95 96 /* Send ioctl */ 97 if (ioctl(kernel_fd, CDEV_IOCTL1, &one) == -1) { 98 perror("CDEV_IOCTL1"); 99 } else { 100 printf( "Sent ioctl CDEV_IOCTL1 to device /dev/" CDEV_DEVICE "\n"); 101 } |
102 103 len = strlen(writestr) + 1; 104 105 /* Write operation */ 106 if (write(kernel_fd, writestr, len) == -1) { 107 perror("write()"); 108 } else { 109 printf("Written \"%s\" string to device /dev/" CDEV_DEVICE "\n", writestr); 110 } 111 112 /* Read operation */ 113 if (read(kernel_fd, buf, len) == -1) { 114 perror("read()"); 115 } else { 116 printf("Read \"%s\" string from device /dev/" CDEV_DEVICE "\n", buf); 117 } 118 |
|
95 exit(0); 96} | 119 exit(0); 120} |