X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/blobdiff_plain/4b50167cf8e38be5b28cb1f1183d51cc3bc412c2..de7387fa5a6a9023ce16c679ccb08b6496afc9b7:/afs/afs.pxd diff --git a/afs/afs.pxd b/afs/afs.pxd index 4570f2a..5d50e09 100644 --- a/afs/afs.pxd +++ b/afs/afs.pxd @@ -1,6 +1,51 @@ +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 @@ -12,3 +57,6 @@ cdef extern from "ubik.h": 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)