X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/blobdiff_plain/d6c53efae5d34d8edeba9269312d45c189d2ffdd..de7387fa5a6a9023ce16c679ccb08b6496afc9b7:/afs/afs.pxd diff --git a/afs/afs.pxd b/afs/afs.pxd index e0684d9..5d50e09 100644 --- a/afs/afs.pxd +++ b/afs/afs.pxd @@ -1,13 +1,62 @@ +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)