X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdrv%2Fpty.c;h=69b1ce6e1ee4c590ad5bf5b5f39b9bbb3aad21a4;hb=f7ec06bee2b80613d80c314bf864c69209d09829;hp=ebce208518c2598840c82870f9e5f83ddff1694a;hpb=5d4bf69e4eaab0f080fc04e318b48249ccaba398;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/drv/pty.c b/KernelLand/Kernel/drv/pty.c index ebce2085..69b1ce6e 100644 --- a/KernelLand/Kernel/drv/pty.c +++ b/KernelLand/Kernel/drv/pty.c @@ -121,7 +121,7 @@ int PTY_Install(char **Arguments) } // --- Management --- -tPTY *PTY_Create(const char *Name, void *Handle, tPTY_OutputFcn Output, tPTY_ReqResize ReqResize, tPTY_ModeSet ModeSet) +tPTY *PTY_Create(const char *Name, void *Handle, tPTY_OutputFcn Output, tPTY_ReqResize ReqResize, tPTY_ModeSet ModeSet, const struct ptydims *InitialDims, const struct ptymode *InitialMode) { tPTY **prev_np = NULL; size_t namelen; @@ -229,6 +229,11 @@ tPTY *PTY_Create(const char *Name, void *Handle, tPTY_OutputFcn Output, tPTY_Req ret->OutputFcn = Output; ret->ReqResize = ReqResize; ret->ModeSet = ModeSet; + // - Initialise modes + if( InitialDims ) + ret->Dims = *InitialDims; + if( InitialMode ) + ret->Mode = *InitialMode; // - Client node ret->ClientNode.ImplPtr = ret; ret->ClientNode.Type = &gPTY_NodeType_Client; @@ -825,7 +830,7 @@ int PTY_IOCtl(tVFS_Node *Node, int ID, void *Data) case PTY_IOCTL_SETID: if( Data && !CheckString(Data) ) { errno = EINVAL; return -1; } if( pty ) return EALREADY; - pty = PTY_Create(Data, NULL, NULL,NULL, NULL); + pty = PTY_Create(Data, NULL, NULL,NULL, NULL, NULL,NULL); if(pty == NULL) return 1; Node->ImplPtr = pty;