aoe  87
About: AoE (ATA over Ethernet) Protocol Driver (Linux kernel 4.8.x and greater are not supported).
  Fossies Dox: aoe-87.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

aoe.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  aoe_hdr
 
struct  aoe_atahdr
 
struct  aoe_cfghdr
 
struct  buf
 
struct  frame
 
struct  aoeif
 
struct  aoetgt
 
struct  aoedev
 
struct  ktstate
 

Macros

#define VERSION   "87"
 
#define AOE_MAJOR   152
 
#define DEVICE_NAME   "aoe"
 
#define DEVICE_SUBDIR   "etherd"
 
#define WHITESPACE   " \t\v\f\n,"
 
#define ETH_P_AOE   0x88a2
 
#define AOEDBG_ACTIVE   0
 

Enumerations

enum  {
  AOECMD_ATA, AOECMD_CFG, AOECMD_VEND_MIN = 0xf0, AOEFL_RSP = (1<<3),
  AOEFL_ERR = (1<<2), AOEAFL_EXT = (1<<6), AOEAFL_DEV = (1<<4), AOEAFL_ASYNC = (1<<1),
  AOEAFL_WRITE = (1<<0), AOECCMD_READ = 0, AOECCMD_TEST, AOECCMD_PTEST,
  AOECCMD_SET, AOECCMD_FSET, AOE_HVER = 0x10
}
 
enum  {
  DEVFL_UP = 1, DEVFL_TKILL = (1<<1), DEVFL_EXT = (1<<2), DEVFL_GDALLOC = (1<<3),
  DEVFL_GD_NOW = (1<<4), DEVFL_KICKME = (1<<5), DEVFL_NEWSIZE = (1<<6), DEVFL_FREEING = (1<<7),
  DEVFL_FREED = (1<<8)
}
 
enum  {
  DEFAULTBCNT = 2 * 512, MIN_BUFS = 16, NTARGETS = 4, NAOEIFS = 8,
  NSKBPOOLMAX = 256, NFACTIVE = 61, TIMERTICK = HZ / 10, RTTSCALE = 8,
  RTTDSCALE = 3, RTTAVG_INIT = USEC_PER_SEC / 4 << RTTSCALE, RTTDEV_INIT = RTTAVG_INIT / 4, HARD_SCORN_SECS = 10,
  MAX_TAINT = 1000
}
 
enum  frame_flags { FFL_PROBE = 1 }
 

Functions

int aoeblk_init (void)
 
void aoeblk_exit (void)
 
void aoeblk_gdalloc (void *)
 
void aoedisk_rm_debugfs (struct aoedev *d)
 
void aoedisk_rm_sysfs (struct aoedev *d)
 
void aoe_bio_pagedec (struct bio *)
 
int aoechr_init (void)
 
void aoechr_exit (void)
 
void aoechr_error (char *)
 
void aoecmd_work (struct aoedev *d)
 
void aoecmd_cfg (ushort aoemajor, unsigned char aoeminor)
 
struct sk_buff * aoecmd_ata_rsp (struct sk_buff *)
 
void aoecmd_cfg_rsp (struct sk_buff *)
 
void aoecmd_sleepwork (struct work_struct *)
 
void aoecmd_wreset (struct aoetgt *t)
 
void aoecmd_cleanslate (struct aoedev *)
 
void aoecmd_exit (void)
 
int aoecmd_init (void)
 
struct sk_buff * aoecmd_ata_id (struct aoedev *)
 
void aoe_freetframe (struct frame *)
 
void aoe_bio_pageinc (struct bio *)
 
void aoe_flush_iocq (void)
 
void aoe_flush_iocq_by_index (int)
 
void aoe_end_request (struct aoedev *, struct request *, int)
 
int aoe_ktstart (struct ktstate *k)
 
void aoe_ktstop (struct ktstate *k)
 
int aoedev_init (void)
 
void aoedev_exit (void)
 
struct aoedevaoedev_by_aoeaddr (ulong maj, int min, int do_alloc)
 
void aoedev_downdev (struct aoedev *d)
 
int aoedev_flush (const char __user *str, size_t size)
 
void aoe_failbuf (struct aoedev *, struct buf *)
 
void aoedev_put (struct aoedev *)
 
int aoenet_init (void)
 
void aoenet_exit (void)
 
void aoenet_xmit (struct sk_buff *)
 
int is_aoe_netif (struct net_device *ifp)
 
int set_aoe_iflist (const char __user *str, size_t size)
 
unsigned long long mac_addr (char addr[6])
 
void * aoe_kcalloc (size_t, size_t, int)
 
void __init aoedbg_init (void)
 
void aoedbg_print (char *fmt,...)
 
void aoedbg_rtt (struct aoedev *d, struct aoe_hdr *h, struct frame *f, int rtt)
 
void aoedbg_devinit (struct aoedev *d)
 
void aoedbg_undbg (struct aoedev *d)
 
void aoedbg_exit (void)
 

Macro Definition Documentation

◆ AOE_MAJOR

#define AOE_MAJOR   152

Definition at line 3 of file aoe.h.

◆ AOEDBG_ACTIVE

#define AOEDBG_ACTIVE   0

Definition at line 258 of file aoe.h.

◆ DEVICE_NAME

#define DEVICE_NAME   "aoe"

Definition at line 4 of file aoe.h.

◆ DEVICE_SUBDIR

#define DEVICE_SUBDIR   "etherd"

Definition at line 5 of file aoe.h.

◆ ETH_P_AOE

#define ETH_P_AOE   0x88a2

Definition at line 14 of file aoe.h.

◆ VERSION

#define VERSION   "87"

Definition at line 2 of file aoe.h.

◆ WHITESPACE

#define WHITESPACE   " \t\v\f\n,"

Definition at line 9 of file aoe.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
AOECMD_ATA 
AOECMD_CFG 
AOECMD_VEND_MIN 
AOEFL_RSP 
AOEFL_ERR 
AOEAFL_EXT 
AOEAFL_DEV 
AOEAFL_ASYNC 
AOEAFL_WRITE 
AOECCMD_READ 
AOECCMD_TEST 
AOECCMD_PTEST 
AOECCMD_SET 
AOECCMD_FSET 
AOE_HVER 

Definition at line 17 of file aoe.h.

◆ anonymous enum

anonymous enum
Enumerator
DEVFL_UP 
DEVFL_TKILL 
DEVFL_EXT 
DEVFL_GDALLOC 
DEVFL_GD_NOW 
DEVFL_KICKME 
DEVFL_NEWSIZE 
DEVFL_FREEING 
DEVFL_FREED 

Definition at line 73 of file aoe.h.

◆ anonymous enum

anonymous enum
Enumerator
DEFAULTBCNT 
MIN_BUFS 
NTARGETS 
NAOEIFS 
NSKBPOOLMAX 
NFACTIVE 
TIMERTICK 
RTTSCALE 
RTTDSCALE 
RTTAVG_INIT 
RTTDEV_INIT 
HARD_SCORN_SECS 
MAX_TAINT 

Definition at line 85 of file aoe.h.

◆ frame_flags

Enumerator
FFL_PROBE 

Definition at line 110 of file aoe.h.

Function Documentation

◆ aoe_bio_pagedec()

void aoe_bio_pagedec ( struct bio *  )

Definition at line 31 of file aoeblk.c.

References iter.

Referenced by aoe_end_buf().

◆ aoe_bio_pageinc()

void aoe_bio_pageinc ( struct bio *  )

◆ aoe_end_request()

void aoe_end_request ( struct aoedev ,
struct request *  ,
int   
)

Definition at line 1119 of file aoecmd.c.

References aoedev::blkq, aoedev::ip, and aoedev::rq.

Referenced by aoe_end_buf(), aoe_failip(), aoeblk_request(), and aoedev_downdev().

◆ aoe_failbuf()

void aoe_failbuf ( struct aoedev ,
struct buf  
)

Definition at line 1718 of file aoecmd.c.

References aoe_end_buf(), buf::bio, aoetgt::d, buf::iter, and buf::nframesout.

Referenced by aoe_failip(), aoe_flush_iocq_by_index(), and downdev_frame().

◆ aoe_flush_iocq()

void aoe_flush_iocq ( void  )

Definition at line 1729 of file aoecmd.c.

References aoe_flush_iocq_by_index(), kts, and ncpus.

Referenced by aoecmd_exit().

◆ aoe_flush_iocq_by_index()

void aoe_flush_iocq_by_index ( int  )

◆ aoe_freetframe()

◆ aoe_kcalloc()

void* aoe_kcalloc ( size_t  ,
size_t  ,
int   
)

◆ aoe_ktstart()

int aoe_ktstart ( struct ktstate k)

Definition at line 1346 of file aoecmd.c.

References kthread(), ktstate::name, ktstate::rendez, and ktstate::task.

Referenced by aoecmd_init(), aoenet_init(), and ktio().

◆ aoe_ktstop()

void aoe_ktstop ( struct ktstate k)

Definition at line 1339 of file aoecmd.c.

References ktstate::rendez, and ktstate::task.

Referenced by aoecmd_exit(), and aoenet_exit().

◆ aoeblk_exit()

void aoeblk_exit ( void  )

Definition at line 444 of file aoeblk.c.

References aoe_debugfs_dir, and buf_pool_cache.

Referenced by aoe_exit(), and aoe_init().

◆ aoeblk_gdalloc()

◆ aoeblk_init()

int aoeblk_init ( void  )

Definition at line 452 of file aoeblk.c.

References aoe_debugfs_dir, and buf_pool_cache.

Referenced by aoe_init().

◆ aoechr_error()

void aoechr_error ( char *  )

◆ aoechr_exit()

void aoechr_exit ( void  )

Definition at line 297 of file aoechr.c.

References aoe_class, AOE_MAJOR, and chardevs.

Referenced by aoe_exit(), and aoe_init().

◆ aoechr_init()

int aoechr_init ( void  )

Definition at line 14 of file 24-cdc4.c.

References aoe_class, aoe_fops, AOE_MAJOR, chardevs, emsgs_lock, emsgs_sema, aoe_chardev::minor, and aoe_chardev::name.

Referenced by aoe_init().

◆ aoecmd_ata_id()

◆ aoecmd_ata_rsp()

◆ aoecmd_cfg()

void aoecmd_cfg ( ushort  aoemajor,
unsigned char  aoeminor 
)

Definition at line 1454 of file aoecmd.c.

References aoecmd_cfg_pkts(), and aoenet_xmit().

Referenced by aoeblk_release(), discover(), discover_timer(), and revalidate().

◆ aoecmd_cfg_rsp()

◆ aoecmd_cleanslate()

void aoecmd_cleanslate ( struct aoedev )

◆ aoecmd_exit()

void aoecmd_exit ( void  )

Definition at line 1837 of file aoecmd.c.

References aoe_flush_iocq(), aoe_ktstop(), empty_page, iocq, ktiowq, kts, and ncpus.

Referenced by aoe_exit(), and aoe_init().

◆ aoecmd_init()

int aoecmd_init ( void  )

◆ aoecmd_sleepwork()

void aoecmd_sleepwork ( struct work_struct *  )

◆ aoecmd_work()

void aoecmd_work ( struct aoedev d)

Definition at line 956 of file aoecmd.c.

References aoecmd_ata_rw(), and rexmit_deferred().

Referenced by aoeblk_request(), and aoecmd_ata_rsp().

◆ aoecmd_wreset()

void aoecmd_wreset ( struct aoetgt t)

◆ aoedbg_devinit()

void aoedbg_devinit ( struct aoedev d)

◆ aoedbg_exit()

void aoedbg_exit ( void  )

Definition at line 268 of file aoedbg.c.

References chan.

Referenced by aoe_exit().

◆ aoedbg_init()

void __init aoedbg_init ( void  )

Definition at line 80 of file aoedbg.c.

References AOEDBG_ACTIVE, chan, start, and xrelay_open().

Referenced by aoe_init().

◆ aoedbg_print()

void aoedbg_print ( char *  fmt,
  ... 
)

Definition at line 107 of file aoedbg.c.

References aoedbg_write(), and chan.

◆ aoedbg_rtt()

◆ aoedbg_undbg()

void aoedbg_undbg ( struct aoedev d)

Definition at line 253 of file aoedbg.c.

References aoedev::dbg, and rttstop().

Referenced by freedev().

◆ aoedev_by_aoeaddr()

◆ aoedev_downdev()

◆ aoedev_exit()

void aoedev_exit ( void  )

Definition at line 524 of file aoedev.c.

References EXITING, and flush().

Referenced by aoe_exit(), and aoe_init().

◆ aoedev_flush()

int aoedev_flush ( const char __user *  str,
size_t  size 
)

Definition at line 394 of file aoedev.c.

References flush(), and NOT_EXITING.

Referenced by aoechr_write().

◆ aoedev_init()

int aoedev_init ( void  )

Definition at line 531 of file aoedev.c.

Referenced by aoe_init().

◆ aoedev_put()

void aoedev_put ( struct aoedev )

◆ aoedisk_rm_debugfs()

void aoedisk_rm_debugfs ( struct aoedev d)

Definition at line 226 of file aoeblk.c.

References aoedev::debugfs.

Referenced by freedev().

◆ aoedisk_rm_sysfs()

void aoedisk_rm_sysfs ( struct aoedev d)

Definition at line 238 of file aoeblk.c.

References attr_group, and aoedev::gd.

Referenced by freedev().

◆ aoenet_exit()

void aoenet_exit ( void  )

Definition at line 261 of file aoenet.c.

References aoe_ktstop(), aoe_pt, kts, and skbtxq.

Referenced by aoe_exit(), and aoe_init().

◆ aoenet_init()

int aoenet_init ( void  )

Definition at line 244 of file aoenet.c.

References aoe_ktstart(), aoe_pt, ktstate::fn, ktstate::id, kts, ktstate::lock, ktstate::name, skbtxq, tx(), txlock, txwq, and ktstate::waitq.

Referenced by aoe_init().

◆ aoenet_xmit()

void aoenet_xmit ( struct sk_buff *  )

Definition at line 159 of file aoenet.c.

References skbtxq, txlock, and txwq.

Referenced by aoecmd_ata_rw(), aoecmd_cfg(), aoecmd_cfg_rsp(), probe(), resend(), and revalidate().

◆ is_aoe_netif()

int is_aoe_netif ( struct net_device *  ifp)

Definition at line 108 of file aoenet.c.

References aoe_iflist, aoe_strcspn(), and WHITESPACE.

Referenced by aoecmd_cfg_pkts(), and aoenet_rcv().

◆ mac_addr()

unsigned long long mac_addr ( char  addr[6])

Definition at line 148 of file aoenet.c.

Referenced by aoecmd_ata_rsp(), aoedisk_show_mac(), ataid_complete(), probe(), and resend().

◆ set_aoe_iflist()

int set_aoe_iflist ( const char __user *  str,
size_t  size 
)

Definition at line 134 of file aoenet.c.

References aoe_iflist, and IFLISTSZ.

Referenced by interfaces().