aboutsummaryrefslogtreecommitdiffstats
path: root/src/gpgcedev.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-11-15Add an SPDX tag to all core files.Werner Koch1-51/+51
--
2015-12-01Fix typos found by codespell.Justus Winter1-1/+1
-- Signed-off-by: Justus Winter <[email protected]>
2010-12-20Check malloc and CreateEvent return codes.Werner Koch1-0/+21
2010-12-14Typo fixes.Werner Koch1-2/+2
Improved gpgcemgr
2010-11-172010-11-17 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-48/+198
* gpgcedev.c (struct pipeimpl_s): Add member monitor_rvid. (struct monitor_s, monitor_t): New types. (monitor_table, monitor_table_size): New static variables. (pipeimpl_new): Initialize monitor_rvid. (allocate_monitor): New function. (make_pipe): Also try the monitor_table if the opnctx_table fails. (monitor): Renamed to ... (monitor_main): ... this. Remove from monitor_table when done. (assign_rvid): Add to monitor table when creating monitor thread.
2010-11-15Add log device to gpgcedevWerner Koch1-105/+452
2010-08-032010-08-03 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-43/+253
* gpgcedev.c (GPGCEDEV_IOCTL_ASSIGN_RVID): New call ASSIGN_RVID. (PIPE_FLAG_HALT_MONITOR): New flag. (struct pipeimpl_s): New members monitor_proc, monitor_access. (pipeimpl_new): Initialize them. (assert_pipeimpl): New function. (access_opnctx, make_pipe): Use it. (make_pipe): If there is a monitor, halt it. (monitor, assign_rvid): New functions. (GPG_IOControl): Handle GPGCEDEV_IOCTL_ASSIGN_RVID.
2010-08-022010-08-03 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-94/+107
* gpgcedev.c: Use index (between 1 and table size) into opnctx_table as public context identifiers, instead using pointers into the table directly (which are not stable under table resize). (OPNCTX_TO_IDX, OPNCTX_FROM_IDX, OPNCTX_VALID_IDX_P): New macros.
2010-06-29Handle NOTIFY event.Werner Koch1-2/+9
2010-06-092010-06-09 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-0/+71
* gpgcedev.c (GPGCEDEV_IOCTL_UNBLOCK): New ioctl. (PIPE_FLAG_UNBLOCK_READER, PIPE_FLAG_UNBLOCK_WRITER): New flags. (GPG_Read): Check if PIPE_FLAG_UNBLOCK_READER is set and return ERROR_BUSY in that case. (GPG_Write): Likewise for PIPE_FLAG_UNBLOCK_WRITER. (unblock_call): New function. (GPG_IOControl): Implement GPGCEDEV_IOCTL_UNBLOCK.
2010-06-072010-06-07 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-275/+344
* gpgcedev.c: This rewrite does away with troublesome race conditions (close vs everything else, for example) by simplifying the locking model. It also handles EOF, EPIPE, but still assumes that there is always only ever one reader and writer. Also, no need to treat ERROR_PIPE_NOT_CONNECTED and ERROR_BUSY as EAGAIN anymore. (struct pipeimpl_s, pipeimpl_t): New types. (PIPE_FLAG_NO_READER, PIPE_FLAG, NO_WRITER): New macros. (struct opnctx_s): Remove everything that's now in struct pipeimpl_s. Remove also assoc and locked. Add pipeimpl field. (pipeimpl_new, pipeimpl_unref, allocate_opnctx, verify_opnctx, access_opnctx): New functions. (get_new_opnctx, find_and_lock_opnctx, validate_and_lock_opnctx, unlock_opnctx): Removed. (GPG_Init, GPG_Deinit): Improve debugging output. (GPG_Open): Improve debugging output, use allocate_opnctx instead of get_new_opnctx. (GPG_Close): Improve debugging output. Rewrite to use reference counting. Also check if reader or writer is closed and set flags for triggering EOF or EPIPE. (GPG_Read): Improve debugging output. Rewrite using pipeimpl. Check for EOF. (GPG_Write): Improve debugging output. Rewrite using pipeimpl. Check for EPIPE. (make_pipe): Rewrite using pipeimpl. (GPG_IOControl): Improve debugging output.
2010-04-14Changes for W32CEWerner Koch1-3/+12
2010-03-30typo fixes and fix w32ce message formattingWerner Koch1-1/+1
2010-03-22Changed the implementation of CreatePipe under W32CE.Werner Koch1-80/+103
Reorganized the source.
2010-02-24A couple of changes to eventually fully support W32ce.Werner Koch1-0/+720