cdef extern from "errno.h": int errno cdef extern from "string.h": char * strerror(int errnum) cdef extern from "netinet/in.h": struct in_addr: int s_addr struct sockaddr_in: short sin_family unsigned short sin_port in_addr sin_addr char sin_zero[8] cdef extern from "afs/stds.h": ctypedef long afs_int32 cdef extern from "afs/dirpath.h": char * AFSDIR_CLIENT_ETC_DIRPATH cdef extern from "afs/cellconfig.h": enum: MAXCELLCHARS MAXHOSTSPERCELL MAXHOSTCHARS # We just pass afsconf_dir structs around to other AFS functions, # so this can be treated as opaque struct afsconf_dir: pass # For afsconf_cell, on the other hand, we care about everything struct afsconf_cell: char name[MAXCELLCHARS] short numServers short flags sockaddr_in hostAddr[MAXHOSTSPERCELL] char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS] char *linkedCell int timeout afsconf_dir *afsconf_Open(char *adir) int afsconf_GetCellInfo(afsconf_dir *adir, char *acellName, char *aservice, afsconf_cell *acellInfo) cdef extern from "ubik.h": enum: MAXSERVERS # ubik_client is an opaque struct, so we don't care about its members struct ubik_client: pass cdef extern from "rx/rx.h": int rx_Init(int port) void rx_Finalize() cdef extern from "afs/com_err.h": char * error_message(int)