Logo Search packages:      
Sourcecode: linux version File versions  Download package

ecard.h

/*
 *  ecard.h
 *
 *  Copyright 2007 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/* Definitions internal to ecard.c - for it's use only!!
 *
 * External expansion card header as read from the card
 */
struct ex_ecid {
      unsigned char     r_irq:1;
      unsigned char     r_zero:1;
      unsigned char     r_fiq:1;
      unsigned char     r_id:4;
      unsigned char     r_a:1;

      unsigned char     r_cd:1;
      unsigned char     r_is:1;
      unsigned char     r_w:2;
      unsigned char     r_r1:4;

      unsigned char     r_r2:8;

      unsigned char     r_prod[2];

      unsigned char     r_manu[2];

      unsigned char     r_country;

      unsigned char     r_fiqmask;
      unsigned char     r_fiqoff[3];

      unsigned char     r_irqmask;
      unsigned char     r_irqoff[3];
};

/*
 * Chunk directory entry as read from the card
 */
struct ex_chunk_dir {
      unsigned char r_id;
      unsigned char r_len[3];
      unsigned long r_start;
      union {
            char string[256];
            char data[1];
      } d;
#define c_id(x)         ((x)->r_id)
#define c_len(x)  ((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16))
#define c_start(x)      ((x)->r_start)
};

typedef enum ecard_type {           /* Cards address space        */
      ECARD_IOC,
      ECARD_MEMC,
      ECARD_EASI
} card_type_t;

typedef enum {                      /* Speed for ECARD_IOC space  */
      ECARD_SLOW   = 0,
      ECARD_MEDIUM       = 1,
      ECARD_FAST   = 2,
      ECARD_SYNC   = 3
} card_speed_t;

Generated by  Doxygen 1.6.0   Back to index