#include <protocol/ltab.h>

void kernel_crypto_init();
layer create_sba100_atm();
int sba100_identify();
int sba100_attach();
int sba100_detach();
void init_sba_forward();
layer create_sba200_layer();
layer create_sba200_monitor();
int sba200_identify();
int sba200_attach();
int sba200_detach();
void kvince_init();
int ip_shutdown();
layer create_ip_interface();
layer create_kernel_vince();
layer add_ip_vc();
layer create_vince_ip();
layer create_llc();
layer add_llc_snap();
layer create_crypto();
layer create_pacer();
layer create_crypto_control_layer();
layer create_cm_framer();
layer add_chain();

struct layer_description ltab[]={
  {create_sba100_atm,"create_sba100_atm","iiixx",sba100_identify,
     sba100_attach,sba100_detach,init_sba_forward},
  {create_sba200_monitor,"create_sba200_monitor","",sba200_identify,
     sba200_attach,sba200_detach,0},
  {create_ip_interface,"create_ip_interface","siiixxxx",0,0,ip_shutdown,0},
  {create_print,"create_print","ss",0,0,0,0},
  {create_frob,"create_frob","iii",0,0,0,0},
  {create_aal4,"create_aal4","i",0,0,0,0},
  {create_aal5,"create_aal5","i",0,0,0,0},
  {create_kernel_vince,"create_kernel_vince","",0,0,0,kvince_init},
  {add_ip_vc,"add_ip_vc","Lxi",0,0,0,0},
  {create_vince_ip,"create_vince_ip","xsii",0,0,0,0},
  {add_llc_snap,"add_llc_snap","Lxx",0,0,0,0},
  {create_llc,"create_llc","",0,0,0,0},
#ifdef CRYPTO
  {create_crypto,"create_crypto","",0,0,0,kernel_crypto_init},
  {create_crypto_control_layer,"create_crypto_control_layer","L",0,0,0,0},
#endif
  {create_cm_framer,"create_cm_framer","",0,0,0,0},
  {create_chain,"create_chain","",0,0,0,0},
  {add_chain,"add_chain","L",0,0,0,0},
  {create_pacer,"create_pacer","i",0,0,0,0},
  {0,0,0,0,0}};
