/*
* USB Serial Converter driver
*
- * Copyright (C) 1999 - 2003
+ * Copyright (C) 1999 - 2004
* Greg Kroah-Hartman (greg@kroah.com)
*
* This program is free software; you can redistribute it and/or modify
#define MAX_NUM_PORTS 8 /* The maximum number of ports one device can grab at once */
-#define USB_SERIAL_MAGIC 0x6702 /* magic number for usb_serial struct */
-#define USB_SERIAL_PORT_MAGIC 0x7301 /* magic number for usb_serial_port struct */
-
/* parity check flag */
#define RELEVANT_IFLAG(iflag) (iflag & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK))
/**
* usb_serial_port: structure for the specific ports of a device.
- * @magic: magic number for internal validity of this pointer.
* @serial: pointer back to the struct usb_serial owner of this port.
* @tty: pointer to the corresponding tty for this port.
* @number: the number of the port (the minor number).
* ports of a device.
*/
struct usb_serial_port {
- int magic;
- struct usb_serial *serial;
+ struct usb_serial * serial;
struct tty_struct * tty;
unsigned char number;
/**
* usb_serial - structure used by the usb-serial core for a device
- * @magic: magic number for internal validity of this pointer.
* @dev: pointer to the struct usb_device for this device
* @type: pointer to the struct usb_serial_device_type for this device
* @interface: pointer to the struct usb_interface for this device
* usb_set_serial_data() to access this.
*/
struct usb_serial {
- int magic;
struct usb_device * dev;
struct usb_serial_device_type * type;
struct usb_interface * interface;
extern struct bus_type usb_serial_bus_type;
extern struct tty_driver *usb_serial_tty_driver;
-/* Inline functions to check the sanity of a pointer that is passed to us */
-static inline int serial_paranoia_check (struct usb_serial *serial, const char *function)
-{
- if (!serial) {
- dbg("%s - serial == NULL", function);
- return -1;
- }
- if (serial->magic != USB_SERIAL_MAGIC) {
- dbg("%s - bad magic number for serial", function);
- return -1;
- }
- if (!serial->type) {
- dbg("%s - serial->type == NULL!", function);
- return -1;
- }
-
- return 0;
-}
-
-
-static inline int port_paranoia_check (struct usb_serial_port *port, const char *function)
-{
- if (!port) {
- dbg("%s - port == NULL", function);
- return -1;
- }
- if (port->magic != USB_SERIAL_PORT_MAGIC) {
- dbg("%s - bad magic number for port", function);
- return -1;
- }
- if (!port->serial) {
- dbg("%s - port->serial == NULL", function);
- return -1;
- }
-
- return 0;
-}
-
-
-static inline struct usb_serial* get_usb_serial (struct usb_serial_port *port, const char *function)
-{
- /* if no port was specified, or it fails a paranoia check */
- if (!port ||
- port_paranoia_check (port, function) ||
- serial_paranoia_check (port->serial, function)) {
- /* then say that we don't have a valid usb_serial thing, which will
- * end up genrating -ENODEV return values */
- return NULL;
- }
-
- return port->serial;
-}
-
-
static inline void usb_serial_debug_data (const char *file, const char *function, int size, const unsigned char *data)
{
int i;