cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ecard.h (1247B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 *  ecard.h
      4 *
      5 *  Copyright 2007 Russell King
      6 */
      7
      8/* Definitions internal to ecard.c - for it's use only!!
      9 *
     10 * External expansion card header as read from the card
     11 */
     12struct ex_ecid {
     13	unsigned char	r_irq:1;
     14	unsigned char	r_zero:1;
     15	unsigned char	r_fiq:1;
     16	unsigned char	r_id:4;
     17	unsigned char	r_a:1;
     18
     19	unsigned char	r_cd:1;
     20	unsigned char	r_is:1;
     21	unsigned char	r_w:2;
     22	unsigned char	r_r1:4;
     23
     24	unsigned char	r_r2:8;
     25
     26	unsigned char	r_prod[2];
     27
     28	unsigned char	r_manu[2];
     29
     30	unsigned char	r_country;
     31
     32	unsigned char	r_fiqmask;
     33	unsigned char	r_fiqoff[3];
     34
     35	unsigned char	r_irqmask;
     36	unsigned char	r_irqoff[3];
     37};
     38
     39/*
     40 * Chunk directory entry as read from the card
     41 */
     42struct ex_chunk_dir {
     43	unsigned char r_id;
     44	unsigned char r_len[3];
     45	unsigned long r_start;
     46	union {
     47		char string[256];
     48		char data[1];
     49	} d;
     50#define c_id(x)		((x)->r_id)
     51#define c_len(x)	((x)->r_len[0]|((x)->r_len[1]<<8)|((x)->r_len[2]<<16))
     52#define c_start(x)	((x)->r_start)
     53};
     54
     55typedef enum ecard_type {		/* Cards address space		*/
     56	ECARD_IOC,
     57	ECARD_MEMC,
     58	ECARD_EASI
     59} card_type_t;
     60
     61typedef enum {				/* Speed for ECARD_IOC space	*/
     62	ECARD_SLOW	 = 0,
     63	ECARD_MEDIUM	 = 1,
     64	ECARD_FAST	 = 2,
     65	ECARD_SYNC	 = 3
     66} card_speed_t;