X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Fulnds%2Fprocbridge.h;h=965f83d6a0d2b3017ecbd7534bb7f1a5d4ee35bd;hp=060ae7b2b937ae52a20e88f55165efc9b4dc6be0;hb=ff17cc7e0282d9b1522810e0c5d12171c4d46a2d;hpb=96ec6856f91f7f9031cfce4273c714d72cfe59ae diff --git a/lnet/ulnds/procbridge.h b/lnet/ulnds/procbridge.h index 060ae7b..965f83d 100644 --- a/lnet/ulnds/procbridge.h +++ b/lnet/ulnds/procbridge.h @@ -2,6 +2,7 @@ * vim:expandtab:shiftwidth=8:tabstop=8: * * Copyright (c) 2002 Cray Inc. + * Copyright (c) 2003 Cluster File Systems, Inc. * * This file is part of Portals, http://www.sf.net/projects/sandiaportals/ */ @@ -14,14 +15,31 @@ #include +#define NAL_FLAG_RUNNING 1 +#define NAL_FLAG_STOPPING 2 +#define NAL_FLAG_STOPPED 4 + typedef struct procbridge { + /* sync between user threads and nal thread */ pthread_t t; pthread_cond_t cond; pthread_mutex_t mutex; - int to_lib[2]; - int from_lib[2]; + + /* socket pair used to notify nal thread */ + int notifier[2]; + + int nal_flags; + + pthread_mutex_t nal_cb_lock; } *procbridge; +typedef struct nal_init_args { + ptl_pid_t nia_requested_pid; + ptl_ni_limits_t *nia_limits; + int nia_nal_type; + bridge nia_bridge; +} nal_init_args_t; + extern void *nal_thread(void *); @@ -33,8 +51,9 @@ extern void *nal_thread(void *); extern void set_address(bridge t,ptl_pid_t pidrequest); extern nal_t *procbridge_interface(int num_interface, - ptl_pt_index_t ptl_size, - ptl_ac_index_t acl_size, - ptl_pid_t requested_pid); + ptl_pt_index_t ptl_size, + ptl_ac_index_t acl_size, + ptl_pid_t requested_pid); +extern void procbridge_wakeup_nal(procbridge p); #endif